All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <hangbin.liu@linux.dev>
To: David Ahern <dsahern@kernel.org>,
	Ido Schimmel <idosch@nvidia.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@kernel.org>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Justin Iurman <justin.iurman@gmail.com>,
	Shuah Khan <shuah@kernel.org>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	linux-kselftest@vger.kernel.org,
	Hangbin Liu <liuhangbin@kylinos.cn>
Subject: Re: [PATCH 0/3] net: ioam6: makes IOAM insertion transparent to IPv6 ECMP
Date: Fri, 30 Oct 2026 16:12:19 +0800	[thread overview]
Message-ID: <auRRYzF8iExhcVZp@bogon> (raw)
In-Reply-To: <20261028-ipv6_ioam_ecmp-v1-0-9b6715b6f4c0@kylinos.cn>

On Wed, Oct 28, 2026 at 01:45:28PM +0800, Hangbin Liu wrote:
> This series makes IOAM insertion transparent to IPv6 ECMP, as required
> by RFC 9486 (C2): a packet carrying IOAM options must be forwarded
> along the same path as the identical packet without them.
> 
> Patch 1 fixes the transit side: hash policy 0 hashed the raw IPv6
> nexthdr, which becomes NEXTHDR_HOP once an IOAM Hop-by-Hop header is
> inserted. The policy-0 key (and the ICMPv6-error flow selection) now
> uses the nexthdr the packet would have had if the Hop-by-Hop header
> carried only IOAM options and padding.
> 
> Patch 2 fixes the injecting node: the ioam6 output re-lookup on a
> destination-cache miss hashed the transformed packet's NEXTHDR_HOP
> instead of the original nexthdr (inline) or IPPROTO_IPV6 (encap), and
> rebuilt the flow keys from the outer header only.
> 
> Patch 3 adds selftests/net/ioam6_ecmp.sh, covering both places: a
> transit forwarder with a multipath route, and an encapsulating node
> compared against a plain ip6ip6 baseline.
> 
> The issue was found while reviewing RFC9486. It can be reproduced and
> verified by the newly added ioam6_ecmp.sh test.
> 
> Tested with:
> ecmp_rehash.sh
> fib_nexthops.sh
> ioam6_ecmp.sh
> tcp_ecmp_failover.sh
> forwarding/gre_inner_v4_multipath.sh
> forwarding/gre_inner_v6_multipath.sh
> forwarding/gre_multipath_nh_res.sh
> forwarding/gre_multipath_nh.sh
> forwarding/gre_multipath.sh
> forwarding/ip6gre_inner_v4_multipath.sh
> forwarding/ip6gre_inner_v6_multipath.sh
> forwarding/router_mpath_nh_res.sh
> forwarding/router_mpath_nh.sh
> forwarding/router_multipath.sh
> 
> Signed-off-by: Hangbin Liu <liuhangbin@kylinos.cn>
> ---
> Hangbin Liu (3):
>       ipv6: route: consider IOAM options in ECMP hash policy 0
>       ipv6: ioam6: use transformed packet nexthdr for ECMP re-lookup
>       selftests: net: add ioam6 ECMP test (RFC 9486 C2)
> 
>  include/uapi/linux/in6.h                  |   1 +
>  net/ipv6/ioam6_iptunnel.c                 |   4 +-
>  net/ipv6/route.c                          |  67 +++++-
>  tools/testing/selftests/net/Makefile      |   1 +
>  tools/testing/selftests/net/ioam6_ecmp.sh | 349 ++++++++++++++++++++++++++++++
>  5 files changed, 419 insertions(+), 3 deletions(-)
> ---
> base-commit: 5d7f3375cd574fc83f0cd30839b21455c0e79ae2
> change-id: 20261020-ipv6_ioam_ecmp-ae4ef0a4bdae
> 
> Best regards,
> --  
> Hangbin Liu <liuhangbin@kylinos.cn>
> 

Sashiko found some issues. I will fix them and post new version.

pw-bot: cr

      parent reply	other threads:[~2026-10-30  8:12 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-28  5:45 [PATCH 0/3] net: ioam6: makes IOAM insertion transparent to IPv6 ECMP Hangbin Liu
2026-10-28  5:45 ` [PATCH 1/3] ipv6: route: consider IOAM options in ECMP hash policy 0 Hangbin Liu
2026-10-30 11:47   ` netdev-bot+sashiko
2026-10-28  5:45 ` [PATCH 2/3] ipv6: ioam6: use transformed packet nexthdr for ECMP re-lookup Hangbin Liu
2026-10-30 11:47   ` netdev-bot+sashiko
2026-10-28  5:45 ` [PATCH 3/3] selftests: net: add ioam6 ECMP test (RFC 9486 C2) Hangbin Liu
2026-10-30 11:47   ` netdev-bot+sashiko
2026-10-28  8:01 ` [PATCH 0/3] net: ioam6: makes IOAM insertion transparent to IPv6 ECMP Hangbin Liu
2026-10-28 23:58   ` Jakub Kicinski
2026-10-29  0:38     ` Hangbin Liu
2026-10-29  9:02     ` Hangbin Liu
2026-10-30  8:12 ` Hangbin Liu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=auRRYzF8iExhcVZp@bogon \
    --to=hangbin.liu@linux.dev \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@kernel.org \
    --cc=horms@kernel.org \
    --cc=idosch@nvidia.com \
    --cc=justin.iurman@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=liuhangbin@kylinos.cn \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.