Skip to content

[Sonic-utilities] Static lag support rebase master #3241

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

kannansel
Copy link

What I did

   Why ?
    Static lag support changes in SWSS module
    sonic-net/SONiC#1039

How I did it

    Patch explanation
    1. static lag supported with option roundrobin.
    2. config and show command support
    3. test cases -> updated

CLI config
config portchannel add PortChannel04 --static true

root@sonic:~# show inter port
Flags: A - active, I - inactive, Up - up, Dw - Down, N/A - not
available,
       S - selected, D - deselected, * - not synced
  No.  Team Dev       Protocol     Ports
-----  -------------  -----------
-----------------------------------------
   01  PortChannel01  LACP(A)(Up)  Ethernet16(S)
   02  PortChannel02  NONE(A)(Up)  Ethernet48(S) Ethernet64(S)
Ethernet32(S)
root@sonic:~#

How to verify it

    UT:-
            Test cases
    1       Create static port channel with static flag     pass    pass
    2       verify static has option flag true or false     pass    pass
    3       Add static member see the portchannel is up     pass    pass
    4       verify teamd is created with round-robin option by default
    pass    pass
    5       Remove last portchannel member check port channel down  pass
    pass
    6       Remove portchannel member check port channel still up   pass
    pass
    7       verify teamdctl config dump     pass    pass
    8       verify teamdctl state dump      pass    pass
    9       shutdown the portchannel check the kernel state pass    pass
    10      no shutdown the portchannel check the kernel state      pass
    pass
    11      "Check the show output matches the review comment
    root@sonic:~# show inter port
    Flags: A - active, I - inactive, Up - up, Dw - Down, N/A - not
    available,
           S - selected, D - deselected, * - not synced
      No.  Team Dev       Protocol     Ports
    -----  -------------  -----------
    -----------------------------------------
       01  PortChannel01  LACP(A)(Up)  Ethernet16(S)
       02  PortChannel02  NONE(A)(Up)  Ethernet48(S) Ethernet64(S)
    Ethernet32(S)
    root@sonic:~#
    12      teamnl is set to roundrobin     pass    pass
    13      save and reload and verify portchannel is up    pass    pass
    14      "docker restart teamd
    teamd stopped
    swss stopped
    syncd stopped

    swss started
    syncd started
    teamd started"  pass    pass
    syncd started
    teamd started"  pass    pass
    15      warm-reboot fails even without any port channel config  fail
    16      verify teamd settles doesnt hog cpu with 100% cpu usage pass
    17      "trying with static port channel config on non supported
    branches
    port channel will be configured as LACP."               pass

    Not Supported Options
    1. Min links and
    2. fall back are not supported

Previous command output (if the output of a command-line utility has changed)

root@sonic:~# show inter port
Flags: A - active, I - inactive, Up - up, Dw - Down, N/A - not
available,
       S - selected, D - deselected, * - not synced
  No.  Team Dev       Protocol     Ports
-----  -------------  -----------
-----------------------------------------
   01  PortChannel01  LACP(A)(Up)  Ethernet16(S)

New command output (if the output of a command-line utility has changed)

root@sonic:~# show inter port
Flags: A - active, I - inactive, Up - up, Dw - Down, N/A - not
available,
       S - selected, D - deselected, * - not synced
  No.  Team Dev       Protocol     Ports
-----  -------------  -----------
-----------------------------------------
   01  PortChannel01  LACP(A)(Up)  Ethernet16(S)
   02  PortChannel02  NONE(A)(Up)  Ethernet48(S) Ethernet64(S)
Ethernet32(S)

        Why ?
        Static lag support changes in SWSS module
        sonic-net/SONiC#1039

        Patch explanation
        1. static lag supported with option roundrobin.
        2. config and show command support
        3. test cases -> updated

    CLI config
    config portchannel add PortChannel04 --static true

    root@sonic:~# show inter port
    Flags: A - active, I - inactive, Up - up, Dw - Down, N/A - not
    available,
           S - selected, D - deselected, * - not synced
      No.  Team Dev       Protocol     Ports
    -----  -------------  -----------
    -----------------------------------------
       01  PortChannel01  LACP(A)(Up)  Ethernet16(S)
       02  PortChannel02  NONE(A)(Up)  Ethernet48(S) Ethernet64(S)
    Ethernet32(S)
    root@sonic:~#

        UT:-
                Test cases
        1       Create static port channel with static flag     pass    pass
        2       verify static has option flag true or false     pass    pass
        3       Add static member see the portchannel is up     pass    pass
        4       verify teamd is created with round-robin option by default
        pass    pass
        5       Remove last portchannel member check port channel down  pass
        pass
        6       Remove portchannel member check port channel still up   pass
        pass
        7       verify teamdctl config dump     pass    pass
        8       verify teamdctl state dump      pass    pass
        9       shutdown the portchannel check the kernel state pass    pass
        10      no shutdown the portchannel check the kernel state      pass
        pass
        11      "Check the show output matches the review comment
        root@sonic:~# show inter port
        Flags: A - active, I - inactive, Up - up, Dw - Down, N/A - not
        available,
               S - selected, D - deselected, * - not synced
          No.  Team Dev       Protocol     Ports
        -----  -------------  -----------
        -----------------------------------------
           01  PortChannel01  LACP(A)(Up)  Ethernet16(S)
           02  PortChannel02  NONE(A)(Up)  Ethernet48(S) Ethernet64(S)
        Ethernet32(S)
        root@sonic:~#
        12      teamnl is set to roundrobin     pass    pass
        13      save and reload and verify portchannel is up    pass    pass
        14      "docker restart teamd
        teamd stopped
        swss stopped
        syncd stopped

        swss started
        syncd started
        teamd started"  pass    pass
        syncd started
        teamd started"  pass    pass
        15      warm-reboot fails even without any port channel config  fail
        16      verify teamd settles doesnt hog cpu with 100% cpu usage pass
        17      "trying with static port channel config on non supported
        branches
        port channel will be configured as LACP."               pass

        Not Supported Options
        1. Min links and
        2. fall back are not supported
@dgsudharsan
Copy link
Collaborator

@kannansel Can you please resolve the conflicts?

result = runner.invoke(config.config.commands["portchannel"].commands["add"], ["PortChannel0101", "--static", static], obj=obj)
print(result.exit_code)
print(result.output)
assert result.exit_code == 0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test should not just check the return code but also validate that when --static is set, config_db is set with fv static, true. Can you please update the test to reflect this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants