mbox series

[RFC,net-next,RESEND,0/2] MPLS point-to-multipoint

Message ID 20240613113529.238-1-ekinzie@labn.net (mailing list archive)
Headers show
Series MPLS point-to-multipoint | expand

Message

Eric Kinzie June 13, 2024, 11:35 a.m. UTC
From: Eric H Kinzie <ekinzie@labn.net>

This series introduces point-to-multipoint MPLS LSPs and fixes a bug
related to sending ARPs for MPLS-tagged packets.

ARP/ND: I fixed this problem where it was observed (arp_solicit()),
but I'm not sure if this is a good long-term solution.  Other options I
considered were (1) adjust ip[v6]_hdr() to make sure the outer header
is actually IP and (2) add a field to struct sk_buff to track layer
2.5 headers.  The first option might add overhead in places where it has
more impact than addressing the problem in ARP.  The second option, of
course, makes struct sk_buff bigger and more complicated, which doesn't
seem great, either.

P2MP: This splits up the mpls_forward() function to handle P2MP LSPs if
the route's multicast flag is set.  It uses the same array of next-hops in
struct mpls_route that a multipath configuration uses.  It is convenient
and I can't think of a use case for p2mp+multipath, but I'm curious if
there are reasons not to overload the next-hop array this way.


Eric H Kinzie (2):
  net: do not interpret MPLS shim as start of IP header
  net: mpls: support point-to-multipoint LSPs

 net/ipv4/arp.c      |  15 ++-
 net/ipv6/ndisc.c    |  13 ++-
 net/mpls/af_mpls.c  | 218 ++++++++++++++++++++++++++++++--------------
 net/mpls/internal.h |   6 +-
 4 files changed, 176 insertions(+), 76 deletions(-)