mbox series

[ovs-dev,0/4] Native tunnel: Update neigh entries in tnl termination.

Message ID 163649698390.1456179.6935508376718804388.stgit@fed.void
Headers show
Series Native tunnel: Update neigh entries in tnl termination. | expand

Message

Paolo Valerio Nov. 9, 2021, 10:29 p.m. UTC
v2:
- rebased against master
- turned 'ageing' -> 'aging'
- further details of v1 -> v2 respin has been added
  to each patch

The series is composed of the following patches:

#1: Expires is modified in different contexts (revalidator, pmd-rx, bfd-tx).
    It's probably not very racy for many reasons, but it seems a good idea
    to use an atomic here (especially with the introduction of #3).

#2: Introduces the possibility to set and read the entries timeout.
    It's useful for debugging purpose. Includes a self-test.

#3: While performing some tests I noticed unstable timeouts (more
    visible when the ageing time is low) during nd snoop.
    It turned out to be a problem of revalidation. Additional
    details can be found in the commit description.

#4: Fixes a use case in which the tnl neigh entry never
    gets updated (further details in the commit message).
    Includes a self-test.

The use case fixed in #4 could be fixed relaxing the check in
tnl_arp_snoop(), allowing to snoop ARP requests as well, but such
approach could add unneeded entries in the cache.

Paolo Valerio (4):
      Native tunnel: Read/write expires atomically.
      Native tunnel: Add tnl/neigh/aging command.
      Native tunnel: Do not refresh the entry while revalidating.
      Tunnel: Snoop ingress packets and update neigh cache if needed.


 NEWS                            |   2 +
 lib/tnl-neigh-cache.c           | 135 +++++++++++++++++++++++++-------
 lib/tnl-neigh-cache.h           |   4 +-
 ofproto/ofproto-dpif-xlate.c    |  17 +++-
 ofproto/ofproto-tnl-unixctl.man |   9 +++
 tests/tunnel-push-pop-ipv6.at   |  66 ++++++++++++++++
 tests/tunnel-push-pop.at        |  82 +++++++++++++++++++
 7 files changed, 286 insertions(+), 29 deletions(-)

Comments

Paolo Valerio Nov. 10, 2021, 10:46 a.m. UTC | #1
Missed the v2 tag.
Going to resend adding it.

Sorry for the noise.

Paolo Valerio <pvalerio@redhat.com> writes:

> v2:
> - rebased against master
> - turned 'ageing' -> 'aging'
> - further details of v1 -> v2 respin has been added
>   to each patch
>
> The series is composed of the following patches:
>
> #1: Expires is modified in different contexts (revalidator, pmd-rx, bfd-tx).
>     It's probably not very racy for many reasons, but it seems a good idea
>     to use an atomic here (especially with the introduction of #3).
>
> #2: Introduces the possibility to set and read the entries timeout.
>     It's useful for debugging purpose. Includes a self-test.
>
> #3: While performing some tests I noticed unstable timeouts (more
>     visible when the ageing time is low) during nd snoop.
>     It turned out to be a problem of revalidation. Additional
>     details can be found in the commit description.
>
> #4: Fixes a use case in which the tnl neigh entry never
>     gets updated (further details in the commit message).
>     Includes a self-test.
>
> The use case fixed in #4 could be fixed relaxing the check in
> tnl_arp_snoop(), allowing to snoop ARP requests as well, but such
> approach could add unneeded entries in the cache.
>
> Paolo Valerio (4):
>       Native tunnel: Read/write expires atomically.
>       Native tunnel: Add tnl/neigh/aging command.
>       Native tunnel: Do not refresh the entry while revalidating.
>       Tunnel: Snoop ingress packets and update neigh cache if needed.
>
>
>  NEWS                            |   2 +
>  lib/tnl-neigh-cache.c           | 135 +++++++++++++++++++++++++-------
>  lib/tnl-neigh-cache.h           |   4 +-
>  ofproto/ofproto-dpif-xlate.c    |  17 +++-
>  ofproto/ofproto-tnl-unixctl.man |   9 +++
>  tests/tunnel-push-pop-ipv6.at   |  66 ++++++++++++++++
>  tests/tunnel-push-pop.at        |  82 +++++++++++++++++++
>  7 files changed, 286 insertions(+), 29 deletions(-)