X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_ip6_vrf_multi_instance.py;h=88aed978d97ce6177022e0104cbc2cff70f1cf24;hb=0e402a98b20fbb7c5b715abd038c244c539bad36;hp=7284e2e02ed557216e511f2774bca52c3d9fb46b;hpb=9a475373ed9b1ff9952acc06353ddaa50c2c96bd;p=vpp.git diff --git a/test/test_ip6_vrf_multi_instance.py b/test/test_ip6_vrf_multi_instance.py index 7284e2e02ed..88aed978d97 100644 --- a/test/test_ip6_vrf_multi_instance.py +++ b/test/test_ip6_vrf_multi_instance.py @@ -17,7 +17,7 @@ - send IP6 packets between all pg-ip6 interfaces in all VRF groups **verify 1** - - check VRF data by parsing output of ip6_fib_dump API command + - check VRF data by parsing output of ip_route_dump API command - all packets received correctly in case of pg-ip6 interfaces in the same VRF - no packet received in case of pg-ip6 interfaces not in VRF @@ -30,7 +30,7 @@ - send IP6 packets between all pg-ip6 interfaces in all VRF groups **verify 2** - - check VRF data by parsing output of ip6_fib_dump API command + - check VRF data by parsing output of ip_route_dump API command - all packets received correctly in case of pg-ip6 interfaces in the same VRF - no packet received in case of pg-ip6 interfaces not in VRF @@ -43,7 +43,7 @@ - send IP6 packets between all pg-ip6 interfaces in all VRF groups **verify 3** - - check VRF data by parsing output of ip6_fib_dump API command + - check VRF data by parsing output of ip_route_dump API command - all packets received correctly in case of pg-ip6 interfaces in the same VRF - no packet received in case of pg-ip6 interfaces not in VRF @@ -56,7 +56,7 @@ - send IP6 packets between all pg-ip6 interfaces in all VRF groups **verify 4** - - check VRF data by parsing output of ip6_fib_dump API command + - check VRF data by parsing output of ip_route_dump API command - all packets received correctly in case of pg-ip6 interfaces in the same VRF - no packet received in case of pg-ip6 interfaces not in VRF @@ -160,6 +160,10 @@ class TestIP6VrfMultiInst(VppTestCase): super(TestIP6VrfMultiInst, cls).tearDownClass() raise + @classmethod + def tearDownClass(cls): + super(TestIP6VrfMultiInst, cls).tearDownClass() + def setUp(self): """ Clear trace and packet infos before running each test. @@ -172,9 +176,10 @@ class TestIP6VrfMultiInst(VppTestCase): Show various debug prints after each test. """ super(TestIP6VrfMultiInst, self).tearDown() - if not self.vpp_dead: - self.logger.info(self.vapi.ppcli("show ip6 fib")) - self.logger.info(self.vapi.ppcli("show ip6 neighbors")) + + def show_commands_at_teardown(self): + self.logger.info(self.vapi.ppcli("show ip6 fib")) + self.logger.info(self.vapi.ppcli("show ip6 neighbors")) def create_vrf_and_assign_interfaces(self, count, start=1): """ @@ -309,7 +314,7 @@ class TestIP6VrfMultiInst(VppTestCase): try: ip = packet[IPv6] udp = packet[UDP] - payload_info = self.payload_to_info(str(packet[Raw])) + payload_info = self.payload_to_info(packet[Raw]) packet_index = payload_info.index self.assertEqual(payload_info.dst, dst_sw_if_index) self.logger.debug("Got packet on port %s: src=%u (id=%u)" % @@ -344,23 +349,20 @@ class TestIP6VrfMultiInst(VppTestCase): :param int vrf_id: The FIB table / VRF ID to be verified. :return: 1 if the FIB table / VRF ID is configured, otherwise return 0. """ - ip6_fib_dump = self.vapi.ip6_fib_dump() - vrf_exist = False + ip6_fib_dump = self.vapi.ip_route_dump(vrf_id, True) + vrf_exist = len(ip6_fib_dump) vrf_count = 0 for ip6_fib_details in ip6_fib_dump: - if ip6_fib_details.table_id == vrf_id: - if not vrf_exist: - vrf_exist = True - addr = inet_ntop(socket.AF_INET6, ip6_fib_details.address) - found = False - for pg_if in self.pg_if_by_vrf_id[vrf_id]: - if found: + addr = ip6_fib_details.route.prefix.network_address + found = False + for pg_if in self.pg_if_by_vrf_id[vrf_id]: + if found: + break + for host in pg_if.remote_hosts: + if str(addr) == host.ip6: + vrf_count += 1 + found = True break - for host in pg_if.remote_hosts: - if str(addr) == str(host.ip6): - vrf_count += 1 - found = True - break if not vrf_exist and vrf_count == 0: self.logger.info("IPv6 VRF ID %d is not configured" % vrf_id) return VRFState.not_configured