Userspace native tunneling snoops the outer Ethernet source of an
encapsulated IP data packet into tnl_neigh_set(), keyed by the remote
VTEP IP.  That MAC is the last hop.  When the VTEP is routed, the last
hop is a router or MLAG MAC.  Learning it flaps the neighbor cache,
changes tnl_conf_seq, and storms the revalidator.

v2 added a per-port neigh_snoop knob.  v3 drops the knob and skips
data-packet snooping unless the remote is on-link through the
receiving bridge: ovs_router_lookup of the outer source succeeds, the
route has no gateway, and out_dev belongs to ctx->xbridge (member-port
names included).  The lookup src is the outer destination so
source-based routing matches tunnel output.  A failed lookup does not
snoop.

On-link VTEPs on the receiving bridge still update the cache so BFD
can recover after a real remote NIC MAC change.  ARP/GARP and IPv6 NA
snooping is unchanged.  Userspace native tunneling only.

Tests: tunnel_push_pop and tunnel_push_pop_ipv6 (on-link vs routed,
other-bridge, policy-routed).  All six passed.

v3:
- Drop the neigh_snoop knob from v2.
- Route-aware snoop: on-link through the receiving bridge only.
- Lookup src is the outer destination (policy routing).
- Failed lookup does not snoop.
- New tests for other-bridge and policy-routed remotes.

v2: Resend via git send-email.  v1 failed git am (Gmail linkified
    tests/tunnel-push-pop*.at paths).

Girish Kumar (1):
  xlate: Skip tnl-neigh snoop for routed remotes.

 AUTHORS.rst                   |   1 +
 NEWS                          |  10 +++
 ofproto/ofproto-dpif-xlate.c  |  64 ++++++++++++++++++-
 tests/tunnel-push-pop-ipv6.at | 115 ++++++++++++++++++++++++++++++++++
 tests/tunnel-push-pop.at      | 114 +++++++++++++++++++++++++++++++++
 5 files changed, 301 insertions(+), 3 deletions(-)

Signed-off-by: Girish Kumar <[email protected]>
--
2.47.3
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to