From: David Ahern <dsahern@kernel.org>
To: Jack Ma <jack4it@hotmail.com>, Ido Schimmel <idosch@nvidia.com>,
Roopa Prabhu <roopa@nvidia.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Nikolay Aleksandrov <razor@blackwall.org>
Subject: Re: VXLAN FDB nexthop groups: per-nexthop UDP dst port / VNI feasibility
Date: Sat, 11 Jul 2026 11:26:41 -0600 [thread overview]
Message-ID: <c2a799e1-6077-43f9-b5ba-6380a440bbec@kernel.org> (raw)
In-Reply-To: <BL3PR17MB6067BF1D5802A6B1822452EEE5FD2@BL3PR17MB6067.namprd17.prod.outlook.com>
On 7/9/26 11:30 PM, Jack Ma wrote:
> Hi David, Ido, Roopa,
>
> I am using VXLAN FDB nexthop groups ( ip nexthop add ... fdb ,
> followed by bridge fdb add ... nhid ) to implement L2 ECMP across
> a set of HA endpoints.
>
> In my design, each leg is a distinct (VTEP IP, UDP destination port)
> pair. Several endpoints live behind the same node IP and are
> disambiguated by the VXLAN UDP destination port.
>
> Reading the current code (v6.12), it looks like an FDB nexthop can
> carry only a gateway IP, so a per-leg port cannot be expressed:
>
> • vxlan_fdb_nh_path_select() copies only nhc_gw into the synthetic
> rdst ; remote_port and remote_vni remain zero
> ( include/net/vxlan.h ).
> • vxlan_xmit_one() then falls back to the device-wide port:
> dst_port = rdst->remote_port ? rdst->remote_port : vxlan->cfg.dst_port
> ( drivers/net/vxlan/vxlan_core.c ).
> • rtm_to_nh_config() rejects NHA_ENCAP and NHA_OIF on FDB
> nexthops:
> Fdb attribute can not be used with encap, oif or blackhole
> ( net/ipv4/nexthop.c ).
> • vxlan_fdb_parse() rejects NDA_PORT , NDA_VNI , and NDA_IFINDEX
> when NDA_NH_ID is present:
> DST, VNI, ifindex and port are mutually exclusive with NH_ID
>
> The original commits, 38428d68719c ("nexthop: support for fdb ecmp
> nexthops") and 1274e1cc4226 ("vxlan: ecmp support for mac fdb
> entries"), say "these nexthops only have ip." This matches the EVPN
> multihoming use case, where every VTEP in the segment shares one UDP
> destination port.
The first commit was 6 years ago; those brain cells have been recycled.
:-) I suspect there was no reason to consider different UDP port per
leg. Roopa: does that sound right?
>
> My questions:
>
> 1. Was IP-only a deliberate scoping decision for the EVPN-MH use
> case, or is there a deeper reason why a per-nexthop UDP destination
> port and VNI could not be carried on an FDB nexthop, for example
> through NHA_ENCAP or lwtunnel, which route nexthops already
> accept?
> 2. If legs genuinely need distinct UDP destination ports, is the
> per-remote rdst path ( bridge fdb ... dst ... port ... ) the
> intended mechanism, with the understanding that it provides
> head-end replication semantics rather than nexthop-object ECMP?
> 3. Would you be open in principle to a patch that lets an FDB
> nexthop carry a per-nexthop destination port and VNI? If so, I
> would be happy to prototype it as an RFC.
>
It seems reasonable to me.
next prev parent reply other threads:[~2026-07-11 17:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-10 5:30 VXLAN FDB nexthop groups: per-nexthop UDP dst port / VNI feasibility Jack Ma
2026-07-11 17:26 ` David Ahern [this message]
2026-07-12 7:05 ` Ido Schimmel
2026-07-12 20:46 ` Jack Ma
[not found] <BL3PR17MB60675DF2E8769ABDA85CCE74E5FF2@BL3PR17MB6067.namprd17.prod.outlook.com>
2026-07-09 10:22 ` Ido Schimmel
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=c2a799e1-6077-43f9-b5ba-6380a440bbec@kernel.org \
--to=dsahern@kernel.org \
--cc=idosch@nvidia.com \
--cc=jack4it@hotmail.com \
--cc=netdev@vger.kernel.org \
--cc=razor@blackwall.org \
--cc=roopa@nvidia.com \
/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.