diff --git a/inc/saiacl.h b/inc/saiacl.h index 4989c3d16..762abfb5a 100644 --- a/inc/saiacl.h +++ b/inc/saiacl.h @@ -587,6 +587,24 @@ typedef enum _sai_acl_table_group_member_attr_t } sai_acl_table_group_member_attr_t; +/** + * @brief Mirror copy type for ACL matching + */ +typedef enum _sai_acl_mirror_copy_type_t +{ + /** Match packets that are not mirror copies */ + SAI_ACL_MIRROR_COPY_TYPE_NONE, + + /** Match packets that are ingress mirror copies */ + SAI_ACL_MIRROR_COPY_TYPE_INGRESS, + + /** Match packets that are egress mirror copies */ + SAI_ACL_MIRROR_COPY_TYPE_EGRESS, + + /** Match packets that are any mirror copy (either ingress or egress) */ + SAI_ACL_MIRROR_COPY_TYPE_ANY +} sai_acl_mirror_copy_type_t; + /** * @brief ACL User Defined Field Attribute ID Range */ @@ -1647,10 +1665,19 @@ typedef enum _sai_acl_table_attr_t */ SAI_ACL_TABLE_ATTR_FIELD_CSIG_D_BIT = SAI_ACL_TABLE_ATTR_FIELD_START + 0x166, + /** + * @brief Match on mirror copy type + * + * @type bool + * @flags CREATE_ONLY + * @default false + */ + SAI_ACL_TABLE_ATTR_FIELD_ACL_MIRROR_COPY_TYPE = SAI_ACL_TABLE_ATTR_FIELD_START + 0x167, + /** * @brief End of ACL Table Match Field */ - SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_CSIG_D_BIT, + SAI_ACL_TABLE_ATTR_FIELD_END = SAI_ACL_TABLE_ATTR_FIELD_ACL_MIRROR_COPY_TYPE, /** * @brief ACL table entries associated with this table. @@ -2825,10 +2852,19 @@ typedef enum _sai_acl_entry_attr_t */ SAI_ACL_ENTRY_ATTR_FIELD_CSIG_D_BIT = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x166, + /** + * @brief Match on mirror copy type + * + * @type sai_acl_field_data_t sai_acl_mirror_copy_type_t + * @flags CREATE_AND_SET + * @default disabled + */ + SAI_ACL_ENTRY_ATTR_FIELD_ACL_MIRROR_COPY_TYPE = SAI_ACL_ENTRY_ATTR_FIELD_START + 0x167, + /** * @brief End of Rule Match Fields */ - SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_CSIG_D_BIT, + SAI_ACL_ENTRY_ATTR_FIELD_END = SAI_ACL_ENTRY_ATTR_FIELD_ACL_MIRROR_COPY_TYPE, /* * Actions [sai_acl_action_data_t]