Skip to content

Basic MPLS support take 2

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

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 14 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7mpls: Refactor how the mpls module is builtnet/Makefile net/mpls/Kconfig+18 -20 replies
2/7mpls: Basic routing supportinclude/linux/socket.h include/net/net_namespace.h include/net/netns/mpls.h +4 more+432 -02 replies
3/7mpls: 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+168 -04 replies
4/7mpls: Basic support for adding and removing routesnet/mpls/af_mpls.c+133 -06 replies
5/7mpls: Functions for reading and wrinting mpls labels over netlinknet/mpls/af_mpls.c net/mpls/internal.h+60 -00 replies
6/7mpls: Netlink commands to add, remove, and dump routesinclude/uapi/linux/rtnetlink.h net/mpls/af_mpls.c+237 -00 replies
7/7mpls: Multicast route table change notificationsinclude/uapi/linux/rtnetlink.h net/mpls/af_mpls.c+62 -00 replies

Reviews trailers per patch

1 of 7 patches has a Reviewed-by or Acked-by.

PatchSimon Horman
1/7R-b
2/7
3/7
4/7
5/7
6/7
7/7

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/7] Basic MPLS support take 2

On top of my two pending neighbour table prep patches here is the mpls support refactored to use them, and edited to not drop routes when an interface goes down. Additionally the addition of RTA_LLGATEWAY has been replaced with the addtion of RTA_VIA. RTA_VIA being an attribute that includes the address family as well as the address of the next hop.

MPLS is at it's heart simple and I have endeavoured to maintain that simplicity in my implemenation.

This is an implementation of a RFC3032 forwarding engine, and basic MPLS egress logic. Which should make linux sufficient to be a mpls forwarding node or to be a LSA (Label Switched Router) as it says in all of the MPLS documents. The ingress support will follow but it deserves it's own discussion so I am pushing it separately.

Eric W. Biederman (7):
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

 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/rtnetlink.h           |  10 +
 net/Makefile                             |   2 +-
 net/mpls/Kconfig                         |  23 +-
 net/mpls/Makefile                        |   1 +
 net/mpls/af_mpls.c                       | 974 +++++++++++++++++++++++++++++++
 net/mpls/internal.h                      |  59 ++
 10 files changed, 1110 insertions(+), 2 deletions(-)