iproute2/ip
Paolo Lungaroni 3e26254f31 seg6: add support for SRv6 End.DT46 Behavior
We introduce the new "End.DT46" action for supporting the SRv6 End.DT46
Behavior in iproute2.
The SRv6 End.DT46 Behavior, defined in RFC 8986 [1] section 4.8, can be
used to implement L3 VPNs based on Segment Routing over IPv6 networks in
multi-tenants environments and it is capable of handling both IPv4 and
IPv6 tenant traffic at the same time.
The SRv6 End.DT46 Behavior decapsulates the received packets and it
performs the IPv4 or IPv6 routing lookup in the routing table of the
tenant.

As for the End.DT4 and for the End.DT6 in VRF mode, the SRv6 End.DT46
Behavior leverages a VRF device in order to force the routing lookup into
the associated routing table using the "vrftable" attribute.

To make the End.DT46 work properly, it must be guaranteed that the
routing table used for routing lookup operations is bound to one and
only one VRF during the tunnel creation. Such constraint has to be
enforced by enabling the VRF strict_mode sysctl parameter, i.e.:

 $ sysctl -wq net.vrf.strict_mode=1

Note that the same approach is used for the End.DT4 Behavior and for the
End.DT6 Behavior in VRF mode.

An SRv6 End.DT46 Behavior instance can be created as follows:

 $ ip -6 route add 2001:db8::1 encap seg6local action End.DT46 vrftable 100 dev vrf100

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

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

This patch updates the route.8 man page and the ip route help with the
information related to End.DT46.
Considering that the same information was missing for the SRv6 End.DT4 and
the End.DT6 Behaviors, we have also added it.

[1] https://www.rfc-editor.org/rfc/rfc8986.html#name-enddt46-decapsulation-and-s

Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
Signed-off-by: Paolo Lungaroni <paolo.lungaroni@uniroma2.it>
Signed-off-by: David Ahern <dsahern@kernel.org>
2021-06-22 15:36:17 +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 Merge git://git.kernel.org/pub/scm/network/iproute2/iproute2-next 2021-04-27 19:39:39 -07:00
ip6tunnel.c ip tunnel: add json output 2019-08-07 12:00:58 -07:00
ip_common.h Merge branch 'main' into next 2021-03-21 17:16:01 +00:00
ipaddress.c ip: dynamically size columns when printing stats 2021-05-09 22:51:59 +00: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 ip: cleanup help message text 2021-03-18 11:24:06 -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: cleanup help message text 2021-03-18 11:24:06 -07:00
iplink_bareudp.c iplink_bareudp: cleanup help message and man page 2021-02-02 14:11:32 -08:00
iplink_bond.c bond: support xmit_hash_policy=vlan+srcmac 2021-01-23 18:33:15 +00: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: add Classical CAN frame LEN8_DLC support 2021-01-29 15:49:23 +00: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 Merge branch 'main' into next 2021-04-28 15:48:28 +00: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 Merge branch 'main' into next 2021-03-21 17:16:01 +00:00
ipmptcp.c mptcp: make sure flag signal is set when add addr with port 2021-04-30 14:30:24 +00:00
ipmroute.c Merge branch 'master' into next 2019-06-21 15:59:24 -07:00
ipneigh.c ip: cleanup help message text 2021-03-18 11:24:06 -07:00
ipnetconf.c ip: ipnetconf: Convert to use print_on_off() 2020-11-24 21:43:34 -07:00
ipnetns.c ip: netns: fix missing netns close on some error paths 2021-04-26 21:04:02 -07:00
ipnexthop.c Merge git://git.kernel.org/pub/scm/network/iproute2/iproute2-next 2021-04-27 19:39:39 -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 seg6: add support for SRv6 End.DT46 Behavior 2021-06-22 15:36:17 +00:00
iproute_lwtunnel.c seg6: add support for SRv6 End.DT46 Behavior 2021-06-22 15:36:17 +00:00
iprule.c ip: cleanup help message text 2021-03-18 11:24:06 -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: cleanup help message text 2021-03-18 11:24:06 -07:00
iptuntap.c lib: move get_task_name() from rdma 2021-04-22 05:22:16 +00:00
ipvrf.c vrf: print BPF log buffer if bpf_program_load fails 2021-01-18 12:32:11 -08:00
ipxfrm.c Merge branch 'main' into next 2021-03-21 17:16:01 +00:00
link_gre.c erspan: fix JSON output 2021-04-10 09:52:48 -07:00
link_gre6.c erspan: fix JSON output 2021-04-10 09:52:48 -07: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: add support for tfcpad 2021-03-21 17:15:07 +00:00