iproute2/ip
Paolo Lungaroni 69629b4e43 seg6: add support for vrftable attribute in SRv6 End.DT4/DT6 behaviors
We introduce the "vrftable" attribute for supporting the SRv6 End.DT4 and
End.DT6 behaviors in iproute2.
The "vrftable" attribute indicates the routing table associated with
the VRF device used by SRv6 End.DT4/DT6 for routing IPv4/IPv6 packets.

The SRv6 End.DT4/DT6 is used to implement IPv4/IPv6 L3 VPNs based on Segment
Routing over IPv6 networks in multi-tenants environments.
It decapsulates the received packets and it performs the IPv4/IPv6 routing
lookup in the routing table of the tenant.

The SRv6 End.DT4/DT6 leverages a VRF device in order to force the routing
lookup into the associated routing table using the "vrftable" attribute.

Some examples:
 $ ip -6 route add 2001:db8::1 encap seg6local action End.DT4 vrftable 100 dev eth0
 $ ip -6 route add 2001:db8::2 encap seg6local action End.DT6 vrftable 200 dev eth0

Standard Output:
 $ ip -6 route show 2001:db8::1
 2001:db8::1  encap seg6local action End.DT4 vrftable 100 dev eth0 metric 1024 pref medium

JSON Output:
$ ip -6 -j -p route show 2001:db8::2
[ {
        "dst": "2001:db8::2",
        "encap": "seg6local",
        "action": "End.DT6",
        "vrftable": 200,
        "dev": "eth0",
        "metric": 1024,
        "flags": [ ],
        "pref": "medium"
} ]

v2:
 - no changes made: resubmit after pulling out this patch from the kernel
   patchset.

v1:
 - mixing this patch with the kernel patchset confused patckwork.

