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.

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 draft-filsfils-spring-srv6-network-programming.

The srext module is available on GitHub.

SR behaviors support

The following tables show the availability in Linux of each SRv6 behavior defined in draft-filsfils-spring-srv6-network-programming.

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)
End.X Endpoint function with Layer-3 cross-connect 4.10 (February 2017)
End.T Endpoint function with specific IPv6 table lookup In development
End.DX2 Endpoint with decapsulation and Layer-2 cross-connect In development
End.DX6 Endpoint with decapsulation and IPv6 cross-connect In development
End.DX4 Endpoint with decapsulation and IPv4 cross-connect In development
End.DT6 Endpoint with decapsulation and IPv6 table lookup In development
End.DT4 Endpoint with decapsulation and IPv4 table lookup In development
End.B6 Endpoint bound to an SRv6 policy In development
End.B6.Encaps Endpoint bound to an SRv6 encapsulation Policy In development
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.AS Endpoint to SR-unaware APP via static proxy srext (April 2017)
End.AM Endpoint to SR-unaware APP via masquerading In development

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 In development