From 44125bc0e1e29b30730ed5a0375387358cee67a5 Mon Sep 17 00:00:00 2001 From: Sihui Han Date: Wed, 30 Aug 2017 00:16:17 +0000 Subject: [PATCH 1/2] [AclOrch]: add match tc support for acl rule --- orchagent/aclorch.cpp | 11 +++++++++++ orchagent/aclorch.h | 1 + 2 files changed, 12 insertions(+) diff --git a/orchagent/aclorch.cpp b/orchagent/aclorch.cpp index cbe66cf0f5..56b9f749a4 100644 --- a/orchagent/aclorch.cpp +++ b/orchagent/aclorch.cpp @@ -36,6 +36,7 @@ acl_rule_attr_lookup_t aclMatchLookup = { MATCH_TCP_FLAGS, SAI_ACL_ENTRY_ATTR_FIELD_TCP_FLAGS }, { MATCH_IP_TYPE, SAI_ACL_ENTRY_ATTR_FIELD_ACL_IP_TYPE }, { MATCH_DSCP, SAI_ACL_ENTRY_ATTR_FIELD_DSCP }, + { MATCH_TC, SAI_ACL_ENTRY_ATTR_FIELD_TC }, { MATCH_L4_SRC_PORT_RANGE, (sai_acl_entry_attr_t)SAI_ACL_RANGE_TYPE_L4_SRC_PORT_RANGE }, { MATCH_L4_DST_PORT_RANGE, (sai_acl_entry_attr_t)SAI_ACL_RANGE_TYPE_L4_DST_PORT_RANGE }, }; @@ -226,6 +227,12 @@ bool AclRule::validateAddMatch(string attr_name, string attr_value) return false; } } + else if(attr_name == MATCH_TC) + { + value.aclfield.data.u8 = to_uint(attr_value); + value.aclfield.mask.u8 =0xFF; + } + } catch (exception &e) { @@ -1441,6 +1448,10 @@ sai_status_t AclOrch::createBindAclTable(AclTable &aclTable, sai_object_id_t &ta attr.value.booldata = true; table_attrs.push_back(attr); + attr.id = SAI_ACL_TABLE_ATTR_FIELD_TC; + attr.value.booldata = true; + table_attrs.push_back(attr); + if (aclTable.type == ACL_TABLE_MIRROR) { attr.id = SAI_ACL_TABLE_ATTR_FIELD_DSCP; diff --git a/orchagent/aclorch.h b/orchagent/aclorch.h index ab176a08d1..e4180114a0 100644 --- a/orchagent/aclorch.h +++ b/orchagent/aclorch.h @@ -37,6 +37,7 @@ #define MATCH_DSCP "DSCP" #define MATCH_L4_SRC_PORT_RANGE "L4_SRC_PORT_RANGE" #define MATCH_L4_DST_PORT_RANGE "L4_DST_PORT_RANGE" +#define MATCH_TC "TC" #define ACTION_PACKET_ACTION "PACKET_ACTION" #define ACTION_MIRROR_ACTION "MIRROR_ACTION" From 19d0ecc777a7e3fd6ac35d0278669cc2fd8ede69 Mon Sep 17 00:00:00 2001 From: Sihui Han Date: Wed, 30 Aug 2017 22:36:53 +0000 Subject: [PATCH 2/2] update --- orchagent/aclorch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orchagent/aclorch.cpp b/orchagent/aclorch.cpp index 56b9f749a4..87b408cadb 100644 --- a/orchagent/aclorch.cpp +++ b/orchagent/aclorch.cpp @@ -230,7 +230,7 @@ bool AclRule::validateAddMatch(string attr_name, string attr_value) else if(attr_name == MATCH_TC) { value.aclfield.data.u8 = to_uint(attr_value); - value.aclfield.mask.u8 =0xFF; + value.aclfield.mask.u8 = 0xFF; } }