+++ /dev/null
-From foo@baz Fri Sep 15 10:03:45 PDT 2017
-From: Xin Long <lucien.xin@gmail.com>
-Date: Tue, 5 Sep 2017 17:26:33 +0800
-Subject: ip6_gre: update mtu properly in ip6gre_err
-
-From: Xin Long <lucien.xin@gmail.com>
-
-
-[ Upstream commit 5c25f30c93fdc5bf25e62101aeaae7a4f9b421b3 ]
-
-Now when probessing ICMPV6_PKT_TOOBIG, ip6gre_err only subtracts the
-offset of gre header from mtu info. The expected mtu of gre device
-should also subtract gre header. Otherwise, the next packets still
-can't be sent out.
-
-Jianlin found this issue when using the topo:
- client(ip6gre)<---->(nic1)route(nic2)<----->(ip6gre)server
-
-and reducing nic2's mtu, then both tcp and sctp's performance with
-big size data became 0.
-
-This patch is to fix it by also subtracting grehdr (tun->tun_hlen)
-from mtu info when updating gre device's mtu in ip6gre_err(). It
-also needs to subtract ETH_HLEN if gre dev'type is ARPHRD_ETHER.
-
-Reported-by: Jianlin Shi <jishi@redhat.com>
-Signed-off-by: Xin Long <lucien.xin@gmail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv6/ip6_gre.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/net/ipv6/ip6_gre.c
-+++ b/net/ipv6/ip6_gre.c
-@@ -433,7 +433,9 @@ static void ip6gre_err(struct sk_buff *s
- }
- break;
- case ICMPV6_PKT_TOOBIG:
-- mtu = be32_to_cpu(info) - offset;
-+ mtu = be32_to_cpu(info) - offset - t->tun_hlen;
-+ if (t->dev->type == ARPHRD_ETHER)
-+ mtu -= ETH_HLEN;
- if (mtu < IPV6_MIN_MTU)
- mtu = IPV6_MIN_MTU;
- t->dev->mtu = mtu;
revert-net-use-lib-percpu_counter-api-for-fragmentation-mem-accounting.patch
revert-net-fix-percpu-memory-leaks.patch
gianfar-fix-tx-flow-control-deactivation.patch
-ip6_gre-update-mtu-properly-in-ip6gre_err.patch
ipv6-fix-memory-leak-with-multiple-tables-during-netns-destruction.patch
ipv6-fix-typo-in-fib6_net_exit.patch