Skip to content

Commit b274365

Browse files
nazariigabdosi
authored andcommitted
[portsorch]: Set proper initial forwarding state for LAG member (sonic-net#1448)
* [portsorch]: Set proper initial forwarding state for LAG member. * [portsorch]: Fix review comments.
1 parent 90b6def commit b274365

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

orchagent/portsorch.cpp

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2577,7 +2577,7 @@ void PortsOrch::doLagMemberTask(Consumer &consumer)
25772577
/* Assert the port doesn't belong to any LAG already */
25782578
assert(!port.m_lag_id && !port.m_lag_member_id);
25792579

2580-
if (!addLagMember(lag, port))
2580+
if (!addLagMember(lag, port, (status == "enabled")))
25812581
{
25822582
it++;
25832583
continue;
@@ -3349,7 +3349,7 @@ void PortsOrch::getLagMember(Port &lag, vector<Port> &portv)
33493349
}
33503350
}
33513351

3352-
bool PortsOrch::addLagMember(Port &lag, Port &port)
3352+
bool PortsOrch::addLagMember(Port &lag, Port &port, bool enableForwarding)
33533353
{
33543354
SWSS_LOG_ENTER();
33553355

@@ -3370,6 +3370,17 @@ bool PortsOrch::addLagMember(Port &lag, Port &port)
33703370
attr.value.oid = port.m_port_id;
33713371
attrs.push_back(attr);
33723372

3373+
if (!enableForwarding)
3374+
{
3375+
attr.id = SAI_LAG_MEMBER_ATTR_EGRESS_DISABLE;
3376+
attr.value.booldata = true;
3377+
attrs.push_back(attr);
3378+
3379+
attr.id = SAI_LAG_MEMBER_ATTR_INGRESS_DISABLE;
3380+
attr.value.booldata = true;
3381+
attrs.push_back(attr);
3382+
}
3383+
33733384
sai_object_id_t lag_member_id;
33743385
sai_status_t status = sai_lag_api->create_lag_member(&lag_member_id, gSwitchId, (uint32_t)attrs.size(), attrs.data());
33753386

@@ -3461,6 +3472,10 @@ bool PortsOrch::setCollectionOnLagMember(Port &lagMember, bool enableCollection)
34613472
return false;
34623473
}
34633474

3475+
SWSS_LOG_NOTICE("%s collection on LAG member %s",
3476+
enableCollection ? "Enable" : "Disable",
3477+
lagMember.m_alias.c_str());
3478+
34643479
return true;
34653480
}
34663481

@@ -3484,6 +3499,10 @@ bool PortsOrch::setDistributionOnLagMember(Port &lagMember, bool enableDistribut
34843499
return false;
34853500
}
34863501

3502+
SWSS_LOG_NOTICE("%s distribution on LAG member %s",
3503+
enableDistribution ? "Enable" : "Disable",
3504+
lagMember.m_alias.c_str());
3505+
34873506
return true;
34883507
}
34893508

orchagent/portsorch.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ class PortsOrch : public Orch, public Subject
171171

172172
bool addLag(string lag);
173173
bool removeLag(Port lag);
174-
bool addLagMember(Port &lag, Port &port);
174+
bool addLagMember(Port &lag, Port &port, bool enableForwarding);
175175
bool removeLagMember(Port &lag, Port &port);
176176
bool setCollectionOnLagMember(Port &lagMember, bool enableCollection);
177177
bool setDistributionOnLagMember(Port &lagMember, bool enableDistribution);

0 commit comments

Comments
 (0)