This patchset provides support for the SRv6 End.DT4 behavior.
The SRv6 End.DT4 is used to implement multi-tenant IPv4 L3 VPN. It decapsulates the received packets and performs IPv4 routing lookup in the routing table of the tenant. The SRv6 End.DT4 Linux implementation leverages a VRF device. The SRv6 End.DT4 is defined in the SRv6 Network Programming [1].
- Patch 1/5 is needed to solve a pre-existing issue with tunneled packets when a sniffer is attached;
- Patch 2/5 improves the management of the seg6local attributes used by the SRv6 behaviors;
- Patch 3/5 introduces two callbacks used for customizing the creation/destruction of a SRv6 behavior;
- Patch 4/5 is the core patch that adds support for the SRv6 End.DT4 behavior;
- Patch 5/5 adds the selftest for SRv6 End.DT4 behavior.
I would like to thank David Ahern for his support during the development of this patch set.
Comments, suggestions and improvements are very welcome!
Thanks, Andrea Mayer
v1 improve comments;
add new patch 2/5 titled: seg6: improve management of behavior attributes
seg6: add support for the SRv6 End.DT4 behavior - remove the inline keyword in the definition of fib6_config_get_net().
selftests: add selftest for the SRv6 End.DT4 behavior - add check for the vrf sysctl
[1] https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming
Andrea Mayer (5): vrf: add mac header for tunneled packets when sniffer is attached seg6: improve management of behavior attributes seg6: add callbacks for customizing the creation/destruction of a behavior seg6: add support for the SRv6 End.DT4 behavior selftests: add selftest for the SRv6 End.DT4 behavior
drivers/net/vrf.c | 78 ++- net/ipv6/seg6_local.c | 370 ++++++++++++- .../selftests/net/srv6_end_dt4_l3vpn_test.sh | 494 ++++++++++++++++++ 3 files changed, 927 insertions(+), 15 deletions(-) create mode 100755 tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh