X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_acl_plugin_macip.py;h=611bc73e312e5506024e58db6193c329f0a1d75b;hb=b474380f;hp=d27458d7df07fdf0c75d8b56b4db7f74cef820a2;hpb=8daa80a4adfd82a19017c2c12554a8a43dddccd7;p=vpp.git diff --git a/test/test_acl_plugin_macip.py b/test/test_acl_plugin_macip.py index d27458d7df0..611bc73e312 100644 --- a/test/test_acl_plugin_macip.py +++ b/test/test_acl_plugin_macip.py @@ -16,6 +16,7 @@ from framework import VppTestCase, VppTestRunner, running_extended_tests from vpp_lo_interface import VppLoInterface from vpp_papi_provider import L2_VTR_OP from vpp_sub_interface import VppSubInterface, VppDot1QSubint, VppDot1ADSubint +from vpp_papi_provider import L2_PORT_TYPE class MethodHolder(VppTestCase): @@ -63,7 +64,7 @@ class MethodHolder(VppTestCase): try: # create 4 pg interfaces, 1 loopback interface cls.create_pg_interfaces(range(4)) - cls.create_loopback_interfaces(range(1)) + cls.create_loopback_interfaces(1) # create 2 subinterfaces cls.subifs = [ @@ -90,7 +91,8 @@ class MethodHolder(VppTestCase): # Create BD with MAC learning enabled and put interfaces to this BD cls.vapi.sw_interface_set_l2_bridge( - cls.loop0.sw_if_index, bd_id=cls.bd_id, bvi=1) + cls.loop0.sw_if_index, bd_id=cls.bd_id, + port_type=L2_PORT_TYPE.BVI) cls.vapi.sw_interface_set_l2_bridge( cls.pg0.sw_if_index, bd_id=cls.bd_id) cls.vapi.sw_interface_set_l2_bridge( @@ -287,13 +289,10 @@ class MethodHolder(VppTestCase): reply = self.vapi.macip_acl_dump() self.assertEqual(len(reply), 0) - intf_acls = self.vapi.ppcli("sh acl-plugin interface").split( - "\nsw_if_index") + intf_acls = self.vapi.acl_interface_list_dump() for i_a in intf_acls: - ia = i_a.split(":") - if len(ia) == 3: - sw_if_index = int(ia[0]) - acl_index = int(ia[2]) + sw_if_index = i_a.sw_if_index + for acl_index in i_a.acls: self.vapi.acl_interface_add_del(sw_if_index, acl_index, 0) self.vapi.acl_del(acl_index) @@ -588,7 +587,8 @@ class MethodHolder(VppTestCase): def run_traffic(self, mac_type, ip_type, traffic, is_ip6, packets, do_not_expected_capture=False, tags=None, - apply_rules=True, isMACIP=True, permit_tags=PERMIT_TAGS): + apply_rules=True, isMACIP=True, permit_tags=PERMIT_TAGS, + try_replace=False): self.reset_packet_infos() if tags is None: @@ -650,6 +650,15 @@ class MethodHolder(VppTestCase): self.vapi.macip_acl_interface_add_del( sw_if_index=tx_if.sw_if_index, acl_index=0) + if try_replace: + if isMACIP: + reply = self.vapi.macip_acl_add_replace( + test_dict['macip_rules'], + acl_index) + else: + reply = self.vapi.acl_add_replace(acl_index=acl_index, + r=test_dict['acl_rules']) + self.assertEqual(reply.retval, 0) if not isinstance(src_if, VppSubInterface): tx_if.add_stream(test_dict['stream']) @@ -812,16 +821,9 @@ class TestMACIP_IP4(MethodHolder): """ MACIP replace ACL with IP4 traffic """ self.run_traffic(self.OUI_MAC, self.SUBNET_IP, - self.BRIDGED, self.IS_IP4, 9) - - r = self.create_rules() - # replace acls #2, #3 with new - reply = self.vapi.macip_acl_add_replace(r[0], 0) - self.assertEqual(reply.retval, 0) - self.assertEqual(reply.acl_index, 0) - + self.BRIDGED, self.IS_IP4, 9, try_replace=True) self.run_traffic(self.EXACT_MAC, self.EXACT_IP, - self.BRIDGED, self.IS_IP4, 9, True) + self.BRIDGED, self.IS_IP4, 9, try_replace=True) class TestMACIP_IP6(MethodHolder): @@ -957,16 +959,9 @@ class TestMACIP_IP6(MethodHolder): """ MACIP replace ACL with IP6 traffic """ self.run_traffic(self.OUI_MAC, self.SUBNET_IP, - self.BRIDGED, self.IS_IP6, 9) - - r = self.create_rules() - # replace acls #2, #3 with new - reply = self.vapi.macip_acl_add_replace(r[0], 0) - self.assertEqual(reply.retval, 0) - self.assertEqual(reply.acl_index, 0) - + self.BRIDGED, self.IS_IP6, 9, try_replace=True) self.run_traffic(self.EXACT_MAC, self.EXACT_IP, - self.BRIDGED, self.IS_IP6, 9, True) + self.BRIDGED, self.IS_IP6, 9, try_replace=True) class TestMACIP(MethodHolder): @@ -1087,8 +1082,8 @@ class TestMACIP(MethodHolder): self.apply_macip_rules(self.create_rules(acl_count=3, rules_count=[3, 5, 4])) - intf.append(VppLoInterface(self, 0)) - intf.append(VppLoInterface(self, 1)) + intf.append(VppLoInterface(self)) + intf.append(VppLoInterface(self)) sw_if_index0 = intf[0].sw_if_index self.vapi.macip_acl_interface_add_del(sw_if_index0, 1) @@ -1110,8 +1105,8 @@ class TestMACIP(MethodHolder): self.assertEqual(reply.acls[sw_if_index0], 4294967295) self.assertEqual(reply.acls[sw_if_index1], 0) - intf.append(VppLoInterface(self, 2)) - intf.append(VppLoInterface(self, 3)) + intf.append(VppLoInterface(self)) + intf.append(VppLoInterface(self)) sw_if_index2 = intf[2].sw_if_index sw_if_index3 = intf[3].sw_if_index self.vapi.macip_acl_interface_add_del(sw_if_index2, 1) @@ -1122,6 +1117,12 @@ class TestMACIP(MethodHolder): self.assertEqual(reply.acls[sw_if_index1], 0) self.assertEqual(reply.acls[sw_if_index2], 1) self.assertEqual(reply.acls[sw_if_index3], 1) + self.logger.info("MACIP ACL on multiple interfaces:") + self.logger.info(self.vapi.ppcli("sh acl-plugin macip acl")) + self.logger.info(self.vapi.ppcli("sh acl-plugin macip acl index 1234")) + self.logger.info(self.vapi.ppcli("sh acl-plugin macip acl index 1")) + self.logger.info(self.vapi.ppcli("sh acl-plugin macip acl index 0")) + self.logger.info(self.vapi.ppcli("sh acl-plugin macip interface")) intf[2].remove_vpp_config() intf[1].remove_vpp_config()