Skip to content
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

Use Vlan MAC as src MAC for link prober by default #93

Merged
merged 9 commits into from
Jun 28, 2022

Conversation

zjswhhh
Copy link
Contributor

@zjswhhh zjswhhh commented Jun 28, 2022

TASK 18434754

Description of PR

Summary:
Fixes # (issue)
This PR is to use VLAN MAC address as link prober heartbeat's src MAC address. Also user should be able to switch back and use ToR MAC by updating config DB entry.

sign-off: Jing Zhang zhangjing@microsfot.com

Type of change

  • Bug fix
  • New feature
  • Doc/Design
  • Unit test

Approach

What is the motivation for this PR?

In active-standby, scenario ICMP request is replied by server host and duplicated by smart cable. In active-active scenario, ICMP is replied by FPGA, and it will simply reverse src MAC and dest MAC. If we continue to use device MAC address as src MAC in active-active scenarios, heartbeats won't be duplicated to both sides.

How did you do it?

  • Get Vlan MAC address when initializing, and use it for link prober by default.
  • Add handlers to support switching between using Vlan MAC and ToR MAC.
    To use ToR MAC, set src_mac field in MUX_LINKMGR|LINK_PROBER table in CONFIG DB to value ToRMac.

How did you verify/test it?

Tested on dualToR testbeds, captured the ICMP requests and replies:

  • Able to see src MAC as Vlan MAC by default
  • Able to see src MAC switch to Device MAC after updating CONFIG DB entry
  • Able to see replies flood back to both sides.

Any platform specific information?

Documentation

@zjswhhh zjswhhh requested review from lolyu and yxieca June 28, 2022 02:42
@zjswhhh
Copy link
Contributor Author

zjswhhh commented Jun 28, 2022

Will add unit tests for better code coverage later, submitting for review now.

src/DbInterface.cpp Outdated Show resolved Hide resolved
src/DbInterface.cpp Outdated Show resolved Hide resolved
src/DbInterface.cpp Outdated Show resolved Hide resolved
@yxieca yxieca merged commit a516668 into sonic-net:master Jun 28, 2022
yxieca pushed a commit that referenced this pull request Jun 28, 2022
What is the motivation for this PR?
In active-standby, scenario ICMP request is replied by server host and duplicated by smart cable. In active-active scenario, ICMP is replied by FPGA, and it will simply reverse src MAC and dest MAC. If we continue to use device MAC address as src MAC in active-active scenarios, heartbeats won't be duplicated to both sides.

How did you do it?
Get Vlan MAC address when initializing, and use it for link prober by default.
Add handlers to support switching between using Vlan MAC and ToR MAC.
To use ToR MAC, set src_mac field in MUX_LINKMGR|LINK_PROBER table in CONFIG DB to value ToRMac.
How did you verify/test it?
Tested on dualToR testbeds, captured the ICMP requests and replies:

Able to see src MAC as Vlan MAC by default
Able to see src MAC switch to Device MAC after updating CONFIG DB entry
Able to see replies flood back to both sides.

sign-off: Jing Zhang zhangjing@microsfot.com
@zjswhhh zjswhhh deleted the use_vlan_mac_master branch June 28, 2022 18:17
zjswhhh added a commit to sonic-net/sonic-buildimage that referenced this pull request Jul 12, 2022
[master][sonic-linkmgrd] submodule update

58d8aae Longxiang Lyu Sat Jul 2 10:14:50 2022 +0800 Enforce switch after config mux to active (sonic-net/sonic-linkmgrd#95)
600df46 Longxiang Lyu Thu Jun 30 15:09:10 2022 +0800 Add unittest to verify mux toggle active (sonic-net/sonic-linkmgrd#94)
400b1b8 gregshpit Wed Jun 29 21:32:45 2022 +0300 For Sonic cross-compilation build. CC variable is used as gcc compiler. CXX variable is used as g++ compiler. (sonic-net/sonic-linkmgrd#91)
a516668 Jing Zhang Tue Jun 28 11:07:23 2022 -0700 Use Vlan MAC as src MAC for link prober by default (sonic-net/sonic-linkmgrd#93)
6b5d739 Longxiang Lyu Tue Jun 28 22:46:12 2022 +0800 Fix inconsistent mux state (sonic-net/sonic-linkmgrd#92)
9265497 Jing Zhang Fri Jun 24 09:10:12 2022 -0700 Remove exception throwing when initializing missing loopback interface (sonic-net/sonic-linkmgrd#90)

sign-off: Jing Zhang zhangjing@microsoft.com
zjswhhh added a commit to zjswhhh/sonic-linkmgrd that referenced this pull request May 22, 2023
What is the motivation for this PR?
In active-standby, scenario ICMP request is replied by server host and duplicated by smart cable. In active-active scenario, ICMP is replied by FPGA, and it will simply reverse src MAC and dest MAC. If we continue to use device MAC address as src MAC in active-active scenarios, heartbeats won't be duplicated to both sides.

How did you do it?
Get Vlan MAC address when initializing, and use it for link prober by default.
Add handlers to support switching between using Vlan MAC and ToR MAC.
To use ToR MAC, set src_mac field in MUX_LINKMGR|LINK_PROBER table in CONFIG DB to value ToRMac.
How did you verify/test it?
Tested on dualToR testbeds, captured the ICMP requests and replies:

Able to see src MAC as Vlan MAC by default
Able to see src MAC switch to Device MAC after updating CONFIG DB entry
Able to see replies flood back to both sides.

sign-off: Jing Zhang zhangjing@microsfot.com
@liuh-80
Copy link
Contributor

liuh-80 commented May 25, 2023

ADO for this PR is missing in description, please update PR description.

@liuh-80 liuh-80 added the Created PR to 202012 Branch Already manually cherry-pick PR to 202012 branch label May 31, 2023
@liuh-80 liuh-80 added the Approved for 202012 Branch Approved for 202012 Branch label Jun 15, 2023
@qiluo-msft
Copy link

This commit could not be cleanly cherry-picked to 202012. Please submit another PR.

zjswhhh added a commit that referenced this pull request Jun 28, 2023
Description of PR
TASK 18434754

Summary:
Fixes # (issue)

Cherry picking #93 into 202012 branch.

sign-off: Jing Zhang zhangjing@microsoft.com
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