=== Native MPLS Support for FreeBSD

Links: +
link:https://wiki.freebsd.org/SummerOfCode2026Projects/NativeMPLSSupportForFreeBSD[GSoC Project Wiki] +
link:https://codeberg.org/Subhash_Murmu/freebsd-src[FreeBSD Source Fork]

Contact: Subhash Murmu <subhashmurmujsr2511@gmail.com>

This project adds native Multiprotocol Label Switching (MPLS) support to the FreeBSD kernel as part of Google Summer of Code 2026, mentored by Bruce Simpson and Alexander Chernikov.
MPLS is widely deployed for label-switched forwarding in production networks, but FreeBSD has no MPLS data plane in the base system, so MPLS-capable routing daemons have no kernel forwarding path to program.
The work is built bottom-up, from wire-level encapsulation through the control plane, and integrates with the existing FreeBSD network stack rather than sitting beside it.

Phases 1 through 3 are complete and pushed as a five-commit layered history on the `mpls` branch of the Codeberg fork.
Phase 1 adds link-layer encapsulation and man:netisr[9] dispatch for EtherType 0x8847.
Phase 2 ports OpenBSD's man:ldpd[8] to FreeBSD, where it now builds and runs.
Phase 3 adds the forwarding engine and a per-VNET Label Information Base, with end-to-end LSP transit verified under tcpdump between VNET jails over man:epair[4].

The series has not yet been submitted to Phabricator.
Work continues on kernel route programming for ldpd.

Sponsor: Google Summer of Code 2026
