Skip to content

[dualtor][orchagent] Add mac move testcases#3395

Merged
lolyu merged 2 commits intosonic-net:masterfrom
lolyu:add_mac_move
Apr 28, 2021
Merged

[dualtor][orchagent] Add mac move testcases#3395
lolyu merged 2 commits intosonic-net:masterfrom
lolyu:add_mac_move

Conversation

@lolyu
Copy link
Collaborator

@lolyu lolyu commented Apr 22, 2021

Description of PR

Summary:
Fixes #3276

Type of change

  • Bug fix
  • Testbed and Framework(new/improvement)
  • Test case(new/improvement)

Approach

What is the motivation for this PR?

Verify those mac move scenarios:

  1. if a new neighbor(in the VLAN subnet) is learned on an active port, the traffic to the new neighbor will be directly forwarded to the neighbor.
  2. if the mac moves from an active port to another standby port, verify the traffic is directed back to T1s to the active ToR.
  3. if the mac moves back to another active port, verify the traffic is directly forwarded.

Signed-off-by: Longxiang Lyu [email protected]

How did you do it?

Add:

  1. test_mac_move.py::test_mac_move

How did you verify/test it?

dualtor/test_mac_move.py::test_mac_move PASSED                                                                                                                                                 [100%]

===================================================================================== 1 passed in 79.14 seconds ======================================================================================

Any platform specific information?

Supported testbed topology if it's a new test case?

Documentation

@lolyu lolyu requested a review from a team as a code owner April 22, 2021 08:37
@lolyu lolyu requested a review from theasianpianist April 22, 2021 08:37
Copy link
Contributor

@theasianpianist theasianpianist left a comment

Choose a reason for hiding this comment

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

As per the test plan, I believe these two test cases should be combined into one case - we also want to test the transition between standby and active, and back to standby to make sure the traffic goes to the tunnel/neighbor/tunnel accordingly.

@lolyu
Copy link
Collaborator Author

lolyu commented Apr 23, 2021

As per the test plan, I believe these two test cases should be combined into one case - we also want to test the transition between standby and active, and back to standby to make sure the traffic goes to the tunnel/neighbor/tunnel accordingly.

@prsunny, could you please provide some of your thoughts here about how to organize those mac move testcases?

@prsunny
Copy link
Contributor

prsunny commented Apr 23, 2021

As per the test plan, I believe these two test cases should be combined into one case - we also want to test the transition between standby and active, and back to standby to make sure the traffic goes to the tunnel/neighbor/tunnel accordingly.

@prsunny, could you please provide some of your thoughts here about how to organize those mac move testcases?

Thats right. The test is expected as a sequence of operation to perform mac-move and verify. It is better to have it combined in one case. If we have it separated, then maintaining mac-move sequence would be harder. I believe, it will make the test simple as well.

@lolyu lolyu force-pushed the add_mac_move branch 2 times, most recently from 739a5ac to 070fa6c Compare April 26, 2021 03:13
@lolyu
Copy link
Collaborator Author

lolyu commented Apr 26, 2021

@theasianpianist, updated, could you pls take another review?

Add `test_mac_move` to cover the following scenarios:

1. announce a new neighbor to an active port, then test the traffic.
2. mac move to a standby port, then test the traffic.
3. mac move to another active port, then test the traffic.

Signed-off-by: Longxiang Lyu <[email protected]>
@theasianpianist
Copy link
Contributor

I don't see the 'Simulate FDB ageout/flush' steps from the test plan, am I missing something?

@lolyu
Copy link
Collaborator Author

lolyu commented Apr 27, 2021

I don't see the 'Simulate FDB ageout/flush' steps from the test plan, am I missing something?

FDB will learn from heartbeats immediately after FDB flush/ageout, and stopping the icmp_responder will leave the ToRs in an unexpected state, discussed with @prsunny , let's leave those steps in TODOs.

@prsunny
Copy link
Contributor

prsunny commented Apr 27, 2021

