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>
This commit is contained in:
Neale Ranns
2017-12-14 08:51:32 -08:00
committed by Damjan Marion
parent 8e66b9bf4b
commit 33ce60d675
6 changed files with 240 additions and 139 deletions

View File

@ -673,6 +673,25 @@ class TestGRE(VppTestCase):
rx = self.pg0.get_capture(len(tx))
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
#