Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp641330pxb; Wed, 24 Feb 2021 10:55:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJwv8C2e6cPctME/JwDa+sPbcSZmhHWG+gu/TAdJxOLvmjX2KJ+iJOoi/2WC+rGUiwRQQGSj X-Received: by 2002:a17:906:d0c3:: with SMTP id bq3mr31680758ejb.424.1614192908302; Wed, 24 Feb 2021 10:55:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614192908; cv=none; d=google.com; s=arc-20160816; b=o0F36BbpIhgXYUPKiWhWPUAYSJLGvqSMLREsD5BZmHgjTaS9njEeyq+EUyzQ6N/Fyn mzCOlvG4Xv/ChfpuyrSCgA1rjcuykSDhFRsHlDssL7civIJY35AfH5O7rzwhpC5pCsD/ K/JtXr2slrg7huDGGFW1mY10A8E71pbL/Iaw99QMTzGn+joE2AxghJkYZrO5gzvJFS0r CHj0JWWAMGgDHxOym+QNusy96yoTLf/WMQWqJNY8DrJQStVidkZKGxOIv1HZoGgW7KGc lHGKIea/hCI3vih+uNvsvR2iqG+fbyYdTsorEI7XMiAma1i7GMS7si30uH5ni/xr671i sOOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=/8HenksY8REh4OzRXtYZ69aCl+xGd2WYpNkZH1FyRa4=; b=WWb6ZAEmVcdm36Cv6soXVjvDz2hB6DZjIkc7DsePPXaAyAZxJUyfrkXsKb+L0WDRUh eY0tk/qXsLHDDEOrFkdXnZ3kDVL83BhsajUCAUQfwtCaLREIrUQ8HAxxZV6IsDTU+kG4 Ff8nSPaE9OGHZdQaSRjOjT48HMnYUQhSHC+DlyboqrQLhZaO/u/wCbmVeQMj+TcfO90+ 4a9JGRhYDHwov/4mvytr/biyE9q5BSzGUzQDrnp4D1FOI3uivj9PoPbzZYiw/uTyyadq 50kdv2gjs0xWqcUtcPM26uBnyFT4l1PIC2UCi//KAcBgFdJVl63r3xXYq2jRB+8DcMXm JYlA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IrCqghMe; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r1si1772173ejp.0.2021.02.24.10.54.41; Wed, 24 Feb 2021 10:55:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IrCqghMe; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235535AbhBXSyG (ORCPT + 99 others); Wed, 24 Feb 2021 13:54:06 -0500 Received: from mail.kernel.org ([198.145.29.99]:36402 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235091AbhBXSx0 (ORCPT ); Wed, 24 Feb 2021 13:53:26 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 61CE164F6E; Wed, 24 Feb 2021 18:47:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1614192446; bh=1NA7qcES3t/vO/ZkcZZXDfpfXyYaG6cYJqooPeHG5x4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=IrCqghMeogb8DwA4gyWpcqutctX/5RDC4hILQs9TpSAvmDZWz/oDdTxr3ITHIPvd5 wZ+MD3P0NApKP7xIW83XF9iC78MZUgjusdH0y/DlWZH5nXPzuJkWMN2oMPWsjDmVCB tzm01bY3+knwPp/qAJ7I8pxf0DwIAzsfxk+85dMqx1X1s/Nr1q7aCPdQFCU/arFEzT fESaXX2ulv0uU/QtIuFdy7OI57Z6CgLIAsv+AliKNFmrH2oWR5/3+yjMeHwR9wgwP0 vcEM4pqb1pdHdPJbsi5da2wEo81PW4BPE424g17LKnwJvULr/y5Nt6q0f1gY+5Ve09 S+M28Hg+h1FAA== Date: Wed, 24 Feb 2021 10:47:21 -0800 From: Jakub Kicinski To: Hideaki YOSHIFUJI , David Ahern Cc: Kaustubh Pandey , "David S. Miller" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, sharathv@codeaurora.org, chinagar@codeaurora.org Subject: Re: [PATCH] ipv6: Honor route mtu if it is within limit of dev mtu Message-ID: <20210224104721.6a86d972@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <1614011555-21951-1-git-send-email-kapandey@codeaurora.org> References: <1614011555-21951-1-git-send-email-kapandey@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 22 Feb 2021 22:02:35 +0530 Kaustubh Pandey wrote: > When netdevice MTU is increased via sysfs, NETDEV_CHANGEMTU is raised. > > addrconf_notify -> rt6_mtu_change -> rt6_mtu_change_route -> > fib6_nh_mtu_change > > As part of handling NETDEV_CHANGEMTU notification we land up on a > condition where if route mtu is less than dev mtu and route mtu equals > ipv6_devconf mtu, route mtu gets updated. > > Due to this v6 traffic end up using wrong MTU then configured earlier. > This commit fixes this by removing comparison with ipv6_devconf > and updating route mtu only when it is greater than incoming dev mtu. > > This can be easily reproduced with below script: > pre-condition: > device up(mtu = 1500) and route mtu for both v4 and v6 is 1500 > > test-script: > ip route change 192.168.0.0/24 dev eth0 src 192.168.0.1 mtu 1400 > ip -6 route change 2001::/64 dev eth0 metric 256 mtu 1400 > echo 1400 > /sys/class/net/eth0/mtu > ip route change 192.168.0.0/24 dev eth0 src 192.168.0.1 mtu 1500 > echo 1500 > /sys/class/net/eth0/mtu > > Signed-off-by: Kaustubh Pandey > --- > net/ipv6/route.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/net/ipv6/route.c b/net/ipv6/route.c > index 1536f49..653b6c7 100644 > --- a/net/ipv6/route.c > +++ b/net/ipv6/route.c > @@ -4813,8 +4813,7 @@ static int fib6_nh_mtu_change(struct fib6_nh *nh, void *_arg) > struct inet6_dev *idev = __in6_dev_get(arg->dev); > u32 mtu = f6i->fib6_pmtu; > > - if (mtu >= arg->mtu || > - (mtu < arg->mtu && mtu == idev->cnf.mtu6)) > + if (mtu >= arg->mtu) > fib6_metric_set(f6i, RTAX_MTU, arg->mtu); > > spin_lock_bh(&rt6_exception_lock); David, Hideaki - any thoughts on this one? Can we change this long standing behavior?