I don't see the 'Simulate FDB ageout/flush' steps from the test plan, am I missing something?

FDB will learn from heartbeats immediately after FDB flush/ageout, and stopping the icmp_responder will leave the ToRs in an unexpected state, discussed with @prsunny , let's leave those steps in TODOs.

Agree with @lolyu that we cannot stop icmp responder. But discussed another method to use a different mac than the interface mac so that it won't get relearnt after fdbflush. @lolyu is trying out the change.

Signed-off-by: Longxiang Lyu <[email protected]>
@lolyu
Copy link
Collaborator Author

lolyu commented Apr 27, 2021

dualtor/test_orchagent_mac_move.py::test_mac_move PASSED                                                                                                                                       [100%]

===================================================================================== 1 passed in 106.50 seconds =====================================================================================

Copy link
Contributor

@theasianpianist theasianpianist left a comment

Choose a reason for hiding this comment

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

lgtm!

@lolyu lolyu merged commit 9636210 into sonic-net:master Apr 28, 2021
@lolyu
Copy link
Collaborator Author

lolyu commented Apr 28, 2021

Thank you!

@lolyu lolyu deleted the add_mac_move branch April 28, 2021 01:05
saravanansv pushed a commit to saravanansv/sonic-mgmt that referenced this pull request May 6, 2021
What is the motivation for this PR?
Verify those mac move scenarios:

if a new neighbor(in the VLAN subnet) is learned on an active port, the traffic to the new neighbor will be directly forwarded to the neighbor.
if the mac moves from an active port to another standby port, verify the traffic is directed back to T1s to the active ToR.
if the mac moves back to another active port, verify the traffic is directly forwarded.
Signed-off-by: Longxiang Lyu [email protected]

How did you do it?
Add:

test_orchagent_mac_move.py::test_mac_move
bingwang-ms pushed a commit to bingwang-ms/sonic-mgmt that referenced this pull request Aug 18, 2021
We are migrating from Jenkins to azure pipeline. This PR added azure pipeline yaml files and dependent template files for nightly tests. Pipeline yaml files only added for 3 testbeds yet. The pipelines were originally added to branch azp-test of repo https://dev.azure.com/mssonic/internal/_git/sonic-mgmt-int. They have been tested on Azure DevOps.

Now we formally add these pipelines to the Networking-acs-sonic-mgmt repo. Currently the internal branch of Networking-acs-sonic-mgmt is synched to same internal branch of the sonic-mgmt-int repo. After this PR is merged, we need to update configuration of the created pipelines to formally use these files from the internal branch.

If the pipelines work fine with yaml files from internal branch, we will create more pipeline files based on current templates for rest of the nightly testbeds.

Related work items: sonic-net#3021, sonic-net#3073, sonic-net#3135, sonic-net#3153, sonic-net#3162, sonic-net#3176, sonic-net#3238, sonic-net#3241, sonic-net#3346, sonic-net#3352, sonic-net#3378, sonic-net#3389, sonic-net#3395, sonic-net#3397, sonic-net#3398, sonic-net#3407, sonic-net#3410, sonic-net#3411, sonic-net#3412, sonic-net#3413, sonic-net#3414, sonic-net#3415, sonic-net#3434, sonic-net#3437, sonic-net#3445, sonic-net#3446, sonic-net#3447, #9740131, #9821349
vmittal-msft pushed a commit to vmittal-msft/sonic-mgmt that referenced this pull request Sep 28, 2021
What is the motivation for this PR?
Verify those mac move scenarios:

if a new neighbor(in the VLAN subnet) is learned on an active port, the traffic to the new neighbor will be directly forwarded to the neighbor.
if the mac moves from an active port to another standby port, verify the traffic is directed back to T1s to the active ToR.
if the mac moves back to another active port, verify the traffic is directly forwarded.
Signed-off-by: Longxiang Lyu [email protected]

How did you do it?
Add:

test_orchagent_mac_move.py::test_mac_move
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.

Orchagent FDB/MAC Move Test Cases

3 participants