From patchwork Sun Aug 5 14:46:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 953530 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bSpIBEr1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41k3WK08cMz9ryt for ; Mon, 6 Aug 2018 00:46:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726267AbeHEQvF (ORCPT ); Sun, 5 Aug 2018 12:51:05 -0400 Received: from mail-pl0-f68.google.com ([209.85.160.68]:34892 "EHLO mail-pl0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726240AbeHEQvE (ORCPT ); Sun, 5 Aug 2018 12:51:04 -0400 Received: by mail-pl0-f68.google.com with SMTP id w3-v6so4550031plq.2 for ; Sun, 05 Aug 2018 07:46:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=y5x6IX76TLN1CRckesQ2GTp7lczKLOFdDR542p0natg=; b=bSpIBEr1jrKyevr0eHi3BaZwllp11kFaXyWN82Sa6QZ2DvggipjRyXRKl0QBSdEQ1g KCyEVvQsYYf4EzVkcHSO8oZq6VCkv9x7YcHNqTT1v+xn6r0GCSCKl6jAmlLJuiqVLPY2 PPBFSCJHYPshhiVYEzzEE21TLUfWi4YnZs7O70xjuIwxjgAmvyUhYuAAWRg+LRtCJAD7 FrfX0HHGEdPnsv0FcLXazu5rsjUtsZJW79cLQ3jDmuFS9O85jtV1gpm/3jdacFM7ihO2 aB6dwDlDccu94au5hecnfZyozVajHHK7GxvNeqiG51U+rKj1xA8Dr2lRgG87QVknqw7Z mOWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=y5x6IX76TLN1CRckesQ2GTp7lczKLOFdDR542p0natg=; b=YOuDhOoYPWiou3llxakEXlNuwZSta4mh7RQHDzdbsKdQauXFSpQ0FJTLO2HynUkrU9 HfgHIZWsf8NG/xVpq39De6ZAejrUtiOUM0rHM0ynbxgvvrTkFUU076uWt4F50jfgP2lZ JPsIwwVMD8+w8mIGeXiEIc0qQ+75UTjikBgBtnpBX6MwHoCPK07Xr2WK9xeDT7HpAgSC S5ON4ex+gyc1sBsNUQrCQ5CF5cls5X0ZybcvQ98/P4IdNGG/gHZU2i3PHthtFzKiJ1/p 8wYL6Z6HNf4BUcSXqPKR2gTETTFQt59u9mJpS4ffbsgJ5v8JAZRkQ3vFrw0DqxMemc5W hfFw== X-Gm-Message-State: AOUpUlGVDiOvHMIobQyn74KxlLe9ldwFQTUYytQa5RHRPi7JT0X7Veow FkEwf6lhEHm/fMmIbSBxMfk1HQY3 X-Google-Smtp-Source: AAOMgpc2wVTGs3XqTUN91HWbUiL646yyMZWslUDjp+PL9SFVgOMIJF8z+BbtEjluOZg3apQe6k6iFA== X-Received: by 2002:a17:902:1d4a:: with SMTP id u10-v6mr10850924plu.267.1533480375230; Sun, 05 Aug 2018 07:46:15 -0700 (PDT) Received: from localhost ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id i20-v6sm15376060pfj.82.2018.08.05.07.46.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 05 Aug 2018 07:46:14 -0700 (PDT) From: Xin Long To: network dev Cc: davem@davemloft.net, Sabrina Dubroca Subject: [PATCH net] ip6_tunnel: use the right value for ipv4 min mtu check in ip6_tnl_xmit Date: Sun, 5 Aug 2018 22:46:07 +0800 Message-Id: <2176423fed58d51f462505d67be9e5ff0e666922.1533480367.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org According to RFC791, 68 bytes is the minimum size of IPv4 datagram every device must be able to forward without further fragmentation while 576 bytes is the minimum size of IPv4 datagram every device has to be able to receive, so in ip6_tnl_xmit(), 68(IPV4_MIN_MTU) should be the right value for the ipv4 min mtu check in ip6_tnl_xmit. While at it, change to use max() instead of if statement. Fixes: c9fefa08190f ("ip6_tunnel: get the min mtu properly in ip6_tnl_xmit") Reported-by: Sabrina Dubroca Signed-off-by: Xin Long --- net/ipv6/ip6_tunnel.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 00e138a..1cc9650 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -1133,12 +1133,8 @@ int ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev, __u8 dsfield, max_headroom += 8; mtu -= 8; } - if (skb->protocol == htons(ETH_P_IPV6)) { - if (mtu < IPV6_MIN_MTU) - mtu = IPV6_MIN_MTU; - } else if (mtu < 576) { - mtu = 576; - } + mtu = max(mtu, skb->protocol == htons(ETH_P_IPV6) ? + IPV6_MIN_MTU : IPV4_MIN_MTU); skb_dst_update_pmtu(skb, mtu); if (skb->len - t->tun_hlen - eth_hlen > mtu && !skb_is_gso(skb)) {