From patchwork Thu Jan 18 14:04:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serhey Popovych X-Patchwork-Id: 862920 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="teoxvwlf"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zMm3Y3SG2z9s7g for ; Fri, 19 Jan 2018 01:06:49 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756498AbeAROFo (ORCPT ); Thu, 18 Jan 2018 09:05:44 -0500 Received: from mail-lf0-f68.google.com ([209.85.215.68]:45117 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756443AbeAROFl (ORCPT ); Thu, 18 Jan 2018 09:05:41 -0500 Received: by mail-lf0-f68.google.com with SMTP id x196so6799049lfd.12 for ; Thu, 18 Jan 2018 06:05:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=Gv5ERUB+pCHDsoxczMtcQ4lZsgeOoiRDnEFCYQSE0os=; b=teoxvwlfwhANRvd4ZWxm6s+WhW1CoCL6OlYmBr3WUrwxGHdV+wf7+GGQ1kg08apVHD qzJ7+yLxOsPTSqXwJlDoOTh+GdxWv5e04ggV0V43SWvBMBOy2aeo5JCVWngrD1G/sTOK /1mA2plRe0CcGRYPKUB/AtLXJtDnZKfSwK1Lv/ysXjM8PbuDMZt9LqgPwLI60GiJ6HmX GUrEY3ClNbMzB3jpX8LTqV/QNbBGQS623qCw/iwYKbIPoqourgG3cNAzXU5beAgWMtBZ xl8dgytBAHLlIZY2D97x27X322LBVaLc6wOUtUBlaoqz751KuOBP+q/Z8QkuGrlu0ODV /IvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=Gv5ERUB+pCHDsoxczMtcQ4lZsgeOoiRDnEFCYQSE0os=; b=m0xUv/D+ya4gjopad7OwOdLhPdu7UzuOQk9yuxqvvmADJQERk+r7qDHQRNWqPIWLA7 8MXvepbwsDo8iX2LqqjkIDTBLbja/wckV/0pxMPLwWlGvvghDoVxFvQOWBoM49bZPFyY coajlcUDKFVCqZNGROcOK4hPIBUbg4u1SRPN++FyLGpgl6hfL1XFSd+1ltc0Uf0ROq2S lVleGtlv284+SE5aa4jqb6U6FRv4GTieYM5BYWVoCFonZdrpXQGdWD9ZliA7Kgb2wS2w rNNggTPHzJVyR9oCZFGpv8SwCFZAGPTxCmeHYbpBXbQNrHR2Uv6MuKVnoAPU18Z0bfes lc1Q== X-Gm-Message-State: AKwxytd2ucGlzltp4o3IACbWcfNeCRuZT13070xIMzHQbrdN8P59d/dG B5alTDHCaKjEc0M1nfOIWlb9/Q== X-Google-Smtp-Source: ACJfBotlER71xC++Lt2e7zY/luFHzUDqNYfrgj5Gxn+oSGoT8lNF46kVcP4MxT8w9e8BVTUY4zJoYg== X-Received: by 10.25.90.200 with SMTP id y69mr17206996lfk.138.1516284339607; Thu, 18 Jan 2018 06:05:39 -0800 (PST) Received: from tuxracer.localdomain ([2a01:6d80::195:20:96:53]) by smtp.gmail.com with ESMTPSA id r21sm1344748lja.8.2018.01.18.06.05.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2018 06:05:38 -0800 (PST) From: Serhey Popovych To: netdev@vger.kernel.org Subject: [PATCH iproute2 v2 3/9] ip/tunnel: Simplify and unify tos printing Date: Thu, 18 Jan 2018 16:04:30 +0200 Message-Id: <1516284276-10942-4-git-send-email-serhe.popovych@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1516284276-10942-1-git-send-email-serhe.popovych@gmail.com> References: <1516284276-10942-1-git-send-email-serhe.popovych@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org For ip tunnels tos can be 0 when not configured, 1 when inherited from encapsulated packet and rest specifying diffserv (rfc2474) or tos (rfc1349) bits. It is stored in packet tos/diffserv field and returned in tos netlink attribute to userspace. Simplify and unify tos printing by using print_0xhex() and print_string() instead of fprintf() to output values. Signed-off-by: Serhey Popovych --- ip/iplink_geneve.c | 23 ++++++++--------------- ip/iplink_vxlan.c | 19 ++++++++----------- ip/link_gre.c | 23 ++++++++--------------- ip/link_iptnl.c | 22 ++++++++-------------- 4 files changed, 32 insertions(+), 55 deletions(-) diff --git a/ip/iplink_geneve.c b/ip/iplink_geneve.c index 5a0afd4..2d0a041 100644 --- a/ip/iplink_geneve.c +++ b/ip/iplink_geneve.c @@ -228,7 +228,7 @@ static void geneve_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) { __u32 vni; __u8 ttl = 0; - __u8 tos; + __u8 tos = 0; if (!tb) return; @@ -270,20 +270,13 @@ static void geneve_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) else print_string(PRINT_FP, NULL, "ttl %s ", "inherit"); - if (tb[IFLA_GENEVE_TOS] && - (tos = rta_getattr_u8(tb[IFLA_GENEVE_TOS]))) { - if (is_json_context()) { - print_0xhex(PRINT_JSON, "tos", "%#x", tos); - } else { - if (tos == 1) { - print_string(PRINT_FP, - "tos", - "tos %s ", - "inherit"); - } else { - fprintf(f, "tos %#x ", tos); - } - } + if (tb[IFLA_GENEVE_TOS]) + tos = rta_getattr_u8(tb[IFLA_GENEVE_TOS]); + if (tos) { + if (is_json_context() || tos != 1) + print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos); + else + print_string(PRINT_FP, NULL, "tos %s ", "inherit"); } if (tb[IFLA_GENEVE_LABEL]) { diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c index b9c335d..88b5662 100644 --- a/ip/iplink_vxlan.c +++ b/ip/iplink_vxlan.c @@ -395,7 +395,7 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) { __u32 vni; __u8 ttl = 0; - __u8 tos; + __u8 tos = 0; __u32 maxaddr; if (!tb) @@ -515,16 +515,13 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) if (tb[IFLA_VXLAN_L3MISS] && rta_getattr_u8(tb[IFLA_VXLAN_L3MISS])) print_bool(PRINT_ANY, "l3miss", "l3miss ", true); - if (tb[IFLA_VXLAN_TOS] && - (tos = rta_getattr_u8(tb[IFLA_VXLAN_TOS]))) { - if (is_json_context()) { - print_0xhex(PRINT_JSON, "tos", "%#x", tos); - } else { - if (tos == 1) - fprintf(f, "tos %s ", "inherit"); - else - fprintf(f, "tos %#x ", tos); - } + if (tb[IFLA_VXLAN_TOS]) + tos = rta_getattr_u8(tb[IFLA_VXLAN_TOS]); + if (tos) { + if (is_json_context() || tos != 1) + print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos); + else + print_string(PRINT_FP, NULL, "tos %s ", "inherit"); } if (tb[IFLA_VXLAN_TTL]) diff --git a/ip/link_gre.c b/ip/link_gre.c index 1cf7f4e..490d7db 100644 --- a/ip/link_gre.c +++ b/ip/link_gre.c @@ -362,6 +362,7 @@ static void gre_print_direct_opt(FILE *f, struct rtattr *tb[]) unsigned int iflags = 0; unsigned int oflags = 0; __u8 ttl = 0; + __u8 tos = 0; if (tb[IFLA_GRE_REMOTE]) { unsigned int addr = rta_getattr_u32(tb[IFLA_GRE_REMOTE]); @@ -397,21 +398,13 @@ static void gre_print_direct_opt(FILE *f, struct rtattr *tb[]) else print_string(PRINT_FP, NULL, "ttl %s ", "inherit"); - if (tb[IFLA_GRE_TOS] && rta_getattr_u8(tb[IFLA_GRE_TOS])) { - int tos = rta_getattr_u8(tb[IFLA_GRE_TOS]); - - if (is_json_context()) { - SPRINT_BUF(b1); - - snprintf(b1, sizeof(b1), "0x%x", tos); - print_string(PRINT_JSON, "tos", NULL, b1); - } else { - fputs("tos ", f); - if (tos == 1) - fputs("inherit ", f); - else - fprintf(f, "0x%x ", tos); - } + if (tb[IFLA_GRE_TOS]) + tos = rta_getattr_u8(tb[IFLA_GRE_TOS]); + if (tos) { + if (is_json_context() || tos != 1) + print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos); + else + print_string(PRINT_FP, NULL, "tos %s ", "inherit"); } if (tb[IFLA_GRE_PMTUDISC]) { diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c index 93e1a1b..7fda580 100644 --- a/ip/link_iptnl.c +++ b/ip/link_iptnl.c @@ -366,6 +366,7 @@ static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[ const char *remote = "any"; __u16 prefixlen, type; __u8 ttl = 0; + __u8 tos = 0; if (!tb) return; @@ -424,20 +425,13 @@ static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[ else print_string(PRINT_FP, NULL, "ttl %s ", "inherit"); - if (tb[IFLA_IPTUN_TOS]) { - int tos = rta_getattr_u8(tb[IFLA_IPTUN_TOS]); - - if (tos) { - if (is_json_context()) { - print_0xhex(PRINT_JSON, "tos", "%#x", tos); - } else { - fputs("tos ", f); - if (tos == 1) - fputs("inherit ", f); - else - fprintf(f, "0x%x ", tos); - } - } + if (tb[IFLA_IPTUN_TOS]) + tos = rta_getattr_u8(tb[IFLA_IPTUN_TOS]); + if (tos) { + if (is_json_context() || tos != 1) + print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos); + else + print_string(PRINT_FP, NULL, "tos %s ", "inherit"); } if (tb[IFLA_IPTUN_PMTUDISC] && rta_getattr_u8(tb[IFLA_IPTUN_PMTUDISC]))