X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_srv6_as.py;h=2be7865d5bdb9201667997112d8542b6b3519b06;hb=097fa66b986f06281f603767d321ab13ab6c88c3;hp=0fa838edd1074b35847100c6457998e56ab93a30;hpb=b02f3b7b8a1c68a974ce43c64b28625b3ca2d4a5;p=vpp.git diff --git a/test/test_srv6_as.py b/test/test_srv6_as.py index 0fa838edd10..2be7865d5bd 100755 --- a/test/test_srv6_as.py +++ b/test/test_srv6_as.py @@ -5,10 +5,11 @@ import binascii from socket import AF_INET6 from framework import VppTestCase, VppTestRunner -from vpp_ip_route import VppIpRoute, VppRoutePath, DpoProto, VppIpTable +from vpp_ip_route import VppIpRoute, VppRoutePath, FibPathProto, VppIpTable from vpp_srv6 import SRv6LocalSIDBehaviors, VppSRv6LocalSID, VppSRv6Policy, \ SRv6PolicyType, VppSRv6Steering, SRv6PolicySteeringTypes +import scapy.compat from scapy.packet import Raw from scapy.layers.l2 import Ether, Dot1Q from scapy.layers.inet6 import IPv6, UDP, IPv6ExtHdrSegmentRouting @@ -26,6 +27,10 @@ class TestSRv6(VppTestCase): def setUpClass(self): super(TestSRv6, self).setUpClass() + @classmethod + def tearDownClass(cls): + super(TestSRv6, cls).tearDownClass() + def setUp(self): """ Perform test setup before each test case. """ @@ -191,9 +196,7 @@ class TestSRv6(VppTestCase): # configure route to next segment route = VppIpRoute(self, sid_list[test_sid_index + 1], 128, [VppRoutePath(self.pg0.remote_ip6, - self.pg0.sw_if_index, - proto=DpoProto.DPO_PROTO_IP6)], - is_ip6=1) + self.pg0.sw_if_index)]) route.add_vpp_config() # configure SRv6 localSID behavior @@ -262,9 +265,7 @@ class TestSRv6(VppTestCase): # configure route to next segment route = VppIpRoute(self, sid_list[test_sid_index + 1], 128, [VppRoutePath(self.pg0.remote_ip6, - self.pg0.sw_if_index, - proto=DpoProto.DPO_PROTO_IP6)], - is_ip6=1) + self.pg0.sw_if_index)]) route.add_vpp_config() # configure SRv6 localSID behavior @@ -333,9 +334,7 @@ class TestSRv6(VppTestCase): # configure route to next segment route = VppIpRoute(self, sid_list[test_sid_index + 1], 128, [VppRoutePath(self.pg0.remote_ip6, - self.pg0.sw_if_index, - proto=DpoProto.DPO_PROTO_IP6)], - is_ip6=1) + self.pg0.sw_if_index)]) route.add_vpp_config() # configure SRv6 localSID behavior @@ -488,7 +487,7 @@ class TestSRv6(VppTestCase): tx_ip.chksum = None # read back the pkt (with str()) to force computing these fields # probably other ways to accomplish this are possible - tx_ip = IP(str(tx_ip)) + tx_ip = IP(scapy.compat.raw(tx_ip)) self.assertEqual(payload, tx_ip) @@ -537,7 +536,7 @@ class TestSRv6(VppTestCase): payload = rx_ip.payload # the whole rx'ed pkt beyond SRH should be equal to tx'ed pkt - self.assertEqual(Ether(str(payload)), tx_ether) + self.assertEqual(Ether(scapy.compat.raw(payload)), tx_ether) self.logger.debug("packet verification: SUCCESS") @@ -590,7 +589,7 @@ class TestSRv6(VppTestCase): tx_ip2.chksum = None # read back the pkt (with str()) to force computing these fields # probably other ways to accomplish this are possible - tx_ip2 = IP(str(tx_ip2)) + tx_ip2 = IP(scapy.compat.raw(tx_ip2)) self.assertEqual(rx_ip, tx_ip2) @@ -609,7 +608,7 @@ class TestSRv6(VppTestCase): tx_ip = tx_pkt.getlayer(IPv6) # we can't just get the 2nd Ether layer # get the Raw content and dissect it as Ether - tx_eth1 = Ether(str(tx_pkt[Raw])) + tx_eth1 = Ether(scapy.compat.raw(tx_pkt[Raw])) # verify if rx'ed packet has no SRH self.assertFalse(rx_pkt.haslayer(IPv6ExtHdrSegmentRouting)) @@ -655,7 +654,7 @@ class TestSRv6(VppTestCase): # read back the dumped packet (with str()) # to force computing these fields # probably other ways are possible - p = Ether(str(p)) + p = Ether(scapy.compat.raw(p)) payload_info.data = p.copy() self.logger.debug(ppp("Created packet:", p)) pkts.append(p) @@ -810,14 +809,14 @@ class TestSRv6(VppTestCase): # but packet[Raw] gives the complete payload # (incl L2 header) for the T.Encaps L2 case try: - payload_info = self.payload_to_info(str(packet[Raw])) + payload_info = self.payload_to_info(packet[Raw]) except: # remote L2 header from packet[Raw]: # take packet[Raw], convert it to an Ether layer # and then extract Raw from it payload_info = self.payload_to_info( - str(Ether(str(packet[Raw]))[Raw])) + Ether(scapy.compat.raw(packet[Raw]))[Raw]) return payload_info @@ -831,7 +830,7 @@ class TestSRv6(VppTestCase): :param compare_func: function to compare in and out packet """ self.logger.info("Verifying capture on interface %s using function %s" - % (dst_if.name, compare_func.func_name)) + % (dst_if.name, compare_func.__name__)) last_info = dict() for i in self.pg_interfaces: @@ -874,7 +873,6 @@ class TestSRv6(VppTestCase): compare_func(txed_packet, packet) except: - print packet.command() self.logger.error(ppp("Unexpected or invalid packet:", packet)) raise