From patchwork Fri Jan 19 16:44:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serhey Popovych X-Patchwork-Id: 863638 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="qvHrHL/m"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zNRVx5fSYz9s7F for ; Sat, 20 Jan 2018 03:44:25 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756227AbeASQoX (ORCPT ); Fri, 19 Jan 2018 11:44:23 -0500 Received: from mail-lf0-f66.google.com ([209.85.215.66]:44759 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756155AbeASQoM (ORCPT ); Fri, 19 Jan 2018 11:44:12 -0500 Received: by mail-lf0-f66.google.com with SMTP id w23so2826412lfd.11 for ; Fri, 19 Jan 2018 08:44:11 -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=1B0zBZQ3OFER7eWY0TQGbPl9IeOXY3foHIk34/LuECA=; b=qvHrHL/m23O8K+FRSljnA0NPwEnuZgH7mAoxR/6fFYwzrTshi/vU4alMnw52hLGp26 mk77fHUOBUJE0XSXWq930Z68sczqVGRxwPTbX9fedH3mJ3QVuS/vwIj90SSzBeFEtNmw xSBphZbAh0EctvxrLtwVBcgbuRzwWewYe18GdiHAaS8M0JdQxAQo0r83QMNXFQuif6u0 +Kz8uNj+TuACNhTa+0bF8XPq2/P8idFPDH4/3Bf9OfT4onV0kkJ7TVCtkNzVqurw32oK gg6/gZ2F5JsXAEY+5JMh/Bdt8m2fOwGjIFtuTZg2iqTBZhc01hNVGzkXLjUuRDcZ8ztr m5Gg== 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=1B0zBZQ3OFER7eWY0TQGbPl9IeOXY3foHIk34/LuECA=; b=XDAMdE8N3oI6xIOCFxe5yxtJF3lyvfH3xxFrqPdIP7qNYsA7Wh5ZZmUbl2/UWk9dvM YEi6vNaljgMtl41FxfN3OYcwOHi93yDQi6yEAJvNDSD++NNPGlgbq0BWV2ILFBobKXL5 UzGGMOP0ysoxoVSxznZTinoEGyM1Cp7miwMlIZVxxkI6ZLHLWZaTRNf/XNOJKaU1Pql0 4TDQ1rAqvktr1E/HSV+rYur9LF9anwpym+89a/rMJVmf62jU9Tpi5japfSODc08rkiPi PI+DFGvyqL7s+3tJ5jRx12aI7ntClomto9qhMR2KuQSGJqzeaQKVEjn2VuFu69jQcUCO Fw3Q== X-Gm-Message-State: AKwxytdKq+9rTDRS/QRuZA1GEZMCVfh9VH0LJ2gQg0DIDUAdpxD+X7Bw JCfHP4XEt3QGFTi3c9VURxV7rA== X-Google-Smtp-Source: ACJfBouXqiKAWmSc49J1WqsYyopKB/139y+Hot+WW3KnE0W6zxHH4y9hOE02WApyIH8t6xFjfzZPdg== X-Received: by 10.46.88.76 with SMTP id x12mr15699602ljd.44.1516380250259; Fri, 19 Jan 2018 08:44:10 -0800 (PST) Received: from tuxracer.localdomain ([2a01:6d80::195:20:96:53]) by smtp.gmail.com with ESMTPSA id 77sm1785587ljx.58.2018.01.19.08.44.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jan 2018 08:44:09 -0800 (PST) From: Serhey Popovych To: netdev@vger.kernel.org Subject: [PATCH iproute2 1/4] tunnel: Add space between encap-dport and encap-sport in non-JSON output Date: Fri, 19 Jan 2018 18:44:00 +0200 Message-Id: <1516380243-32568-2-git-send-email-serhe.popovych@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1516380243-32568-1-git-send-email-serhe.popovych@gmail.com> References: <1516380243-32568-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 Fixes: bad76e6b1f44 ("ip/tunnel: Abstract tunnel encapsulation options printing") Fixes: e2d4588331fc ("ip: link_gre.c: add json output support") Signed-off-by: Serhey Popovych --- ip/tunnel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ip/tunnel.c b/ip/tunnel.c index 0414804..46c9102 100644 --- a/ip/tunnel.c +++ b/ip/tunnel.c @@ -201,11 +201,11 @@ static const char *tnl_encap_str(const char *name, int enabled, int port) const char *val; if (!port) { - val = "auto"; + val = "auto "; } else if (port < 0) { val = ""; } else { - snprintf(b1, sizeof(b1), "%u", port - 1); + snprintf(b1, sizeof(b1), "%u ", port - 1); val = b1; } From patchwork Fri Jan 19 16:44:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serhey Popovych X-Patchwork-Id: 863640 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="r28UiQuP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zNRW611rvz9s7F for ; Sat, 20 Jan 2018 03:44:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756176AbeASQoc (ORCPT ); Fri, 19 Jan 2018 11:44:32 -0500 Received: from mail-lf0-f68.google.com ([209.85.215.68]:44765 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756162AbeASQoN (ORCPT ); Fri, 19 Jan 2018 11:44:13 -0500 Received: by mail-lf0-f68.google.com with SMTP id w23so2826493lfd.11 for ; Fri, 19 Jan 2018 08:44:12 -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=H/mufRN2TfheMG1tnh0qxFy+G1nMZYNCk5mQrSLYep0=; b=r28UiQuPkbAQ6d6uycGyed/AYiuuORPw53TC1qE76yQWlmHk6r/L2qoPm6dSPP7D10 wuE5l1TR6Ho7uemR6+Q/qRMaHXqzXPJaENUkrwRpOs1XU/Bg0BmRPkTJRV5m9sZbEcHP NOsV6qdQT4XbTTgQLPrau4b8xopupSoqE0z7GZqDS0Kw2kJvycwgs1GcGRA2dHWTXrqC F0VwHFTogpoVjU81rvi3btlESC0FdNPnLFIJtijctS2nbITVU+aTaXZwXubyxETWrzZR ZkLXN528H6FLakWnM5EFJ+mIm0unqpmUQR4hXX2h5BC2LTyFKSqgOX6a8F15jisasflT 3xlw== 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=H/mufRN2TfheMG1tnh0qxFy+G1nMZYNCk5mQrSLYep0=; b=sdWXuhw1lqbu3aLKvEUcppmhcihhAWi77xHMaBchYbZ5qmNj+Ww6CLFO8/K4diZOer mjHhnQv3ECcUszmvPJDxZtvZEOlgNPCuwYrlTGRygxKzlgbYqTgMrW7iFEs5npOSSAG3 84OQrKE6JgF3CbXl5EKiqliHTaZkq4TaHnVRUuq/vS0GIrALGRrprBw8b9IX/zbO2jiY 7La8mXh+yxUOS7RAnoxX5g4ErNHTtRm6YYnY8hON62qPeWEf69/B0AqAWziqCOTZQ0Mz q0XZgi7dhh9L3E3o29MFAKVsbeb3gZHNQIfs0YjZjYi3eOdCE30ZiC4A3hdGW3zGL0Pg 5hnA== X-Gm-Message-State: AKwxytfcdrQhF4kcGOrOodz1xuKbwd0xdKhMJ0qGwvWhmjR6UypsyXcW 8HTYHDQb7blkcpkded+tdXE5uw== X-Google-Smtp-Source: ACJfBovVL9W8dYdlHwwyQACpMsNW2PW36osMc0V5gWDCBfGFMEPoEMa0BAL5+UZ/gw8gGl1qcONC8g== X-Received: by 10.46.31.17 with SMTP id f17mr20805439ljf.103.1516380251598; Fri, 19 Jan 2018 08:44:11 -0800 (PST) Received: from tuxracer.localdomain ([2a01:6d80::195:20:96:53]) by smtp.gmail.com with ESMTPSA id 77sm1785587ljx.58.2018.01.19.08.44.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jan 2018 08:44:10 -0800 (PST) From: Serhey Popovych To: netdev@vger.kernel.org Subject: [PATCH iproute2 2/4] iptnl/ip6tnl: Unify ttl/hoplimit parsing routines Date: Fri, 19 Jan 2018 18:44:01 +0200 Message-Id: <1516380243-32568-3-git-send-email-serhe.popovych@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1516380243-32568-1-git-send-email-serhe.popovych@gmail.com> References: <1516380243-32568-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 Handle "inherit" case properly for gre6 and ip6tnl. Use get_u8() in gre to parse ttl/hoplimit. Be consistent about "hlim" alias to ttl/hoplimit support. Signed-off-by: Serhey Popovych --- ip/link_gre.c | 10 +++------- ip/link_gre6.c | 13 +++++++------ ip/link_ip6tnl.c | 14 +++++++------- ip/link_iptnl.c | 3 ++- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/ip/link_gre.c b/ip/link_gre.c index 6254e88..009ddfc 100644 --- a/ip/link_gre.c +++ b/ip/link_gre.c @@ -229,16 +229,12 @@ get_failed: exit(-1); } } else if (!matches(*argv, "ttl") || - !matches(*argv, "hoplimit")) { - unsigned int uval; - + !matches(*argv, "hoplimit") || + !matches(*argv, "hlim")) { NEXT_ARG(); if (strcmp(*argv, "inherit") != 0) { - if (get_unsigned(&uval, *argv, 0)) + if (get_u8(&ttl, *argv, 0)) invarg("invalid TTL\n", *argv); - if (uval > 255) - invarg("TTL must be <= 255\n", *argv); - ttl = uval; } else ttl = 0; } else if (!matches(*argv, "tos") || diff --git a/ip/link_gre6.c b/ip/link_gre6.c index 29ca3d1..3d02e16 100644 --- a/ip/link_gre6.c +++ b/ip/link_gre6.c @@ -238,13 +238,14 @@ get_failed: exit(-1); } } else if (!matches(*argv, "ttl") || - !matches(*argv, "hoplimit")) { - __u8 uval; - + !matches(*argv, "hoplimit") || + !matches(*argv, "hlim")) { NEXT_ARG(); - if (get_u8(&uval, *argv, 0)) - invarg("invalid TTL", *argv); - hop_limit = uval; + if (strcmp(*argv, "inherit") != 0) { + if (get_u8(&hop_limit, *argv, 0)) + invarg("invalid HLIM\n", *argv); + } else + hop_limit = 0; } else if (!matches(*argv, "tos") || !matches(*argv, "tclass") || !matches(*argv, "dsfield")) { diff --git a/ip/link_ip6tnl.c b/ip/link_ip6tnl.c index 8f5c9bd..f6c52ac 100644 --- a/ip/link_ip6tnl.c +++ b/ip/link_ip6tnl.c @@ -196,15 +196,15 @@ get_failed: link = if_nametoindex(*argv); if (link == 0) invarg("\"dev\" is invalid", *argv); - } else if (strcmp(*argv, "hoplimit") == 0 || - strcmp(*argv, "ttl") == 0 || + } else if (strcmp(*argv, "ttl") == 0 || + strcmp(*argv, "hoplimit") == 0 || strcmp(*argv, "hlim") == 0) { - __u8 uval; - NEXT_ARG(); - if (get_u8(&uval, *argv, 0)) - invarg("invalid HLIM", *argv); - hop_limit = uval; + if (strcmp(*argv, "inherit") != 0) { + if (get_u8(&hop_limit, *argv, 0)) + invarg("invalid HLIM\n", *argv); + } else + hop_limit = 0; } else if (strcmp(*argv, "encaplimit") == 0) { NEXT_ARG(); if (strcmp(*argv, "none") == 0) { diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c index ce3855c..a6213d2 100644 --- a/ip/link_iptnl.c +++ b/ip/link_iptnl.c @@ -204,7 +204,8 @@ get_failed: if (link == 0) invarg("\"dev\" is invalid", *argv); } else if (strcmp(*argv, "ttl") == 0 || - strcmp(*argv, "hoplimit") == 0) { + strcmp(*argv, "hoplimit") == 0 || + strcmp(*argv, "hlim") == 0) { NEXT_ARG(); if (strcmp(*argv, "inherit") != 0) { if (get_u8(&ttl, *argv, 0)) From patchwork Fri Jan 19 16:44:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serhey Popovych X-Patchwork-Id: 863641 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="AClxo/5h"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zNRWD4mKXz9s7F for ; Sat, 20 Jan 2018 03:44:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932166AbeASQoh (ORCPT ); Fri, 19 Jan 2018 11:44:37 -0500 Received: from mail-lf0-f67.google.com ([209.85.215.67]:39004 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756217AbeASQoO (ORCPT ); Fri, 19 Jan 2018 11:44:14 -0500 Received: by mail-lf0-f67.google.com with SMTP id m8so2818515lfc.6 for ; Fri, 19 Jan 2018 08:44:13 -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=2TBOg7FMZ+VTuSXWewf9UOkeczA7MJfwvLz6bHSG0G4=; b=AClxo/5hIs9O4neqQrFcaXM0IcdoG8FwitN78bRfkvFH2gErjttC1AIBaWvLnMMw8V xsIt7N3jxPoD/TRhgUpsE5RiajtbFhDwwMxAPnueWm6lscRLjQJrqeGz9sSB1oewJrNE CcFRbQP7VelH7jX3oD2dxvbiHm97eVEKNzLBLaZ3csHLb525K5dnXNmHFzG3bAMABBNd 72nqygOptw52+DUMRnfiddmaV/FM4m6TZt+tQh0boQD7ENzrQM4tLbFk9knyACc0HxZ3 Za/98rrU2lX9VQ2nLqfe7CPqkh8yV7tnzBBGEfqHIcGb3o/B1oW270f3JZLvo6+EJShg TtrQ== 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=2TBOg7FMZ+VTuSXWewf9UOkeczA7MJfwvLz6bHSG0G4=; b=fiNEd5HD88gtMp1YcwMuSafeKMsifOP2dPE74huygRdSG1oO5VTHO/WqJam5timve4 J4AeAxx5Ag3KRajPhHQu4E/R1f/BiO0mDkfKgN4C4awP0ma/XsDdFklg5CvbuTkgx0Uy 1Xu3V1hE1dZpar4CuGthXM7Lxmo9ZOsuWc6nSEYELC0hz70Mf1CFZWQQmT7p2usiAg27 XHuGhBr+n13CA3L2hd1a9igBKEdIyicStdbeOHsjXiqEK2lPUdPOidKrCeY2ZF+vkm1b 3RWufw00PiY7eDXd5tLGI3cpzNmnSdjxZo7eiviM8XmnwUxinLT+HhSuStnxMqnqYhyp ymBw== X-Gm-Message-State: AKwxytdidi+ItojjHuLWftQE5+4lUSyBkuz7yDc9BAvY3+tBxu/87RkA iUuCmuQARky27Ezliv+r2G7ijQ== X-Google-Smtp-Source: ACJfBosZNMQe3Xqr1sUSZV+VBfKAqNp2Da5xrpaKLmx6tVoyd+tVvsWv8eCINM+CkjJl6I8IxPLVsg== X-Received: by 10.46.112.6 with SMTP id l6mr9855366ljc.32.1516380252693; Fri, 19 Jan 2018 08:44:12 -0800 (PST) Received: from tuxracer.localdomain ([2a01:6d80::195:20:96:53]) by smtp.gmail.com with ESMTPSA id 77sm1785587ljx.58.2018.01.19.08.44.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jan 2018 08:44:11 -0800 (PST) From: Serhey Popovych To: netdev@vger.kernel.org Subject: [PATCH iproute2 3/4] vti/vti6: Minor improvements Date: Fri, 19 Jan 2018 18:44:02 +0200 Message-Id: <1516380243-32568-4-git-send-email-serhe.popovych@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1516380243-32568-1-git-send-email-serhe.popovych@gmail.com> References: <1516380243-32568-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 In prepare of link_vti.c and link_vti6.c merge: 1) Make @fwmark of __u32 type instead of unsigned int in vti to match with rest tunneling code. 2) Report when unable to translate @link network device name to index instead of silently exiting in vti6. 3) Remove newline separating local/remote attributes from the ikey/okey in vti6 to match vti module. Signed-off-by: Serhey Popovych --- ip/link_vti.c | 2 +- ip/link_vti6.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ip/link_vti.c b/ip/link_vti.c index 1439e53..6a088c6 100644 --- a/ip/link_vti.c +++ b/ip/link_vti.c @@ -69,7 +69,7 @@ static int vti_parse_opt(struct link_util *lu, int argc, char **argv, unsigned int saddr = 0; unsigned int daddr = 0; unsigned int link = 0; - unsigned int fwmark = 0; + __u32 fwmark = 0; int len; if (!(n->nlmsg_flags & NLM_F_CREATE)) { diff --git a/ip/link_vti6.c b/ip/link_vti6.c index 2a86d59..a11f389 100644 --- a/ip/link_vti6.c +++ b/ip/link_vti6.c @@ -144,8 +144,11 @@ get_failed: } else if (!matches(*argv, "dev")) { NEXT_ARG(); link = if_nametoindex(*argv); - if (link == 0) + if (link == 0) { + fprintf(stderr, "Cannot find device \"%s\"\n", + *argv); exit(-1); + } } else if (strcmp(*argv, "fwmark") == 0) { NEXT_ARG(); if (get_u32(&fwmark, *argv, 0)) @@ -157,7 +160,6 @@ get_failed: addattr32(n, 1024, IFLA_VTI_IKEY, ikey); addattr32(n, 1024, IFLA_VTI_OKEY, okey); - addattr_l(n, 1024, IFLA_VTI_LOCAL, &saddr, sizeof(saddr)); addattr_l(n, 1024, IFLA_VTI_REMOTE, &daddr, sizeof(daddr)); addattr32(n, 1024, IFLA_VTI_FWMARK, fwmark); From patchwork Fri Jan 19 16:44:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serhey Popovych X-Patchwork-Id: 863642 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="O22g6WB2"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zNRWH4pKCz9s7G for ; Sat, 20 Jan 2018 03:44:43 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932267AbeASQol (ORCPT ); Fri, 19 Jan 2018 11:44:41 -0500 Received: from mail-lf0-f67.google.com ([209.85.215.67]:33821 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756223AbeASQoQ (ORCPT ); Fri, 19 Jan 2018 11:44:16 -0500 Received: by mail-lf0-f67.google.com with SMTP id k19so2837670lfj.1 for ; Fri, 19 Jan 2018 08:44:15 -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=jAAyZ9EdmqCgW18GfGTpYW9hfd0HrVFtR7FCGTbwckU=; b=O22g6WB2a4kqpVghrB/hE1z1R0RDJZ5tNdYBAoRH3foh/7QEMXEb0PAqS2kp0ortoe lyyXpc9MTHRaYjbuR6WrV2NxODY1ni0wrvR7AdloupjI0ggMyEfL/T8EWXzcZmmuXtYd E6MYEpD0MSjkaTmcW3dcyPwzdv/t/kTW76yl7aIrsK7OTpFtlVyDuRqb/zwwvUwYm8et iB66g64Eox/0+jwPqCYCxK/9GrFCtFjYKcmyrP24aOGE4UldLvXvfKV7dBTTc+4rWBBC 66Kg1v7CFyi3GckSaRh67y79kDrHMq6d5oHku5orAxBBARVF5A97npevyL4VTU98COLk TONw== 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=jAAyZ9EdmqCgW18GfGTpYW9hfd0HrVFtR7FCGTbwckU=; b=VMeQ7m8KXroHcQ4As6CXYtLEngaMz9xlEXc9sGT+hdT8ijaHZfGyVM2bXAiOAmMbHL IxvAK1tf0kfwwmXZHjAqG2V7TADG5KrgmaNYuPwnqrbo0Q1nP+WNGiCgeLvugCAe73iU F9ZliXWoEzWSGEAKmGDPF/O5BXvGKTgZ9kL02nHx9PEeINZJrieH2vX8HxwdFhmX/a+R McvWQtUGh6Oa9Md4PICMT91W0U989YSehGoeugyIVGnhQwiVAV9YhnXvjmcCp1VGRb36 o+wO5SZWw0qNVGYDC3lBoWugSP9yczV88vb+lkXuNdO6pPjr9dy3H406meql2CK6/S0a 4vhg== X-Gm-Message-State: AKwxytdHAsQJCi7vEPULtJN1bvQPIMUzZ229oW4xUh8SnZoc2RgWxMfZ AjfJJHHdZ+Sv4Y6sVX3mehvvTQ== X-Google-Smtp-Source: ACJfBovg44Rvzt83QGNOXXkaVh4ESVu/LLRf6tiWhWEdjxFTKCGfFt6fyf39MfzZpkGGo6xGyA+BGw== X-Received: by 10.46.70.1 with SMTP id t1mr1907985lja.130.1516380253965; Fri, 19 Jan 2018 08:44:13 -0800 (PST) Received: from tuxracer.localdomain ([2a01:6d80::195:20:96:53]) by smtp.gmail.com with ESMTPSA id 77sm1785587ljx.58.2018.01.19.08.44.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jan 2018 08:44:13 -0800 (PST) From: Serhey Popovych To: netdev@vger.kernel.org Subject: [PATCH iproute2 4/4] iplink: Use ll_name_to_index() instead of if_nametoindex() Date: Fri, 19 Jan 2018 18:44:03 +0200 Message-Id: <1516380243-32568-5-git-send-email-serhe.popovych@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1516380243-32568-1-git-send-email-serhe.popovych@gmail.com> References: <1516380243-32568-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 While benefit from using ll_name_to_index() with populated cache can potentially be exploited only in few places (e.g. bridge fdb/mdb/vlan show routines) there is another advantage of ll_name_to_index() over plain if_nametoindex(): in case of if_nametoindex() failure ll_name_to_index() will attempt to get index from common name in form "if%d" that may be returned from ll_index_to_name(). This makes output from ip(8) coherent with it's input. Note that most of the code already switched from plain if_nametoindex() to ll_name_to_index() to cached variant. Signed-off-by: Serhey Popovych --- bridge/fdb.c | 4 ++-- bridge/mdb.c | 2 +- bridge/vlan.c | 2 +- ip/iplink_bond.c | 4 ++-- ip/iplink_bridge.c | 2 +- ip/iplink_vxlan.c | 2 +- ip/iproute_lwtunnel.c | 4 ++-- ip/link_gre.c | 2 +- ip/link_gre6.c | 2 +- ip/link_ip6tnl.c | 2 +- ip/link_iptnl.c | 2 +- ip/link_vti.c | 2 +- ip/link_vti6.c | 2 +- 13 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bridge/fdb.c b/bridge/fdb.c index 4d55fb0..8b133f9 100644 --- a/bridge/fdb.c +++ b/bridge/fdb.c @@ -374,7 +374,7 @@ static int fdb_show(int argc, char **argv) /*we'll keep around filter_dev for older kernels */ if (filter_dev) { - filter_index = if_nametoindex(filter_dev); + filter_index = ll_name_to_index(filter_dev); if (filter_index == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", filter_dev); @@ -463,7 +463,7 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv) invarg("invalid VNI\n", *argv); } else if (strcmp(*argv, "via") == 0) { NEXT_ARG(); - via = if_nametoindex(*argv); + via = ll_name_to_index(*argv); if (via == 0) invarg("invalid device\n", *argv); } else if (strcmp(*argv, "self") == 0) { diff --git a/bridge/mdb.c b/bridge/mdb.c index 7b7b81f..62dc8a0 100644 --- a/bridge/mdb.c +++ b/bridge/mdb.c @@ -311,7 +311,7 @@ static int mdb_show(int argc, char **argv) } if (filter_dev) { - filter_index = if_nametoindex(filter_dev); + filter_index = ll_name_to_index(filter_dev); if (filter_index == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", filter_dev); diff --git a/bridge/vlan.c b/bridge/vlan.c index 69fb542..f42d7e6 100644 --- a/bridge/vlan.c +++ b/bridge/vlan.c @@ -567,7 +567,7 @@ static int vlan_show(int argc, char **argv) } if (filter_dev) { - filter_index = if_nametoindex(filter_dev); + filter_index = ll_name_to_index(filter_dev); if (filter_index == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", filter_dev); diff --git a/ip/iplink_bond.c b/ip/iplink_bond.c index f01fd8d..8e8723a 100644 --- a/ip/iplink_bond.c +++ b/ip/iplink_bond.c @@ -177,7 +177,7 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv, addattr8(n, 1024, IFLA_BOND_MODE, mode); } else if (matches(*argv, "active_slave") == 0) { NEXT_ARG(); - ifindex = if_nametoindex(*argv); + ifindex = ll_name_to_index(*argv); if (!ifindex) return -1; addattr32(n, 1024, IFLA_BOND_ACTIVE_SLAVE, ifindex); @@ -240,7 +240,7 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv, addattr32(n, 1024, IFLA_BOND_ARP_ALL_TARGETS, arp_all_targets); } else if (matches(*argv, "primary") == 0) { NEXT_ARG(); - ifindex = if_nametoindex(*argv); + ifindex = ll_name_to_index(*argv); if (!ifindex) return -1; addattr32(n, 1024, IFLA_BOND_PRIMARY, ifindex); diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c index d325098..06ec092 100644 --- a/ip/iplink_bridge.c +++ b/ip/iplink_bridge.c @@ -792,7 +792,7 @@ int bridge_parse_xstats(struct link_util *lu, int argc, char **argv) xstats_print_attr = BRIDGE_XSTATS_MCAST; } else if (strcmp(*argv, "dev") == 0) { NEXT_ARG(); - filter_index = if_nametoindex(*argv); + filter_index = ll_name_to_index(*argv); if (filter_index == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", *argv); diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c index 88b5662..7ea908e 100644 --- a/ip/iplink_vxlan.c +++ b/ip/iplink_vxlan.c @@ -151,7 +151,7 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv, NEXT_ARG(); check_duparg(&attrs, IFLA_VXLAN_LINK, "dev", *argv); - link = if_nametoindex(*argv); + link = ll_name_to_index(*argv); if (link == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", *argv); diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c index a1d36ba..da6ebb8 100644 --- a/ip/iproute_lwtunnel.c +++ b/ip/iproute_lwtunnel.c @@ -556,7 +556,7 @@ static int parse_encap_seg6local(struct rtattr *rta, size_t len, int *argcp, NEXT_ARG(); if (iif_ok++) duparg2("iif", *argv); - iif = if_nametoindex(*argv); + iif = ll_name_to_index(*argv); if (!iif) invarg("\"iif\" interface not found\n", *argv); rta_addattr32(rta, len, SEG6_LOCAL_IIF, iif); @@ -564,7 +564,7 @@ static int parse_encap_seg6local(struct rtattr *rta, size_t len, int *argcp, NEXT_ARG(); if (oif_ok++) duparg2("oif", *argv); - oif = if_nametoindex(*argv); + oif = ll_name_to_index(*argv); if (!oif) invarg("\"oif\" interface not found\n", *argv); rta_addattr32(rta, len, SEG6_LOCAL_OIF, oif); diff --git a/ip/link_gre.c b/ip/link_gre.c index 009ddfc..512695d 100644 --- a/ip/link_gre.c +++ b/ip/link_gre.c @@ -222,7 +222,7 @@ get_failed: saddr = get_addr32(*argv); } else if (!matches(*argv, "dev")) { NEXT_ARG(); - link = if_nametoindex(*argv); + link = ll_name_to_index(*argv); if (link == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", *argv); diff --git a/ip/link_gre6.c b/ip/link_gre6.c index 3d02e16..29846cf 100644 --- a/ip/link_gre6.c +++ b/ip/link_gre6.c @@ -231,7 +231,7 @@ get_failed: memcpy(&laddr, &addr.data, sizeof(laddr)); } else if (!matches(*argv, "dev")) { NEXT_ARG(); - link = if_nametoindex(*argv); + link = ll_name_to_index(*argv); if (link == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", *argv); diff --git a/ip/link_ip6tnl.c b/ip/link_ip6tnl.c index f6c52ac..fdf113e 100644 --- a/ip/link_ip6tnl.c +++ b/ip/link_ip6tnl.c @@ -193,7 +193,7 @@ get_failed: memcpy(&laddr, addr.data, sizeof(laddr)); } else if (matches(*argv, "dev") == 0) { NEXT_ARG(); - link = if_nametoindex(*argv); + link = ll_name_to_index(*argv); if (link == 0) invarg("\"dev\" is invalid", *argv); } else if (strcmp(*argv, "ttl") == 0 || diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c index a6213d2..96048e2 100644 --- a/ip/link_iptnl.c +++ b/ip/link_iptnl.c @@ -200,7 +200,7 @@ get_failed: laddr = get_addr32(*argv); } else if (matches(*argv, "dev") == 0) { NEXT_ARG(); - link = if_nametoindex(*argv); + link = ll_name_to_index(*argv); if (link == 0) invarg("\"dev\" is invalid", *argv); } else if (strcmp(*argv, "ttl") == 0 || diff --git a/ip/link_vti.c b/ip/link_vti.c index 6a088c6..f1a1123 100644 --- a/ip/link_vti.c +++ b/ip/link_vti.c @@ -137,7 +137,7 @@ get_failed: saddr = get_addr32(*argv); } else if (!matches(*argv, "dev")) { NEXT_ARG(); - link = if_nametoindex(*argv); + link = ll_name_to_index(*argv); if (link == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", *argv); diff --git a/ip/link_vti6.c b/ip/link_vti6.c index a11f389..c394dbc 100644 --- a/ip/link_vti6.c +++ b/ip/link_vti6.c @@ -143,7 +143,7 @@ get_failed: memcpy(&saddr, addr.data, sizeof(saddr)); } else if (!matches(*argv, "dev")) { NEXT_ARG(); - link = if_nametoindex(*argv); + link = ll_name_to_index(*argv); if (link == 0) { fprintf(stderr, "Cannot find device \"%s\"\n", *argv);