diff --git a/inc/saiacl.h b/inc/saiacl.h index 5ebfd6cb8..e2e6609d2 100644 --- a/inc/saiacl.h +++ b/inc/saiacl.h @@ -1588,10 +1588,19 @@ typedef enum _sai_acl_table_attr_t */ SAI_ACL_TABLE_ATTR_FIELD_NEXT_HOP_USER_META = SAI_ACL_TABLE_ATTR_FIELD_START + 0x162, + /** + * @brief Router Interface User metadata + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_ROUTER_INTERFACE_USER_META = SAI_ACL_TABLE_ATTR_FIELD_START + 0x163, + /** * @brief End of ACL Table Match Field */ - SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_NEXT_HOP_USER_META, + SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_ROUTER_INTERFACE_USER_META, /** * @brief ACL table entries associated with this table. @@ -2728,10 +2737,25 @@ typedef enum _sai_acl_entry_attr_t */ SAI_ACL_ENTRY_ATTR_FIELD_NEXT_HOP_USER_META = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x162, + /** + * @brief Router Interface User metadata + * + * Value must be in the range defined in + * #SAI_SWITCH_ATTR_ROUTER_INTERFACE_META_DATA_INGRESS_RANGE + * SAI_ROUTER_INTERFACE_ATTR_META_DATA_INGRESS in SAI_ACL_STAGE_POST_INGRESS stage + * or #SAI_SWITCH_ATTR_ROUTER_INTERFACE_META_DATA_EGRESS_RANGE + * SAI_ROUTER_INTERFACE_ATTR_META_DATA_EGRESS in SAI_ACL_STAGE_EGRESS stage + * + * @type sai_acl_field_data_t sai_uint32_t + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_ROUTER_INTERFACE_USER_META = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x163, + /** * @brief End of Rule Match Fields */ - SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_NEXT_HOP_USER_META, + SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_ROUTER_INTERFACE_USER_META, /* * Actions [sai_acl_action_data_t] diff --git a/inc/sairouterinterface.h b/inc/sairouterinterface.h index 9a9ba030a..5ac26ea66 100644 --- a/inc/sairouterinterface.h +++ b/inc/sairouterinterface.h @@ -342,6 +342,28 @@ typedef enum _sai_router_interface_attr_t */ SAI_ROUTER_INTERFACE_ATTR_MY_MAC, + /** + * @brief User based Meta Data Ingress + * + * Value Range #SAI_SWITCH_ATTR_ROUTER_INTERFACE_META_DATA_INGRESS_RANGE for Ingress stage. + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + */ + SAI_ROUTER_INTERFACE_ATTR_META_DATA_INGRESS, + + /** + * @brief User based Meta Data Egress + * + * Value Range #SAI_SWITCH_ATTR_ROUTER_INTERFACE_META_DATA_EGRESS_RANGE for Egress stage. + * + * @type sai_uint32_t + * @flags CREATE_AND_SET + * @default 0 + */ + SAI_ROUTER_INTERFACE_ATTR_META_DATA_EGRESS, + /** * @brief End of attributes */ diff --git a/inc/saiswitch.h b/inc/saiswitch.h index 81e09809b..d2a6d3da0 100644 --- a/inc/saiswitch.h +++ b/inc/saiswitch.h @@ -3468,6 +3468,22 @@ typedef enum _sai_switch_attr_t */ SAI_SWITCH_ATTR_NEXT_HOP_USER_META_DATA_RANGE, + /** + * @brief Ingress Router Interface user-based meta data range + * + * @type sai_u32_range_t + * @flags READ_ONLY + */ + SAI_SWITCH_ATTR_ROUTER_INTERFACE_META_DATA_INGRESS_RANGE, + + /** + * @brief Egress Router Interface user-based meta data range + * + * @type sai_u32_range_t + * @flags READ_ONLY + */ + SAI_SWITCH_ATTR_ROUTER_INTERFACE_META_DATA_EGRESS_RANGE, + /** * @brief End of attributes */