Skip to content

Commit a9867e6

Browse files
authored
Fix acl match ip_type_non_ipv4 and ip_type_non_ipv6. (#2842)
*Fix acl match ip_type_non_ipv4 and ip_type_non_ipv6.
1 parent dc8fd20 commit a9867e6

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

orchagent/aclorch.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@
8686
#define IP_TYPE_IP "IP"
8787
#define IP_TYPE_NON_IP "NON_IP"
8888
#define IP_TYPE_IPv4ANY "IPV4ANY"
89-
#define IP_TYPE_NON_IPv4 "NON_IPv4"
89+
#define IP_TYPE_NON_IPv4 "NON_IPV4"
9090
#define IP_TYPE_IPv6ANY "IPV6ANY"
91-
#define IP_TYPE_NON_IPv6 "NON_IPv6"
91+
#define IP_TYPE_NON_IPv6 "NON_IPV6"
9292
#define IP_TYPE_ARP "ARP"
9393
#define IP_TYPE_ARP_REQUEST "ARP_REQUEST"
9494
#define IP_TYPE_ARP_REPLY "ARP_REPLY"

tests/test_acl.py

+32
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,22 @@ def test_AclRuleVlanId(self, dvs_acl, l3_acl_table):
314314
dvs_acl.verify_acl_rule_status(L3_TABLE_NAME, L3_RULE_NAME, None)
315315
dvs_acl.verify_no_acl_rules()
316316

317+
def test_AclRuleIPTypeNonIpv4(self, dvs_acl, l3_acl_table):
318+
config_qualifiers = {"IP_TYPE": "NON_IPv4"}
319+
expected_sai_qualifiers = {
320+
"SAI_ACL_ENTRY_ATTR_FIELD_ACL_IP_TYPE": dvs_acl.get_simple_qualifier_comparator("SAI_ACL_IP_TYPE_NON_IPV4&mask:0xffffffffffffffff")
321+
}
322+
323+
dvs_acl.create_acl_rule(L3_TABLE_NAME, L3_RULE_NAME, config_qualifiers)
324+
# Verify status is written into STATE_DB
325+
dvs_acl.verify_acl_rule_status(L3_TABLE_NAME, L3_RULE_NAME, "Active")
326+
dvs_acl.verify_acl_rule(expected_sai_qualifiers)
327+
328+
dvs_acl.remove_acl_rule(L3_TABLE_NAME, L3_RULE_NAME)
329+
# Verify the STATE_DB entry is removed
330+
dvs_acl.verify_acl_rule_status(L3_TABLE_NAME, L3_RULE_NAME, None)
331+
dvs_acl.verify_no_acl_rules()
332+
317333
def test_V6AclTableCreationDeletion(self, dvs_acl):
318334
try:
319335
dvs_acl.create_acl_table(L3V6_TABLE_NAME,
@@ -332,6 +348,22 @@ def test_V6AclTableCreationDeletion(self, dvs_acl):
332348
dvs_acl.verify_acl_table_status(L3V6_TABLE_NAME, None)
333349
dvs_acl.verify_acl_table_count(0)
334350

351+
def test_V6AclRuleIPTypeNonIpv6(self, dvs_acl, l3v6_acl_table):
352+
config_qualifiers = {"IP_TYPE": "NON_IPv6"}
353+
expected_sai_qualifiers = {
354+
"SAI_ACL_ENTRY_ATTR_FIELD_ACL_IP_TYPE": dvs_acl.get_simple_qualifier_comparator("SAI_ACL_IP_TYPE_NON_IPV6&mask:0xffffffffffffffff")
355+
}
356+
357+
dvs_acl.create_acl_rule(L3V6_TABLE_NAME, L3V6_RULE_NAME, config_qualifiers)
358+
# Verify status is written into STATE_DB
359+
dvs_acl.verify_acl_rule_status(L3V6_TABLE_NAME, L3V6_RULE_NAME, "Active")
360+
dvs_acl.verify_acl_rule(expected_sai_qualifiers)
361+
362+
dvs_acl.remove_acl_rule(L3V6_TABLE_NAME, L3V6_RULE_NAME)
363+
# Verify the STATE_DB entry is removed
364+
dvs_acl.verify_acl_rule_status(L3V6_TABLE_NAME, L3V6_RULE_NAME, None)
365+
dvs_acl.verify_no_acl_rules()
366+
335367
def test_V6AclRuleIPv6Any(self, dvs_acl, l3v6_acl_table):
336368
config_qualifiers = {"IP_TYPE": "IPv6ANY"}
337369
expected_sai_qualifiers = {

0 commit comments

Comments
 (0)