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))