From 39f876b1b686f669b55fdcc89b0cadb86c5858f3 Mon Sep 17 00:00:00 2001 From: mukeshmv Date: Fri, 12 Jul 2024 15:24:14 +0000 Subject: [PATCH] Dash HA DPU scope DPU driven changes --- experimental/saiexperimentaldasheni.h | 198 ++++++++++++++++---------- experimental/saiexperimentaldashha.h | 119 +++++++++++----- experimental/saiswitchextensions.h | 3 + experimental/saitypesextensions.h | 33 +++++ meta/acronyms.txt | 1 + 5 files changed, 244 insertions(+), 110 deletions(-) diff --git a/experimental/saiexperimentaldasheni.h b/experimental/saiexperimentaldasheni.h index a7762a2ae..8f847e8a1 100644 --- a/experimental/saiexperimentaldasheni.h +++ b/experimental/saiexperimentaldasheni.h @@ -27,10 +27,10 @@ #if !defined (__SAIEXPERIMENTALDASHENI_H_) #define __SAIEXPERIMENTALDASHENI_H_ -#include +#include /** - * @defgroup SAIEXPERIMENTALDASH_ENI SAI - Experimental: DASH ENI specific API definitions + * @defgroup SAIEXPERIMENTALDASHENI SAI - Experimental: DASH ENI specific API definitions * * @{ */ @@ -64,7 +64,7 @@ typedef struct _sai_eni_ether_address_map_entry_t } sai_eni_ether_address_map_entry_t; /** - * @brief Attribute ID for dash_eni_eni_ether_address_map_entry + * @brief Attribute ID for ENI ether address map entry */ typedef enum _sai_eni_ether_address_map_entry_attr_t { @@ -83,7 +83,7 @@ typedef enum _sai_eni_ether_address_map_entry_attr_t SAI_ENI_ETHER_ADDRESS_MAP_ENTRY_ATTR_ACTION = SAI_ENI_ETHER_ADDRESS_MAP_ENTRY_ATTR_START, /** - * @brief Action set_eni parameter ENI_ID + * @brief Action parameter ENI id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -107,7 +107,7 @@ typedef enum _sai_eni_ether_address_map_entry_attr_t } sai_eni_ether_address_map_entry_attr_t; /** - * @brief Attribute ID for dash_eni_eni + * @brief Attribute ID for ENI */ typedef enum _sai_eni_attr_t { @@ -117,7 +117,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_START, /** - * @brief Action set_eni_attrs parameter CPS + * @brief Action parameter CPS * * @type sai_uint32_t * @flags CREATE_AND_SET @@ -126,7 +126,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_CPS = SAI_ENI_ATTR_START, /** - * @brief Action set_eni_attrs parameter PPS + * @brief Action parameter PPS * * @type sai_uint32_t * @flags CREATE_AND_SET @@ -135,7 +135,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_PPS, /** - * @brief Action set_eni_attrs parameter FLOWS + * @brief Action parameter flows * * @type sai_uint32_t * @flags CREATE_AND_SET @@ -144,7 +144,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_FLOWS, /** - * @brief Action set_eni_attrs parameter ADMIN_STATE + * @brief Action parameter admin state * * @type bool * @flags CREATE_AND_SET @@ -153,7 +153,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_ADMIN_STATE, /** - * @brief Action set_eni_attrs parameter HA_SCOPE_ID + * @brief Action parameter HA scope id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -164,7 +164,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_HA_SCOPE_ID, /** - * @brief Action set_eni_attrs parameter VM_UNDERLAY_DIP + * @brief Action parameter underlay dip * * @type sai_ip_address_t * @flags CREATE_AND_SET @@ -173,7 +173,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_VM_UNDERLAY_DIP, /** - * @brief Action set_eni_attrs parameter VM_VNI + * @brief Action parameter VNI * * @type sai_uint32_t * @flags CREATE_AND_SET @@ -182,7 +182,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_VM_VNI, /** - * @brief Action set_eni_attrs parameter VNET_ID + * @brief Action parameter VNET id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -193,7 +193,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_VNET_ID, /** - * @brief Action set_eni_attrs parameter PL_SIP + * @brief Action parameter PL sip * * @type sai_ip_address_t * @flags CREATE_AND_SET @@ -202,7 +202,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_PL_SIP, /** - * @brief Action set_eni_attrs parameter PL_SIP_MASK + * @brief Action parameter PL sip mask * * @type sai_ip_address_t * @flags CREATE_AND_SET @@ -211,7 +211,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_PL_SIP_MASK, /** - * @brief Action set_eni_attrs parameter PL_UNDERLAY_SIP + * @brief Action parameter PL underlay sip * * @type sai_ip_address_t * @flags CREATE_AND_SET @@ -220,7 +220,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_PL_UNDERLAY_SIP, /** - * @brief Action set_eni_attrs parameter V4_METER_POLICY_ID + * @brief Action parameter v4 meter policy id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -231,7 +231,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_V4_METER_POLICY_ID, /** - * @brief Action set_eni_attrs parameter V6_METER_POLICY_ID + * @brief Action parameter v6 meter policy id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -242,7 +242,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_V6_METER_POLICY_ID, /** - * @brief Action set_eni_attrs parameter DASH_TUNNEL_DSCP_MODE + * @brief Action parameter DASH tunnel DSCP mode * * @type sai_dash_tunnel_dscp_mode_t * @flags CREATE_AND_SET @@ -251,7 +251,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_DASH_TUNNEL_DSCP_MODE, /** - * @brief Action set_eni_attrs parameter DSCP + * @brief Action parameter DSCP * * @type sai_uint8_t * @flags CREATE_AND_SET @@ -261,7 +261,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_DSCP, /** - * @brief Action set_eni_attrs parameter INBOUND_V4_STAGE1_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v4 stage1 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -272,7 +272,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V4_STAGE1_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V4_STAGE2_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v4 stage2 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -283,7 +283,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V4_STAGE2_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V4_STAGE3_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v4 stage3 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -294,7 +294,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V4_STAGE3_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V4_STAGE4_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v4 stage4 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -305,7 +305,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V4_STAGE4_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V4_STAGE5_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v4 stage5 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -316,7 +316,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V4_STAGE5_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V6_STAGE1_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v6 stage1 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -327,7 +327,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V6_STAGE1_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V6_STAGE2_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v6 stage2 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -338,7 +338,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V6_STAGE2_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V6_STAGE3_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v6 stage3 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -349,7 +349,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V6_STAGE3_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V6_STAGE4_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v6 stage4 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -360,7 +360,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V6_STAGE4_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter INBOUND_V6_STAGE5_DASH_ACL_GROUP_ID + * @brief Action parameter inbound v6 stage5 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -371,7 +371,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_INBOUND_V6_STAGE5_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V4_STAGE1_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v4 stage1 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -382,7 +382,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V4_STAGE1_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V4_STAGE2_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v4 stage2 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -393,7 +393,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V4_STAGE2_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V4_STAGE3_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v4 stage3 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -404,7 +404,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V4_STAGE3_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V4_STAGE4_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v4 stage4 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -415,7 +415,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V4_STAGE4_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V4_STAGE5_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v4 stage5 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -426,7 +426,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V4_STAGE5_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V6_STAGE1_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v6 stage1 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -437,7 +437,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V6_STAGE1_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V6_STAGE2_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v6 stage2 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -448,7 +448,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V6_STAGE2_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V6_STAGE3_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v6 stage3 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -459,7 +459,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V6_STAGE3_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v6 stage4 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -470,7 +470,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID + * @brief Action parameter outbound v6 stage5 DASH ACL group id * * @type sai_object_id_t * @flags CREATE_AND_SET @@ -481,7 +481,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID, /** - * @brief Action set_eni_attrs parameter DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION + * @brief Action parameter disable fast path ICMP flow redirection * * @type bool * @flags CREATE_AND_SET @@ -490,7 +490,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION, /** - * @brief Action set_eni_attrs parameter FULL_FLOW_RESIMULATION_REQUESTED + * @brief Action parameter full flow re-simulation requested * * @type bool * @flags CREATE_AND_SET @@ -499,7 +499,7 @@ typedef enum _sai_eni_attr_t SAI_ENI_ATTR_FULL_FLOW_RESIMULATION_REQUESTED, /** - * @brief Action set_eni_attrs parameter MAX_RESIMULATED_FLOW_PER_SECOND + * @brief Action parameter max re-simulated flow per second * * @type sai_uint64_t * @flags CREATE_AND_SET @@ -507,6 +507,15 @@ typedef enum _sai_eni_attr_t */ SAI_ENI_ATTR_MAX_RESIMULATED_FLOW_PER_SECOND, + /** + * @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 */ @@ -521,7 +530,7 @@ typedef enum _sai_eni_attr_t } sai_eni_attr_t; /** - * @brief Counter IDs for ENI in sai_get_eni_stats() call + * @brief Counter IDs for ENI */ typedef enum _sai_eni_stat_t { @@ -627,14 +636,17 @@ typedef enum _sai_eni_stat_t /** DASH ENI INLINE_FLOW_CREATE_REQ_FAILED stat count */ SAI_ENI_STAT_INLINE_FLOW_CREATE_REQ_FAILED, + /** DASH ENI INLINE_FLOW_CREATE_REQ_IGNORED stat count */ + SAI_ENI_STAT_INLINE_FLOW_CREATE_REQ_IGNORED, + /** DASH ENI INLINE_FLOW_CREATE_ACK_RECV stat count */ SAI_ENI_STAT_INLINE_FLOW_CREATE_ACK_RECV, - /** DASH ENI INLINE_FLOW_CREATE_ACK_FAILED_RECV stat count */ - SAI_ENI_STAT_INLINE_FLOW_CREATE_ACK_FAILED_RECV, + /** DASH ENI INLINE_FLOW_CREATE_ACK_FAILED stat count */ + SAI_ENI_STAT_INLINE_FLOW_CREATE_ACK_FAILED, - /** DASH ENI INLINE_FLOW_CREATE_ACK_IGNORED_RECV stat count */ - SAI_ENI_STAT_INLINE_FLOW_CREATE_ACK_IGNORED_RECV, + /** DASH ENI INLINE_FLOW_CREATE_ACK_IGNORED stat count */ + SAI_ENI_STAT_INLINE_FLOW_CREATE_ACK_IGNORED, /** DASH ENI TIMED_FLOW_CREATE_REQ_SENT stat count */ SAI_ENI_STAT_TIMED_FLOW_CREATE_REQ_SENT, @@ -645,14 +657,17 @@ typedef enum _sai_eni_stat_t /** DASH ENI TIMED_FLOW_CREATE_REQ_FAILED stat count */ SAI_ENI_STAT_TIMED_FLOW_CREATE_REQ_FAILED, + /** DASH ENI TIMED_FLOW_CREATE_REQ_IGNORED stat count */ + SAI_ENI_STAT_TIMED_FLOW_CREATE_REQ_IGNORED, + /** DASH ENI TIMED_FLOW_CREATE_ACK_RECV stat count */ SAI_ENI_STAT_TIMED_FLOW_CREATE_ACK_RECV, - /** DASH ENI TIMED_FLOW_CREATE_ACK_FAILED_RECV stat count */ - SAI_ENI_STAT_TIMED_FLOW_CREATE_ACK_FAILED_RECV, + /** DASH ENI TIMED_FLOW_CREATE_ACK_FAILED stat count */ + SAI_ENI_STAT_TIMED_FLOW_CREATE_ACK_FAILED, - /** DASH ENI TIMED_FLOW_CREATE_ACK_IGNORED_RECV stat count */ - SAI_ENI_STAT_TIMED_FLOW_CREATE_ACK_IGNORED_RECV, + /** DASH ENI TIMED_FLOW_CREATE_ACK_IGNORED stat count */ + SAI_ENI_STAT_TIMED_FLOW_CREATE_ACK_IGNORED, /** DASH ENI INLINE_FLOW_UPDATE_REQ_SENT stat count */ SAI_ENI_STAT_INLINE_FLOW_UPDATE_REQ_SENT, @@ -663,14 +678,17 @@ typedef enum _sai_eni_stat_t /** DASH ENI INLINE_FLOW_UPDATE_REQ_FAILED stat count */ SAI_ENI_STAT_INLINE_FLOW_UPDATE_REQ_FAILED, + /** DASH ENI INLINE_FLOW_UPDATE_REQ_IGNORED stat count */ + SAI_ENI_STAT_INLINE_FLOW_UPDATE_REQ_IGNORED, + /** DASH ENI INLINE_FLOW_UPDATE_ACK_RECV stat count */ SAI_ENI_STAT_INLINE_FLOW_UPDATE_ACK_RECV, - /** DASH ENI INLINE_FLOW_UPDATE_ACK_FAILED_RECV stat count */ - SAI_ENI_STAT_INLINE_FLOW_UPDATE_ACK_FAILED_RECV, + /** DASH ENI INLINE_FLOW_UPDATE_ACK_FAILED stat count */ + SAI_ENI_STAT_INLINE_FLOW_UPDATE_ACK_FAILED, - /** DASH ENI INLINE_FLOW_UPDATE_ACK_IGNORED_RECV stat count */ - SAI_ENI_STAT_INLINE_FLOW_UPDATE_ACK_IGNORED_RECV, + /** DASH ENI INLINE_FLOW_UPDATE_ACK_IGNORED stat count */ + SAI_ENI_STAT_INLINE_FLOW_UPDATE_ACK_IGNORED, /** DASH ENI TIMED_FLOW_UPDATE_REQ_SENT stat count */ SAI_ENI_STAT_TIMED_FLOW_UPDATE_REQ_SENT, @@ -681,14 +699,17 @@ typedef enum _sai_eni_stat_t /** DASH ENI TIMED_FLOW_UPDATE_REQ_FAILED stat count */ SAI_ENI_STAT_TIMED_FLOW_UPDATE_REQ_FAILED, + /** DASH ENI TIMED_FLOW_UPDATE_REQ_IGNORED stat count */ + SAI_ENI_STAT_TIMED_FLOW_UPDATE_REQ_IGNORED, + /** DASH ENI TIMED_FLOW_UPDATE_ACK_RECV stat count */ SAI_ENI_STAT_TIMED_FLOW_UPDATE_ACK_RECV, - /** DASH ENI TIMED_FLOW_UPDATE_ACK_FAILED_RECV stat count */ - SAI_ENI_STAT_TIMED_FLOW_UPDATE_ACK_FAILED_RECV, + /** DASH ENI TIMED_FLOW_UPDATE_ACK_FAILED stat count */ + SAI_ENI_STAT_TIMED_FLOW_UPDATE_ACK_FAILED, - /** DASH ENI TIMED_FLOW_UPDATE_ACK_IGNORED_RECV stat count */ - SAI_ENI_STAT_TIMED_FLOW_UPDATE_ACK_IGNORED_RECV, + /** DASH ENI TIMED_FLOW_UPDATE_ACK_IGNORED stat count */ + SAI_ENI_STAT_TIMED_FLOW_UPDATE_ACK_IGNORED, /** DASH ENI INLINE_FLOW_DELETE_REQ_SENT stat count */ SAI_ENI_STAT_INLINE_FLOW_DELETE_REQ_SENT, @@ -699,14 +720,17 @@ typedef enum _sai_eni_stat_t /** DASH ENI INLINE_FLOW_DELETE_REQ_FAILED stat count */ SAI_ENI_STAT_INLINE_FLOW_DELETE_REQ_FAILED, + /** DASH ENI INLINE_FLOW_DELETE_REQ_IGNORED stat count */ + SAI_ENI_STAT_INLINE_FLOW_DELETE_REQ_IGNORED, + /** DASH ENI INLINE_FLOW_DELETE_ACK_RECV stat count */ SAI_ENI_STAT_INLINE_FLOW_DELETE_ACK_RECV, - /** DASH ENI INLINE_FLOW_DELETE_ACK_FAILED_RECV stat count */ - SAI_ENI_STAT_INLINE_FLOW_DELETE_ACK_FAILED_RECV, + /** DASH ENI INLINE_FLOW_DELETE_ACK_FAILED stat count */ + SAI_ENI_STAT_INLINE_FLOW_DELETE_ACK_FAILED, - /** DASH ENI INLINE_FLOW_DELETE_ACK_IGNORED_RECV stat count */ - SAI_ENI_STAT_INLINE_FLOW_DELETE_ACK_IGNORED_RECV, + /** DASH ENI INLINE_FLOW_DELETE_ACK_IGNORED stat count */ + SAI_ENI_STAT_INLINE_FLOW_DELETE_ACK_IGNORED, /** DASH ENI TIMED_FLOW_DELETE_REQ_SENT stat count */ SAI_ENI_STAT_TIMED_FLOW_DELETE_REQ_SENT, @@ -717,19 +741,37 @@ typedef enum _sai_eni_stat_t /** DASH ENI TIMED_FLOW_DELETE_REQ_FAILED stat count */ SAI_ENI_STAT_TIMED_FLOW_DELETE_REQ_FAILED, + /** DASH ENI TIMED_FLOW_DELETE_REQ_IGNORED stat count */ + SAI_ENI_STAT_TIMED_FLOW_DELETE_REQ_IGNORED, + /** DASH ENI TIMED_FLOW_DELETE_ACK_RECV stat count */ SAI_ENI_STAT_TIMED_FLOW_DELETE_ACK_RECV, - /** DASH ENI TIMED_FLOW_DELETE_ACK_FAILED_RECV stat count */ - SAI_ENI_STAT_TIMED_FLOW_DELETE_ACK_FAILED_RECV, + /** DASH ENI TIMED_FLOW_DELETE_ACK_FAILED stat count */ + SAI_ENI_STAT_TIMED_FLOW_DELETE_ACK_FAILED, + + /** DASH ENI TIMED_FLOW_DELETE_ACK_IGNORED stat count */ + SAI_ENI_STAT_TIMED_FLOW_DELETE_ACK_IGNORED, + + /** DASH ENI OUTBOUND_ROUTING_ENTRY_MISS_DROP_PACKETS stat count */ + SAI_ENI_STAT_OUTBOUND_ROUTING_ENTRY_MISS_DROP_PACKETS, + + /** DASH ENI OUTBOUND_CA_PA_ENTRY_MISS_DROP_PACKETS stat count */ + SAI_ENI_STAT_OUTBOUND_CA_PA_ENTRY_MISS_DROP_PACKETS, + + /** DASH ENI INBOUND_ROUTING_ENTRY_MISS_DROP_PACKETS stat count */ + SAI_ENI_STAT_INBOUND_ROUTING_ENTRY_MISS_DROP_PACKETS, + + /** DASH ENI OUTBOUND_ROUTING_GROUP_MISS_DROP_PACKETS stat count */ + SAI_ENI_STAT_OUTBOUND_ROUTING_GROUP_MISS_DROP_PACKETS, - /** DASH ENI TIMED_FLOW_DELETE_ACK_IGNORED_RECV stat count */ - SAI_ENI_STAT_TIMED_FLOW_DELETE_ACK_IGNORED_RECV, + /** DASH ENI OUTBOUND_ROUTING_GROUP_DISABLED_DROP_PACKETS stat count */ + SAI_ENI_STAT_OUTBOUND_ROUTING_GROUP_DISABLED_DROP_PACKETS, } sai_eni_stat_t; /** - * @brief Create dash_eni_eni_ether_address_map_entry + * @brief Create ENI ether address map entry * * @param[in] eni_ether_address_map_entry Entry * @param[in] attr_count Number of attributes @@ -743,7 +785,7 @@ typedef sai_status_t (*sai_create_eni_ether_address_map_entry_fn)( _In_ const sai_attribute_t *attr_list); /** - * @brief Remove dash_eni_eni_ether_address_map_entry + * @brief Remove ENI ether address map entry * * @param[in] eni_ether_address_map_entry Entry * @@ -753,7 +795,7 @@ typedef sai_status_t (*sai_remove_eni_ether_address_map_entry_fn)( _In_ const sai_eni_ether_address_map_entry_t *eni_ether_address_map_entry); /** - * @brief Set attribute for dash_eni_eni_ether_address_map_entry + * @brief Set attribute for ENI ether address map entry * * @param[in] eni_ether_address_map_entry Entry * @param[in] attr Attribute @@ -765,7 +807,7 @@ typedef sai_status_t (*sai_set_eni_ether_address_map_entry_attribute_fn)( _In_ const sai_attribute_t *attr); /** - * @brief Get attribute for dash_eni_eni_ether_address_map_entry + * @brief Get attribute for ENI ether address map entry * * @param[in] eni_ether_address_map_entry Entry * @param[in] attr_count Number of attributes @@ -779,7 +821,7 @@ typedef sai_status_t (*sai_get_eni_ether_address_map_entry_attribute_fn)( _Inout_ sai_attribute_t *attr_list); /** - * @brief Bulk create dash_eni_eni_ether_address_map_entry + * @brief Bulk create ENI ether address map entry * * @param[in] object_count Number of objects to create * @param[in] eni_ether_address_map_entry List of object to create @@ -804,7 +846,7 @@ typedef sai_status_t (*sai_bulk_create_eni_ether_address_map_entry_fn)( _Out_ sai_status_t *object_statuses); /** - * @brief Bulk remove dash_eni_eni_ether_address_map_entry + * @brief Bulk remove ENI ether address map entry * * @param[in] object_count Number of objects to remove * @param[in] eni_ether_address_map_entry List of objects to remove @@ -824,7 +866,7 @@ typedef sai_status_t (*sai_bulk_remove_eni_ether_address_map_entry_fn)( _Out_ sai_status_t *object_statuses); /** - * @brief Create dash_eni_eni + * @brief Create ENI * * @param[out] eni_id Entry id * @param[in] switch_id Switch id @@ -840,7 +882,7 @@ typedef sai_status_t (*sai_create_eni_fn)( _In_ const sai_attribute_t *attr_list); /** - * @brief Remove dash_eni_eni + * @brief Remove ENI * * @param[in] eni_id Entry id * @@ -850,7 +892,7 @@ typedef sai_status_t (*sai_remove_eni_fn)( _In_ sai_object_id_t eni_id); /** - * @brief Set attribute for dash_eni_eni + * @brief Set attribute for ENI * * @param[in] eni_id Entry id * @param[in] attr Attribute @@ -862,7 +904,7 @@ typedef sai_status_t (*sai_set_eni_attribute_fn)( _In_ const sai_attribute_t *attr); /** - * @brief Get attribute for dash_eni_eni + * @brief Get attribute for ENI * * @param[in] eni_id Entry id * @param[in] attr_count Number of attributes diff --git a/experimental/saiexperimentaldashha.h b/experimental/saiexperimentaldashha.h index 16d44ce3c..ed776d65b 100644 --- a/experimental/saiexperimentaldashha.h +++ b/experimental/saiexperimentaldashha.h @@ -19,7 +19,9 @@ * * @file saiexperimentaldashha.h * - * @brief This module defines SAI P4 extension interface + * @brief This module defines SAI extensions for DASH HA + * + * @warning This module is a SAI experimental module */ #if !defined (__SAIEXPERIMENTALDASHHA_H_) @@ -28,13 +30,13 @@ #include /** - * @defgroup SAIEXPERIMENTALDASH_HA SAI - Extension specific API definitions + * @defgroup SAIEXPERIMENTALDASHHA SAI - Experimental: DASH HA specific API definitions * * @{ */ /** - * @brief Attribute ID for dash_ha_ha_set + * @brief Attribute ID for HA set */ typedef enum _sai_ha_set_attr_t { @@ -44,7 +46,7 @@ typedef enum _sai_ha_set_attr_t SAI_HA_SET_ATTR_START, /** - * @brief Action set_ha_set_attr parameter LOCAL_IP + * @brief Action parameter local IP * * @type sai_ip_address_t * @flags CREATE_AND_SET @@ -53,7 +55,7 @@ typedef enum _sai_ha_set_attr_t SAI_HA_SET_ATTR_LOCAL_IP = SAI_HA_SET_ATTR_START, /** - * @brief Action set_ha_set_attr parameter PEER_IP + * @brief Action parameter peer IP * * @type sai_ip_address_t * @flags CREATE_AND_SET @@ -62,47 +64,47 @@ typedef enum _sai_ha_set_attr_t SAI_HA_SET_ATTR_PEER_IP, /** - * @brief Action set_ha_set_attr parameter CP_DATA_CHANNEL_PORT + * @brief Action parameter control plane data channel port * * @type sai_uint16_t * @flags CREATE_AND_SET - * @isvlan false + * @isvlan true * @default 0 */ SAI_HA_SET_ATTR_CP_DATA_CHANNEL_PORT, /** - * @brief Action set_ha_set_attr parameter DP_CHANNEL_DST_PORT + * @brief Action parameter data plane channel dst port * * @type sai_uint16_t * @flags CREATE_AND_SET - * @isvlan false + * @isvlan true * @default 0 */ SAI_HA_SET_ATTR_DP_CHANNEL_DST_PORT, /** - * @brief Action set_ha_set_attr parameter DP_CHANNEL_MIN_SRC_PORT + * @brief Action parameter data plane channel min src port * * @type sai_uint16_t * @flags CREATE_AND_SET - * @isvlan false + * @isvlan true * @default 0 */ SAI_HA_SET_ATTR_DP_CHANNEL_MIN_SRC_PORT, /** - * @brief Action set_ha_set_attr parameter DP_CHANNEL_MAX_SRC_PORT + * @brief Action parameter data plane channel max src port * * @type sai_uint16_t * @flags CREATE_AND_SET - * @isvlan false + * @isvlan true * @default 0 */ SAI_HA_SET_ATTR_DP_CHANNEL_MAX_SRC_PORT, /** - * @brief Action set_ha_set_attr parameter DP_CHANNEL_PROBE_INTERVAL_MS + * @brief Action parameter data plane channel probe interval ms * * @type sai_uint32_t * @flags CREATE_AND_SET @@ -111,7 +113,7 @@ typedef enum _sai_ha_set_attr_t SAI_HA_SET_ATTR_DP_CHANNEL_PROBE_INTERVAL_MS, /** - * @brief Action set_ha_set_attr parameter DP_CHANNEL_PROBE_FAIL_THRESHOLD + * @brief Action parameter data plane channel probe fail threshold * * @type sai_uint32_t * @flags CREATE_AND_SET @@ -120,13 +122,22 @@ typedef enum _sai_ha_set_attr_t SAI_HA_SET_ATTR_DP_CHANNEL_PROBE_FAIL_THRESHOLD, /** - * @brief Action set_ha_set_attr parameter DP_CHANNEL_IS_ALIVE + * @brief Action parameter data plane channel is alive * * @type bool * @flags READ_ONLY */ SAI_HA_SET_ATTR_DP_CHANNEL_IS_ALIVE, + /** + * @brief Action parameter switchover network convergence time ms + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + */ + SAI_HA_SET_ATTR_SWITCHOVER_NETWORK_CONVERGENCE_TIME_MS, + /** * @brief End of attributes */ @@ -141,7 +152,7 @@ typedef enum _sai_ha_set_attr_t } sai_ha_set_attr_t; /** - * @brief Counter IDs for HA_SET in sai_get_ha_set_stats() call + * @brief Counter IDs for HA SET */ typedef enum _sai_ha_set_stat_t { @@ -208,7 +219,7 @@ typedef enum _sai_ha_set_stat_t } sai_ha_set_stat_t; /** - * @brief Attribute ID for dash_ha_ha_scope + * @brief Attribute ID for HA scope */ typedef enum _sai_ha_scope_attr_t { @@ -218,17 +229,17 @@ typedef enum _sai_ha_scope_attr_t SAI_HA_SCOPE_ATTR_START, /** - * @brief Action set_ha_scope_attr parameter HA_SET_ID + * @brief Action parameter HA set id * * @type sai_uint16_t * @flags CREATE_AND_SET - * @isvlan false + * @isvlan true * @default 0 */ SAI_HA_SCOPE_ATTR_HA_SET_ID = SAI_HA_SCOPE_ATTR_START, /** - * @brief Action set_ha_scope_attr parameter DASH_HA_ROLE + * @brief Action parameter DASH HA role * * @type sai_dash_ha_role_t * @flags CREATE_AND_SET @@ -237,7 +248,7 @@ typedef enum _sai_ha_scope_attr_t SAI_HA_SCOPE_ATTR_DASH_HA_ROLE, /** - * @brief Action set_ha_scope_attr parameter FLOW_VERSION + * @brief Action parameter flow version * * @type sai_uint32_t * @flags READ_ONLY @@ -245,7 +256,7 @@ typedef enum _sai_ha_scope_attr_t SAI_HA_SCOPE_ATTR_FLOW_VERSION, /** - * @brief Action set_ha_scope_attr parameter FLOW_RECONCILE_REQUESTED + * @brief Action parameter flow reconcile requested * * @type bool * @flags CREATE_AND_SET @@ -254,13 +265,57 @@ typedef enum _sai_ha_scope_attr_t SAI_HA_SCOPE_ATTR_FLOW_RECONCILE_REQUESTED, /** - * @brief Action set_ha_scope_attr parameter FLOW_RECONCILE_NEEDED + * @brief Action parameter flow reconcile needed * * @type bool * @flags READ_ONLY */ 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 */ @@ -275,7 +330,7 @@ typedef enum _sai_ha_scope_attr_t } sai_ha_scope_attr_t; /** - * @brief Create dash_ha_ha_set + * @brief Create HA set * * @param[out] ha_set_id Entry id * @param[in] switch_id Switch id @@ -291,7 +346,7 @@ typedef sai_status_t (*sai_create_ha_set_fn)( _In_ const sai_attribute_t *attr_list); /** - * @brief Remove dash_ha_ha_set + * @brief Remove HA set * * @param[in] ha_set_id Entry id * @@ -301,7 +356,7 @@ typedef sai_status_t (*sai_remove_ha_set_fn)( _In_ sai_object_id_t ha_set_id); /** - * @brief Set attribute for dash_ha_ha_set + * @brief Set attribute for HA set * * @param[in] ha_set_id Entry id * @param[in] attr Attribute @@ -313,7 +368,7 @@ typedef sai_status_t (*sai_set_ha_set_attribute_fn)( _In_ const sai_attribute_t *attr); /** - * @brief Get attribute for dash_ha_ha_set + * @brief Get attribute for HA set * * @param[in] ha_set_id Entry id * @param[in] attr_count Number of attributes @@ -375,7 +430,7 @@ typedef sai_status_t (*sai_clear_ha_set_stats_fn)( _In_ const sai_stat_id_t *counter_ids); /** - * @brief Create dash_ha_ha_scope + * @brief Create HA scope * * @param[out] ha_scope_id Entry id * @param[in] switch_id Switch id @@ -391,7 +446,7 @@ typedef sai_status_t (*sai_create_ha_scope_fn)( _In_ const sai_attribute_t *attr_list); /** - * @brief Remove dash_ha_ha_scope + * @brief Remove HA scope * * @param[in] ha_scope_id Entry id * @@ -401,7 +456,7 @@ typedef sai_status_t (*sai_remove_ha_scope_fn)( _In_ sai_object_id_t ha_scope_id); /** - * @brief Set attribute for dash_ha_ha_scope + * @brief Set attribute for HA scope * * @param[in] ha_scope_id Entry id * @param[in] attr Attribute @@ -413,7 +468,7 @@ typedef sai_status_t (*sai_set_ha_scope_attribute_fn)( _In_ const sai_attribute_t *attr); /** - * @brief Get attribute for dash_ha_ha_scope + * @brief Get attribute for HA scope * * @param[in] ha_scope_id Entry id * @param[in] attr_count Number of attributes diff --git a/experimental/saiswitchextensions.h b/experimental/saiswitchextensions.h index df6765833..23ac51048 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; /** diff --git a/experimental/saitypesextensions.h b/experimental/saitypesextensions.h index c76b09fdd..156d121a9 100644 --- a/experimental/saitypesextensions.h +++ b/experimental/saitypesextensions.h @@ -143,5 +143,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/acronyms.txt b/meta/acronyms.txt index 4e58ad9c2..f37df03d8 100644 --- a/meta/acronyms.txt +++ b/meta/acronyms.txt @@ -34,6 +34,7 @@ DLR - Dead Lock Recovery DMA - Direct Memory Access DNAPT - Destination Network Address Port Translation DNAT - Destination Network Address Translation +DPU - Data Processing Unit DSCP - Differentiated Services Code Point DTEL - Data Plane Telemetry ECC - Error Correction Code