SRv6 is available in the mainstream Linux kernel since version 4.10. We recommend that you fetch the latest version of the kernel at http://kernel.org to benefit from recent features and bugfixes. Alternatively, you can clone the net-next git repository at https://kernel.googlesource.com/pub/scm/linux/kernel/git/davem/net-next.git. This repository contains the networking updates to be included in the next Linux release.
To enable SRv6 support, at least
CONFIG_IPV6 must be enabled. The default built-in SRv6 code supports elementary processing of SR-enabled packets.
For extended features such as SR encapsulation or other advanced processing, enable
The HMAC extension of SRv6 can be enabled through
To use iptables to filter packets on their SRv6 header, enable
CONFIG_IP6_NF_MATCH_SRH (available since kernel v4.18).
Finally, the BPF network functions can be enabled through
CONFIG_IPV6_SEG6_BPF (available since kernel v4.18).
Today most of the recent distributions compile the kernel with
- Debian (since 10) - Fedora (since 24) - Raspbian (since 2018-04-18) - Ubuntu (since 18.04) - [...]
CONFIG_IPV6_SEG6_BPF is enabled in:
- Debian (since 10) - Fedora (since 27)
Fedora (since 27) is the only one enabling
CONFIG_IP6_NF_MATCH_SRH as well.
SRv6 features are controlled through sysctls and through the iproute2 tool (since version 4.12).