@@ -1414,6 +1414,7 @@ namespace aclorch_test
14141414 // Table not created without table type
14151415 ASSERT_FALSE (orch->getAclTable (aclTableName));
14161416
1417+ auto matches = string (MATCH_SRC_IP) + comma + MATCH_ETHER_TYPE + comma + MATCH_L4_SRC_PORT_RANGE + comma + MATCH_BTH_OPCODE + comma + MATCH_AETH_SYNDROME + comma + MATCH_TUNNEL_TERM;
14171418 orch->doAclTableTypeTask (
14181419 deque<KeyOpFieldsValuesTuple>(
14191420 {
@@ -1423,7 +1424,7 @@ namespace aclorch_test
14231424 {
14241425 {
14251426 ACL_TABLE_TYPE_MATCHES,
1426- string (MATCH_SRC_IP) + comma + MATCH_ETHER_TYPE + comma + MATCH_L4_SRC_PORT_RANGE + comma + MATCH_BTH_OPCODE + comma + MATCH_AETH_SYNDROME
1427+ matches
14271428 },
14281429 {
14291430 ACL_TABLE_TYPE_BPOINT_TYPES,
@@ -1447,6 +1448,7 @@ namespace aclorch_test
14471448 { " SAI_ACL_TABLE_ATTR_FIELD_ACL_RANGE_TYPE" , " 1:SAI_ACL_RANGE_TYPE_L4_SRC_PORT_RANGE" },
14481449 { " SAI_ACL_TABLE_ATTR_FIELD_BTH_OPCODE" , " true" },
14491450 { " SAI_ACL_TABLE_ATTR_FIELD_AETH_SYNDROME" , " true" },
1451+ { " SAI_ACL_TABLE_ATTR_FIELD_TUNNEL_TERMINATED" , " true" },
14501452 };
14511453
14521454 ASSERT_TRUE (validateAclTable (
@@ -1563,18 +1565,69 @@ namespace aclorch_test
15631565
15641566 ASSERT_FALSE (orch->getAclRule (aclTableName, aclRuleName));
15651567
1566- orch->doAclTableTypeTask (
1568+ // Verify ACL_RULE with TUNN_TERM attribute
1569+ orch->doAclRuleTask (
15671570 deque<KeyOpFieldsValuesTuple>(
15681571 {
15691572 {
1570- aclTableTypeName,
1573+ aclTableName + " |" + " TUNN_TERM_RULE0" ,
1574+ SET_COMMAND,
1575+ {
1576+ { MATCH_SRC_IP, " 1.1.1.1/32" },
1577+ { ACTION_PACKET_ACTION, PACKET_ACTION_DROP },
1578+ { MATCH_TUNNEL_TERM, " true" }
1579+ }
1580+ },
1581+ {
1582+ aclTableName + " |" + " TUNN_TERM_RULE1" ,
1583+ SET_COMMAND,
1584+ {
1585+ { MATCH_SRC_IP, " 2.1.1.1/32" },
1586+ { ACTION_PACKET_ACTION, PACKET_ACTION_DROP },
1587+ { MATCH_TUNNEL_TERM, " false" }
1588+ }
1589+ }
1590+ }
1591+ )
1592+ );
1593+
1594+ // Verify if the rules are created
1595+ ASSERT_TRUE (orch->getAclRule (aclTableName, " TUNN_TERM_RULE0" ));
1596+ ASSERT_TRUE (orch->getAclRule (aclTableName, " TUNN_TERM_RULE1" ));
1597+
1598+ orch->doAclRuleTask (
1599+ deque<KeyOpFieldsValuesTuple>(
1600+ {
1601+ {
1602+ aclTableName + " |" + " TUNN_TERM_RULE0" ,
1603+ DEL_COMMAND,
1604+ {}
1605+ },
1606+ {
1607+ aclTableName + " |" + " TUNN_TERM_RULE1" ,
15711608 DEL_COMMAND,
15721609 {}
15731610 }
15741611 }
15751612 )
15761613 );
15771614
1615+ // Make sure the rules are deleted
1616+ ASSERT_FALSE (orch->getAclRule (aclTableName, " TUNN_TERM_RULE0" ));
1617+ ASSERT_FALSE (orch->getAclRule (aclTableName, " TUNN_TERM_RULE1" ));
1618+
1619+ orch->doAclTableTypeTask (
1620+ deque<KeyOpFieldsValuesTuple>(
1621+ {
1622+ {
1623+ aclTableTypeName,
1624+ DEL_COMMAND,
1625+ {}
1626+ }
1627+ }
1628+ )
1629+ );
1630+
15781631 // Table still exists
15791632 ASSERT_TRUE (orch->getAclTable (aclTableName));
15801633 ASSERT_FALSE (orch->getAclTableType (aclTableTypeName));
0 commit comments