From mboxrd@z Thu Jan 1 00:00:00 1970 From: Serhey Popovych Subject: [PATCH iproute2 v2 2/3] link_iptnl: Print tunnel mode Date: Tue, 2 Jan 2018 23:02:45 +0200 Message-ID: <1514926965-22061-1-git-send-email-serhe.popovych@gmail.com> References: <20180102115413.37666ab5@xeon-e3> To: netdev@vger.kernel.org Return-path: Received: from mail-lf0-f67.google.com ([209.85.215.67]:43884 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750736AbeABVDK (ORCPT ); Tue, 2 Jan 2018 16:03:10 -0500 Received: by mail-lf0-f67.google.com with SMTP id o26so42706199lfc.10 for ; Tue, 02 Jan 2018 13:03:09 -0800 (PST) Received: from tuxracer.localdomain (netdev-gw1.skif.com.ua. [195.20.96.53]) by smtp.gmail.com with ESMTPSA id s22sm8548345ljd.42.2018.01.02.13.03.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Jan 2018 13:03:07 -0800 (PST) In-Reply-To: <20180102115413.37666ab5@xeon-e3> Sender: netdev-owner@vger.kernel.org List-ID: Tunnel mode does not appear in parameters print for iptnl supported tunnels like ipip and sit, while printed for ip6tnl. Print tunnel mode as "proto" field name for JSON and without any name when printing to cli to follow ip6tnl behaviour. For non JSON output we have: $ ip -d link show dev sit1 Before: ------- 17: sit1@NONE: mtu 1480 qdisc noop state DOWN ... link/sit X.X.X.X brd 0.0.0.0 promiscuity 0 sit remote any local X.X.X.X ... ~~~ After: ------ 17: sit1@NONE: mtu 1480 qdisc noop state DOWN ... link/sit X.X.X.X brd 0.0.0.0 promiscuity 0 sit any remote any local X.X.X.X ... ^^^ Signed-off-by: Serhey Popovych --- v2: Addressed comments: "proto ipip" vs "proto ip4ip4" for IPPROTO_IPIP tunnel type. Add example to message. ip/link_iptnl.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c index d4d935b..b6ef95d 100644 --- a/ip/link_iptnl.c +++ b/ip/link_iptnl.c @@ -372,6 +372,23 @@ static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[ if (tb[IFLA_IPTUN_COLLECT_METADATA]) print_bool(PRINT_ANY, "external", "external ", true); + if (tb[IFLA_IPTUN_PROTO]) { + switch (rta_getattr_u8(tb[IFLA_IPTUN_PROTO])) { + case IPPROTO_IPIP: + print_string(PRINT_ANY, "proto", "%s ", "ipip"); + break; + case IPPROTO_IPV6: + print_string(PRINT_ANY, "proto", "%s ", "ip6ip"); + break; + case IPPROTO_MPLS: + print_string(PRINT_ANY, "proto", "%s ", "mplsip"); + break; + case 0: + print_string(PRINT_ANY, "proto", "%s ", "any"); + break; + } + } + if (tb[IFLA_IPTUN_REMOTE]) { unsigned int addr = rta_getattr_u32(tb[IFLA_IPTUN_REMOTE]); -- 1.7.10.4