From 4b2e5953b4343ce8b7b9f78df29efacad357a5ef Mon Sep 17 00:00:00 2001 From: Mukesh Moopath Velayudhan Date: Tue, 6 Aug 2024 11:10:40 -0700 Subject: [PATCH] Add Dash DPU scope DPU driven HA attributes (#2055) Add Dash DPU scope DPU driven HA attributes (#2055) Brings in SAI API changes from these DASH PRs https://github.com/sonic-net/DASH/pull/599 https://github.com/sonic-net/DASH/pull/604 --- experimental/saiexperimentaldasheni.h | 9 +++++ experimental/saiexperimentaldashha.h | 53 +++++++++++++++++++++++++++ experimental/saiswitchextensions.h | 6 +++ experimental/saitypesextensions.h | 33 +++++++++++++++++ meta/aspell.en.pws | 1 + 5 files changed, 102 insertions(+) diff --git a/experimental/saiexperimentaldasheni.h b/experimental/saiexperimentaldasheni.h index c41119448..ba91b4b55 100644 --- a/experimental/saiexperimentaldasheni.h +++ b/experimental/saiexperimentaldasheni.h @@ -518,6 +518,15 @@ typedef enum _sai_eni_attr_t */ SAI_ENI_ATTR_OUTBOUND_ROUTING_GROUP_ID, + /** + * @brief Action parameter is HA flow owner + * + * @type bool + * @flags CREATE_AND_SET + * @default false + */ + SAI_ENI_ATTR_IS_HA_FLOW_OWNER, + /** * @brief End of attributes */ diff --git a/experimental/saiexperimentaldashha.h b/experimental/saiexperimentaldashha.h index 75332a27a..42024fca1 100644 --- a/experimental/saiexperimentaldashha.h +++ b/experimental/saiexperimentaldashha.h @@ -129,6 +129,15 @@ typedef enum _sai_ha_set_attr_t */ SAI_HA_SET_ATTR_DP_CHANNEL_IS_ALIVE, + /** + * @brief Action parameter SAI vendor driven HA switchover wait time ms + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + */ + SAI_HA_SET_ATTR_DPU_DRIVEN_HA_SWITCHOVER_WAIT_TIME_MS, + /** * @brief End of attributes */ @@ -263,6 +272,50 @@ typedef enum _sai_ha_scope_attr_t */ SAI_HA_SCOPE_ATTR_FLOW_RECONCILE_NEEDED, + /** + * @brief Action parameter VIP v4 + * + * @type sai_ip_address_t + * @flags CREATE_AND_SET + * @default 0.0.0.0 + */ + SAI_HA_SCOPE_ATTR_VIP_V4, + + /** + * @brief Action parameter VIP v6 + * + * @type sai_ip_address_t + * @flags CREATE_AND_SET + * @default 0.0.0.0 + */ + SAI_HA_SCOPE_ATTR_VIP_V6, + + /** + * @brief Action parameter admin state + * + * @type bool + * @flags CREATE_AND_SET + * @default false + */ + SAI_HA_SCOPE_ATTR_ADMIN_STATE, + + /** + * @brief Action parameter activate role + * + * @type bool + * @flags CREATE_AND_SET + * @default false + */ + SAI_HA_SCOPE_ATTR_ACTIVATE_ROLE, + + /** + * @brief Action parameter DASH HA state + * + * @type sai_dash_ha_state_t + * @flags READ_ONLY + */ + SAI_HA_SCOPE_ATTR_DASH_HA_STATE, + /** * @brief End of attributes */ diff --git a/experimental/saiswitchextensions.h b/experimental/saiswitchextensions.h index afa6e0e4d..418f86895 100644 --- a/experimental/saiswitchextensions.h +++ b/experimental/saiswitchextensions.h @@ -90,6 +90,9 @@ typedef enum _sai_ha_scope_event_t /** Flow reconcile is needed */ SAI_HA_SCOPE_EVENT_FLOW_RECONCILE_NEEDED, + + /** DPU driven HA split brain detected */ + SAI_HA_SCOPE_EVENT_SPLIT_BRAIN_DETECTED, } sai_ha_scope_event_t; /** @@ -109,6 +112,9 @@ typedef struct _sai_ha_scope_event_data_t /** Flow version */ sai_uint32_t flow_version; + /** HA state */ + sai_dash_ha_state_t ha_state; + } sai_ha_scope_event_data_t; /** diff --git a/experimental/saitypesextensions.h b/experimental/saitypesextensions.h index 06aa0fc2f..ae1f858ab 100644 --- a/experimental/saitypesextensions.h +++ b/experimental/saitypesextensions.h @@ -145,5 +145,38 @@ typedef enum _sai_dash_ha_role_t } sai_dash_ha_role_t; +/** + * @brief Defines a list of enums for dash_ha_state + */ +typedef enum _sai_dash_ha_state_t +{ + SAI_DASH_HA_STATE_DEAD, + + SAI_DASH_HA_STATE_CONNECTING, + + SAI_DASH_HA_STATE_CONNECTED, + + SAI_DASH_HA_STATE_INITIALIZING_TO_ACTIVE, + + SAI_DASH_HA_STATE_INITIALIZING_TO_STANDBY, + + SAI_DASH_HA_STATE_PENDING_STANDALONE_ACTIVATION, + + SAI_DASH_HA_STATE_PENDING_ACTIVE_ACTIVATION, + + SAI_DASH_HA_STATE_PENDING_STANDBY_ACTIVATION, + + SAI_DASH_HA_STATE_STANDALONE, + + SAI_DASH_HA_STATE_ACTIVE, + + SAI_DASH_HA_STATE_STANDBY, + + SAI_DASH_HA_STATE_DESTROYING, + + SAI_DASH_HA_STATE_SWITCHING_TO_STANDALONE, + +} sai_dash_ha_state_t; + #endif /* __SAITYPESEXTENSIONS_H_ */ diff --git a/meta/aspell.en.pws b/meta/aspell.en.pws index 8252e9bc1..2ce5ab705 100644 --- a/meta/aspell.en.pws +++ b/meta/aspell.en.pws @@ -179,6 +179,7 @@ structs sublayer subnet subnets +switchover SysFS syslog timespec