Skip to content

Add SAI L2 bridging, FDB learning, and BUM flooding support - #704

Open
thineshvs-google wants to merge 1 commit into
openconfig:mainfrom
thineshvs-google:l2-dataplane-fix
Open

Add SAI L2 bridging, FDB learning, and BUM flooding support#704
thineshvs-google wants to merge 1 commit into
openconfig:mainfrom
thineshvs-google:l2-dataplane-fix

Conversation

@thineshvs-google

Copy link
Copy Markdown

Add SAI L2 bridging, FDB learning, and BUM flooding support in Lemming

This change implements native Layer 2 Ethernet switching and MAC address learning in Lemming's standalone forwarding pipeline:

  1. Dataplane Tables & Pipeline (switch.go, ports.go):

    • Initializes FDBTable ("fdb") for exact-match MAC forwarding.
    • Initializes FloodTable ("flood") keyed on VLAN_TAG for BUM flooding.
    • Integrates BridgeLearnAction(FDBTable) and LookupAction(FDBTable) into ingress port pipelines.
    • Falls back to LookupAction(FloodTable) on unicast lookup miss or broadcast traffic.
  2. SAI FDB Handling (fdb.go):

    • Adds CreateFdbEntry and RemoveFdbEntry handlers.
    • Maps learned MAC and VLAN IDs directly to port transmit actions in FDBTable.
  3. VLAN Flood Groups (routing.go):

    • Creates aggregate flood groups ("vlan_flood_") in CreateVlan.
    • Dynamically adds/removes port members in CreateVlanMember and RemoveVlanMember with InstanceCount: 1 to ensure active aggregate member forwarding.
  4. Bug Fixes (ports.go, routing.go):

    • Fixes 16-bit VLAN_TAG big-endian byte encoding in exact-match table lookups and port updates.

@thineshvs-google
thineshvs-google requested a review from a team as a code owner July 27, 2026 13:41
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.

1 participant