Page MenuHomeFreeBSD

mpls: Accelerate label lookup with the FIB framework
Needs ReviewPublic

Authored by hikmat2337_gmail.com on Sun, Sep 13, 12:23 PM.
Tags
None
Referenced Files
F171815214: D59641.diff
Sun, Sep 13, 6:20 PM
F171813530: D59641.diff
Sun, Sep 13, 6:00 PM
F171796192: D59641.id186588.diff
Sun, Sep 13, 2:25 PM
F171795817: D59641.diff
Sun, Sep 13, 2:22 PM
F171784992: D59641.diff
Sun, Sep 13, 12:34 PM

Details

Reviewers
melifaro
Summary

Add an MPLS pctrie module using the FIB framework's subscription,
rebuild, and instance lifecycle. Retain nexthop and group references in
immutable leaves, retire withdrawn leaves after the network epoch, and
reclaim trie nodes through UMA/SMR. Avoid allocating a new leaf for an
unchanged nexthop.

If an incremental allocation fails after the RIB update, switch to
locked RIB lookup before requesting a rebuild. Keep that fallback active
until a fresh instance replaces the divergent trie, since the framework
can stop delivering changes while rebuilding.

Distinguish an uninitialized datapath slot from an ordinary lookup miss
so initial setup failures and new FIBs also retain locked lookup.
Maintain the non-FIB_ALGO path and release the MPLS datapath array
during VNET teardown.

Extend the routing ktest to populate and remove multiple trie branches,
checking that every remaining label still resolves after each change.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 76834
Build 73717: arc lint + arc unit