Thread (11 messages) 11 messages, 4 authors, 6d ago

Re: [PATCH net-next v3 1/3] net: nexthop: add NHA_FDB_PORT for fdb nexthops

From: Ido Schimmel <idosch@nvidia.com>
Date: 2026-07-22 15:24:02
Also in: linux-kselftest, lkml

On Wed, Jul 22, 2026 at 08:43:38AM -0600, David Ahern wrote:
On 7/22/26 5:46 AM, Ido Schimmel wrote:
quoted
On Tue, Jul 21, 2026 at 10:29:50PM +0000, Jack Ma wrote:
quoted
Commit 1274e1cc4226 ("vxlan: ecmp support for mac fdb entries") lets a
single inner MAC be reached through a group of remote VTEPs, with the
kernel flow-hashing across the group members.  Each member carries its
own remote IP, but the UDP destination port is always taken from the
VXLAN device (vxlan->cfg.dst_port) and cannot be set per member.

Some deployments pack several receivers behind one underlay IP and tell
them apart by UDP port, so they need a per-nexthop destination port to
spread flows across (IP, port) tuples rather than IP alone.

Add a netlink attribute NHA_FDB_PORT (__be16, mirroring NDA_PORT) that
carries an optional UDP destination port on an fdb nexthop.  It is only
accepted together with NHA_FDB and NHA_GATEWAY; it is stored in struct
nh_info and echoed back on dump.  This patch is control-plane plumbing
only; the VXLAN datapath is wired up in a follow-up patch, so behaviour
is unchanged for now.
I looked more closely at the test and the iproute2 patch and wanted to
comment that "port" seems too generic given that the attribute is
specific to FDB nexthops and called NHA_FDB_PORT. It made me think that
maybe we should use a more generic attribute name (e.g., NHA_DST_PORT)
and a corresponding "dst_port" keyword in iproute2. We can still limit
this to FDB nexthops during validation, but in the unlikely case that we
will need a destination port for other nexthops, we could just reuse
this attribute. It's not like we have NHA_FDB_GATEWAY.

David, WDYT?
I was thinking along the same lines -- FDB_PORT can be confused with
bridge port.
I agree.
No preference on dst_port / DST_PORT versus other options
(NHA_FDB_UDP_PORT for example)
I don't see a reason to make the attribute overly specific (to UDP and
FDB), which is why I prefer DST_PORT.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help