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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox