Skip to content

[patches-sonic]: Drop the bridge FDB protocol and unused NTF_EXT_VALIDATED patches - #619

Draft
tahmed-dev wants to merge 2 commits into
sonic-net:masterfrom
tahmed-dev:tahmed/fpm-mac-learning-master
Draft

[patches-sonic]: Drop the bridge FDB protocol and unused NTF_EXT_VALIDATED patches#619
tahmed-dev wants to merge 2 commits into
sonic-net:masterfrom
tahmed-dev:tahmed/fpm-mac-learning-master

Conversation

@tahmed-dev

Copy link
Copy Markdown
Contributor

Why I did it

Two SONiC kernel patches exist only to support MAC learning through the Linux
bridge FDB. With MAC synchronization moved onto the FPM channel, they are no
longer needed, and carrying out-of-tree kernel patches has an ongoing cost at
every kernel rebase.

  • 0002-net-bridge-vxlan-Protocol-field-in-bridge-fdb.patch adds an
    NDA_PROTOCOL field to the bridge/vxlan FDB and, more significantly, makes
    deletes protocol-scoped so control-plane and data-plane entries can coexist.
    That arbitration belongs in SONiC, not in the kernel, and nothing issues those
    protocol-scoped deletes once MAC state is carried over FPM.
  • 0003-neighbor-Add-NTF_EXT_VALIDATED-flag-for-externally-v.patch is unused.
    There are zero references across the FRR tree and the SONiC daemons. It is for
    EVPN-MH neighbour proxy advertisement, which FRR implements in user space via
    ZEBRA_NEIGH_ES_PEER_PROXY without asking the kernel. It also went upstream
    around 6.16.

How I did it

Remove both patch files and their entries from patches-sonic/series.

Patch 0001-vxlan-bridge-Add-NDA_FLAGS_EXT-support-with-NTF_EXT_.patch is
deliberately retained: it defines NTF_EXT_MH_PEER_SYNC, which FRR consumes
for EVPN multihoming peer sync. That is a separate feature and out of scope here.

How to verify it

make target/debs/trixie/linux-image-6.12.41+deb13-sonic-amd64-unsigned_6.12.41-1_amd64.deb

The remaining series applies cleanly and the kernel builds. Booted on an Arista
7060X6-64PE-B pair.

Dependency / merge order

This PR must merge LAST. On master today, sonic-swss fdbsyncd still
contains the kernel FDB protocol plumbing and sonic-buildimage still ships the
iproute2 proto patch that these kernel patches support. Merging this first
would remove kernel support that shipping code still depends on.

Required to merge first:

  • sonic-swss: drops the dead kernel FDB protocol plumbing
  • sonic-buildimage: drops the iproute2 bridge FDB protocol field patch

Which release branch to backport

None requested at this time.

Description for the changelog

Drop the bridge FDB protocol field and unused NTF_EXT_VALIDATED kernel patches.

Nothing consumes the flag. It exists for EVPN multihoming neighbour proxy
advertisement, and FRR implements that in user space through its own
ZEBRA_NEIGH_ES_PEER_PROXY state rather than asking the kernel, so neither
FRR nor any SONiC daemon references NTF_EXT_VALIDATED or extern_valid.

The series note claimed the flag was already upstream at 6.12, but it is
absent from the 6.12.41 tree we build, so that was not the reason to drop
it either way.

The EVPN MH patches that remain are load bearing: NDA_FLAGS_EXT carries
NTF_E_MH_PEER_SYNC, and the bridge FDB protocol field is what records
whether a MAC was learned by the hardware or by zebra.

Signed-off-by: Tamer Ahmed <tamerahmed@microsoft.com>
NDA_PROTOCOL on a bridge FDB entry is not upstream, and nothing needs it any
more. Where a MAC came from now travels over the FPM channel, so zebra no
longer has to read an origin tag back off the kernel entry, and it no longer
writes one.

fdbsyncd still spells "proto hw" on its kernel path, but it probes for support
at startup and drops the tag when the kernel does not accept it, so removing
this patch degrades that path rather than breaking it.

The NDA_FLAGS_EXT patch stays: it carries NTF_EXT_MH_PEER_SYNC for EVPN
multihoming, which is a separate feature and is not upstream either.

Signed-off-by: Tamer Ahmed <tamerahmed@microsoft.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@mssonicbld

Copy link
Copy Markdown

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@pbrisset

pbrisset commented Sep 2, 2026

Copy link
Copy Markdown

The PR direction looks right, but the commit text says fdbsyncd still spells "proto hw" and probes/falls back when the kernel does not accept it. The matching SWSS PR appears to remove the bridge FDB proto probe/path and simply omits proto on the legacy kernel path.

Can we update the commit message / PR description to say the legacy kernel path intentionally runs without the SONiC FDB protocol extension, matching the pre-proto behavior?

@pbrisset pbrisset left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we confirm the remaining patch stack applies cleanly and boots with only 0001-vxlan-bridge-Add-NDA_FLAGS_EXT-support-with-NTF_EXT_... left under the EVPN MH section? The important validation is that NTF_EXT_MH_PEER_SYNC still works after removing the protocol and extern_valid patches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants