From 9e57f3fa44ce7852cdf78833823e1393e12b28ca Mon Sep 17 00:00:00 2001 From: Manas Kumar Mandal Date: Tue, 24 Feb 2026 14:53:02 -0800 Subject: [PATCH 1/7] Dualtor FRR support with hw NH Protection group Signed-off-by: Manas Kumar Mandal --- .../image/ECMP_NextHop_ProtectionGroup.png | Bin 0 -> 73598 bytes .../image/config_mux_mode_admin_role.png | Bin 0 -> 54270 bytes doc/dualtor/image/link_stateup_switchover.png | Bin 0 -> 56613 bytes .../image/nhgroup_icmpsession_monitoring.png | Bin 0 -> 58091 bytes doc/dualtor/image/nhprot_architecture.png | Bin 0 -> 56900 bytes .../image/nhprot_high_level_components.png | Bin 0 -> 58993 bytes .../mux_hw_protection_switching_hld.md | 264 ++++++++++++++++++ 7 files changed, 264 insertions(+) create mode 100644 doc/dualtor/image/ECMP_NextHop_ProtectionGroup.png create mode 100644 doc/dualtor/image/config_mux_mode_admin_role.png create mode 100644 doc/dualtor/image/link_stateup_switchover.png create mode 100644 doc/dualtor/image/nhgroup_icmpsession_monitoring.png create mode 100644 doc/dualtor/image/nhprot_architecture.png create mode 100644 doc/dualtor/image/nhprot_high_level_components.png create mode 100644 doc/dualtor/mux_hw_protection_switching_hld.md diff --git a/doc/dualtor/image/ECMP_NextHop_ProtectionGroup.png b/doc/dualtor/image/ECMP_NextHop_ProtectionGroup.png new file mode 100644 index 0000000000000000000000000000000000000000..a7174b068ab4e760bed3075b4e233b9ca8d52f6a GIT binary patch literal 73598 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 literal 0 HcmV?d00001 diff --git a/doc/dualtor/image/config_mux_mode_admin_role.png b/doc/dualtor/image/config_mux_mode_admin_role.png new file mode 100644 index 0000000000000000000000000000000000000000..abaffbd387de25d3a51c40841da7b82da90af09f GIT binary patch literal 54270 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ĵdwy#$Qzs5rG#5o%#KubXlpK_XoYod)GTnqkLps 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 z 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 udJg~c1qx3XUMK?i04 literal 0 HcmV?d00001 diff --git a/doc/dualtor/image/nhprot_architecture.png b/doc/dualtor/image/nhprot_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1a64262913dd1f4a0eb5436e726e3bdb6462aaff GIT binary patch literal 56900 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 X+ydNs4B9qkfCARj)z4*}Q$iB}W?UNM literal 0 HcmV?d00001 diff --git a/doc/dualtor/image/nhprot_high_level_components.png b/doc/dualtor/image/nhprot_high_level_components.png new file mode 100644 index 0000000000000000000000000000000000000000..35f6439916f3c3acfa4ab7f69a77ad510511a3cb GIT binary patch literal 58993 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 Z<`&@Av;Kc2aKe&-!PC{xWt~$(697l)g2n&< literal 0 HcmV?d00001 diff --git a/doc/dualtor/mux_hw_protection_switching_hld.md b/doc/dualtor/mux_hw_protection_switching_hld.md new file mode 100644 index 00000000000..2b3e2028d6b --- /dev/null +++ b/doc/dualtor/mux_hw_protection_switching_hld.md @@ -0,0 +1,264 @@ +# FRR Protection Switching with ICMP hardware offload +FRR Protection Switching using ICMP hardware offload is a feature aimed at improving switchover time in Dual ToR architecture. + +## Table of Contents + + + + + +- [1. Revision](#1-revision) +- [2. Scope](#2-scope) +- [3. Definitions/Abbreviation](#3-definitionsabbreviation) +- [4. Overview](#4-overview) +- [5. Requirements](#5-requirements) + - [5.1 SONiC Requirements](#51-sonic-requirements) + - [5.2 ASIC Requirements](#52-asic-requirements) +- [6. Hardware based Nexthop Protection Group Architecture](#6-hardware-based-nexthop-protection-group-architecture) +- [7. High-Level Design](#7-high-level-design) + - [7.1 Orchagent](#71-orchagent) + - [7.1.1 NhgOrch](#711-nhgorch) + - [7.1.2 MuxOrch](#712-muxorch) + - [7.1.3 MuxCableOrch](#713-muxcableorch) + - [7.1.4 MuxNbrHandler](#714-muxnbrhandler) + - [7.1.4.1 Neighbor Handling](#7141-neighbor-handling) + - [7.1.4.2 ECMP Route Handling](#7142-ecmp-route-handling) + - [7.1.5 IcmpOrch](#715-icmporch) + - [7.1.6 Debounce Handling](#716-debounce-handling) + - [7.2 LinkMgrd](#72-linkmgrd) +- [8. DB Schema Changes](#8-db-schema-changes) + - [8.1 Config-DB](#81-config-db) + - [8.2 App-DB](#82-app-db) + - [8.3 State-DB](#83-state-db) +- [9. Command Line](#9-command-line) + - [9.1 Show CLI](#91-show-cli) +- [10. Future Enhancements](#10-future-enhancements) +- [11. Limitations](#11-limitations) +- [12. Error Handling and Failure Scenarios](#12-error-handling-and-failure-scenarios) +- [13. Testing](#13-testing) + + +## 1. Revision +| Rev | Date | Author | Change Description | +|:---:|:-----------:|:---------------------:|:--------------------------------:| +| 1.0 | 02/09/2026 | Manas Kumar Mandal | Initial Version | + +## 2. Scope +This document describes high level design details of SONiC's FRR hardware protection switching using ICMP hardware offloaded session for dual ToR architecture. + +## 3. Definitions/Abbreviation +| Abbreviation | Definition | +|:------------:|:----------:| +| FRR | Fast ReRoute | +| ToR | Top of Rack | +| DualToR | Dual Top of Rack | +| ICMP | Internet Control Message Protocol | +| SAI | Switch Abstraction Interface | +| NHG | Next Hop Group | +| FDB | Forwarding Database | +| IPinIP | IP-in-IP Encapsulation | + +## 4. Overview +SONiC uses ICMP echo request and reply packets to monitor the state of links between server blades and the ToR switches in DualToR architecture. When a link state change is detected, SONiC switches traffic by reprogramming routes and neighbors. This reprogramming involves multiple SAI calls from SONiC, leading to unpredictable delays in switchover time. As a result, switchover performance cannot be guaranteed. FRR hardware protection switching addresses these limitations by handling switchover in hardware as specified by the SAI enhancement related to **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**. + +## 5. Requirements +### 5.1 SONiC Requirements + * Support of ICMP hardware offloaded sessions for dual ToR architecture is a prerequisite for this feature. + * Support FRR hardware protection switching using ICMP hardware offloaded session for dual ToR architecture. + * Support administrative traffic switching by toggling members of nexthop protection group based on admin_state field in MUX_CABLE_TBL. + * Support prefix-route based neighbors for hardware based protection switching. Explicit neighbor-mode configuration is not needed for hardware based protection switching although orchagent will transition to use prefix-route based neighbors when hardware based protection switching is enabled. + * Process cable config **switching_mode** knob to differentiate between normal software based switching and FRR hardware protection switching. + * When **switching_mode** is not configured, the default value is **normal**, preserving the existing software-based switching behavior. No behavioral change occurs for existing deployments that do not opt in. + * Backward compatible with existing software based switching. When **switching_mode** is set to **hardware** but the ASIC does not support nexthop protection groups, SONiC will fall back to normal software based switching transparently. + * Create nexthop protection group for FRR switchover based on the config. + * Maintain mapping of mux cable and ICMP echo session object id. + * The new **admin_state** field in App-DB MUX_CABLE_TBL is additive. LinkMgrd will begin populating this field for both **normal** and **hardware** modes so that orchagent can use it uniformly. + +### 5.2 ASIC Requirements + * Support **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group. + * Support **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute as this allows SONiC to administratively toggle the protection group members in hardware overriding the automatic toggling of protection group members based on the link state. + * Support **NO_HOST_ROUTE** SAI neighbor attribute as prefix-route based neighbors will be used to work with hardware based nexthop protection group. + * Support protection NHG level switchover counters for observability (new SAI specification to be proposed -- see [Section 10](#10-future-enhancements)). + +## 6. Hardware based Nexthop Protection Group Architecture +**SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group enables fast switchover of traffic between primary and backup next hops in hardware. This is achieved by programming both primary and backup next hops in hardware and toggling of nexthops takes place in hardware without any extra programming from SONiC for switchover. This eliminates the need to reprogram all routes during switchover and enables fast traffic switching. + +Following diagram shows the high level SAI forwarding pipeline of hardware based nexthop protection group. The traffic is switched in hardware between primary and standby nexthop based on the state of the monitored ICMP hardware offloaded session of the mux port, without any involvement of SONiC for traffic switching. +
+ +## 7. High-Level Design +Following diagram describes high level interaction of components in SONiC. +
+ + +### 7.1 Orchagent +#### 7.1.1 NhgOrch +NhgOrch manages the lifecycle of nexthop protection groups in hardware. It extends the existing NhgOrch infrastructure to support **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** groups alongside the existing ECMP NHGs. The protection NHG implementation derives from the common NhgCommon base, which provides: + + * **Capacity accounting** -- protection NHG resource usage is tracked alongside ECMP NHGs, giving orchagent an accurate view of overall hardware NHG resource consumption. + * **Consistent lifecycle management** -- creation, update, and removal of protection NHGs follow the same patterns as ECMP NHGs. + +NhgOrch exposes APIs for the following protection NHG operations: + * Creating a nexthop protection group with primary and backup nexthop members. + * Updating nexthop protection group member attributes (e.g., setting **SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT**). + * Toggling **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** for administrative switchover. + * Removing a nexthop protection group and its members. + +MuxOrch is the primary consumer of these APIs for dual-ToR. Other orchagent components can reuse the same interfaces in the future for additional features. + +> **Why not a separate ProtNhgOrch?** Protection NHGs for dual-ToR are tightly coupled to the mux neighbor lifecycle and don't need an independent APP_DB table. If a future non-mux use case arises, a ProtNhgOrch can inherit from NhgOrch without changing the protection NHG implementation itself. + +#### 7.1.2 MuxOrch +This feature introduces a new config knob **switching_mode** to differentiate between normal software based switching and FRR hardware protection switching that will use nexthop protection group to switch traffic. MuxOrch will perform a capability check for hardware protection group support by querying the SAI switch attributes. If the ASIC supports **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**, MuxOrch will create nexthop protection group for each mux neighbor and maintain a mapping of mux neighbors and nexthop protection groups based on this config knob. If the capability check fails, MuxOrch will fall back to normal software based switchover. +MuxOrch creates the IPinIP tunnel based on the peer_switch configuration. Currently IPinIP tunnel destination next hop is created when mux state changes to standby. However, with **hardware** switching_mode it will create the IPinIP tunnel destination next hop in advance and add this as the backup member of the nexthop protection group. +MuxOrch will need to program the monitored ICMP offload session's object id as the **SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT** in the nexthop protection group. For this MuxOrch will subscribe to notifications from IcmpOrch for ICMP session creation and will maintain a mapping of mux port and ICMP session object id. When MuxOrch receives notification for session creation from IcmpOrch, it will update the nexthop member attribute to program the monitored session object id. + +Following diagram shows MuxOrch component level flow for admin_state and switching_mode handling. +
+ +#### 7.1.3 MuxCableOrch +MuxCableOrch in orchagent is the component responsible for consuming mux state from App DB MUX_CABLE_TABLE and switching traffic. Currently this component updates all routes whenever a traffic switchover is needed. When **switching_mode** is set to **hardware** in MuxOrch, MuxCableOrch will program the routes with the nexthop protection group OID as destination once during initial setup. Since the route destination is the protection NHG OID, subsequent MUX_CABLE_TBL link state changes are handled entirely in hardware -- MuxCableOrch does not need to reprogram routes or swap next hops during switchover. The only route programming from MuxCableOrch in **hardware** mode occurs during initial route creation and during admin_state based manual switching. + +Following diagram shows component level flow for traffic switching. +
+ +#### 7.1.4 MuxNbrHandler +Currently when FDB changes or neighbor changes, neighbors are updated based on the state of mux. Besides that neighbor handler also handle the switching of traffic based on MUX state changes. With **hardware** switching mode, a new neighbor handler will be introduced to handle the switching of traffic based on MUX port admin_state changes. + +##### 7.1.4.1 Neighbor Handling + +**Current behavior in prefix-route mode:** +In the existing prefix-route mode, switching is done by manipulating what each mux neighbor's prefix route (/32) points to: + + * **update (active/standby):** The neighbor handler sets the prefix route to the local neighbor next hop or tunnel next hop based on the state of mux. + * **enable (active):** The neighbor handler sets the prefix route to the local neighbor next hop. The standalone tunnel route for this neighbor is removed. + * **disable (standby):** The neighbor handler sets the prefix route to the tunnel next hop. + +This means every switchover involves reprogramming prefix routes for each affected mux neighbor. + +**New behavior with hardware protection switching:** +A new neighbor handler will be introduced for hardware protection switching. The new handler will not update the neighbor's prefix route based on state changes but will handle the switching of traffic based on MUX port admin_state changes. Note state changes (active/standby) will be handled by the hardware based nexthop protection group without any involvement of orchagent. The new handler will do the following: + + * **update (active/standby):** When a neighbor gets updated, the neighbor handler sets the prefix route to the Hardware based protection Nexthop Group comprising of local neighbor nexthop as its primary member and the tunnel next hop as its secondary member. + * **admin_state (active):** The neighbor handler will set the protection NHG's **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute to **SAI_NEXT_HOP_GROUP_ADMIN_ROLE_PRIMARY**. + * **admin_state (standby):** The neighbor handler will set the protection NHG's **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute to **SAI_NEXT_HOP_GROUP_ADMIN_ROLE_STANDBY**. + +##### 7.1.4.2 ECMP Route Handling + +**Current behavior in prefix-route mode:** +The tunnel next hop is never added as a member of ECMP next hop groups. Instead, switching manipulates which neighbor next hops are present in ECMP NHGs: + + * **enable (active):** Point the ECMP route to the active nexthop member of the ECMP NHG. + + * **disable (standby):** Point the ECMP route to the backup nexthop member of the ECMP NHG if it is the last active member in the NHG. If there are other active members in the NHG, point the ECMP route to the first active member in the NHG. + +This means every switchover involves updating ECMP NHG membership and potentially scanning all ECMP routes for active mux neighbors. In the first release of this feature, orchagent will continue to program ECMP routes to point to the tunnel next hop for standby state for backward compatibility. + +**Planned enhancement with hardware protection switching:** +In future releases, ECMP routes will point to the protection NHG. The protection NHG will have all the primary nexthops with their monitored object set to the corresponding ICMP session object id. When a member's ICMP session state changes to standby, hardware will update the member's observed role to **SAI_NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_INACTIVE** and will not participate in forwarding traffic. If no active neighbors remain, the backup nexthop member's observed role will move to **SAI_NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_ACTIVE** and will participate in forwarding traffic. + +This will eliminate the ECMP NHG membership manipulation and the ECMP route scanning that currently occurs during switchover in prefix-route mode. See [Section 10.2](#102-ecmp-route-handling-with-protection-nhg) for SAI specification plans. + +Following diagram shows ECMP route handling with hardware protection switching with multiple primary nexthops and one backup nexthop. The protection NHG will switch to secondary nexthop only when all the monitored sessions object ids are set to standby, until then the protection NHG will continue to forward traffic through the primary nexthops. +
+ +#### 7.1.5 IcmpOrch +IcmpOrch will notify MuxOrch on ICMP session creation and deletion. On session creation, MuxOrch uses the session object id to program **SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT** on the nexthop protection group member. On session deletion, MuxOrch clears the monitored object attribute so that the protection group member does not reference a stale session. + +#### 7.1.6 Debounce Handling +The nexthop protection group members use the ICMP hardware offloaded session -- not the physical port state -- as the monitored object. This provides built-in debounce for protection switchovers: a switchover fires only after multiple consecutive ICMP probe failures exceed the configured threshold, so transient link flaps or brief packet loss are absorbed without triggering a switchover. Using port state directly would cause immediate switchover and switchback on momentary link bounces, leading to unnecessary traffic disruption. + +The effective debounce window equals roughly probe interval x retry count (e.g., 100ms x 3 = ~300ms). Operators can tune the ICMP session timers to balance switchover latency against flap suppression. + +### 7.2 LinkMgrd +LinkMgrd is mostly agnostic to the use of nexthop protection groups; the only adaptation required is the introduction of the **admin_state** field. + +Currently LinkMgrd software uses a common mux **state** field in MUX_CABLE_TBL to switch the traffic for both manual config based switching and link state based switching. To differentiate between these two types of switching a new field **admin_state** is added to MUX_CABLE_TBL. LinkMgrd will communicate with Orchagent using the **admin_state** and **state** fields to trigger traffic switching. Orchagent will only consider **admin_state** field for manual config based switching and will consider **state** fields for link state based switching. + +## 8. DB Schema Changes + +### 8.1 Config-DB +A new field switching_mode in **MUX_CABLE** config table to support this feature: + * **switching_mode** + * normal : Traffic switching with existing mechanism without using nexthop protection group. This is default value. + * hardware : Traffic switching using FRR nexthop protection group. + +``` +MUX_CABLE|PORTNAME: + switching_mode: normal/hardware // New field to indicate if hardware based protection switching is needed for this mux port +``` + +### 8.2 App-DB +A new field, named **admin_state**, will be introduced in the App DB **MUX_CABLE_TBL** to differentiate between manual config based switching and link state based switching. With introduction of this feature LinkMgrd will update this field to trigger traffic switching in orchagent irrespective of the switching-mode setting. This means former field **state** will not be used anymore to trigger traffic switching in orchagent and will only be used by LinkMgrd to track the link state. + +``` +MUX_CABLE_TBL|PORTNAME: + state: active/standby // Used by LinkMgrd to track the mux link state + admin_state: active/standby // New field used by LinkMgrd to trigger traffic switching in orchagent for both normal and hardware based protection switching +``` + +> **Note:** The values `active/standby` are used to align with the existing dual-ToR mux state conventions. `active` indicates the mux port is the primary path for server traffic; `standby` indicates it is the backup path. + +### 8.3 State-DB +No new State-DB schema changes are introduced as part of this feature. The existing MUX_CABLE_TABLE in State-DB will continue to reflect the operational mux state as determined by the hardware protection switching. + +## 9. Command Line + +The **switching_mode** field is configured via `config_db.json` as part of the **MUX_CABLE** table. No separate config CLI is introduced for this field; it follows the existing pattern for mux cable configuration. + +### 9.1 Show CLI + +**Existing CLI to show mux config** +`show mux config` will be enhanced to show the new field switching_mode. + +``` +$ show mux config +SWITCH_NAME PEER_TOR +----------------- ---------- +lab-switch-2 10.1.0.33 +port state ipv4 ipv6 cable_type soc_ipv4 +---------- ------- --------------- ----------------- ------------- --------------- +Ethernet4 auto 192.168.0.2/32 fc02:1000::2/128 active-active 192.168.0.3/32 +Ethernet8 auto 192.168.0.4/32 fc02:1000::4/128 active-active 192.168.0.5/32 +``` + +**New CLI to show mux config** +``` +$ show mux config +SWITCH_NAME PEER_TOR +----------------- ---------- +lab-switch-2 10.1.0.33 +port state ipv4 ipv6 cable_type soc_ipv4 switching_mode +---------- ------- --------------- ----------------- ------------- --------------- -------------- +Ethernet4 auto 192.168.0.2/32 fc02:1000::2/128 active-active 192.168.0.3/32 hardware +Ethernet8 auto 192.168.0.4/32 fc02:1000::4/128 active-active 192.168.0.5/32 normal +``` + +## 10. Future Enhancements + +### 10.1 Protection NHG Switchover Counters +Per-port counters are not applicable for switchover observability because hardware protection switching monitors the ICMP offloaded session, not the physical port state. A new SAI specification will be proposed to define switchover counters scoped to the **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** object, tracking successful switchover events per NHG. Note that a session state notification from the hardware does not imply a successful switchover; the counter will be incremented only on confirmed switchovers. + +A `show mux switchover status` CLI will present these counters in a per-NHG summary, and a platform CLI will be added to show switchover timestamps for each event. + +### 10.2 ECMP Route Handling with Protection NHG +See [Section 7.1.4.2](#7142-ecmp-route-handling) for the planned enhancement to integrate ECMP routes with nexthop protection groups. A new SAI specification will be proposed to define the required attributes and behaviors. + +## 11. Limitations +- Warm reboot and fast reboot with nexthop protection groups have not been validated and require additional testing before being supported. + +## 12. Error Handling and Failure Scenarios +- **ICMP session creation failure:** If IcmpOrch fails to create the hardware offloaded ICMP session, MuxOrch will not receive the session object id notification. The nexthop protection group member will remain without a monitored object, and traffic switching will fall back to software-based switching for the affected mux port. +- **ASIC does not support SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION:** If the ASIC returns a failure when creating the nexthop protection group, MuxOrch will log an error and the mux port will continue to operate in software-based switching mode. +- **Monitored ICMP session deletion:** If the monitored ICMP session is deleted while the nexthop protection group is active, the nexthop protection group member's monitored object attribute will become stale. MuxOrch should handle session deletion notifications from IcmpOrch and update or remove the monitored object attribute accordingly. + +## 13. Testing +- Unit tests for LinkMgrd +- Gmock and VS based unit tests for NhgOrch / MuxOrch / MuxCableOrch / MuxNbrHandler / IcmpOrch +- Unit tests for Yang-model and CLIs +- Existing SONiC Management tests for dual-ToR should continue to pass without regression. +- New SONiC Management tests for dual-ToR: + - Add support for hardware based ICMP echo session configurations + - Add support for hardware based protection switching configurations + - Verify switchover time meets the 50ms target requirement for hardware based protection switching + - Verify admin_state based manual switching with nexthop protection group From 1c00ea5a90b90ed0e35dd15a97a5962d4224127c Mon Sep 17 00:00:00 2001 From: Manas Kumar Mandal Date: Tue, 3 Mar 2026 17:04:29 -0800 Subject: [PATCH 2/7] Added new admin states Signed-off-by: Manas Kumar Mandal --- .../mux_hw_protection_switching_hld.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/doc/dualtor/mux_hw_protection_switching_hld.md b/doc/dualtor/mux_hw_protection_switching_hld.md index 2b3e2028d6b..23e36757776 100644 --- a/doc/dualtor/mux_hw_protection_switching_hld.md +++ b/doc/dualtor/mux_hw_protection_switching_hld.md @@ -65,14 +65,14 @@ SONiC uses ICMP echo request and reply packets to monitor the state of links bet ### 5.1 SONiC Requirements * Support of ICMP hardware offloaded sessions for dual ToR architecture is a prerequisite for this feature. * Support FRR hardware protection switching using ICMP hardware offloaded session for dual ToR architecture. - * Support administrative traffic switching by toggling members of nexthop protection group based on admin_state field in MUX_CABLE_TBL. + * Support administrative traffic switching by toggling members of nexthop protection group based on **admin_active**/**admin_standby** state values in MUX_CABLE_TBL. * Support prefix-route based neighbors for hardware based protection switching. Explicit neighbor-mode configuration is not needed for hardware based protection switching although orchagent will transition to use prefix-route based neighbors when hardware based protection switching is enabled. * Process cable config **switching_mode** knob to differentiate between normal software based switching and FRR hardware protection switching. * When **switching_mode** is not configured, the default value is **normal**, preserving the existing software-based switching behavior. No behavioral change occurs for existing deployments that do not opt in. * Backward compatible with existing software based switching. When **switching_mode** is set to **hardware** but the ASIC does not support nexthop protection groups, SONiC will fall back to normal software based switching transparently. * Create nexthop protection group for FRR switchover based on the config. * Maintain mapping of mux cable and ICMP echo session object id. - * The new **admin_state** field in App-DB MUX_CABLE_TBL is additive. LinkMgrd will begin populating this field for both **normal** and **hardware** modes so that orchagent can use it uniformly. + * The existing **state** field in App-DB MUX_CABLE_TBL is extended with two new values: **admin_active** and **admin_standby**. LinkMgrd will use these values for admin-initiated switching in both **normal** and **hardware** modes. Existing **active**/**standby** values continue to be used for link-state-driven switching, preserving backward compatibility with older LinkMgrd versions. ### 5.2 ASIC Requirements * Support **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group. @@ -113,17 +113,17 @@ This feature introduces a new config knob **switching_mode** to differentiate be MuxOrch creates the IPinIP tunnel based on the peer_switch configuration. Currently IPinIP tunnel destination next hop is created when mux state changes to standby. However, with **hardware** switching_mode it will create the IPinIP tunnel destination next hop in advance and add this as the backup member of the nexthop protection group. MuxOrch will need to program the monitored ICMP offload session's object id as the **SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT** in the nexthop protection group. For this MuxOrch will subscribe to notifications from IcmpOrch for ICMP session creation and will maintain a mapping of mux port and ICMP session object id. When MuxOrch receives notification for session creation from IcmpOrch, it will update the nexthop member attribute to program the monitored session object id. -Following diagram shows MuxOrch component level flow for admin_state and switching_mode handling. +Following diagram shows MuxOrch component level flow for admin_active/admin_standby and switching_mode handling.
#### 7.1.3 MuxCableOrch -MuxCableOrch in orchagent is the component responsible for consuming mux state from App DB MUX_CABLE_TABLE and switching traffic. Currently this component updates all routes whenever a traffic switchover is needed. When **switching_mode** is set to **hardware** in MuxOrch, MuxCableOrch will program the routes with the nexthop protection group OID as destination once during initial setup. Since the route destination is the protection NHG OID, subsequent MUX_CABLE_TBL link state changes are handled entirely in hardware -- MuxCableOrch does not need to reprogram routes or swap next hops during switchover. The only route programming from MuxCableOrch in **hardware** mode occurs during initial route creation and during admin_state based manual switching. +MuxCableOrch in orchagent is the component responsible for consuming mux state from App DB MUX_CABLE_TABLE and switching traffic. Currently this component updates all routes whenever a traffic switchover is needed. When **switching_mode** is set to **hardware** in MuxOrch, MuxCableOrch will program the routes with the nexthop protection group OID as destination once during initial setup. Since the route destination is the protection NHG OID, subsequent link state changes (`active`/`standby`) are handled entirely in hardware -- MuxCableOrch does not need to reprogram routes or swap next hops during switchover. The only route programming from MuxCableOrch in **hardware** mode occurs during initial route creation and during admin-initiated manual switching (`admin_active`/`admin_standby`). Following diagram shows component level flow for traffic switching.
#### 7.1.4 MuxNbrHandler -Currently when FDB changes or neighbor changes, neighbors are updated based on the state of mux. Besides that neighbor handler also handle the switching of traffic based on MUX state changes. With **hardware** switching mode, a new neighbor handler will be introduced to handle the switching of traffic based on MUX port admin_state changes. +Currently when FDB changes or neighbor changes, neighbors are updated based on the state of mux. The neighbor handler also handles traffic switching based on MUX state changes. With **hardware** switching mode, a new neighbor handler will be introduced to handle traffic switching based on **admin_active**/**admin_standby** state values. ##### 7.1.4.1 Neighbor Handling @@ -137,11 +137,11 @@ In the existing prefix-route mode, switching is done by manipulating what each m This means every switchover involves reprogramming prefix routes for each affected mux neighbor. **New behavior with hardware protection switching:** -A new neighbor handler will be introduced for hardware protection switching. The new handler will not update the neighbor's prefix route based on state changes but will handle the switching of traffic based on MUX port admin_state changes. Note state changes (active/standby) will be handled by the hardware based nexthop protection group without any involvement of orchagent. The new handler will do the following: +A new neighbor handler will be introduced for hardware protection switching. The new handler will not update the neighbor's prefix route on link-state changes (`active`/`standby`) -- those are handled entirely in hardware by the nexthop protection group. The new handler will act only on admin-initiated state changes and neighbor updates: - * **update (active/standby):** When a neighbor gets updated, the neighbor handler sets the prefix route to the Hardware based protection Nexthop Group comprising of local neighbor nexthop as its primary member and the tunnel next hop as its secondary member. - * **admin_state (active):** The neighbor handler will set the protection NHG's **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute to **SAI_NEXT_HOP_GROUP_ADMIN_ROLE_PRIMARY**. - * **admin_state (standby):** The neighbor handler will set the protection NHG's **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute to **SAI_NEXT_HOP_GROUP_ADMIN_ROLE_STANDBY**. + * **update (active/standby):** When a neighbor gets updated, the neighbor handler sets the prefix route to the hardware based protection nexthop group comprising of the local neighbor nexthop as its primary member and the tunnel next hop as its secondary member. + * **admin_active:** The neighbor handler sets the protection NHG's **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute to **SAI_NEXT_HOP_GROUP_ADMIN_ROLE_PRIMARY**. + * **admin_standby:** The neighbor handler sets the protection NHG's **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute to **SAI_NEXT_HOP_GROUP_ADMIN_ROLE_STANDBY**. ##### 7.1.4.2 ECMP Route Handling @@ -171,9 +171,9 @@ The nexthop protection group members use the ICMP hardware offloaded session -- The effective debounce window equals roughly probe interval x retry count (e.g., 100ms x 3 = ~300ms). Operators can tune the ICMP session timers to balance switchover latency against flap suppression. ### 7.2 LinkMgrd -LinkMgrd is mostly agnostic to the use of nexthop protection groups; the only adaptation required is the introduction of the **admin_state** field. +LinkMgrd is mostly agnostic to the use of nexthop protection groups; the only adaptation required is the use of extended state values for admin-initiated switching. -Currently LinkMgrd software uses a common mux **state** field in MUX_CABLE_TBL to switch the traffic for both manual config based switching and link state based switching. To differentiate between these two types of switching a new field **admin_state** is added to MUX_CABLE_TBL. LinkMgrd will communicate with Orchagent using the **admin_state** and **state** fields to trigger traffic switching. Orchagent will only consider **admin_state** field for manual config based switching and will consider **state** fields for link state based switching. +Currently LinkMgrd uses a common mux **state** field in MUX_CABLE_TBL with values `active`/`standby` for both manual config-based switching and link-state-based switching. To differentiate between these two types of switching, two new state values are introduced: **admin_active** and **admin_standby**. LinkMgrd will write `admin_active`/`admin_standby` for admin-initiated (config-driven) switching and continue to write `active`/`standby` for link-state-driven switching. Orchagent distinguishes the trigger source by inspecting the state value itself. For older neighbor modes, `admin_active` and `admin_standby` invoke the same active/standby routines, preserving backward compatibility. If the admin-initiated transition fails in orchagent, LinkMgrd reverts the single `state` field to its previous value, keeping rollback simple and atomic. ## 8. DB Schema Changes @@ -189,15 +189,15 @@ MUX_CABLE|PORTNAME: ``` ### 8.2 App-DB -A new field, named **admin_state**, will be introduced in the App DB **MUX_CABLE_TBL** to differentiate between manual config based switching and link state based switching. With introduction of this feature LinkMgrd will update this field to trigger traffic switching in orchagent irrespective of the switching-mode setting. This means former field **state** will not be used anymore to trigger traffic switching in orchagent and will only be used by LinkMgrd to track the link state. +The existing **state** field in App DB **MUX_CABLE_TBL** is extended with two new values [admin_active|admin_standby] to differentiate admin-initiated switching from link-state-driven switching: ``` MUX_CABLE_TBL|PORTNAME: - state: active/standby // Used by LinkMgrd to track the mux link state - admin_state: active/standby // New field used by LinkMgrd to trigger traffic switching in orchagent for both normal and hardware based protection switching + state: active/standby/admin_active/admin_standby ``` -> **Note:** The values `active/standby` are used to align with the existing dual-ToR mux state conventions. `active` indicates the mux port is the primary path for server traffic; `standby` indicates it is the backup path. + * **active** / **standby** -- link-state-driven switching, written by LinkMgrd when ICMP session state changes. Older LinkMgrd versions continue to use only these values. + * **admin_active** / **admin_standby** -- admin-initiated (config-driven) switching, written by LinkMgrd when the operator manually triggers a switchover. For older neighbor modes in orchagent, these invoke the same routines as `active`/`standby`, preserving backward compatibility. ### 8.3 State-DB No new State-DB schema changes are introduced as part of this feature. The existing MUX_CABLE_TABLE in State-DB will continue to reflect the operational mux state as determined by the hardware protection switching. @@ -261,4 +261,4 @@ See [Section 7.1.4.2](#7142-ecmp-route-handling) for the planned enhancement to - Add support for hardware based ICMP echo session configurations - Add support for hardware based protection switching configurations - Verify switchover time meets the 50ms target requirement for hardware based protection switching - - Verify admin_state based manual switching with nexthop protection group + - Verify admin_active/admin_standby based manual switching with nexthop protection group From ccc3fdca425c3cc6383244811aed73107ba0c958 Mon Sep 17 00:00:00 2001 From: Manas Kumar Mandal Date: Fri, 13 Mar 2026 12:01:16 -0700 Subject: [PATCH 3/7] Added error handling for switching, changed config Signed-off-by: Manas Kumar Mandal --- doc/dualtor/mux_hw_protection_switching_hld.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/dualtor/mux_hw_protection_switching_hld.md b/doc/dualtor/mux_hw_protection_switching_hld.md index 23e36757776..0c1cf993c48 100644 --- a/doc/dualtor/mux_hw_protection_switching_hld.md +++ b/doc/dualtor/mux_hw_protection_switching_hld.md @@ -78,6 +78,7 @@ SONiC uses ICMP echo request and reply packets to monitor the state of links bet * Support **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group. * Support **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute as this allows SONiC to administratively toggle the protection group members in hardware overriding the automatic toggling of protection group members based on the link state. * Support **NO_HOST_ROUTE** SAI neighbor attribute as prefix-route based neighbors will be used to work with hardware based nexthop protection group. + * Support bulk error notifications for nexthop protection groups to report hardware switchover failures back to SONiC (see [Section 12](#12-error-handling-and-failure-scenarios)). * Support protection NHG level switchover counters for observability (new SAI specification to be proposed -- see [Section 10](#10-future-enhancements)). ## 6. Hardware based Nexthop Protection Group Architecture @@ -104,9 +105,9 @@ NhgOrch exposes APIs for the following protection NHG operations: * Toggling **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** for administrative switchover. * Removing a nexthop protection group and its members. -MuxOrch is the primary consumer of these APIs for dual-ToR. Other orchagent components can reuse the same interfaces in the future for additional features. +**ProtNhgOrch** is a separate orch that registers for and processes bulk error notifications from SAI for protection NHGs. When the hardware fails to complete a switchover for one or more protection NHGs, SAI sends a bulk error notification identifying the failed NHG objects. ProtNhgOrch receives this notification, correlates the failed NHG OIDs with the corresponding mux ports, and forwards the failure information to MuxOrch. MuxOrch then handles the retry and failure marking logic (see [Section 12](#12-error-handling-and-failure-scenarios)). -> **Why not a separate ProtNhgOrch?** Protection NHGs for dual-ToR are tightly coupled to the mux neighbor lifecycle and don't need an independent APP_DB table. If a future non-mux use case arises, a ProtNhgOrch can inherit from NhgOrch without changing the protection NHG implementation itself. +MuxOrch is the primary consumer of NhgOrch APIs for dual-ToR. Other orchagent components can reuse the same interfaces in the future for additional features. #### 7.1.2 MuxOrch This feature introduces a new config knob **switching_mode** to differentiate between normal software based switching and FRR hardware protection switching that will use nexthop protection group to switch traffic. MuxOrch will perform a capability check for hardware protection group support by querying the SAI switch attributes. If the ASIC supports **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**, MuxOrch will create nexthop protection group for each mux neighbor and maintain a mapping of mux neighbors and nexthop protection groups based on this config knob. If the capability check fails, MuxOrch will fall back to normal software based switchover. @@ -180,12 +181,12 @@ Currently LinkMgrd uses a common mux **state** field in MUX_CABLE_TBL with value ### 8.1 Config-DB A new field switching_mode in **MUX_CABLE** config table to support this feature: * **switching_mode** - * normal : Traffic switching with existing mechanism without using nexthop protection group. This is default value. - * hardware : Traffic switching using FRR nexthop protection group. + * software : Traffic switching with existing mechanism using software based switching. This is default value. + * hardware : Traffic switching using hardware based nexthop protection group. ``` MUX_CABLE|PORTNAME: - switching_mode: normal/hardware // New field to indicate if hardware based protection switching is needed for this mux port + switching_mode: software/hardware // New field to indicate hardware based protection switching for this mux port ``` ### 8.2 App-DB @@ -231,7 +232,7 @@ lab-switch-2 10.1.0.33 port state ipv4 ipv6 cable_type soc_ipv4 switching_mode ---------- ------- --------------- ----------------- ------------- --------------- -------------- Ethernet4 auto 192.168.0.2/32 fc02:1000::2/128 active-active 192.168.0.3/32 hardware -Ethernet8 auto 192.168.0.4/32 fc02:1000::4/128 active-active 192.168.0.5/32 normal +Ethernet8 auto 192.168.0.4/32 fc02:1000::4/128 active-active 192.168.0.5/32 software ``` ## 10. Future Enhancements @@ -251,6 +252,7 @@ See [Section 7.1.4.2](#7142-ecmp-route-handling) for the planned enhancement to - **ICMP session creation failure:** If IcmpOrch fails to create the hardware offloaded ICMP session, MuxOrch will not receive the session object id notification. The nexthop protection group member will remain without a monitored object, and traffic switching will fall back to software-based switching for the affected mux port. - **ASIC does not support SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION:** If the ASIC returns a failure when creating the nexthop protection group, MuxOrch will log an error and the mux port will continue to operate in software-based switching mode. - **Monitored ICMP session deletion:** If the monitored ICMP session is deleted while the nexthop protection group is active, the nexthop protection group member's monitored object attribute will become stale. MuxOrch should handle session deletion notifications from IcmpOrch and update or remove the monitored object attribute accordingly. +- **Hardware protection switchover failure:** When a hardware-initiated switchover fails for one or more nexthop protection groups, SAI sends a bulk error notification identifying the failed NHGs. ProtNhgOrch processes this bulk notification and forwards the failure information to MuxOrch. MuxOrch then retries the switchover for the failed NHGs by setting **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** to force the transition via admin mode. If the admin-mode retry also fails, MuxOrch marks the switchover as failed and the neighbor state as inconsistent. This keeps the failure handling behavior consistent with software-based switching mode, where a failed switchover similarly results in an inconsistent neighbor state that requires operator intervention or a subsequent recovery event. ## 13. Testing - Unit tests for LinkMgrd From 86be6f620a83ddda1848b7c0c5b67fc4c837ed3c Mon Sep 17 00:00:00 2001 From: Manas Kumar Mandal Date: Fri, 13 Mar 2026 12:07:31 -0700 Subject: [PATCH 4/7] Fixed wording on NO_HOST_ROUTE ASIC requirement Signed-off-by: Manas Kumar Mandal --- doc/dualtor/mux_hw_protection_switching_hld.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/dualtor/mux_hw_protection_switching_hld.md b/doc/dualtor/mux_hw_protection_switching_hld.md index 0c1cf993c48..ee9a69dde97 100644 --- a/doc/dualtor/mux_hw_protection_switching_hld.md +++ b/doc/dualtor/mux_hw_protection_switching_hld.md @@ -77,7 +77,7 @@ SONiC uses ICMP echo request and reply packets to monitor the state of links bet ### 5.2 ASIC Requirements * Support **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group. * Support **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute as this allows SONiC to administratively toggle the protection group members in hardware overriding the automatic toggling of protection group members based on the link state. - * Support **NO_HOST_ROUTE** SAI neighbor attribute as prefix-route based neighbors will be used to work with hardware based nexthop protection group. + * Support **NO_HOST_ROUTE** SAI neighbor attribute. Hardware based switching mode uses prefix-route based neighbors, which require the platform to support this attribute. If the platform does not support **NO_HOST_ROUTE**, hardware based switching mode cannot be enabled. * Support bulk error notifications for nexthop protection groups to report hardware switchover failures back to SONiC (see [Section 12](#12-error-handling-and-failure-scenarios)). * Support protection NHG level switchover counters for observability (new SAI specification to be proposed -- see [Section 10](#10-future-enhancements)). @@ -174,7 +174,7 @@ The effective debounce window equals roughly probe interval x retry count (e.g., ### 7.2 LinkMgrd LinkMgrd is mostly agnostic to the use of nexthop protection groups; the only adaptation required is the use of extended state values for admin-initiated switching. -Currently LinkMgrd uses a common mux **state** field in MUX_CABLE_TBL with values `active`/`standby` for both manual config-based switching and link-state-based switching. To differentiate between these two types of switching, two new state values are introduced: **admin_active** and **admin_standby**. LinkMgrd will write `admin_active`/`admin_standby` for admin-initiated (config-driven) switching and continue to write `active`/`standby` for link-state-driven switching. Orchagent distinguishes the trigger source by inspecting the state value itself. For older neighbor modes, `admin_active` and `admin_standby` invoke the same active/standby routines, preserving backward compatibility. If the admin-initiated transition fails in orchagent, LinkMgrd reverts the single `state` field to its previous value, keeping rollback simple and atomic. +Currently LinkMgrd uses a common mux **state** field in MUX_CABLE_TBL with values `active`/`standby` for both manual config-based switching and ICMP session-state based switching. To differentiate between these two types of switching, two new state values are introduced: **admin_active** and **admin_standby**. LinkMgrd will write `admin_active`/`admin_standby` for admin-initiated (config-driven) switching and continue to write `active`/`standby` for ICMP session-state-driven switching. Orchagent distinguishes the trigger source by inspecting the state value itself. For existing neighbor modes, `admin_active` and `admin_standby` invoke the same active/standby routines, preserving backward compatibility. ## 8. DB Schema Changes From 4491237320a07df067c5587c719510a14cdf1f6e Mon Sep 17 00:00:00 2001 From: Manas Kumar Mandal Date: Fri, 13 Mar 2026 12:52:16 -0700 Subject: [PATCH 5/7] Modified the high level component diagram Signed-off-by: Manas Kumar Mandal --- .../image/nhprot_high_level_components.png | Bin 58993 -> 65777 bytes .../mux_hw_protection_switching_hld.md | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/dualtor/image/nhprot_high_level_components.png b/doc/dualtor/image/nhprot_high_level_components.png index 35f6439916f3c3acfa4ab7f69a77ad510511a3cb..7ed33d8f8f395b1d4a013b4e97577bf4b6eb3e4e 100644 GIT binary patch literal 65777 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 literal 58993 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 Z<`&@Av;Kc2aKe&-!PC{xWt~$(697l)g2n&< diff --git a/doc/dualtor/mux_hw_protection_switching_hld.md b/doc/dualtor/mux_hw_protection_switching_hld.md index ee9a69dde97..1c3161b58ea 100644 --- a/doc/dualtor/mux_hw_protection_switching_hld.md +++ b/doc/dualtor/mux_hw_protection_switching_hld.md @@ -67,12 +67,12 @@ SONiC uses ICMP echo request and reply packets to monitor the state of links bet * Support FRR hardware protection switching using ICMP hardware offloaded session for dual ToR architecture. * Support administrative traffic switching by toggling members of nexthop protection group based on **admin_active**/**admin_standby** state values in MUX_CABLE_TBL. * Support prefix-route based neighbors for hardware based protection switching. Explicit neighbor-mode configuration is not needed for hardware based protection switching although orchagent will transition to use prefix-route based neighbors when hardware based protection switching is enabled. - * Process cable config **switching_mode** knob to differentiate between normal software based switching and FRR hardware protection switching. - * When **switching_mode** is not configured, the default value is **normal**, preserving the existing software-based switching behavior. No behavioral change occurs for existing deployments that do not opt in. - * Backward compatible with existing software based switching. When **switching_mode** is set to **hardware** but the ASIC does not support nexthop protection groups, SONiC will fall back to normal software based switching transparently. + * Process cable config **switching_mode** knob to differentiate between software based switching and FRR hardware protection switching. + * When **switching_mode** is not configured, the default value is **software**, preserving the existing software-based switching behavior. No behavioral change occurs for existing deployments that do not opt in. + * Backward compatible with existing software based switching. When **switching_mode** is set to **hardware** but the ASIC does not support nexthop protection groups, SONiC will fall back to software based switching transparently. * Create nexthop protection group for FRR switchover based on the config. * Maintain mapping of mux cable and ICMP echo session object id. - * The existing **state** field in App-DB MUX_CABLE_TBL is extended with two new values: **admin_active** and **admin_standby**. LinkMgrd will use these values for admin-initiated switching in both **normal** and **hardware** modes. Existing **active**/**standby** values continue to be used for link-state-driven switching, preserving backward compatibility with older LinkMgrd versions. + * The existing **state** field in App-DB MUX_CABLE_TBL is extended with two new values: **admin_active** and **admin_standby**. LinkMgrd will use these values for admin-initiated switching in both **software** and **hardware** modes. Existing **active**/**standby** values continue to be used for link-state-driven switching, preserving backward compatibility with older LinkMgrd versions. ### 5.2 ASIC Requirements * Support **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group. @@ -110,7 +110,7 @@ NhgOrch exposes APIs for the following protection NHG operations: MuxOrch is the primary consumer of NhgOrch APIs for dual-ToR. Other orchagent components can reuse the same interfaces in the future for additional features. #### 7.1.2 MuxOrch -This feature introduces a new config knob **switching_mode** to differentiate between normal software based switching and FRR hardware protection switching that will use nexthop protection group to switch traffic. MuxOrch will perform a capability check for hardware protection group support by querying the SAI switch attributes. If the ASIC supports **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**, MuxOrch will create nexthop protection group for each mux neighbor and maintain a mapping of mux neighbors and nexthop protection groups based on this config knob. If the capability check fails, MuxOrch will fall back to normal software based switchover. +This feature introduces a new config knob **switching_mode** to differentiate between software based switching and FRR hardware protection switching that will use nexthop protection group to switch traffic. MuxOrch will perform a capability check for hardware protection group support by querying the SAI switch attributes. If the ASIC supports **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**, MuxOrch will create nexthop protection group for each mux neighbor and maintain a mapping of mux neighbors and nexthop protection groups based on this config knob. If the capability check fails, MuxOrch will fall back to software based switchover. MuxOrch creates the IPinIP tunnel based on the peer_switch configuration. Currently IPinIP tunnel destination next hop is created when mux state changes to standby. However, with **hardware** switching_mode it will create the IPinIP tunnel destination next hop in advance and add this as the backup member of the nexthop protection group. MuxOrch will need to program the monitored ICMP offload session's object id as the **SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT** in the nexthop protection group. For this MuxOrch will subscribe to notifications from IcmpOrch for ICMP session creation and will maintain a mapping of mux port and ICMP session object id. When MuxOrch receives notification for session creation from IcmpOrch, it will update the nexthop member attribute to program the monitored session object id. From dbd7b71e76af92f476e5ecb9069b4c0c0b309003 Mon Sep 17 00:00:00 2001 From: Manas Kumar Mandal Date: Fri, 13 Mar 2026 16:34:42 -0700 Subject: [PATCH 6/7] Modified link-state to ICMP session state Signed-off-by: Manas Kumar Mandal --- doc/dualtor/mux_hw_protection_switching_hld.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/dualtor/mux_hw_protection_switching_hld.md b/doc/dualtor/mux_hw_protection_switching_hld.md index 1c3161b58ea..4278ca53f39 100644 --- a/doc/dualtor/mux_hw_protection_switching_hld.md +++ b/doc/dualtor/mux_hw_protection_switching_hld.md @@ -59,7 +59,7 @@ This document describes high level design details of SONiC's FRR hardware protec | IPinIP | IP-in-IP Encapsulation | ## 4. Overview -SONiC uses ICMP echo request and reply packets to monitor the state of links between server blades and the ToR switches in DualToR architecture. When a link state change is detected, SONiC switches traffic by reprogramming routes and neighbors. This reprogramming involves multiple SAI calls from SONiC, leading to unpredictable delays in switchover time. As a result, switchover performance cannot be guaranteed. FRR hardware protection switching addresses these limitations by handling switchover in hardware as specified by the SAI enhancement related to **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**. +SONiC uses ICMP echo request and reply packets to monitor the connectivity between server blades and the ToR switches in DualToR architecture. When an ICMP session state change is detected, SONiC switches traffic by reprogramming routes and neighbors. This reprogramming involves multiple SAI calls from SONiC, leading to unpredictable delays in switchover time. As a result, switchover performance cannot be guaranteed. FRR hardware protection switching addresses these limitations by handling switchover in hardware as specified by the SAI enhancement related to **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**. ## 5. Requirements ### 5.1 SONiC Requirements @@ -72,11 +72,11 @@ SONiC uses ICMP echo request and reply packets to monitor the state of links bet * Backward compatible with existing software based switching. When **switching_mode** is set to **hardware** but the ASIC does not support nexthop protection groups, SONiC will fall back to software based switching transparently. * Create nexthop protection group for FRR switchover based on the config. * Maintain mapping of mux cable and ICMP echo session object id. - * The existing **state** field in App-DB MUX_CABLE_TBL is extended with two new values: **admin_active** and **admin_standby**. LinkMgrd will use these values for admin-initiated switching in both **software** and **hardware** modes. Existing **active**/**standby** values continue to be used for link-state-driven switching, preserving backward compatibility with older LinkMgrd versions. + * The existing **state** field in App-DB MUX_CABLE_TBL is extended with two new values: **admin_active** and **admin_standby**. LinkMgrd will use these values for admin-initiated switching in both **software** and **hardware** modes. Existing **active**/**standby** values continue to be used for ICMP session-state-driven switching, preserving backward compatibility with older LinkMgrd versions. ### 5.2 ASIC Requirements * Support **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group. - * Support **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute as this allows SONiC to administratively toggle the protection group members in hardware overriding the automatic toggling of protection group members based on the link state. + * Support **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute as this allows SONiC to administratively toggle the protection group members in hardware overriding the automatic toggling of protection group members based on the ICMP session state. * Support **NO_HOST_ROUTE** SAI neighbor attribute. Hardware based switching mode uses prefix-route based neighbors, which require the platform to support this attribute. If the platform does not support **NO_HOST_ROUTE**, hardware based switching mode cannot be enabled. * Support bulk error notifications for nexthop protection groups to report hardware switchover failures back to SONiC (see [Section 12](#12-error-handling-and-failure-scenarios)). * Support protection NHG level switchover counters for observability (new SAI specification to be proposed -- see [Section 10](#10-future-enhancements)). @@ -118,7 +118,7 @@ Following diagram shows MuxOrch component level flow for admin_active/admin_stan
#### 7.1.3 MuxCableOrch -MuxCableOrch in orchagent is the component responsible for consuming mux state from App DB MUX_CABLE_TABLE and switching traffic. Currently this component updates all routes whenever a traffic switchover is needed. When **switching_mode** is set to **hardware** in MuxOrch, MuxCableOrch will program the routes with the nexthop protection group OID as destination once during initial setup. Since the route destination is the protection NHG OID, subsequent link state changes (`active`/`standby`) are handled entirely in hardware -- MuxCableOrch does not need to reprogram routes or swap next hops during switchover. The only route programming from MuxCableOrch in **hardware** mode occurs during initial route creation and during admin-initiated manual switching (`admin_active`/`admin_standby`). +MuxCableOrch in orchagent is the component responsible for consuming mux state from App DB MUX_CABLE_TABLE and switching traffic. Currently this component updates all routes whenever a traffic switchover is needed. When **switching_mode** is set to **hardware** in MuxOrch, MuxCableOrch will program the routes with the nexthop protection group OID as destination once during initial setup. Since the route destination is the protection NHG OID, subsequent ICMP session state changes (`active`/`standby`) are handled entirely in hardware -- MuxCableOrch does not need to reprogram routes or swap next hops during switchover. The only route programming from MuxCableOrch in **hardware** mode occurs during initial route creation and during admin-initiated manual switching (`admin_active`/`admin_standby`). Following diagram shows component level flow for traffic switching.
@@ -138,7 +138,7 @@ In the existing prefix-route mode, switching is done by manipulating what each m This means every switchover involves reprogramming prefix routes for each affected mux neighbor. **New behavior with hardware protection switching:** -A new neighbor handler will be introduced for hardware protection switching. The new handler will not update the neighbor's prefix route on link-state changes (`active`/`standby`) -- those are handled entirely in hardware by the nexthop protection group. The new handler will act only on admin-initiated state changes and neighbor updates: +A new neighbor handler will be introduced for hardware protection switching. The new handler will not update the neighbor's prefix route on ICMP session state changes (`active`/`standby`) -- those are handled entirely in hardware by the nexthop protection group. The new handler will act only on admin-initiated state changes and neighbor updates: * **update (active/standby):** When a neighbor gets updated, the neighbor handler sets the prefix route to the hardware based protection nexthop group comprising of the local neighbor nexthop as its primary member and the tunnel next hop as its secondary member. * **admin_active:** The neighbor handler sets the protection NHG's **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** attribute to **SAI_NEXT_HOP_GROUP_ADMIN_ROLE_PRIMARY**. @@ -190,14 +190,14 @@ MUX_CABLE|PORTNAME: ``` ### 8.2 App-DB -The existing **state** field in App DB **MUX_CABLE_TBL** is extended with two new values [admin_active|admin_standby] to differentiate admin-initiated switching from link-state-driven switching: +The existing **state** field in App DB **MUX_CABLE_TBL** is extended with two new values [admin_active|admin_standby] to differentiate admin-initiated switching from ICMP session-state-driven switching: ``` MUX_CABLE_TBL|PORTNAME: state: active/standby/admin_active/admin_standby ``` - * **active** / **standby** -- link-state-driven switching, written by LinkMgrd when ICMP session state changes. Older LinkMgrd versions continue to use only these values. + * **active** / **standby** -- ICMP session-state-driven switching, written by LinkMgrd when ICMP session state changes. Older LinkMgrd versions continue to use only these values. * **admin_active** / **admin_standby** -- admin-initiated (config-driven) switching, written by LinkMgrd when the operator manually triggers a switchover. For older neighbor modes in orchagent, these invoke the same routines as `active`/`standby`, preserving backward compatibility. ### 8.3 State-DB From 1fffd07ef49f4203d4f8193ca3341a9f9de5c188 Mon Sep 17 00:00:00 2001 From: Manas Kumar Mandal Date: Mon, 16 Mar 2026 13:09:08 -0700 Subject: [PATCH 7/7] Config keyword modified to failover_mode Signed-off-by: Manas Kumar Mandal --- .../mux_hw_protection_switching_hld.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/doc/dualtor/mux_hw_protection_switching_hld.md b/doc/dualtor/mux_hw_protection_switching_hld.md index 4278ca53f39..9182eb3539b 100644 --- a/doc/dualtor/mux_hw_protection_switching_hld.md +++ b/doc/dualtor/mux_hw_protection_switching_hld.md @@ -65,11 +65,11 @@ SONiC uses ICMP echo request and reply packets to monitor the connectivity betwe ### 5.1 SONiC Requirements * Support of ICMP hardware offloaded sessions for dual ToR architecture is a prerequisite for this feature. * Support FRR hardware protection switching using ICMP hardware offloaded session for dual ToR architecture. - * Support administrative traffic switching by toggling members of nexthop protection group based on **admin_active**/**admin_standby** state values in MUX_CABLE_TBL. + * Support administrative failover switching by toggling members of nexthop protection group based on **admin_active**/**admin_standby** state values in MUX_CABLE_TBL. * Support prefix-route based neighbors for hardware based protection switching. Explicit neighbor-mode configuration is not needed for hardware based protection switching although orchagent will transition to use prefix-route based neighbors when hardware based protection switching is enabled. - * Process cable config **switching_mode** knob to differentiate between software based switching and FRR hardware protection switching. - * When **switching_mode** is not configured, the default value is **software**, preserving the existing software-based switching behavior. No behavioral change occurs for existing deployments that do not opt in. - * Backward compatible with existing software based switching. When **switching_mode** is set to **hardware** but the ASIC does not support nexthop protection groups, SONiC will fall back to software based switching transparently. + * Process cable config **failover_mode** knob to differentiate between software based failover switching and FRR hardware protection failover switching. + * When **failover_mode** is not configured, the default value is **software**, preserving the existing software-based failover switching behavior. No behavioral change occurs for existing deployments that do not opt in. + * Backward compatible with existing software based failover switching. When **failover_mode** is set to **hardware** but the ASIC does not support nexthop protection groups, SONiC will fall back to software based failover switching transparently. * Create nexthop protection group for FRR switchover based on the config. * Maintain mapping of mux cable and ICMP echo session object id. * The existing **state** field in App-DB MUX_CABLE_TBL is extended with two new values: **admin_active** and **admin_standby**. LinkMgrd will use these values for admin-initiated switching in both **software** and **hardware** modes. Existing **active**/**standby** values continue to be used for ICMP session-state-driven switching, preserving backward compatibility with older LinkMgrd versions. @@ -82,9 +82,9 @@ SONiC uses ICMP echo request and reply packets to monitor the connectivity betwe * Support protection NHG level switchover counters for observability (new SAI specification to be proposed -- see [Section 10](#10-future-enhancements)). ## 6. Hardware based Nexthop Protection Group Architecture -**SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group enables fast switchover of traffic between primary and backup next hops in hardware. This is achieved by programming both primary and backup next hops in hardware and toggling of nexthops takes place in hardware without any extra programming from SONiC for switchover. This eliminates the need to reprogram all routes during switchover and enables fast traffic switching. +**SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION** type of next hop group enables fast switchover of traffic between primary and backup next hops in hardware. This is achieved by programming both primary and backup next hops in hardware and toggling of nexthops takes place in hardware without any extra programming from SONiC for switchover. This eliminates the need to reprogram all routes during switchover and enables fast failover switching. -Following diagram shows the high level SAI forwarding pipeline of hardware based nexthop protection group. The traffic is switched in hardware between primary and standby nexthop based on the state of the monitored ICMP hardware offloaded session of the mux port, without any involvement of SONiC for traffic switching. +Following diagram shows the high level SAI forwarding pipeline of hardware based nexthop protection group. The traffic is switched in hardware between primary and standby nexthop based on the state of the monitored ICMP hardware offloaded session of the mux port, without any involvement of SONiC for failover switching.
## 7. High-Level Design @@ -110,32 +110,32 @@ NhgOrch exposes APIs for the following protection NHG operations: MuxOrch is the primary consumer of NhgOrch APIs for dual-ToR. Other orchagent components can reuse the same interfaces in the future for additional features. #### 7.1.2 MuxOrch -This feature introduces a new config knob **switching_mode** to differentiate between software based switching and FRR hardware protection switching that will use nexthop protection group to switch traffic. MuxOrch will perform a capability check for hardware protection group support by querying the SAI switch attributes. If the ASIC supports **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**, MuxOrch will create nexthop protection group for each mux neighbor and maintain a mapping of mux neighbors and nexthop protection groups based on this config knob. If the capability check fails, MuxOrch will fall back to software based switchover. -MuxOrch creates the IPinIP tunnel based on the peer_switch configuration. Currently IPinIP tunnel destination next hop is created when mux state changes to standby. However, with **hardware** switching_mode it will create the IPinIP tunnel destination next hop in advance and add this as the backup member of the nexthop protection group. +This feature introduces a new config knob **failover_mode** to differentiate between software based failover switching and FRR hardware protection failover switching that will use nexthop protection group to switch traffic. MuxOrch will perform a capability check for hardware protection group support by querying the SAI switch attributes. If the ASIC supports **SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION**, MuxOrch will create nexthop protection group for each mux neighbor and maintain a mapping of mux neighbors and nexthop protection groups based on this config knob. If the capability check fails, MuxOrch will fall back to software based failover switching. +MuxOrch creates the IPinIP tunnel based on the peer_switch configuration. Currently IPinIP tunnel destination next hop is created when mux state changes to standby. However, with **hardware** failover_mode it will create the IPinIP tunnel destination next hop in advance and add this as the backup member of the nexthop protection group. MuxOrch will need to program the monitored ICMP offload session's object id as the **SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT** in the nexthop protection group. For this MuxOrch will subscribe to notifications from IcmpOrch for ICMP session creation and will maintain a mapping of mux port and ICMP session object id. When MuxOrch receives notification for session creation from IcmpOrch, it will update the nexthop member attribute to program the monitored session object id. -Following diagram shows MuxOrch component level flow for admin_active/admin_standby and switching_mode handling. +Following diagram shows MuxOrch component level flow for admin_active/admin_standby and failover_mode handling.
#### 7.1.3 MuxCableOrch -MuxCableOrch in orchagent is the component responsible for consuming mux state from App DB MUX_CABLE_TABLE and switching traffic. Currently this component updates all routes whenever a traffic switchover is needed. When **switching_mode** is set to **hardware** in MuxOrch, MuxCableOrch will program the routes with the nexthop protection group OID as destination once during initial setup. Since the route destination is the protection NHG OID, subsequent ICMP session state changes (`active`/`standby`) are handled entirely in hardware -- MuxCableOrch does not need to reprogram routes or swap next hops during switchover. The only route programming from MuxCableOrch in **hardware** mode occurs during initial route creation and during admin-initiated manual switching (`admin_active`/`admin_standby`). +MuxCableOrch in orchagent is the component responsible for consuming mux state from App DB MUX_CABLE_TABLE and performing failover switching. Currently this component updates all routes whenever a failover switchover is needed. When **failover_mode** is set to **hardware** in MuxOrch, MuxCableOrch will program the routes with the nexthop protection group OID as destination once during initial setup. Since the route destination is the protection NHG OID, subsequent ICMP session state changes (`active`/`standby`) are handled entirely in hardware -- MuxCableOrch does not need to reprogram routes or swap next hops during switchover. The only route programming from MuxCableOrch in **hardware** mode occurs during initial route creation and during admin-initiated manual switching (`admin_active`/`admin_standby`). -Following diagram shows component level flow for traffic switching. +Following diagram shows component level flow for failover switching.
#### 7.1.4 MuxNbrHandler -Currently when FDB changes or neighbor changes, neighbors are updated based on the state of mux. The neighbor handler also handles traffic switching based on MUX state changes. With **hardware** switching mode, a new neighbor handler will be introduced to handle traffic switching based on **admin_active**/**admin_standby** state values. +Currently when FDB changes or neighbor changes, neighbors are updated based on the state of mux. The neighbor handler also handles failover switching based on MUX state changes. With **hardware** failover mode, a new neighbor handler will be introduced to handle failover switching based on **admin_active**/**admin_standby** state values. ##### 7.1.4.1 Neighbor Handling **Current behavior in prefix-route mode:** -In the existing prefix-route mode, switching is done by manipulating what each mux neighbor's prefix route (/32) points to: +In the existing prefix-route mode, failover switching is done by manipulating what each mux neighbor's prefix route (/32) points to: * **update (active/standby):** The neighbor handler sets the prefix route to the local neighbor next hop or tunnel next hop based on the state of mux. * **enable (active):** The neighbor handler sets the prefix route to the local neighbor next hop. The standalone tunnel route for this neighbor is removed. * **disable (standby):** The neighbor handler sets the prefix route to the tunnel next hop. -This means every switchover involves reprogramming prefix routes for each affected mux neighbor. +This means every failover switchover involves reprogramming prefix routes for each affected mux neighbor. **New behavior with hardware protection switching:** A new neighbor handler will be introduced for hardware protection switching. The new handler will not update the neighbor's prefix route on ICMP session state changes (`active`/`standby`) -- those are handled entirely in hardware by the nexthop protection group. The new handler will act only on admin-initiated state changes and neighbor updates: @@ -147,13 +147,13 @@ A new neighbor handler will be introduced for hardware protection switching. The ##### 7.1.4.2 ECMP Route Handling **Current behavior in prefix-route mode:** -The tunnel next hop is never added as a member of ECMP next hop groups. Instead, switching manipulates which neighbor next hops are present in ECMP NHGs: +The tunnel next hop is never added as a member of ECMP next hop groups. Instead, failover switching manipulates which neighbor next hops are present in ECMP NHGs: * **enable (active):** Point the ECMP route to the active nexthop member of the ECMP NHG. * **disable (standby):** Point the ECMP route to the backup nexthop member of the ECMP NHG if it is the last active member in the NHG. If there are other active members in the NHG, point the ECMP route to the first active member in the NHG. -This means every switchover involves updating ECMP NHG membership and potentially scanning all ECMP routes for active mux neighbors. In the first release of this feature, orchagent will continue to program ECMP routes to point to the tunnel next hop for standby state for backward compatibility. +This means every failover switchover involves updating ECMP NHG membership and potentially scanning all ECMP routes for active mux neighbors. In the first release of this feature, orchagent will continue to program ECMP routes to point to the tunnel next hop for standby state for backward compatibility. **Planned enhancement with hardware protection switching:** In future releases, ECMP routes will point to the protection NHG. The protection NHG will have all the primary nexthops with their monitored object set to the corresponding ICMP session object id. When a member's ICMP session state changes to standby, hardware will update the member's observed role to **SAI_NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_INACTIVE** and will not participate in forwarding traffic. If no active neighbors remain, the backup nexthop member's observed role will move to **SAI_NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_ACTIVE** and will participate in forwarding traffic. @@ -179,14 +179,14 @@ Currently LinkMgrd uses a common mux **state** field in MUX_CABLE_TBL with value ## 8. DB Schema Changes ### 8.1 Config-DB -A new field switching_mode in **MUX_CABLE** config table to support this feature: - * **switching_mode** - * software : Traffic switching with existing mechanism using software based switching. This is default value. - * hardware : Traffic switching using hardware based nexthop protection group. +A new field failover_mode in **MUX_CABLE** config table to support this feature: + * **failover_mode** + * software : Failover switching with existing mechanism using software based failover switching. This is default value. + * hardware : Failover switching using hardware based nexthop protection group. ``` MUX_CABLE|PORTNAME: - switching_mode: software/hardware // New field to indicate hardware based protection switching for this mux port + failover_mode: software/hardware // New field to indicate hardware based protection switching for this mux port ``` ### 8.2 App-DB @@ -205,12 +205,12 @@ No new State-DB schema changes are introduced as part of this feature. The exist ## 9. Command Line -The **switching_mode** field is configured via `config_db.json` as part of the **MUX_CABLE** table. No separate config CLI is introduced for this field; it follows the existing pattern for mux cable configuration. +The **failover_mode** field is configured via `config_db.json` as part of the **MUX_CABLE** table. No separate config CLI is introduced for this field; it follows the existing pattern for mux cable configuration. ### 9.1 Show CLI **Existing CLI to show mux config** -`show mux config` will be enhanced to show the new field switching_mode. +`show mux config` will be enhanced to show the new field failover_mode. ``` $ show mux config @@ -229,7 +229,7 @@ $ show mux config SWITCH_NAME PEER_TOR ----------------- ---------- lab-switch-2 10.1.0.33 -port state ipv4 ipv6 cable_type soc_ipv4 switching_mode +port state ipv4 ipv6 cable_type soc_ipv4 failover_mode ---------- ------- --------------- ----------------- ------------- --------------- -------------- Ethernet4 auto 192.168.0.2/32 fc02:1000::2/128 active-active 192.168.0.3/32 hardware Ethernet8 auto 192.168.0.4/32 fc02:1000::4/128 active-active 192.168.0.5/32 software @@ -249,10 +249,10 @@ See [Section 7.1.4.2](#7142-ecmp-route-handling) for the planned enhancement to - Warm reboot and fast reboot with nexthop protection groups have not been validated and require additional testing before being supported. ## 12. Error Handling and Failure Scenarios -- **ICMP session creation failure:** If IcmpOrch fails to create the hardware offloaded ICMP session, MuxOrch will not receive the session object id notification. The nexthop protection group member will remain without a monitored object, and traffic switching will fall back to software-based switching for the affected mux port. -- **ASIC does not support SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION:** If the ASIC returns a failure when creating the nexthop protection group, MuxOrch will log an error and the mux port will continue to operate in software-based switching mode. +- **ICMP session creation failure:** If IcmpOrch fails to create the hardware offloaded ICMP session, MuxOrch will not receive the session object id notification. The nexthop protection group member will remain without a monitored object, and failover switching will fall back to software-based failover switching for the affected mux port. +- **ASIC does not support SAI_NEXT_HOP_GROUP_TYPE_HW_PROTECTION:** If the ASIC returns a failure when creating the nexthop protection group, MuxOrch will log an error and the mux port will continue to operate in software-based failover switching mode. - **Monitored ICMP session deletion:** If the monitored ICMP session is deleted while the nexthop protection group is active, the nexthop protection group member's monitored object attribute will become stale. MuxOrch should handle session deletion notifications from IcmpOrch and update or remove the monitored object attribute accordingly. -- **Hardware protection switchover failure:** When a hardware-initiated switchover fails for one or more nexthop protection groups, SAI sends a bulk error notification identifying the failed NHGs. ProtNhgOrch processes this bulk notification and forwards the failure information to MuxOrch. MuxOrch then retries the switchover for the failed NHGs by setting **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** to force the transition via admin mode. If the admin-mode retry also fails, MuxOrch marks the switchover as failed and the neighbor state as inconsistent. This keeps the failure handling behavior consistent with software-based switching mode, where a failed switchover similarly results in an inconsistent neighbor state that requires operator intervention or a subsequent recovery event. +- **Hardware protection switchover failure:** When a hardware-initiated switchover fails for one or more nexthop protection groups, SAI sends a bulk error notification identifying the failed NHGs. ProtNhgOrch processes this bulk notification and forwards the failure information to MuxOrch. MuxOrch then retries the switchover for the failed NHGs by setting **SAI_NEXT_HOP_GROUP_ATTR_ADMIN_ROLE** to force the transition via admin mode. If the admin-mode retry also fails, MuxOrch marks the switchover as failed and the neighbor state as inconsistent. This keeps the failure handling behavior consistent with software-based failover switching mode, where a failed switchover similarly results in an inconsistent neighbor state that requires operator intervention or a subsequent recovery event. ## 13. Testing - Unit tests for LinkMgrd @@ -263,4 +263,4 @@ See [Section 7.1.4.2](#7142-ecmp-route-handling) for the planned enhancement to - Add support for hardware based ICMP echo session configurations - Add support for hardware based protection switching configurations - Verify switchover time meets the 50ms target requirement for hardware based protection switching - - Verify admin_active/admin_standby based manual switching with nexthop protection group + - Verify admin_active/admin_standby based manual failover switching with nexthop protection group