|
2 | 2 |
|
3 | 3 | from dvslib.dvs_common import wait_for_result
|
4 | 4 |
|
| 5 | +L3_TABLE_TYPE = "L3" |
| 6 | +L3_TABLE_NAME = "L3_TEST" |
| 7 | +L3_BIND_PORTS = ["Ethernet0"] |
| 8 | +L3_RULE_NAME = "L3_TEST_RULE" |
5 | 9 |
|
6 | 10 | class TestNat(object):
|
7 | 11 | def setup_db(self, dvs):
|
@@ -320,6 +324,35 @@ def _check_conntrack_for_static_entry():
|
320 | 324 | # delete a static nat entry
|
321 | 325 | dvs.runcmd("config nat remove static basic 67.66.65.1 18.18.18.2")
|
322 | 326 |
|
| 327 | + def test_DoNotNatAclAction(self, dvs_acl, testlog): |
| 328 | + |
| 329 | + # Creating the ACL Table |
| 330 | + dvs_acl.create_acl_table(L3_TABLE_NAME, L3_TABLE_TYPE, L3_BIND_PORTS, stage="ingress") |
| 331 | + |
| 332 | + acl_table_id = dvs_acl.get_acl_table_ids(1)[0] |
| 333 | + acl_table_group_ids = dvs_acl.get_acl_table_group_ids(len(L3_BIND_PORTS)) |
| 334 | + |
| 335 | + dvs_acl.verify_acl_table_group_members(acl_table_id, acl_table_group_ids, 1) |
| 336 | + dvs_acl.verify_acl_table_port_binding(acl_table_id, L3_BIND_PORTS, 1) |
| 337 | + |
| 338 | + # Create a ACL Rule with "do_not_nat" packet action |
| 339 | + config_qualifiers = {"SRC_IP": "14.1.0.1/32"} |
| 340 | + dvs_acl.create_acl_rule(L3_TABLE_NAME, L3_RULE_NAME, config_qualifiers, action="DO_NOT_NAT", priority="97") |
| 341 | + |
| 342 | + expected_sai_qualifiers = { |
| 343 | + "SAI_ACL_ENTRY_ATTR_FIELD_SRC_IP": dvs_acl.get_simple_qualifier_comparator("14.1.0.1&mask:255.255.255.255") |
| 344 | + } |
| 345 | + |
| 346 | + dvs_acl.verify_nat_acl_rule(expected_sai_qualifiers, priority="97") |
| 347 | + |
| 348 | + # Deleting the ACL Rule |
| 349 | + dvs_acl.remove_acl_rule(L3_TABLE_NAME, L3_RULE_NAME) |
| 350 | + dvs_acl.verify_no_acl_rules() |
| 351 | + |
| 352 | + # Deleting the ACL Table |
| 353 | + dvs_acl.remove_acl_table(L3_TABLE_NAME) |
| 354 | + dvs_acl.verify_acl_table_count(0) |
| 355 | + |
323 | 356 |
|
324 | 357 | # Add Dummy always-pass test at end as workaroud
|
325 | 358 | # for issue when Flaky fail on final test it invokes module tear-down before retrying
|
|
0 commit comments