From 9479ec1ed0ff6bccde8f3d0e5470597046bb650d Mon Sep 17 00:00:00 2001 From: Eli Britstein Date: Thu, 14 Nov 2019 14:44:41 +0200 Subject: [PATCH] tc: flower: fix output for ip tos and ttl 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 Reviewed-by: Roi Dayan Acked-by: Jiri Pirko Signed-off-by: Stephen Hemminger --- 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 72457756..1b518ef3 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.39.5