X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_vxlan_gbp.py;h=ee106a5769f9de00b8a0d71ecac177031d97cb49;hb=7c03ed4;hp=55594a59fa744ed487090a55ad1cbfc46b0b5867;hpb=61b94c6bc417dbcb11323962b40493e6f7ec2f7e;p=vpp.git diff --git a/test/test_vxlan_gbp.py b/test/test_vxlan_gbp.py index 55594a59fa7..ee106a5769f 100644 --- a/test/test_vxlan_gbp.py +++ b/test/test_vxlan_gbp.py @@ -1,32 +1,17 @@ #!/usr/bin/env python import socket -from util import ip4n_range, ip4_range +from util import ip4_range, reassemble4_ether import unittest from framework import VppTestCase, VppTestRunner from template_bd import BridgeDomain +from vpp_ip import VppIpAddress from scapy.layers.l2 import Ether, Raw from scapy.layers.inet import IP, UDP from scapy.layers.vxlan import VXLAN from scapy.utils import atol -import StringIO - - -def reassemble(listoffragments): - buffer = StringIO.StringIO() - first = listoffragments[0] - buffer.seek(20) - for pkt in listoffragments: - buffer.seek(pkt[IP].frag*8) - buffer.write(pkt[IP].payload) - first.len = len(buffer.getvalue()) + 20 - first.flags = 0 - del(first.chksum) - header = str(first[Ether])[:34] - return first[Ether].__class__(header + buffer.getvalue()) - class TestVxlanGbp(VppTestCase): """ VXLAN GBP Test Case """ @@ -106,13 +91,15 @@ class TestVxlanGbp(VppTestCase): ip_range_start = 10 ip_range_end = ip_range_start + n_ucast_tunnels next_hop_address = cls.pg0.remote_ip4n - for dest_ip4n in ip4n_range(next_hop_address, ip_range_start, - ip_range_end): + for dest_ip4 in ip4_range(cls.pg0.remote_ip4, + ip_range_start, + ip_range_end): # add host route so dest_ip4n will not be resolved - cls.vapi.ip_add_del_route(dest_ip4n, 32, next_hop_address) - r = cls.vapi.vxlan_gbp_add_del_tunnel( - src_addr=cls.pg0.local_ip4n, - dst_addr=dest_ip4n, + vip = VppIpAddress(dest_ip4) + cls.vapi.ip_add_del_route(vip.bytes, 32, next_hop_address) + r = cls.vapi.vxlan_gbp_tunnel_add_del( + VppIpAddress(cls.pg0.local_ip4).encode(), + vip.encode(), vni=vni) cls.vapi.sw_interface_set_l2_bridge(r.sw_if_index, bd_id=vni) @@ -145,9 +132,9 @@ class TestVxlanGbp(VppTestCase): # Create VXLAN GBP VTEP on VPP pg0, and put vxlan_gbp_tunnel0 and # pg1 into BD. cls.single_tunnel_bd = 1 - r = cls.vapi.vxlan_gbp_add_del_tunnel( - src_addr=cls.pg0.local_ip4n, - dst_addr=cls.pg0.remote_ip4n, + r = cls.vapi.vxlan_gbp_tunnel_add_del( + VppIpAddress(cls.pg0.local_ip4).encode(), + VppIpAddress(cls.pg0.remote_ip4).encode(), vni=cls.single_tunnel_bd) cls.vapi.sw_interface_set_l2_bridge(r.sw_if_index, bd_id=cls.single_tunnel_bd) @@ -255,7 +242,7 @@ class TestVxlanGbp(VppTestCase): # Pick first received frame and check if it's correctly encapsulated. out = self.pg0.get_capture(2) - pkt = reassemble(out) + pkt = reassemble4_ether(out) self.check_encapsulation(pkt, self.single_tunnel_bd) payload = self.decapsulate(pkt)