From 3a1001c5b84ee3de1b8f1a87e72a33bcc5aa51fe Mon Sep 17 00:00:00 2001 From: JaiOCP Date: Tue, 12 Aug 2025 11:45:48 -0700 Subject: [PATCH 1/5] CSIG Support Signed-off-by: JaiOCP --- inc/saitam.h | 247 +++++++++++++++++++++++++++++++++++++++- inc/saitypes.h | 9 ++ meta/acronyms.txt | 3 + meta/saimetadatatypes.h | 6 + meta/saisanitycheck.c | 13 +++ 5 files changed, 277 insertions(+), 1 deletion(-) diff --git a/inc/saitam.h b/inc/saitam.h index 3e16ab418..9df90e39a 100644 --- a/inc/saitam.h +++ b/inc/saitam.h @@ -481,6 +481,16 @@ typedef enum _sai_tam_int_type_t */ SAI_TAM_INT_TYPE_PATH_TRACING, + /** + * @brief INT type Congestion Signalling compact tag + */ + SAI_TAM_INT_TYPE_CSIG_COMPACT, + + /** + * @brief INT type Congestion Signalling wide tag + */ + SAI_TAM_INT_TYPE_CSIG_WIDE, + } sai_tam_int_type_t; /** @@ -509,8 +519,12 @@ typedef enum _sai_tam_int_presence_type_t /** * @brief INT presence type DSCP */ - SAI_TAM_INT_PRESENCE_TYPE_DSCP + SAI_TAM_INT_PRESENCE_TYPE_DSCP, + /** + * @brief INT presence type Ether Type Code Point + */ + SAI_TAM_INT_PRESENCE_TYPE_ETH_TYPE, } sai_tam_int_presence_type_t; /** @@ -798,6 +812,237 @@ typedef enum _sai_tam_int_attr_t */ SAI_TAM_INT_ATTR_REPORT_ID, + /** + * @brief Ethernet code point value that indicates presence of CSIG compact tag in a packet + * + * @type sai_uint16_t + * @flags MANDATORY_ON_CREATE | CREATE_ONLY + * @isvlan false + * @condition SAI_TAM_INT_ATTR_INT_PRESENCE_TYPE == SAI_TAM_INT_PRESENCE_TYPE_ETH_TYPE and SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT + */ + SAI_TAM_INT_ATTR_ETH_TYPE_CSIG_COMPACT, + + /** + * @brief Ethernet code point value that indicates presence of CSIG wide tag in a packet + * + * @type sai_uint16_t + * @flags MANDATORY_ON_CREATE | CREATE_ONLY + * @isvlan false + * @condition SAI_TAM_INT_ATTR_INT_PRESENCE_TYPE == SAI_TAM_INT_PRESENCE_TYPE_ETH_TYPE and SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_ETH_TYPE_CSIG_WIDE, + + /** + * @brief Enable min available bandwidth signal: min(ABW) + * + * @type bool + * @flags CREATE_AND_SET + * @default false + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT or SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_CSIG_MIN_ABW, + + /** + * @brief Enable relative min available bandwidth signal: min(ABW/C) + * + * @type bool + * @flags CREATE_AND_SET + * @default false + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT or SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_CSIG_MIN_ABW_C, + + /** + * @brief Enable maximum per hop delay signal: max(Delay) + * + * @type bool + * @flags CREATE_AND_SET + * @default false + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT or SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_CSIG_MAX_HOP_DELAY, + + /** + * @brief Enable maximum per hop normalized queue delay signal: max(NQD) + * + * @type bool + * @flags CREATE_AND_SET + * @default false + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT or SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_CSIG_MAX_NQD, + + /** + * @brief Strip the CSIG header and forward the packet + * + * @type bool + * @flags CREATE_AND_SET + * @default false + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT or SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_CSIG_STRIP_AND_FORWARD, + + /** + * @brief Update the D bit indicating the packet is trimmed + * DSCP value configured for TRIM packets comes from the TRIM configuration + * + * @type bool + * @flags CREATE_AND_SET + * @default false + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT or SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_CSIG_D_BIT, + + /** + * @brief Time interval for bandwidth computation in nanosecond + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 256 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT or SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_BW_TIME_INTERVAL, + + /** + * @brief Number of quantization bands support for compact CSIG tag + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 32 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT + */ + SAI_TAM_INT_ATTR_COMPACT_QUANT_BANDS, + + /** + * @brief Number of quantization bands support for wide CSIG tag + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 1048576 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_QUANT_BANDS, + + /** + * @brief Quantization band range values for ABW signal. This is applicable only if ABW signal is enabled. + * + * @type sai_u32_range_list_t + * @flags CREATE_AND_SET + * @default empty + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT + */ + SAI_TAM_INT_ATTR_ABW_QUANT_BAND_UINT32_RANGE_LIST, + + /** + * @brief Quantization band range values for ABW/C signal. This is applicable only if ABW/C signal is enabled. + * + * @type sai_u32_range_list_t + * @flags CREATE_AND_SET + * @default empty + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT + */ + SAI_TAM_INT_ATTR_ABW_C_QUANT_BAND_UINT32_RANGE_LIST, + + /** + * @brief Quantization band range values for delay signal. This is applicable only if delay signal is enabled. + * + * @type sai_u32_range_list_t + * @flags CREATE_AND_SET + * @default empty + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT + */ + SAI_TAM_INT_ATTR_HOP_DELAY_QUANT_BAND_UINT32_RANGE_LIST, + + /** + * @brief Quantization band range values for queue depth signal. This is applicable only if queue depth is enabled. + * + * @type sai_u32_range_list_t + * @flags CREATE_AND_SET + * @default empty + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_COMPACT + */ + SAI_TAM_INT_ATTR_HOP_NQD_QUANT_BAND_UINT32_RANGE_LIST, + + /** + * @brief Base value for CSIG wide tag ABW signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_ABW_QUANT_BASE_VALUE, + + /** + * @brief Step value for CSIG wide tag ABW signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_ABW_QUANT_STEP_VALUE, + + /** + * @brief Base value for CSIG wide tag ABW/C signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_ABW_C_QUANT_BASE_VALUE, + + /** + * @brief Step value for CSIG wide tag ABW/C signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_ABW_C_QUANT_STEP_VALUE, + + /** + * @brief Base value for CSIG wide tag delay signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_HOP_DELAY_QUANT_BASE_VALUE, + + /** + * @brief Step value for CSIG wide tag delay signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_HOP_DELAY_QUANT_STEP_VALUE, + + /** + * @brief Base value for CSIG wide tag queue depth signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_NQD_QUANT_BASE_VALUE, + + /** + * @brief Step value for CSIG wide tag queue depth signal quantization. Must be power of 2 + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + * @validonly SAI_TAM_INT_ATTR_TYPE == SAI_TAM_INT_TYPE_CSIG_WIDE + */ + SAI_TAM_INT_ATTR_WIDE_NQD_QUANT_STEP_VALUE, + /** * @brief End of Attributes */ diff --git a/inc/saitypes.h b/inc/saitypes.h index 066bcac64..e930bc93b 100644 --- a/inc/saitypes.h +++ b/inc/saitypes.h @@ -379,6 +379,12 @@ typedef struct _sai_u16_range_list_t sai_u16_range_t *list; } sai_u16_range_list_t; +typedef struct _sai_u32_range_list_t +{ + uint32_t count; + sai_u32_range_t *list; +} sai_u32_range_list_t; + /** * @brief Defines a vlan list data structure */ @@ -1593,6 +1599,9 @@ typedef union _sai_attribute_value_t /** @validonly meta->attrvaluetype == SAI_ATTR_VALUE_TYPE_UINT16_RANGE_LIST */ sai_u16_range_list_t u16rangelist; + /** @validonly meta->attrvaluetype == SAI_ATTR_VALUE_TYPE_UINT32_RANGE_LIST */ + sai_u32_range_list_t u32rangelist; + /** @validonly meta->attrvaluetype == SAI_ATTR_VALUE_TYPE_VLAN_LIST */ sai_vlan_list_t vlanlist; diff --git a/meta/acronyms.txt b/meta/acronyms.txt index 8ff0c0530..9b0777d06 100644 --- a/meta/acronyms.txt +++ b/meta/acronyms.txt @@ -1,4 +1,5 @@ # this file defines acronyms, one acronym per line +ABW - Available Bandwidth ACL - Access Control List AES - Advanced Encryption Standard AN - Association Number @@ -27,6 +28,7 @@ CMIS - Common Management Interface Specification CPLD - Complex programmable logic device CPU - Central Processing Unit CRC - Cyclic Redundancy Code +CSIG - Congestion Signaling DHCP - Dynamic Host Configuration Protocol DHCPV6 - Dynamic Host Configuration Protocol for IPv6 DLD - Dead Lock Detection @@ -101,6 +103,7 @@ NAPT - Network Address Port Translation NHLFE - Next Hop Label Forwarding Entry NMOS - N-channel Metal Oxide Semiconductor NPU - Numeric Processing Unit +NQD - Normalized Queue Depth NRZ - Non Return to Zero NTPCLIENT - Network Time Protocol Client NTPSERVER - Network Time Protocol Server diff --git a/meta/saimetadatatypes.h b/meta/saimetadatatypes.h index 9643e2c1c..4b2dd4701 100644 --- a/meta/saimetadatatypes.h +++ b/meta/saimetadatatypes.h @@ -500,6 +500,12 @@ typedef enum _sai_attr_value_type_t * @brief Attribute value is port PAM4 eye values list. */ SAI_ATTR_VALUE_TYPE_PORT_PAM4_EYE_VALUES_LIST, + + /** + * @brief Attribute value is 32 bit unsigned integer range list. + */ + SAI_ATTR_VALUE_TYPE_UINT32_RANGE_LIST, + } sai_attr_value_type_t; /** diff --git a/meta/saisanitycheck.c b/meta/saisanitycheck.c index 709479429..7197c46ba 100644 --- a/meta/saisanitycheck.c +++ b/meta/saisanitycheck.c @@ -791,6 +791,7 @@ void check_attr_object_type_provided( case SAI_ATTR_VALUE_TYPE_UINT32_RANGE: case SAI_ATTR_VALUE_TYPE_UINT16_RANGE_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_LIST: + case SAI_ATTR_VALUE_TYPE_UINT32_RANGE_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_MAP_LIST: case SAI_ATTR_VALUE_TYPE_ACL_CAPABILITY: @@ -1161,6 +1162,15 @@ void check_attr_default_required( META_MD_ASSERT_FAIL(md, "default value list is needed on this attr value type but list is NULL"); + case SAI_ATTR_VALUE_TYPE_UINT32_RANGE_LIST: + + if (md->defaultvaluetype == SAI_DEFAULT_VALUE_TYPE_EMPTY_LIST) + { + break; + } + + META_MD_ASSERT_FAIL(md, "default value list is needed on this attr value type but list is NULL"); + case SAI_ATTR_VALUE_TYPE_POINTER: /* @@ -1306,6 +1316,7 @@ void check_attr_default_value_type( switch (md->attrvaluetype) { + case SAI_ATTR_VALUE_TYPE_UINT32_RANGE_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_LIST: case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_UINT8_LIST: @@ -2067,6 +2078,7 @@ void check_attr_allow_flags( case SAI_ATTR_VALUE_TYPE_INT32_LIST: case SAI_ATTR_VALUE_TYPE_VLAN_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_LIST: + case SAI_ATTR_VALUE_TYPE_UINT32_RANGE_LIST: case SAI_ATTR_VALUE_TYPE_QOS_MAP_LIST: case SAI_ATTR_VALUE_TYPE_MAP_LIST: case SAI_ATTR_VALUE_TYPE_ACL_RESOURCE_LIST: @@ -2974,6 +2986,7 @@ void check_attr_is_primitive( case SAI_ATTR_VALUE_TYPE_SYSTEM_PORT_CONFIG_LIST: case SAI_ATTR_VALUE_TYPE_PORT_ERR_STATUS_LIST: case SAI_ATTR_VALUE_TYPE_UINT16_RANGE_LIST: + case SAI_ATTR_VALUE_TYPE_UINT32_RANGE_LIST: case SAI_ATTR_VALUE_TYPE_PORT_LANE_LATCH_STATUS_LIST: case SAI_ATTR_VALUE_TYPE_JSON: case SAI_ATTR_VALUE_TYPE_IP_PREFIX_LIST: From 451baf5d294760d0471a9de9b93d2d00a60a56dd Mon Sep 17 00:00:00 2001 From: JaiOCP Date: Wed, 13 Aug 2025 13:08:57 -0700 Subject: [PATCH 2/5] CSIG Support Signed-off-by: JaiOCP --- inc/saiacl.h | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/inc/saiacl.h b/inc/saiacl.h index c1f2d274f..0ca12fa3b 100644 --- a/inc/saiacl.h +++ b/inc/saiacl.h @@ -1579,10 +1579,19 @@ typedef enum _sai_acl_table_attr_t */ SAI_ACL_TABLE_ATTR_FIELD_DST_PREFIX_META = SAI_ACL_TABLE_ATTR_FIELD_START + 0x161, + /** + * @brief CSIG TRIM Bit D + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_TRIM_BIT = SAI_ACL_TABLE_ATTR_FIELD_START + 0x162, + /** * @brief End of ACL Table Match Field */ - SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_DST_PREFIX_META, + SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_TRIM_BIT, /** * @brief ACL table entries associated with this table. @@ -2707,10 +2716,19 @@ typedef enum _sai_acl_entry_attr_t */ SAI_ACL_ENTRY_ATTR_FIELD_DST_PREFIX_META = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x161, + /** + * @brief CSIG TRIM Bit D + * + * @type sai_acl_field_data_t bool + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_TRIM_BIT = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x162, + /** * @brief End of Rule Match Fields */ - SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_DST_PREFIX_META, + SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_TRIM_BIT, /* * Actions [sai_acl_action_data_t] From eb68c329cd532d4bb4e0376e14127e615a7d0299 Mon Sep 17 00:00:00 2001 From: JaiOCP Date: Wed, 13 Aug 2025 13:54:47 -0700 Subject: [PATCH 3/5] CSIG Support Signed-off-by: JaiOCP --- inc/saiacl.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/inc/saiacl.h b/inc/saiacl.h index 0ca12fa3b..f4c216fbe 100644 --- a/inc/saiacl.h +++ b/inc/saiacl.h @@ -304,6 +304,9 @@ typedef enum _sai_acl_action_type_t /** Bind a TAM object */ SAI_ACL_ACTION_TYPE_TAM_OBJECT = 0x0000003d, + /** Disable update of INT metadata */ + SAI_ACL_ACTION_TYPE_INT_DISABLE = 0x0000003e, + } sai_acl_action_type_t; /** @@ -3374,10 +3377,21 @@ typedef enum _sai_acl_entry_attr_t */ SAI_ACL_ENTRY_ATTR_ACTION_TAM_OBJECT = SAI_ACL_ENTRY_ATTR_ACTION_START + 0x3d, + /** + * @brief Disable INT metadata update + * true: Do not update INT metadata + * false: Update INT metadata + * + * @type sai_acl_action_data_t bool + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_ACTION_INT_DISABLE = SAI_ACL_ENTRY_ATTR_ACTION_START + 0x3e, + /** * @brief End of Rule Actions */ - SAI_ACL_ENTRY_ATTR_ACTION_END = SAI_ACL_ENTRY_ATTR_ACTION_TAM_OBJECT, + SAI_ACL_ENTRY_ATTR_ACTION_END = SAI_ACL_ENTRY_ATTR_ACTION_INT_DISABLE, /** * @brief End of ACL Entry attributes From cb940a1c2e0e87e602f2735a1282620b11849e4c Mon Sep 17 00:00:00 2001 From: JaiOCP Date: Thu, 14 Aug 2025 10:29:36 -0700 Subject: [PATCH 4/5] CSIG Support Signed-off-by: JaiOCP --- inc/saiacl.h | 80 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/inc/saiacl.h b/inc/saiacl.h index f4c216fbe..738bf1588 100644 --- a/inc/saiacl.h +++ b/inc/saiacl.h @@ -1582,6 +1582,42 @@ typedef enum _sai_acl_table_attr_t */ SAI_ACL_TABLE_ATTR_FIELD_DST_PREFIX_META = SAI_ACL_TABLE_ATTR_FIELD_START + 0x161, + /** + * @brief CSIG ABW Signal + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_CSIG_ABW = SAI_ACL_TABLE_ATTR_FIELD_START + 0x162, + + /** + * @brief CSIG ABW/C Signal + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_CSIG_ABW_C = SAI_ACL_TABLE_ATTR_FIELD_START + 0x163, + + /** + * @brief CSIG Delay Signal + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_CSIG_DELAY = SAI_ACL_TABLE_ATTR_FIELD_START + 0x164, + + /** + * @brief CSIG NQD Signal + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_CSIG_NQD = SAI_ACL_TABLE_ATTR_FIELD_START + 0x165, + /** * @brief CSIG TRIM Bit D * @@ -1589,12 +1625,12 @@ typedef enum _sai_acl_table_attr_t * @flags CREATE_ONLY * @default false */ - SAI_ACL_TABLE_ATTR_FIELD_TRIM_BIT = SAI_ACL_TABLE_ATTR_FIELD_START + 0x162, + SAI_ACL_TABLE_ATTR_FIELD_CSIG_D = SAI_ACL_TABLE_ATTR_FIELD_START + 0x166, /** * @brief End of ACL Table Match Field */ - SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_TRIM_BIT, + SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_CSIG_D, /** * @brief ACL table entries associated with this table. @@ -2719,6 +2755,42 @@ typedef enum _sai_acl_entry_attr_t */ SAI_ACL_ENTRY_ATTR_FIELD_DST_PREFIX_META = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x161, + /** + * @brief CSIG ABW Signal + * + * @type sai_acl_field_data_t sai_uint8_t + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_ABW = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x162, + + /** + * @brief CSIG ABW/C Signal + * + * @type sai_acl_field_data_t sai_uint8_t + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_ABW_C = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x163, + + /** + * @brief CSIG Delay Signal + * + * @type sai_acl_field_data_t sai_uint8_t + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_DELAY = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x164, + + /** + * @brief CSIG NQD Signal + * + * @type sai_acl_field_data_t sai_uint8_t + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_NQD = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x165, + /** * @brief CSIG TRIM Bit D * @@ -2726,12 +2798,12 @@ typedef enum _sai_acl_entry_attr_t * @flags CREATE_AND_SET * @default disabled */ - SAI_ACL_ENTRY_ATTR_FIELD_TRIM_BIT = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x162, + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_D = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x166, /** * @brief End of Rule Match Fields */ - SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_TRIM_BIT, + SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_CSIG_D, /* * Actions [sai_acl_action_data_t] From 8e884de847441e05e6d59fe33fd6dd4bf14d0047 Mon Sep 17 00:00:00 2001 From: JaiOCP Date: Mon, 18 Aug 2025 12:49:47 -0700 Subject: [PATCH 5/5] CSIG Support Signed-off-by: JaiOCP --- inc/saiacl.h | 74 ++++++++++++++++++++++++++++++++++----------------- inc/saiport.h | 9 +++++++ 2 files changed, 58 insertions(+), 25 deletions(-) diff --git a/inc/saiacl.h b/inc/saiacl.h index 738bf1588..48ec1284e 100644 --- a/inc/saiacl.h +++ b/inc/saiacl.h @@ -304,9 +304,6 @@ typedef enum _sai_acl_action_type_t /** Bind a TAM object */ SAI_ACL_ACTION_TYPE_TAM_OBJECT = 0x0000003d, - /** Disable update of INT metadata */ - SAI_ACL_ACTION_TYPE_INT_DISABLE = 0x0000003e, - } sai_acl_action_type_t; /** @@ -1582,6 +1579,24 @@ typedef enum _sai_acl_table_attr_t */ SAI_ACL_TABLE_ATTR_FIELD_DST_PREFIX_META = SAI_ACL_TABLE_ATTR_FIELD_START + 0x161, + /** + * @brief EtherType + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_CSIG_COMPACT_ETHER_TYPE = SAI_ACL_TABLE_ATTR_FIELD_START + 0x162, + + /** + * @brief EtherType + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_CSIG_WIDE_ETHER_TYPE = SAI_ACL_TABLE_ATTR_FIELD_START + 0x163, + /** * @brief CSIG ABW Signal * @@ -1589,7 +1604,7 @@ typedef enum _sai_acl_table_attr_t * @flags CREATE_ONLY * @default false */ - SAI_ACL_TABLE_ATTR_FIELD_CSIG_ABW = SAI_ACL_TABLE_ATTR_FIELD_START + 0x162, + SAI_ACL_TABLE_ATTR_FIELD_CSIG_ABW = SAI_ACL_TABLE_ATTR_FIELD_START + 0x164, /** * @brief CSIG ABW/C Signal @@ -1598,7 +1613,7 @@ typedef enum _sai_acl_table_attr_t * @flags CREATE_ONLY * @default false */ - SAI_ACL_TABLE_ATTR_FIELD_CSIG_ABW_C = SAI_ACL_TABLE_ATTR_FIELD_START + 0x163, + SAI_ACL_TABLE_ATTR_FIELD_CSIG_ABW_C = SAI_ACL_TABLE_ATTR_FIELD_START + 0x165, /** * @brief CSIG Delay Signal @@ -1607,7 +1622,7 @@ typedef enum _sai_acl_table_attr_t * @flags CREATE_ONLY * @default false */ - SAI_ACL_TABLE_ATTR_FIELD_CSIG_DELAY = SAI_ACL_TABLE_ATTR_FIELD_START + 0x164, + SAI_ACL_TABLE_ATTR_FIELD_CSIG_DELAY = SAI_ACL_TABLE_ATTR_FIELD_START + 0x166, /** * @brief CSIG NQD Signal @@ -1616,7 +1631,7 @@ typedef enum _sai_acl_table_attr_t * @flags CREATE_ONLY * @default false */ - SAI_ACL_TABLE_ATTR_FIELD_CSIG_NQD = SAI_ACL_TABLE_ATTR_FIELD_START + 0x165, + SAI_ACL_TABLE_ATTR_FIELD_CSIG_NQD = SAI_ACL_TABLE_ATTR_FIELD_START + 0x167, /** * @brief CSIG TRIM Bit D @@ -1625,7 +1640,7 @@ typedef enum _sai_acl_table_attr_t * @flags CREATE_ONLY * @default false */ - SAI_ACL_TABLE_ATTR_FIELD_CSIG_D = SAI_ACL_TABLE_ATTR_FIELD_START + 0x166, + SAI_ACL_TABLE_ATTR_FIELD_CSIG_D = SAI_ACL_TABLE_ATTR_FIELD_START + 0x168, /** * @brief End of ACL Table Match Field @@ -2755,6 +2770,26 @@ typedef enum _sai_acl_entry_attr_t */ SAI_ACL_ENTRY_ATTR_FIELD_DST_PREFIX_META = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x161, + /** + * @brief CSIG Compact Ether Type + * + * @type sai_acl_field_data_t sai_uint16_t + * @flags CREATE_AND_SET + * @isvlan false + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_COMPACT_ETHER_TYPE = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x162, + + /** + * @brief CSIG Wide Ether Type + * + * @type sai_acl_field_data_t sai_uint16_t + * @flags CREATE_AND_SET + * @isvlan false + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_WIDE_ETHER_TYPE = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x163, + /** * @brief CSIG ABW Signal * @@ -2762,7 +2797,7 @@ typedef enum _sai_acl_entry_attr_t * @flags CREATE_AND_SET * @default disabled */ - SAI_ACL_ENTRY_ATTR_FIELD_CSIG_ABW = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x162, + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_ABW = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x164, /** * @brief CSIG ABW/C Signal @@ -2771,7 +2806,7 @@ typedef enum _sai_acl_entry_attr_t * @flags CREATE_AND_SET * @default disabled */ - SAI_ACL_ENTRY_ATTR_FIELD_CSIG_ABW_C = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x163, + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_ABW_C = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x165, /** * @brief CSIG Delay Signal @@ -2780,7 +2815,7 @@ typedef enum _sai_acl_entry_attr_t * @flags CREATE_AND_SET * @default disabled */ - SAI_ACL_ENTRY_ATTR_FIELD_CSIG_DELAY = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x164, + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_DELAY = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x166, /** * @brief CSIG NQD Signal @@ -2789,7 +2824,7 @@ typedef enum _sai_acl_entry_attr_t * @flags CREATE_AND_SET * @default disabled */ - SAI_ACL_ENTRY_ATTR_FIELD_CSIG_NQD = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x165, + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_NQD = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x167, /** * @brief CSIG TRIM Bit D @@ -2798,7 +2833,7 @@ typedef enum _sai_acl_entry_attr_t * @flags CREATE_AND_SET * @default disabled */ - SAI_ACL_ENTRY_ATTR_FIELD_CSIG_D = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x166, + SAI_ACL_ENTRY_ATTR_FIELD_CSIG_D = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x168, /** * @brief End of Rule Match Fields @@ -3449,21 +3484,10 @@ typedef enum _sai_acl_entry_attr_t */ SAI_ACL_ENTRY_ATTR_ACTION_TAM_OBJECT = SAI_ACL_ENTRY_ATTR_ACTION_START + 0x3d, - /** - * @brief Disable INT metadata update - * true: Do not update INT metadata - * false: Update INT metadata - * - * @type sai_acl_action_data_t bool - * @flags CREATE_AND_SET - * @default disabled - */ - SAI_ACL_ENTRY_ATTR_ACTION_INT_DISABLE = SAI_ACL_ENTRY_ATTR_ACTION_START + 0x3e, - /** * @brief End of Rule Actions */ - SAI_ACL_ENTRY_ATTR_ACTION_END = SAI_ACL_ENTRY_ATTR_ACTION_INT_DISABLE, + SAI_ACL_ENTRY_ATTR_ACTION_END = SAI_ACL_ENTRY_ATTR_ACTION_TAM_OBJECT, /** * @brief End of ACL Entry attributes diff --git a/inc/saiport.h b/inc/saiport.h index ae7196fbb..27918345b 100644 --- a/inc/saiport.h +++ b/inc/saiport.h @@ -2687,6 +2687,15 @@ typedef enum _sai_port_attr_t */ SAI_PORT_ATTR_PAM4_EYE_VALUES, + /** + * @brief Enable INT metadata deletion + * + * @type bool + * @flags CREATE_AND_SET + * @default false + */ + SAI_PORT_ATTR_INT_DELETE, + /** * @brief End of attributes */