@@ -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\n", *argv);
+ addattr32(&req.n, sizeof(req), RTA_FLOWLABEL,
+ flowlabel);
} else {
inet_prefix addr;
@@ -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" .
Allow specifying an IPv6 flow label when performing a route lookup. Signed-off-by: Ido Schimmel <idosch@nvidia.com> --- ip/iproute.c | 10 +++++++++- man/man8/ip-route.8.in | 8 +++++++- 2 files changed, 16 insertions(+), 2 deletions(-)