From d56bb79593a709f98cb28e50a0fb8bb3f8f781fb Mon Sep 17 00:00:00 2001 From: Mobin Mohan Date: Fri, 10 Apr 2026 00:38:39 +0000 Subject: [PATCH] Add SAI_ACL_TABLE_ATTR_FIELD_ACL_MIRROR_COPY_TYPE This change introduces a new ACL match field `MIRROR_COPY_TYPE` to allow ACLs to match based on whether the packet is a mirror copy. It allows ACLs to match based on the type of mirror copy (Ingress, Egress, or Any) Signed-off-by: Mobin Mohan --- inc/saiacl.h | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) 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]