summaryrefslogtreecommitdiff
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-07-22 08:01:10 -0700
committerJakub Kicinski <kuba@kernel.org>2026-07-22 08:01:10 -0700
commit40c705961d498f97b94b43db3eb046a2037a0e2d (patch)
treea4c058286426a6808d8211bfc9cf4a1846fe67cf /include/uapi/linux
parent4d3365d5d3283010a5d8ab44f568d65e75a06629 (diff)
parent1016a547c6851cde2f5f57f173cba08153e3bcef (diff)
downloadlinux-next-40c705961d498f97b94b43db3eb046a2037a0e2d.tar.gz
linux-next-40c705961d498f97b94b43db3eb046a2037a0e2d.zip
Merge branch 'seg6-add-fib-table-attribute-for-post-encap-sid-route-lookup'
Andrea Mayer says: ==================== seg6: add FIB table attribute for post-encap SID route lookup After SRv6 encapsulation the kernel looks up the route for the first SID, the outer IPv6 destination of the encapsulated packet. This post-encap SID route lookup uses the FIB table of the current routing context. When the encap route is installed in a VRF, the VRF's table may not have a route for the SID, which should be handled by another table, e.g. one used for underlay connectivity. A new optional SEG6_IPTUNNEL_TABLE attribute selects the FIB table used for this lookup. When set by the user, the attribute is honored on both the input path (traffic that is received, encapsulated and forwarded) and the output path (traffic that is locally originated and then encapsulated). SRv6 encap routes that do not set the attribute use the current routing context, as before. A companion iproute2 series follows on the mailing list. The examples below show how to use the "lookup" attribute: # SID route installed in the underlay table 500 ip -6 route add fc00::100/128 via fd00::1 dev veth0 table 500 # encap route in vrf-100; the first SID is looked up in table 500 ip -6 route add cafe::1/128 vrf vrf-100 \ encap seg6 mode encap segs fc00::100 lookup 500 dev veth0 # or if the SID is already handled by the main table ip -6 route add cafe::1/128 vrf vrf-100 \ encap seg6 mode encap segs fc00::100 lookup main dev veth0 This work started from a use case raised by Nicolas Dichtel and took shape in the discussion with him [1]. Thanks Nicolas. The series is made of two patches. The first implements the attribute. The second adds an L3 VPN selftest that exercises both the input and the output path, with the attribute (traffic reaches its destination) and without it (the packet is dropped). [1] https://lore.kernel.org/all/20260327140709.959636-1-nicolas.dichtel@6wind.com/T/ ==================== Link: https://patch.msgid.link/20260711162907.6521-1-andrea.mayer@uniroma2.it Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/seg6_iptunnel.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/uapi/linux/seg6_iptunnel.h b/include/uapi/linux/seg6_iptunnel.h
index 485889b19900..e1964b3a4bb0 100644
--- a/include/uapi/linux/seg6_iptunnel.h
+++ b/include/uapi/linux/seg6_iptunnel.h
@@ -21,6 +21,7 @@ enum {
SEG6_IPTUNNEL_UNSPEC,
SEG6_IPTUNNEL_SRH,
SEG6_IPTUNNEL_SRC, /* struct in6_addr */
+ SEG6_IPTUNNEL_TABLE, /* __u32 FIB table for post-encap SID lookup */
__SEG6_IPTUNNEL_MAX,
};
#define SEG6_IPTUNNEL_MAX (__SEG6_IPTUNNEL_MAX - 1)