1. 04 Oct, 2021 6 commits
    • David S. Miller's avatar
      Merge branch 'ipv6-ioam-encap' · cfbe9b00
      David S. Miller authored
      Justin Iurman says:
      
      ====================
      Support for the ip6ip6 encapsulation of IOAM
      
      v2:
       - add prerequisite patches
       - keep uapi backwards compatible by adding two new attributes
       - add more comments to document the ioam6_iptunnel uapi
      
      In the current implementation, IOAM can only be inserted directly (i.e., only
      inside packets generated locally) by default, to be compliant with RFC8200.
      
      This patch adds support for in-transit packets and provides the ip6ip6
      encapsulation of IOAM (RFC8200 compliant). Therefore, three ioam6 encap modes
      are defined:
      
       - inline: directly inserts IOAM inside packets (by default).
      
       - encap:  ip6ip6 encapsulation of IOAM inside packets.
      
       - auto:   either inline mode for packets generated locally or encap mode for
                 in-transit packets.
      
      With current iproute2 implementation, it is configured this way:
      
      $ ip -6 r [...] encap ioam6 trace prealloc [...]
      
      The old syntax does not change (for backwards compatibility) and implicitly uses
      the inline mode. With the new syntax, an encap mode can be specified:
      
      (inline mode)
      $ ip -6 r [...] encap ioam6 mode inline trace prealloc [...]
      
      (encap mode)
      $ ip -6 r [...] encap ioam6 mode encap tundst fc00::2 trace prealloc [...]
      
      (auto mode)
      $ ip -6 r [...] encap ioam6 mode auto tundst fc00::2 trace prealloc [...]
      
      A tunnel destination address must be configured when using the encap mode or the
      auto mode.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cfbe9b00
    • Justin Iurman's avatar
      selftests: net: Test for the IOAM encapsulation with IPv6 · bf77b140
      Justin Iurman authored
      This patch adds support for testing the encap (ip6ip6) mode of IOAM.
      Signed-off-by: default avatarJustin Iurman <justin.iurman@uliege.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf77b140
    • Justin Iurman's avatar
      ipv6: ioam: Add support for the ip6ip6 encapsulation · 8cb3bf8b
      Justin Iurman authored
      This patch adds support for the ip6ip6 encapsulation by providing three encap
      modes: inline, encap and auto.
      Signed-off-by: default avatarJustin Iurman <justin.iurman@uliege.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8cb3bf8b
    • Justin Iurman's avatar
      ipv6: ioam: Prerequisite patch for ioam6_iptunnel · 7b34e449
      Justin Iurman authored
      This prerequisite patch provides some minor edits (alignments, renames) and a
      minor modification inside a function to facilitate the next patch by using
      existing nla_* functions.
      Signed-off-by: default avatarJustin Iurman <justin.iurman@uliege.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7b34e449
    • Justin Iurman's avatar
      ipv6: ioam: Distinguish input and output for hop-limit · 52d03786
      Justin Iurman authored
      This patch anticipates the support for the IOAM insertion inside in-transit
      packets, by making a difference between input and output in order to determine
      the right value for its hop-limit (inherited from the IPv6 hop-limit).
      
      Input case: happens before ip6_forward, the IPv6 hop-limit is not decremented
      yet -> decrement the IOAM hop-limit to reflect the new hop inside the trace.
      
      Output case: happens after ip6_forward, the IPv6 hop-limit has already been
      decremented -> keep the same value for the IOAM hop-limit.
      Signed-off-by: default avatarJustin Iurman <justin.iurman@uliege.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52d03786
    • Eric Dumazet's avatar
      net/mlx4_en: avoid one cache line miss to ring doorbell · 9ac93627
      Eric Dumazet authored
      This patch caches doorbell address directly in struct mlx4_en_tx_ring.
      
      This removes the need to bring in cpu caches whole struct mlx4_uar
      in fast path.
      
      Note that mlx4_uar is not guaranteed to be on a local node,
      because mlx4_bf_alloc() uses a single free list (priv->bf_list)
      regardless of its node parameter.
      
      This kind of change does matter in presence of light/moderate traffic.
      In high stress, this read-only line would be kept hot in caches.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Tariq Toukan <tariqt@nvidia.com>
      Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9ac93627
  2. 03 Oct, 2021 6 commits
  3. 02 Oct, 2021 28 commits