Address PR review comments for EVPN VxLAN Multihoming HLD#2195
Conversation
|
/azp run |
|
No pipelines are associated with this pull request. |
|
/azp run |
|
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>
a355bb6 to
e3f79c0
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
|
/azp run |
|
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 |
There was a problem hiding this comment.
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. | |
There was a problem hiding this comment.
All of these changes in this PR can be regarded as part of v1.5.
| - (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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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). |
There was a problem hiding this comment.
I hope the plan is to use the attribute SAI_FDB_ENTRY_TYPE_DYNAMIC
Latest updates:
Merged HLD : #1702
NEWLY PRs tested on a branch on master. PRs are consolidated per module. Each PR has multiple commits.
OLD:
|
| sonic-buildimage | Add EVPN VXLAN Multihoming build infrastructure and integration |
| sonic-swss | Add EVPN VXLAN Multihoming feature support |
OLD PRs for reference ONLY (all above PRs are superset)