Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751030AbdFSSIV convert rfc822-to-8bit (ORCPT ); Mon, 19 Jun 2017 14:08:21 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:53861 "EHLO relay3-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750811AbdFSSIT (ORCPT ); Mon, 19 Jun 2017 14:08:19 -0400 X-Originating-IP: 74.125.82.45 MIME-Version: 1.0 In-Reply-To: References: <1497670031-2971-1-git-send-email-yanhaishuang@cmss.chinamobile.com> From: Pravin Shelar Date: Mon, 19 Jun 2017 11:08:15 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 1/2] ip_tunnel: fix ip tunnel lookup in collect_md mode To: =?UTF-8?B?5Lil5rW35Y+M?= Cc: "David S. Miller" , Paolo Abeni , Alexei Starovoitov , Linux Kernel Network Developers , linux-kernel@vger.kernel.org, Pravin B Shelar Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1821 Lines: 50 On Mon, Jun 19, 2017 at 6:13 AM, 严海双 wrote: > > >> On 19 Jun 2017, at 1:43 PM, Pravin Shelar wrote: >> >> On Fri, Jun 16, 2017 at 8:27 PM, Haishuang Yan >> wrote: >>> In collect_md mode, if the tun dev is down, it still can call >>> ip_tunnel_rcv to receive on packets, and the rx statistics increase >>> improperly. >>> >>> Fixes: 2e15ea390e6f ("ip_gre: Add support to collect tunnel metadata.") >>> Cc: Pravin B Shelar >>> Signed-off-by: Haishuang Yan >>> >>> --- >>> Change since v2: >>> * Fix wrong recipient addresss >>> --- >>> net/ipv4/ip_tunnel.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c >>> index 0f1d876..a3caba1 100644 >>> --- a/net/ipv4/ip_tunnel.c >>> +++ b/net/ipv4/ip_tunnel.c >>> @@ -176,7 +176,7 @@ struct ip_tunnel *ip_tunnel_lookup(struct ip_tunnel_net *itn, >>> return cand; >>> >>> t = rcu_dereference(itn->collect_md_tun); >>> - if (t) >>> + if (t && (t->dev->flags & IFF_UP)) >>> return t; >>> >> It would be nice if we could increment drop count if tunnel device is not up. >> > Hi Pravin > > I think it’s not necessary, for example as gre tunnel, if ipgre_rcv fails, it would trigger send an icmp unreachable > message: > > if (ipgre_rcv(skb, &tpi, hdr_len) == PACKET_RCVD) > return 0; > > icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); > > Since the tunnel device didn’t touch the packets, so increase drop statistics is not necessary. > icmp err packets are not reliable on all networks. device stats are much more convenient during debugging connectivity issues.