-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[teamd]: different portchannels configured with same LACP key #4009
Comments
@pavel-shirshov can you please check the below? how do you think the key should be assigned? |
Thank you @mkovnir for reporting the issue. @liat-grozovik We should assign unique keys for each portchannel in sonic to prevent the issue. I'll create a patch as soon as I have time. |
@mkovnir Would you like to create such patch? You need to fix the configuration here: https://github.com/Azure/sonic-swss/blob/master/cfgmgr/teammgr.cpp#L507 |
@pavel-shirshov Sorry, I am not a developer and dont know how to patch the code. |
@mkovnir No problem. I'll try to fix the issue as soon as I have some time |
Another approach sonic-net/sonic-swss#1117 |
@pavel-shirshov and @lguohan what is the status of this issue? planning to be fixed for 201911? |
Hi @lguohan - could you please re-assign this PR. |
@anshuv-mfst Nvidia team will take it. Please assign @DavidZagury (i was not able to do so) |
Fix issue - sonic-net/sonic-buildimage#4009 When a member port is added to port-channel, create a unique LACP key. When adding a member port to port-channel set the LACP key to a unique number. The number is extracted from the port-channel name and will be the number at the end of the port-channel name with an additional digit at the beginning in order to make sure that this number will be unique in the system. Why I did it If LACP key is not set, then the peer will not be able to distinguish the ports which are connected to different port-channels, as it will receive the LACP key as 0 for all the ports from different port-channels. How I verified it I configure a SONiC switch to have two port-channels and on a second switch, I created one port-channel for both links between the switches. On the second switch only one of the ports comes up in the PO and the other one stayed down.
What I did Fix issue - sonic-net/sonic-buildimage#4009 Change the LACP key to be generated from the Port Channel name instead of always being 0. When upgrading without warm-reboot update old port channels to use the new default. How I did it When adding a new port-channel add by default the key lacp_key with the value 'auto' to the port-channel table, this is done to change the port-channel LACP key to be generated from the Port Channel name instead of always being 0. When upgrading without warm-reboot, also update old port channels to use the new default. This is not done on warm-reboot to avoid the link from going down.
What I did Fix issue - sonic-net/sonic-buildimage#4009 Change the LACP key to be generated from the Port Channel name instead of always being 0. When upgrading without warm-reboot update old port channels to use the new default. How I did it When adding a new port-channel add by default the key lacp_key with the value 'auto' to the port-channel table, this is done to change the port-channel LACP key to be generated from the Port Channel name instead of always being 0. When upgrading without warm-reboot, also update old port channels to use the new default. This is not done on warm-reboot to avoid the link from going down.
Fix issue - sonic-net/sonic-buildimage#4009 When a member port is added to port-channel, create a unique LACP key. When adding a member port to port-channel set the LACP key to a unique number. The number is extracted from the port-channel name and will be the number at the end of the port-channel name with an additional digit at the beginning in order to make sure that this number will be unique in the system. Why I did it If LACP key is not set, then the peer will not be able to distinguish the ports which are connected to different port-channels, as it will receive the LACP key as 0 for all the ports from different port-channels. How I verified it I configure a SONiC switch to have two port-channels and on a second switch, I created one port-channel for both links between the switches. On the second switch only one of the ports comes up in the PO and the other one stayed down.
mode. Needed as mention in issue: sonic-net#4009 Signed-off-by: Abhishek Dosi <[email protected]>
…aph (sonic-net#12694) Add lacp_key as auto in portchannel configuration when parsing minigraph Needed as mention in issue: sonic-net#4009
What I did Fix issue - sonic-net/sonic-buildimage#4009 Change the LACP key to be generated from the Port Channel name instead of always being 0. When upgrading without warm-reboot update old port channels to use the new default. How I did it When adding a new port-channel add by default the key lacp_key with the value 'auto' to the port-channel table, this is done to change the port-channel LACP key to be generated from the Port Channel name instead of always being 0. When upgrading without warm-reboot, also update old port channels to use the new default. This is not done on warm-reboot to avoid the link from going down.
Description
According to 6.3.3 of IEEE 802.1AX-2014:
An Aggregator also shall be assigned an integer identifier that is used by Link Aggregation Control to uniquely identify the Aggregator within the System.
SONIC system starts teamd (separate process for each portchannel) without specifying LACP key, and default value ("0") is used for different portchannels. This lead to situation when neighboring device is not able to differentiate links belonging to different portchannels.
Steps to reproduce the issue:
Describe the results you expected:
SwitchA aggregates both link to one portchannel, switchB aggregates links to different portchannels.
Describe the results you expected:
System should assign locally unique integer as LACP key for different portchannels and described above assymetric topology will not be possible.
Output of
show version
:The text was updated successfully, but these errors were encountered: