Re: Porting OpenBSD MPLS to FreeBSD

From: Neel Chauhan <nc_at_FreeBSD.org>
Date: Sun, 05 Dec 2021 03:49:26 UTC
Hi Alexander,

On 2021-12-04 10:42, Alexander V. Chernikov wrote:
>> * Is porting OpenBSD MPLS to FreeBSD feasible, or are we better off 
>> doing a from-scratch implementation based on netgraph?
> It depends. MPLS implementaiton can be splitted into multiple logical
> parts - dataplane (input, control, output, forward) and control plane
> (programming ip routes+mpls and mpls-only fowarding state). Some parts
> of the former can indeed be imported from OpenBSD. However, most of
> the control plane part have to be written from scratch. Finally, it
> may be desired to maintain an programming interface close to the one
> already implemented in major routing SW (frr, bird) - I guess that
> would be simpler to achieve with native, non-netgraph implementation.

Thanks for your description. I haven't started work yet, but I'd 
probably import the dataplane from OpenBSD where I can and do a new 
control plane, maybe that with a FRR/Bird-compatible API.

I wasn't too keen on using netgraph anyways, I felt it was unnecessary 
complexity.

If I were to work on this, would I be better off starting with the 
dataplane or control plane?

>> * Would some of the other committers here be willing to mentor/help me 
>> if needed?
> I’d love to. Most of my the routing-related stack changes (modular
> lookup framework, nexthops, rtsock cleanups) were done to enable
> efficient kernel-based MPLS implementation.

Thanks!

-Neel (nc@)