[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191114124441.2261-6-roid@mellanox.com>
Date: Thu, 14 Nov 2019 14:44:41 +0200
From: Roi Dayan <roid@...lanox.com>
To: netdev@...r.kernel.org
Cc: David Ahern <dsahern@...il.com>,
Stephen Hemminger <stephen@...workplumber.org>,
Jiri Pirko <jiri@...lanox.com>,
Eli Britstein <elibr@...lanox.com>,
Roi Dayan <roid@...lanox.com>
Subject: [PATCH iproute2 v2 5/5] tc: flower: fix output for ip tos and ttl
From: Eli Britstein <elibr@...lanox.com>
Fix the output for ip tos and ttl to be numbers in JSON format.
Example:
$ tc qdisc add dev eth0 ingress
$ tc filter add dev eth0 protocol ip parent ffff: prio 1 flower skip_hw \
ip_tos 5/0xf action drop
Non JSON format remains the same:
$ tc filter show dev eth0 parent ffff:
filter protocol ip pref 1 flower chain 0
filter protocol ip pref 1 flower chain 0 handle 0x1
eth_type ipv4
ip_tos 5/0xf
skip_hw
not_in_hw
action order 1: gact action drop
random type none pass val 0
index 1 ref 1 bind 1
JSON format is changed (partial output):
$ tc -p -j filter show dev eth0 parent ffff:
Before:
"options": {
"keys": {
"ip_tos": "0x5/f",
...
After:
"options": {
"keys": {
"ip_tos": 5,
"ip_tos_mask": 15,
...
Fixes: 6ea2c2b1cff6 ("tc: flower: add support for matching on ip tos and ttl")
Signed-off-by: Eli Britstein <elibr@...lanox.com>
Reviewed-by: Roi Dayan <roid@...lanox.com>
Acked-by: Jiri Pirko <jiri@...lanox.com>
---
tc/f_flower.c | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/tc/f_flower.c b/tc/f_flower.c
index 724577563c27..1b518ef30583 100644
--- a/tc/f_flower.c
+++ b/tc/f_flower.c
@@ -1617,20 +1617,7 @@ static void flower_print_ip_proto(__u8 *p_ip_proto,
static void flower_print_ip_attr(const char *name, struct rtattr *key_attr,
struct rtattr *mask_attr)
{
- SPRINT_BUF(namefrm);
- SPRINT_BUF(out);
- size_t done;
-
- if (!key_attr)
- return;
-
- done = sprintf(out, "0x%x", rta_getattr_u8(key_attr));
- if (mask_attr)
- sprintf(out + done, "/%x", rta_getattr_u8(mask_attr));
-
- print_string(PRINT_FP, NULL, "%s ", _SL_);
- sprintf(namefrm, "%s %%s", name);
- print_string(PRINT_ANY, name, namefrm, out);
+ print_masked_u8(name, key_attr, mask_attr, true);
}
static void flower_print_matching_flags(char *name,
--
2.8.4
Powered by blists - more mailing lists