]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: implement dataplane support for rthdr type 4 (Segment Routing Header)
authorDavid Lebrun <david.lebrun@uclouvain.be>
Tue, 8 Nov 2016 13:57:39 +0000 (14:57 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Nov 2016 01:40:06 +0000 (20:40 -0500)
commit7d7efa6a3cea7676f154b9605d66c7bf00e09c87
tree68b978385926bfcbc7bee8ecf106ee81945db02b
parent9bd6e57fd6c2cb8510abcb5b62246cd08ba9dd2a
ipv6: implement dataplane support for rthdr type 4 (Segment Routing Header)

Implement minimal support for processing of SR-enabled packets
as described in
https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-02.

This patch implements the following operations:
- Intermediate segment endpoint: incrementation of active segment and rerouting.
- Egress for SR-encapsulated packets: decapsulation of outer IPv6 header + SRH
  and routing of inner packet.
- Cleanup flag support for SR-inlined packets: removal of SRH if we are the
  penultimate segment endpoint.

A per-interface sysctl seg6_enabled is provided, to accept/deny SR-enabled
packets. Default is deny.

This patch does not provide support for HMAC-signed packets.

Signed-off-by: David Lebrun <david.lebrun@uclouvain.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/ipv6.h
include/linux/seg6.h [new file with mode: 0644]
include/net/seg6.h [new file with mode: 0644]
include/uapi/linux/ipv6.h
include/uapi/linux/seg6.h [new file with mode: 0644]
net/ipv6/addrconf.c
net/ipv6/exthdrs.c