ip: route: Add IPv6 flow label support

Allow specifying an IPv6 flow label when performing a route lookup.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
Ido Schimmel
2024-12-30 10:58:09 +02:00
committed by David Ahern
parent 3f8c7e7c8b
commit 35ae138e2c
2 changed files with 16 additions and 2 deletions

View File

@@ -67,7 +67,7 @@ static void usage(void)
" [ mark NUMBER ] [ vrf NAME ]\n"
" [ uid NUMBER ] [ ipproto PROTOCOL ]\n"
" [ sport NUMBER ] [ dport NUMBER ]\n"
" [ as ADDRESS ]\n"
" [ as ADDRESS ] [ flowlabel FLOWLABEL ]\n"
" ip route { add | del | change | append | replace } ROUTE\n"
"SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]\n"
" [ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]\n"
@@ -2129,6 +2129,14 @@ static int iproute_get(int argc, char **argv)
invarg("Invalid \"ipproto\" value\n",
*argv);
addattr8(&req.n, sizeof(req), RTA_IP_PROTO, ipproto);
} else if (strcmp(*argv, "flowlabel") == 0) {
__be32 flowlabel;
NEXT_ARG();
if (get_be32(&flowlabel, *argv, 0))
invarg("invalid flowlabel", *argv);
addattr32(&req.n, sizeof(req), RTA_FLOWLABEL,
flowlabel);
} else {
inet_prefix addr;

View File

@@ -47,7 +47,9 @@ ip-route \- routing table management
.B dport
.IR NUMBER " ] ["
.B as
.IR ADDRESS " ]"
.IR ADDRESS " ] ["
.B flowlabel
.IR FLOWLABEL " ]
.ti -8
.BR "ip route" " { " add " | " del " | " change " | " append " | "\
@@ -1316,6 +1318,10 @@ was given, relookup the route with the source set to the preferred
address received from the first lookup.
If policy routing is used, it may be a different route.
.TP
.BI flowlabel " FLOWLABEL"
ipv6 flow label as seen by the route lookup
.P
Note that this operation is not equivalent to
.BR "ip route show" .