X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_vxlan.py;h=34bf11a53e452b49750608c25f2296003c8e5396;hb=d6e9aecfd67ebfd012873eb24b72221f13e8f089;hp=1411dd6c0261452b1bc769950fa199064367c67b;hpb=cef1e2a8b49306fc1347d97b6d74255923292edf;p=vpp.git diff --git a/test/test_vxlan.py b/test/test_vxlan.py index 1411dd6c026..34bf11a53e4 100644 --- a/test/test_vxlan.py +++ b/test/test_vxlan.py @@ -1,12 +1,12 @@ #!/usr/bin/env python import socket -from util import ip4n_range, ip4_range +from util import ip4n_range, ip4_range, reassemble4 import unittest from framework import VppTestCase, VppTestRunner from template_bd import BridgeDomain -from scapy.layers.l2 import Ether +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 @@ -222,6 +222,35 @@ class TestVxlan(BridgeDomain, VppTestCase): super(TestVxlan, cls).tearDownClass() raise + def test_encap_big_packet(self): + """ Encapsulation test send big frame from pg1 + Verify receipt of encapsulated frames on pg0 + """ + + self.vapi.sw_interface_set_mtu(self.pg0.sw_if_index, [1500, 0, 0, 0]) + + frame = (Ether(src='00:00:00:00:00:02', dst='00:00:00:00:00:01') / + IP(src='4.3.2.1', dst='1.2.3.4') / + UDP(sport=20000, dport=10000) / + Raw('\xa5' * 1450)) + + self.pg1.add_stream([frame]) + + self.pg0.enable_capture() + + self.pg_start() + + # Pick first received frame and check if it's correctly encapsulated. + out = self.pg0.get_capture(2) + ether = out[0] + pkt = reassemble4(out) + pkt = ether / pkt + self.check_encapsulation(pkt, self.single_tunnel_bd) + + payload = self.decapsulate(pkt) + # TODO: Scapy bug? + # self.assert_eq_pkts(payload, frame) + # Method to define VPP actions before tear down of the test case. # Overrides tearDown method in VppTestCase class. # @param self The object pointer.