Dualtor FRR support with hw NH Protection group - #2251
Conversation
|
/azp run |
|
No pipelines are associated with this pull request. |
Signed-off-by: Manas Kumar Mandal <manamand@cisco.com>
69dec45 to
9e57f3f
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
Signed-off-by: Manas Kumar Mandal <manamand@cisco.com>
|
/azp run |
|
No pipelines are associated with this pull request. |
| * 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 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. |
There was a problem hiding this comment.
In hw switching mode, will linkmgrd initiated toggling take effect if it's not from admin state?
Meaning if linkmgrd writes "active", what will happen?
There was a problem hiding this comment.
active and standby states are typically no-op for hardware based protection. Only admin state changes will acted upon by muxorch.
| ## 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. |
There was a problem hiding this comment.
Will it be counters only or timestamp as well?
There was a problem hiding this comment.
As of now switchover counters alone. We will have platform command to show timestamps. We need to see what we can propose for SAI wrt timestamps.
| ### 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. |
There was a problem hiding this comment.
platform CL - switchover history is a bit important in livesite troubleshooting, we need have some more generic solution.
There was a problem hiding this comment.
Understood, we will investigate how we can improve stats for troubleshooting.
There was a problem hiding this comment.
Is it nexhop group or nh protection group?
There was a problem hiding this comment.
It is nexthop protection group.
|
|
||
| > **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 |
| #### 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 |
There was a problem hiding this comment.
Take it as we don't backoff when there are continuous flaps, which does match today's linkmgrd behavior too. But with linkmgrd (software probing), we got a lot of false alarms and triggers mux flaps, perhaps it won't happen with hw probe that much, but something to think about.
There was a problem hiding this comment.
It will currently behave the same way. However we can plan some enhancements to avoid this kind of flaps.
Signed-off-by: Manas Kumar Mandal <manamand@cisco.com>
|
/azp run |
|
No pipelines are associated with this pull request. |
|
/azp run |
|
No pipelines are associated with this pull request. |
Signed-off-by: Manas Kumar Mandal <manamand@cisco.com>
2d1d3af to
86be6f6
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
Signed-off-by: Manas Kumar Mandal <manamand@cisco.com>
90a6e14 to
4491237
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
Signed-off-by: Manas Kumar Mandal <manamand@cisco.com>
|
/azp run |
|
No pipelines are associated with this pull request. |
Signed-off-by: Manas Kumar Mandal <manamand@cisco.com>
|
/azp run |
|
No pipelines are associated with this pull request. |
| - **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 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 |
There was a problem hiding this comment.
Please elaborate on this section for all scenarios
Support for FRR(Fast ReRoute) in DualToR architecture using Hardware based protection nexthop group. This feature allows failover protection of MUX neighbors in hardware without the NOS involvement.
elated PRs and specs: