mpls-new and generate encap mpls route?

Jan Matejka jan.matejka at
Wed Jun 22 16:08:09 CEST 2016


> currently i playing with mpls on linux and bird mpls-new branch, as i created an test l3vpn i
> haven't found a way to configure bird for creating encap mpls routes from bird. MPLS Routes 
> are generated and successfully installed within the kernel.

First of all, beware! We have recently found out better way to implement
that functionality. You should know that this code is work in progress,
highly experimental and may contain fatal bugs, memory leaks and other
dangerous features.

I'm slowly porting and rebasing this branch ontop "nexthop" branch which
contains a little rework of the multipath concept in Bird. Please note
that also the "nexthop" branch is still experimental.

> Is this not implemented, or did i miss something. I read some of the commits and 
> thought that the kernel/netlink part can handle this. Additional i don't find a way to define 
> the used labels, it seems that bird is generating new labels by default with start at 32. Can this be
> influenced?

In mpls-new, there is not possible to set the label set used for l3vpn.
Anyway, we know there should be some config option to influence it.

On the other hand, the kernel/netlink part should be able to insert both
IP encap routes and also MPLS routes.

Well, it isn't so easy.

1) Your kernel must be able to do MPLS routing; you should have
mpls_router.ko inserted and /proc/sys/net/mpls/platform_labels set to
some reasonable value (maximal allowed label)

2) To actually do MPLS routing, for every interface you use at MPLS
network, you should set /proc/sys/net/mpls/conf/<interface>/input to 1
to actually accept MPLS packets and do the switching.

3) To actually do MPLS encapsulation, you should also insert
mpls_iptunnel.ko which handles all the encap stuff.

You may also need quite a new kernel. In Debian kernel, everything works
since v4.5, maybe since v4.4, I don't remember it well.

However, you should read my warning once more. This code is highly
experimental and may change at all.

The plan for near future is to release Bird (integrated IPv4 and IPv6)
with experimental support for labeled BGP in route-reflector mode. We
may in future, surely not this year, support also MPLS-PE mode.

I hope this explanation puts some light on the problem.

Thank you for trying our experimental code!


More information about the Bird-users mailing list