diff options
author | Neale Ranns <nranns@cisco.com> | 2017-12-13 02:47:27 -0800 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-12-13 15:14:49 +0000 |
commit | 8716e6bf43b7043790980c6ef0bd21d42b34a2a1 (patch) | |
tree | ed8208c2827eeb916d71025b2ee86a28b19dc7ca /test | |
parent | 51e759fd0655b6089360e1ccf2f5341704549fd4 (diff) |
GRE: fix single loop decap and add test
Change-Id: I64e8a76a17057ae69de72a5a80c0a194cd0c21cb
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/patches/scapy-2.3.3/inet6.py.patch | 9 | ||||
-rw-r--r-- | test/test_gre.py | 25 |
2 files changed, 34 insertions, 0 deletions
diff --git a/test/patches/scapy-2.3.3/inet6.py.patch b/test/patches/scapy-2.3.3/inet6.py.patch index f98e70915ca..cf3217eb672 100644 --- a/test/patches/scapy-2.3.3/inet6.py.patch +++ b/test/patches/scapy-2.3.3/inet6.py.patch @@ -183,3 +183,12 @@ diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py ########################### Fragmentation Header ############################ class IPv6ExtHdrFragment(_IPv6ExtHdr): +diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py +index 20afedf..ae3c4dd 100644 +--- a/scapy/layers/inet6.py ++++ b/scapy/layers/inet6.py +@@ -3888,3 +3888,4 @@ bind_layers(IPv6, UDP, nh = socket.IPPROTO_UDP ) + bind_layers(IP, IPv6, proto = socket.IPPROTO_IPV6 ) + bind_layers(IPv6, IPv6, nh = socket.IPPROTO_IPV6 ) + bind_layers(IPv6, IP, nh = socket.IPPROTO_IPIP ) ++bind_layers(IPv6, GRE, nh = socket.IPPROTO_GRE ) diff --git a/test/test_gre.py b/test/test_gre.py index 9046b05f2f6..5cdc0637a1a 100644 --- a/test/test_gre.py +++ b/test/test_gre.py @@ -507,6 +507,9 @@ class TestGRE(VppTestCase): def test_gre6(self): """ GRE IPv6 tunnel Tests """ + self.pg1.config_ip6() + self.pg1.resolve_ndp() + # # Create an L3 GRE tunnel. # - set it admin up @@ -571,6 +574,27 @@ class TestGRE(VppTestCase): self.pg2.local_ip6, "1002::1") # + # Test decap. decapped packets go out pg1 + # + tx = self.create_tunnel_stream_6o6(self.pg2, + "1002::1", + self.pg2.local_ip6, + "2001::1", + self.pg1.remote_ip6) + self.vapi.cli("clear trace") + self.pg2.add_stream(tx) + + self.pg_enable_capture(self.pg_interfaces) + self.pg_start() + rx = self.pg1.get_capture(len(tx)) + + # + # RX'd packet is UDP over IPv6, test the GRE header is gone. + # + self.assertFalse(rx[0].haslayer(GRE)) + self.assertEqual(rx[0][IPv6].dst, self.pg1.remote_ip6) + + # # test case cleanup # route_tun_dst.remove_vpp_config() @@ -578,6 +602,7 @@ class TestGRE(VppTestCase): gre_if.remove_vpp_config() self.pg2.unconfig_ip6() + self.pg1.unconfig_ip6() def test_gre_vrf(self): """ GRE tunnel VRF Tests """ |