Skip to content

Address PR review comments for EVPN VxLAN Multihoming HLD#2195

Merged
lguohan merged 3 commits into
sonic-net:masterfrom
pbrisset:update-evpn-multihoming-doc
May 8, 2026
Merged

Address PR review comments for EVPN VxLAN Multihoming HLD#2195
lguohan merged 3 commits into
sonic-net:masterfrom
pbrisset:update-evpn-multihoming-doc

Conversation

@pbrisset
Copy link
Copy Markdown
Contributor

@pbrisset pbrisset commented Jan 28, 2026

Latest updates:

  • Add detailed LAG failure handling sequence with SAI_BRIDGE_PORT_ATTR_BRIDGE_PORT_SET_SWITCHOVER
  • Replace mesh-bit references with proper SAI attributes (SAI_FDB_ENTRY_TYPE_STATIC and SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE)

Merged HLD : #1702

NEWLY PRs tested on a branch on master. PRs are consolidated per module. Each PR has multiple commits.

Module PR Title State
sonic-buildimage Add EVPN-MH YANG model support PR state
sonic-buildimage Add EVPN-MH FRR patch support PR state
sonic-swss-common Add L2 nexthop group table and raw netlink message handling PR state
sonic-swss Add standalone EVPN-MH code and tests PR state
sonic-swss EVPN-MH code wiring PR state
sonic-utilities Add CLI commands for EVPN VXLAN Multihoming configuration PR state
sonic-linux-kernel Add kernel patches for EVPN VXLAN Multihoming support PR state
sonic iproute2 patch Add protocol field support PR state

OLD:
| sonic-buildimage | Add EVPN VXLAN Multihoming build infrastructure and integration | PR state |
| sonic-swss | Add EVPN VXLAN Multihoming feature support |

OLD PRs for reference ONLY (all above PRs are superset)

Module Detail PR Status
sonic-utilities Config 4247 Open
sonic-swss Cfgmgr 4036 Open
sonic-buidimage Data Models 23373 Open / In-progress
sonic-swss evpnmhorch 3771 Open
sonic-swss shlorch 3769 Open
sonic-swss-common 890 Open
sonic-swss-common shlorch 1051 Merged
sonic-swss-common APP_DB 952 Open - NHG table - BCM PR
sonic-swss fdborch/neighorch 3914 Open
sonic-swss vxlanorch 3913 Open
sonic-swss fdbsyncd 4039 Open
sonic-swss fpmsyncd 4038 Open
sonic-swss Neighsyncd 4037 Open
sonic-swss fdbsyncd 4206 Open
sonic-frr FRR 19438 Open / In-progress
sonic-linux-kernel protocol field PR Open
sonic-linux-kernel MH peer sync PR Nvidia also need to open PR for MH peer sync flag
sonic-buildimage iproute2 PR Open / In-progress

@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

Comment thread doc/vxlan/EVPN/EVPN_VxLAN_Multihoming.md Outdated
Comment thread doc/vxlan/EVPN/EVPN_VxLAN_Multihoming.md Outdated
hasan-brcm
hasan-brcm previously approved these changes Jan 28, 2026
@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

- Add detailed LAG failure handling sequence with SAI_BRIDGE_PORT_ATTR_BRIDGE_PORT_SET_SWITCHOVER
- Replace mesh-bit references with proper SAI attributes (SAI_FDB_ENTRY_TYPE_STATIC and SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE)

Signed-off-by: Patrice Brissette <patricebrissette@gmail.com>
- MAC learn event may not be received if entry already exists in hardware
- Addresses reviewer feedback on step (e) in Type-2 withdrawal handling

Signed-off-by: Patrice Brissette <patricebrissette@gmail.com>
@pbrisset pbrisset force-pushed the update-evpn-multihoming-doc branch from a355bb6 to e3f79c0 Compare January 28, 2026 21:28
@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

Comment thread doc/vxlan/EVPN/EVPN_VxLAN_Multihoming.md Outdated
Comment thread doc/vxlan/EVPN/EVPN_VxLAN_Multihoming.md Outdated
Comment thread doc/vxlan/EVPN/EVPN_VxLAN_Multihoming.md Outdated
@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.


2. **LAG Failure Detection**:
- SONiC detects the LAG port failure through link state monitoring
- NOS determines that protection switchover is required
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

NOS - It would be better to callout the specific submodule in orchagent responsible for this. Please do the same for other occurrences of NOS in this section.

| 1.3 | Aug-2024 | Patrice Brissette (Cisco) | Updated SAI examples |
| 1.4 | Nov-2024 | Syed Hasan Naqvi (Broadcom) | Addressed review comments. Updated/removed duplicate text in SAI sec. |
| 1.5 | Feb-2026 | Patrice Brissette (Cisco) | Addressed review comments. |
| 1.6 | Feb-2026 | Patrice Brissette (Cisco) | Addressed review comments. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All of these changes in this PR can be regarded as part of v1.5.

@lguohan lguohan merged commit 49bab5b into sonic-net:master May 8, 2026
1 of 2 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in SONiC 202605 Release May 8, 2026
@delnas delnas moved this from Done to In Progress in SONiC 202605 Release May 8, 2026
- (a) FRR installs MAC in kernel with dev=PortChannel1, state=NUD_NOARP
- (b) Fdbsyncd listens to the above update from kernel and installs VXLAN_FDB_TABLE with type=controlPlane, ifname=PortChannel1, and state=remote. Note: A new FDB type is defined for synchronized entry. The type can be dataplane, controlplane or both.
- (c) Fdborch installs the MAC in hardware with mesh-bit set to avoid ageing.
- (c) Fdborch installs the MAC in hardware with SAI_FDB_ENTRY_TYPE_STATIC and SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE=True. This prevents aging while allowing the MAC entry to move to a local interface due to a learn event.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

To achieve this the sai attribute SAI_FDB_ENTRY_TYPE_STATIC_MACMOVE is avilable and being used for the VxLAN and MCLAG MAC addresses not to age but allow MAC mvoe.

4. MAC ages out on Vtep-1:
- (a) L2 table update event from SAI is processed in Fdborch.
- (b) Fdborch updates STATE_FBD_TABLE entry with type=controlPlane, and resets Local flag in FDB cache. It observes that Remote flag is set in FDB cache, so it updates MAC into the hardware with mesh bit set.
- (b) Fdborch updates STATE_FBD_TABLE entry with type=controlPlane, and resets Local flag in FDB cache. It observes that Remote flag is set in FDB cache, so it updates MAC into the hardware with SAI_FDB_ENTRY_TYPE_STATIC and SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE=True.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

To achieve this the sai attribute SAI_FDB_ENTRY_TYPE_STATIC_MACMOVE is avilable and being used for the VxLAN and MCLAG MAC addresses not to age but allow MAC mvoe.

- (f) Fdborch populates STATE_FDB_TABLE table (type=dynamic) and Fdbsyncd installs local FDB entry into the kernel.
- (g) FRR advertises Type-2 route with Proxy=0.
- (h) At step (e) above, if there is no traffic, the MAC will be removed from kernel by FRR after the hold-timer expiry. Fdbsyncd will remove the VXLAN_FDB_TABLE entry and mac will be removed from HW.
- (d) Fdborch converts the FDB entry in HW to dynamic (removes SAI_FDB_ENTRY_TYPE_STATIC, sets SAI_FDB_ENTRY_ATTR_ALLOW_MAC_MOVE=False).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I hope the plan is to use the attribute SAI_FDB_ENTRY_TYPE_DYNAMIC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

8 participants