Linux Kernel

Linux kernel 4.10

The IPv6 dataplane functionalities enabling Segment Routing packet generation and forwarding are available in the latest Linux kernel releases (4.10 and later). This implementation is provided by the IP Networking Lab of Université Catholique de Louvain, Louvain-la-Neuve, Belgium.

Linux kernel 4.14

Kernel 4.14 is another milestone in SRv6 support in Linux. A new set of SRv6 behaviors has been added to the kernel (see table below).

Quick start guide and complete documentation are available on the dedicated website.

For any question regarding this implementation, please reach out to the developers mailing list.

srext - a Linux kernel module for the SRv6 Network Programming model

In parallel, the Networking Group from University of Rome Tor Vergata, Italy, is developing a new kernel module providing more advanced Segment Routing functions. This module is intended to be eventually fully compliant with the SRv6 Network Programming model defined in RFC8986.

The srext module is available on GitHub.

SR behaviors support

The following tables show the availability in Linux of each SRv6 behavior defined in RFC8986.

New entries will be added to these tables as more SRv6 behaviors are defined in IETF documents.

Endpoint functions

Endpoint functions are triggered when the IPv6 Destination Address of an incoming packet matches an entry in the My Local SIDs table of an SRv6-enabled node.

Name Description Release
End Endpoint function 4.10 (February 2017), srext
End.X Endpoint function with Layer-3 cross-connect 4.10 (February 2017), srext
End.T Endpoint function with specific IPv6 table lookup 4.14 (November 2017)
End.DX2 Endpoint with decapsulation and Layer-2 cross-connect 4.14 (November 2017), srext
End.DX6 Endpoint with decapsulation and IPv6 cross-connect 4.14 (November 2017), srext
End.DX4 Endpoint with decapsulation and IPv4 cross-connect 4.14 (November 2017), srext
End.DT6 Endpoint with decapsulation and IPv6 table lookup 4.14 (November 2017)
End.DT4 Endpoint with decapsulation and IPv4 table lookup 5.11 (December 2020)
End.DT46 Endpoint with decapsulation and IP table lookup 5.14 (June 2021)
End.B6 Endpoint bound to an SRv6 policy 4.14 (November 2017)
End.B6.Encaps Endpoint bound to an SRv6 encapsulation Policy 4.14 (November 2017)
End.BM Endpoint bound to an SR-MPLS Policy In development
End.S Endpoint in search of a target in table T In development
End.AD Endpoint to SR-unaware APP via dynamic proxy srext
End.AM Endpoint to SR-unaware APP via masquerading srext

Transit behaviors

Transit behaviors are triggered when an in-transit packet matches a steering rule on an SRv6-enabled node. Examples of steering rules are packets arriving on a specific incoming interface or whose Destination Address belongs in a given prefix.

Name Description Release
T.Insert Transit behavior with insertion of an SRv6 Policy 4.10 (February 2017)
T.Encaps Transit behavior with encapsulation in an SRv6 policy 4.10 (February 2017)
T.Encaps.L2 T.Encaps behavior of the received L2 frame 4.14 (November 2017)