Skip to content

Basic MPLS support

Eric W. Biederman linux-hams netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 21 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8mpls: Refactor how the mpls module is builtnet/Makefile net/mpls/Kconfig+18 -23 replies
2/8mpls: Basic routing supportinclude/linux/socket.h include/net/net_namespace.h include/net/netns/mpls.h +4 more+419 -00 replies
3/8mpls: Add a sysctl to control the size of the mpls label tableDocumentation/networking/mpls-sysctl.txt include/net/netns/mpls.h net/mpls/af_mpls.c+162 -00 replies
4/8mpls: Basic support for adding and removing routesnet/mpls/af_mpls.c+134 -00 replies
5/8mpls: Functions for reading and wrinting mpls labels over netlinknet/mpls/af_mpls.c net/mpls/internal.h+60 -00 replies
6/8mpls: Netlink commands to add, remove, and dump routesinclude/uapi/linux/rtnetlink.h net/mpls/af_mpls.c+194 -00 replies
7/8mpls: Multicast route table change notificationsinclude/uapi/linux/rtnetlink.h net/mpls/af_mpls.c+62 -04 replies
8/8ipmpls: Basic device for injecting packets into an mpls tunnelinclude/uapi/linux/if_arp.h net/mpls/Kconfig net/mpls/Makefile +1 more+226 -07 replies

Reviews trailers per patch

1 of 8 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchSimon HormanAndy Gospodarek
SeriesR-b A-b
1/8R-b
2/8
3/8
4/8
5/8
6/8
7/8
8/8

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH net-next 0/8] Basic MPLS support

While trying to figure out what MPLS is and why MPLS support is not in the kernel on a lark I sat down and wrote an MPLS implemenation, so I could answer those questions for myself.

Quoted 1 line

From what I can tell the short answer is MPLS is trivial-simple and the

we don't have an in-kernel implementation because no one has sat down and done the work to have a good mergable implementation.

MPLS has it's good sides and it's bad sides but at the end of the day MPLS has users, and having an in-kernel implementation should help us understand MPLS and focus our conversations dealing with MPLS and VRFs.

Having MPLS in our toolkit as the entire world begins playing with overlay networks aka ``network virtualization'' to support VM and container migration seems appropriate as MPLS is the historical solution to this problem.

Constructive criticism about the netlink interface is especially appreciated. Hopefully we can have at least one protocol in the kernel where the netlink interface doesn't have nasty corner case.

As for linux users. The conversations I had at netdev01 this sounds like a case of if I build it people will use the code.

Eric

Eric W. Biederman (8):
mpls: Refactor how the mpls module is built
mpls: Basic routing support
mpls: Add a sysctl to control the size of the mpls label table
mpls: Basic support for adding and removing routes
mpls: Functions for reading and wrinting mpls labels over netlink
mpls: Netlink commands to add, remove, and dump routes
mpls: Multicast route table change notifications
ipmpls: Basic device for injecting packets into an mpls tunnel

 Documentation/networking/mpls-sysctl.txt |  20 +
 include/linux/socket.h                   |   2 +
 include/net/net_namespace.h              |   4 +
 include/net/netns/mpls.h                 |  17 +
 include/uapi/linux/if_arp.h              |   1 +
 include/uapi/linux/rtnetlink.h           |   4 +
 net/Makefile                             |   2 +-
 net/mpls/Kconfig                         |  28 +-
 net/mpls/Makefile                        |   2 +
 net/mpls/af_mpls.c                       | 919 +++++++++++++++++++++++++++++++
 net/mpls/internal.h                      |  59 ++
 net/mpls/ipmpls.c                        | 219 ++++++++
 12 files changed, 1275 insertions(+), 2 deletions(-)