Signed-off-by: Paolo Lungaroni <paolo.lungaroni@cnit.it>
Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
Signed-off-by: David Ahern <dsahern@gmail.com>
2020-12-09 02:27:42 +00:00
..
.gitignore Another .gitignore file. 2006-08-08 12:11:23 -07:00
Makefile ip link: initial support for bareudp devices 2020-07-06 11:11:05 -07:00
ifcfg ifcfg/rtpr: convert to POSIX shell 2018-01-10 08:26:09 -08:00
ila_common.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
ip.c ip: add IP_LIB_DIR environment variable 2020-12-02 16:37:07 +00:00
ip6tunnel.c ip tunnel: add json output 2019-08-07 12:00:58 -07:00
ip_common.h ip: add IP_LIB_DIR environment variable 2020-12-02 16:37:07 +00:00
ipaddress.c Merge branch 'main' into next 2020-10-11 20:11:09 -06:00
ipaddrlabel.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
ipfou.c ip fou: respect preferred_family for IPv6 2020-07-06 11:03:09 -07:00
ipila.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
ipl2tp.c use print_{,h}hu instead of print_uint when format specifier is %{,h}hu 2019-02-10 19:00:59 -08:00
iplink.c ip: add IP_LIB_DIR environment variable 2020-12-02 16:37:07 +00:00
iplink_bareudp.c iplink_bareudp: use common include syntax 2020-07-08 08:38:58 -07:00
iplink_bond.c ip: bond: add peer notification delay support 2019-07-10 13:54:09 -07:00
iplink_bond_slave.c iplink: bond: print lacp actor/partner oper states as strings 2020-01-02 17:45:32 +00:00
iplink_bridge.c bridge: fix string length warning 2020-11-29 16:20:16 -08:00
iplink_bridge_slave.c ip: iplink_bridge_slave: Convert to use print_on_off() 2020-11-24 21:43:30 -07:00
iplink_can.c iplink_can: fix format output of clock with flag -details 2019-07-26 15:05:20 -07:00
iplink_dummy.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
iplink_geneve.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
iplink_hsr.c iplink: hsr: add support for creating PRP device similar to HSR 2020-08-22 21:14:12 -07:00
iplink_ifb.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
iplink_ipoib.c ip: iplink_ipoib.c: Remove extra spaces 2020-09-30 22:29:05 -07:00
iplink_ipvlan.c iplink: add ipvtap support 2018-09-20 17:53:56 -07:00
iplink_macvlan.c ip: link_macvlan.c: add json output support 2017-08-17 18:02:41 -07:00
iplink_netdevsim.c ip: link: add support for netdevsim device type 2018-01-02 20:46:19 -08:00
iplink_nlmon.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
iplink_rmnet.c ip: add rmnet initial support 2018-06-15 11:15:14 -07:00
iplink_team.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
iplink_vcan.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
iplink_vlan.c lib: parse_mapping: Recognize a keyword "all" 2020-11-13 19:43:15 -07:00
iplink_vrf.c iplink_vrf: Save device index from response for return code 2018-06-01 15:45:09 -04:00
iplink_vxcan.c iplink: Perform most of request buffer setups and checks in iplink_parse() 2018-03-11 17:59:03 -07:00
iplink_vxlan.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
iplink_xdp.c iplink: add support for reporting multiple XDP programs 2018-07-15 13:10:03 -07:00
iplink_xstats.c ip: xstats: add json output support 2019-03-15 13:55:57 -07:00
ipmacsec.c lib: Add parse_one_of(), parse_on_off() 2020-11-13 19:43:15 -07:00
ipmaddr.c iproute2: ip maddress: Check multiaddr length 2020-08-22 21:12:30 -07:00
ipmonitor.c ipmonitor: Add nexthop option to monitor 2019-06-11 10:31:30 -07:00
ipmptcp.c mptcp: show all endpoints when no ID is specified 2020-07-27 16:39:58 -07:00
ipmroute.c Merge branch 'master' into next 2019-06-21 15:59:24 -07:00
ipneigh.c ipneigh: neigh get support 2019-10-01 08:23:43 -07:00
ipnetconf.c ip: ipnetconf: Convert to use print_on_off() 2020-11-24 21:43:34 -07:00
ipnetns.c ip/netns: use flock when setting up /run/netns 2020-12-03 08:31:23 -08:00
ipnexthop.c nexthop: Always print nexthop flags 2020-11-22 12:43:56 -07:00
ipntable.c ipntable: add missing ndts_table_fulls ntable stat 2020-10-06 15:07:10 -07:00
ipprefix.c Tree wide: Drop sockaddr_nl arg 2018-10-22 09:43:48 -07:00
iproute.c ip route: Print "trap" nexthop indication 2020-11-22 12:42:20 -07:00
iproute_lwtunnel.c seg6: add support for vrftable attribute in SRv6 End.DT4/DT6 behaviors 2020-12-09 02:27:42 +00:00
iprule.c iprule: always print realms keyword for rule 2019-04-24 15:06:15 -07:00
ipseg6.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
iptoken.c ip/iptoken: fix dump error when ipv6 disabled 2019-06-26 14:23:12 -07:00
iptunnel.c ip tunnel: add json output 2019-08-07 12:00:58 -07:00
iptuntap.c ip: iptuntap: Convert to use print_on_off() 2020-11-24 21:43:41 -07:00
ipvrf.c lib: make ipvrf able to use libbpf and fix function name conflicts 2020-11-24 22:14:04 -07:00
ipxfrm.c ip xfrm: support printing XFRMA_SET_MARK_MASK attribute in states 2020-09-01 19:49:29 -06:00
link_gre.c erspan: Add type I version 0 support. 2020-04-30 02:40:10 +00:00
link_gre6.c erspan: Add type I version 0 support. 2020-04-30 02:40:10 +00:00
link_ip6tnl.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
link_iptnl.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
link_veth.c iplink: Perform most of request buffer setups and checks in iplink_parse() 2018-03-11 17:59:03 -07:00
link_vti.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
link_vti6.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
link_xfrm.c ip: xfrm if_id -ve value is error 2019-12-25 12:38:13 -08:00
routef mark shell scripts +x 2018-01-10 08:23:49 -08:00
routel mark shell scripts +x 2018-01-10 08:23:49 -08:00
rtm_map.c ip: add a new parameter -Numeric 2019-06-18 08:37:47 -07:00
rtmon.c replace SNAPSHOT with auto-generated version string 2020-08-03 10:02:47 -07:00
rtpr ifcfg/rtpr: convert to POSIX shell 2018-01-10 08:26:09 -08:00
static-syms.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
tcp_metrics.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
tunnel.c ip tunnel: add json output 2019-08-07 12:00:58 -07:00
tunnel.h tunnel: factorize printout of GRE key and flags 2019-07-18 10:19:47 -07:00
xfrm.h xfrm: add option to hide keys in state output 2019-01-21 08:31:20 -08:00
xfrm_monitor.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
xfrm_policy.c ip xfrm: policy: support policies with IF_ID in get/delete/deleteall 2020-07-13 08:51:37 -07:00
xfrm_state.c ip xfrm: support setting XFRMA_SET_MARK_MASK attribute in states 2020-10-07 00:10:47 -06:00