Skip to content

[Fdb/test_fdb]: Fixed fdb test case failure due to incomplete mac lea…#11170

Merged
wangxin merged 1 commit intosonic-net:masterfrom
tudupa:fdb/test_fdb
Jan 19, 2024
Merged

[Fdb/test_fdb]: Fixed fdb test case failure due to incomplete mac lea…#11170
wangxin merged 1 commit intosonic-net:masterfrom
tudupa:fdb/test_fdb

Conversation

@tudupa
Copy link
Copy Markdown
Contributor

@tudupa tudupa commented Jan 2, 2024

…rning on all members of portchannel

Description of PR

The "test_fdb" case encounters intermittent failures due to incomplete MAC learning on the fanout. During the test, packets are sent to facilitate MAC address learning on interfaces and PortChannels. However, MACs are only learned on the first PortChannel member, causing the test to fail when forwarding packets through the second member. The fanout lacks the necessary information to correctly forward incoming packets in this scenario. The test case succeeds when packets are routed through the first PortChannel member. This PR addresses this issue by enabling MAC learning on all the members of the PortChannel.

Summary:
Fixes # (issue)

Type of change

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

Back port request

  • 201911
  • 202012
  • 202205
  • 202305

Approach

What is the motivation for this PR?

FDB test case test_fdb failed intermittantly due to incomplete mac learning on the fanout. During the test runtime, the test sends a series of packets so that the correct mac's are learnt on the interfaces and PortChannels being tested. However, for the port channels, MAC's are learnt only on the first member of the PortChannel and not all members of the PortChannel. Therefore, while testing if forwarding is correctly happening through the PortChannel, if a test packet is forwarded through the second member of the portchannel, then the testcase fails since the fanout does not know where to forward the incoming packet. The testcase however passes if the packet is forwarded through the first member of the PortChannel.

How did you do it?

The change in the PR involves including the mac learning to happen across all the members of the PortChannel. Once mac learning is enabled on all members of the PortChannel, then the testcase passes and doesnt fail intermittently.

How did you verify/test it?

Ran a script to run the test continuously and checked that it passes.

Any platform specific information?

N/A

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

N/A

