Re: Porting OpenBSD MPLS to FreeBSD

From: Santiago Martinez <>
Date: Tue, 07 Dec 2021 16:26:42 UTC
Hi Neel, it is exciting to see the topic coming alive again.

Once you think is good/ready for testing, or when you require it,  i can 
avail hardware , routers and traffic generator to take the stack for a ride.

Count me in for testing, reporting, etc.

Best regards.


On 12/6/21 18:40, Rodney W. Grimes wrote:
> [ Charset UTF-8 unsupported, converting... ]
>> 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.
> When you get to working with FRR let me know, I am a member of
> the CI infustructure team there and can hook you up directly
> with very knowledgeable FRR developers.
>> I wasn't too keen on using netgraph anyways, I felt it was unnecessary
>> complexity.
> True, but with that complexity comes an ulmost unlimited flexiablity.
>> If I were to work on this, would I be better off starting with the
>> dataplane or control plane?
> I concur with Alexander on this, dataplace first, with an eye on how
> FRR/Bird interact with the dataplane.
>>>> * 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@)