Netdev List
 help / color / mirror / Atom feed
From: Ido Schimmel <idosch@nvidia.com>
To: Patrice Brissette <patrice.brissette@gmail.com>
Cc: Ido Schimmel <idosch@idosch.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"bridge@lists.linux-foundation.org"
	<bridge@lists.linux-foundation.org>,
	Mrinmoy Ghosh <mrinmoy_g@hotmail.com>,
	razor@blackwall.org
Subject: Re: [PATCH] net: bridge: vxlan: Protocol field in bridge fdb
Date: Thu, 11 Jun 2026 15:19:16 +0300	[thread overview]
Message-ID: <20260611121916.GA913575@shredder> (raw)
In-Reply-To: <CACWwMkvCAdjDPEraGhBdH67tkK=3p=aygZ2JYCRPkOzjVghFpw@mail.gmail.com>

On Tue, Jun 09, 2026 at 06:55:10PM -0400, Patrice Brissette wrote:
> I'm following up on the status of this patch series. This feature is
> critical for our EVPN Multihoming deployments, and the corresponding
> FRRouting work is currently blocked pending support for this
> functionality.
> 
> Has there been any progress on this effort, or has someone else picked
> it up?

No. Assumption was that the author will follow up on the feedback.

> What are the next steps?

Before I answer this, I have some questions / comments below.

> 
> For reference, the proposed work includes:
> 
> Adding support for a protocol field to bridge and VXLAN FDB entries.
> 
> Allowing the protocol field to identify the source of an FDB update,
> for example:
> 
> Zebra for control-plane-originated entries
> 
> HW for data-plane-learned entries (e.g., ASIC-learned MACs)

Note that entries installed by the kernel (as opposed to user space)
will always be programmed with RTPROT_KERNEL, regardless of the data
path in which they were learned (software / hardware).

> 
> Extending iproute2 to support configuration and display of this new field.
> 
> The primary use case is EVPN Multihoming with ARP/ND synchronization
> for hosts that are multihomed to a set of routers. In this
> environment, the same MAC address may be learned locally by hardware
> when the host is directly attached, or installed by the control plane
> when the entry is synchronized through BGP, as commonly occurs in
> all-active scenarios.
> 
> The protocol field allows FRRouting to distinguish
> control-plane-installed entries from hardware-learned entries,
> enabling correct MAC mobility handling, ES peer synchronization, and
> proper processing of MAC ownership changes.

Can't this be achieved by using "activity_notify"?

See:

https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=e041178ba6bc2af0a1148145ee303c9db79fb4cb
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=5e88777a382480d0b1f7eafb6d0fb680ec7a40bb

When an FDB entry is learned on an ES, install it with "activity_notify
norefresh":

es1# bridge fdb replace 00:aa:bb:cc:dd:ee dev bond1 master static activity_notify norefresh
es1# # bridge -d fdb get 00:aa:bb:cc:dd:ee br br1
00:aa:bb:cc:dd:ee dev bond1 activity_notify master br1 static

It will transition to "inactive" after the aging time elapsed:

es1# bridge -d fdb get 00:aa:bb:cc:dd:ee br br1
00:aa:bb:cc:dd:ee dev bond1 activity_notify inactive master br1 static

And install it as "activity_notify inactive" when synchronizing it to
other ES peers:

es2# bridge fdb add 00:aa:bb:cc:dd:ee dev bond1 master static activity_notify inactive
es2# bridge -d fdb get 00:aa:bb:cc:dd:ee br br1
00:aa:bb:cc:dd:ee dev bond1 activity_notify inactive master br1 static

Then entry will become active if later it is refreshed / learned by the
data path:

es2# bridge -d fdb get 00:aa:bb:cc:dd:ee br br1
00:aa:bb:cc:dd:ee dev bond1 activity_notify master br1 static

  reply	other threads:[~2026-06-11 12:19 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-09 22:55 [PATCH] net: bridge: vxlan: Protocol field in bridge fdb Patrice Brissette
2026-06-11 12:19 ` Ido Schimmel [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-08-18 17:52 Mrinmoy Ghosh
2025-08-20 13:18 ` Ido Schimmel
2025-08-21 11:03 ` 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=20260611121916.GA913575@shredder \
    --to=idosch@nvidia.com \
    --cc=bridge@lists.linux-foundation.org \
    --cc=idosch@idosch.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mrinmoy_g@hotmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=patrice.brissette@gmail.com \
    --cc=razor@blackwall.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox