diff options
author | Neale Ranns <nranns@cisco.com> | 2017-12-14 08:51:32 -0800 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-12-16 19:39:26 +0000 |
commit | 33ce60d6759bbbfebb7d489aa591b696e140d870 (patch) | |
tree | eda75c292952f754813648b5a49d0ca5f17a69f3 /test | |
parent | 8e66b9bf4ba90279631e6a0e8ccc2eab5f9156c2 (diff) |
GRE tunnel key includes the FIB table
- GRE tunnels with the same src,dst addresses are not the same tunnel
- Two data-plane improvements:
- the cached key was never updated and so useless
- no need to dereference the tunnel's HW interface to get the sw_if_index
Change-Id: I2f2ea6e08c759a810b753cec22c497e921a2ca01
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/test_gre.py | 19 | ||||
-rw-r--r-- | test/vpp_gre_interface.py | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/test/test_gre.py b/test/test_gre.py index 5cdc0637a1a..7032940cfdb 100644 --- a/test/test_gre.py +++ b/test/test_gre.py @@ -674,6 +674,25 @@ class TestGRE(VppTestCase): self.verify_decapped_4o4(self.pg0, rx, tx) # + # Send tunneled packets that match the created tunnel and + # but arrive on an interface that is not in the tunnel's + # encap VRF, these are dropped + # + self.vapi.cli("clear trace") + tx = self.create_tunnel_stream_4o4(self.pg2, + "2.2.2.2", + self.pg1.local_ip4, + self.pg0.local_ip4, + self.pg0.remote_ip4) + self.pg1.add_stream(tx) + + self.pg_enable_capture(self.pg_interfaces) + self.pg_start() + + self.pg0.assert_nothing_captured( + remark="GRE decap packets in wrong VRF") + + # # test case cleanup # route_tun_dst.remove_vpp_config() diff --git a/test/vpp_gre_interface.py b/test/vpp_gre_interface.py index 1c71875f73a..acfd348d64f 100644 --- a/test/vpp_gre_interface.py +++ b/test/vpp_gre_interface.py @@ -9,7 +9,7 @@ class VppGreInterface(VppInterface): """ def __init__(self, test, src_ip, dst_ip, outer_fib_id=0, is_teb=0): - """ Create VPP loopback interface """ + """ Create VPP GRE interface """ self._sw_if_index = 0 super(VppGreInterface, self).__init__(test) self._test = test @@ -42,7 +42,7 @@ class VppGre6Interface(VppInterface): """ def __init__(self, test, src_ip, dst_ip, outer_fib_id=0, is_teb=0): - """ Create VPP loopback interface """ + """ Create VPP GRE interface """ self._sw_if_index = 0 super(VppGre6Interface, self).__init__(test) self._test = test |