@tudupa tudupa marked this pull request as draft January 3, 2024 17:54
@wangxin wangxin merged commit b29b2b4 into sonic-net:master Jan 19, 2024
mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Jan 19, 2024
…rning on all memebers of portchannel (sonic-net#11170)

What is the motivation for this PR?
FDB test case test_fdb failed intermittantly due to incomplete mac learning on the fanout. During the test runtime, the test sends a series of packets so that the correct mac's are learnt on the interfaces and PortChannels being tested. However, for the port channels, MAC's are learnt only on the first member of the PortChannel and not all members of the PortChannel. Therefore, while testing if forwarding is correctly happening through the PortChannel, if a test packet is forwarded through the second member of the portchannel, then the testcase fails since the fanout does not know where to forward the incoming packet. The testcase however passes if the packet is forwarded through the first member of the PortChannel.

How did you do it?
The change in the PR involves including the mac learning to happen across all the members of the PortChannel. Once mac learning is enabled on all members of the PortChannel, then the testcase passes and doesnt fail intermittently.

How did you verify/test it?
Ran a script to run the test continuously and checked that it passes.
@mssonicbld
Copy link
Copy Markdown
Collaborator

Cherry-pick PR to 202305: #11343

mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Jan 19, 2024
…rning on all memebers of portchannel (sonic-net#11170)

What is the motivation for this PR?
FDB test case test_fdb failed intermittantly due to incomplete mac learning on the fanout. During the test runtime, the test sends a series of packets so that the correct mac's are learnt on the interfaces and PortChannels being tested. However, for the port channels, MAC's are learnt only on the first member of the PortChannel and not all members of the PortChannel. Therefore, while testing if forwarding is correctly happening through the PortChannel, if a test packet is forwarded through the second member of the portchannel, then the testcase fails since the fanout does not know where to forward the incoming packet. The testcase however passes if the packet is forwarded through the first member of the PortChannel.

How did you do it?
The change in the PR involves including the mac learning to happen across all the members of the PortChannel. Once mac learning is enabled on all members of the PortChannel, then the testcase passes and doesnt fail intermittently.

How did you verify/test it?
Ran a script to run the test continuously and checked that it passes.
@mssonicbld
Copy link
Copy Markdown
Collaborator

Cherry-pick PR to 202311: #11344

@mssonicbld
Copy link
Copy Markdown
Collaborator

Cherry-pick PR to 202205: #11345

mssonicbld pushed a commit that referenced this pull request Jan 19, 2024
…rning on all memebers of portchannel (#11170)

What is the motivation for this PR?
FDB test case test_fdb failed intermittantly due to incomplete mac learning on the fanout. During the test runtime, the test sends a series of packets so that the correct mac's are learnt on the interfaces and PortChannels being tested. However, for the port channels, MAC's are learnt only on the first member of the PortChannel and not all members of the PortChannel. Therefore, while testing if forwarding is correctly happening through the PortChannel, if a test packet is forwarded through the second member of the portchannel, then the testcase fails since the fanout does not know where to forward the incoming packet. The testcase however passes if the packet is forwarded through the first member of the PortChannel.

How did you do it?
The change in the PR involves including the mac learning to happen across all the members of the PortChannel. Once mac learning is enabled on all members of the PortChannel, then the testcase passes and doesnt fail intermittently.

How did you verify/test it?
Ran a script to run the test continuously and checked that it passes.
mssonicbld pushed a commit that referenced this pull request Jan 19, 2024
…rning on all memebers of portchannel (#11170)

What is the motivation for this PR?
FDB test case test_fdb failed intermittantly due to incomplete mac learning on the fanout. During the test runtime, the test sends a series of packets so that the correct mac's are learnt on the interfaces and PortChannels being tested. However, for the port channels, MAC's are learnt only on the first member of the PortChannel and not all members of the PortChannel. Therefore, while testing if forwarding is correctly happening through the PortChannel, if a test packet is forwarded through the second member of the portchannel, then the testcase fails since the fanout does not know where to forward the incoming packet. The testcase however passes if the packet is forwarded through the first member of the PortChannel.

How did you do it?
The change in the PR involves including the mac learning to happen across all the members of the PortChannel. Once mac learning is enabled on all members of the PortChannel, then the testcase passes and doesnt fail intermittently.

How did you verify/test it?
Ran a script to run the test continuously and checked that it passes.
wangxin pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Jan 22, 2024
…rning on all memebers of portchannel (sonic-net#11170)

What is the motivation for this PR?
FDB test case test_fdb failed intermittantly due to incomplete mac learning on the fanout. During the test runtime, the test sends a series of packets so that the correct mac's are learnt on the interfaces and PortChannels being tested. However, for the port channels, MAC's are learnt only on the first member of the PortChannel and not all members of the PortChannel. Therefore, while testing if forwarding is correctly happening through the PortChannel, if a test packet is forwarded through the second member of the portchannel, then the testcase fails since the fanout does not know where to forward the incoming packet. The testcase however passes if the packet is forwarded through the first member of the PortChannel.

How did you do it?
The change in the PR involves including the mac learning to happen across all the members of the PortChannel. Once mac learning is enabled on all members of the PortChannel, then the testcase passes and doesnt fail intermittently.

How did you verify/test it?
Ran a script to run the test continuously and checked that it passes.
mssonicbld pushed a commit that referenced this pull request Jan 22, 2024
…rning on all memebers of portchannel (#11170)

What is the motivation for this PR?
FDB test case test_fdb failed intermittantly due to incomplete mac learning on the fanout. During the test runtime, the test sends a series of packets so that the correct mac's are learnt on the interfaces and PortChannels being tested. However, for the port channels, MAC's are learnt only on the first member of the PortChannel and not all members of the PortChannel. Therefore, while testing if forwarding is correctly happening through the PortChannel, if a test packet is forwarded through the second member of the portchannel, then the testcase fails since the fanout does not know where to forward the incoming packet. The testcase however passes if the packet is forwarded through the first member of the PortChannel.

How did you do it?
The change in the PR involves including the mac learning to happen across all the members of the PortChannel. Once mac learning is enabled on all members of the PortChannel, then the testcase passes and doesnt fail intermittently.

How did you verify/test it?
Ran a script to run the test continuously and checked that it passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants