[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241223082642.48634-3-idosch@nvidia.com>
Date: Mon, 23 Dec 2024 10:26:41 +0200
From: Ido Schimmel <idosch@...dia.com>
To: <netdev@...r.kernel.org>
CC: <dsahern@...il.com>, <stephen@...workplumber.org>, <petrm@...dia.com>,
<gnault@...hat.com>, Ido Schimmel <idosch@...dia.com>
Subject: [PATCH iproute2-next 2/3] ip: route: Add IPv6 flow label support
Allow specifying an IPv6 flow label when performing a route lookup.
Signed-off-by: Ido Schimmel <idosch@...dia.com>
---
ip/iproute.c | 10 +++++++++-
man/man8/ip-route.8.in | 8 +++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/ip/iproute.c b/ip/iproute.c
index 9520729e58eb..e87faecdb714 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -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;
diff --git a/man/man8/ip-route.8.in b/man/man8/ip-route.8.in
index 676f289a6d26..69d445ef8b5c 100644
--- a/man/man8/ip-route.8.in
+++ b/man/man8/ip-route.8.in
@@ -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" .
--
2.47.1
Powered by blists - more mailing lists