| From 35ad781ef0a247b2b8c603b91c1836da9471d211 Mon Sep 17 00:00:00 2001 |
| From: Hangbin Liu <liuhangbin@gmail.com> |
| Date: Sun, 22 Dec 2019 10:51:10 +0800 |
| Subject: [PATCH] ip6_gre: do not confirm neighbor when do pmtu update |
| |
| commit 675d76ad0ad5bf41c9a129772ef0aba8f57ea9a7 upstream. |
| |
| When we do ipv6 gre pmtu update, we will also do neigh confirm currently. |
| This will cause the neigh cache be refreshed and set to REACHABLE before |
| xmit. |
| |
| But if the remote mac address changed, e.g. device is deleted and recreated, |
| we will not able to notice this and still use the old mac address as the neigh |
| cache is REACHABLE. |
| |
| Fix this by disable neigh confirm when do pmtu update |
| |
| v5: No change. |
| v4: No change. |
| v3: Do not remove dst_confirm_neigh, but add a new bool parameter in |
| dst_ops.update_pmtu to control whether we should do neighbor confirm. |
| Also split the big patch to small ones for each area. |
| v2: Remove dst_confirm_neigh in __ip6_rt_update_pmtu. |
| |
| Reported-by: Jianlin Shi <jishi@redhat.com> |
| Reviewed-by: Guillaume Nault <gnault@redhat.com> |
| Acked-by: David Ahern <dsahern@gmail.com> |
| Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c |
| index 5a4143d9ba27..2d218973a219 100644 |
| --- a/net/ipv6/ip6_gre.c |
| +++ b/net/ipv6/ip6_gre.c |
| @@ -1040,7 +1040,7 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb, |
| |
| /* TooBig packet may have updated dst->dev's mtu */ |
| if (!t->parms.collect_md && dst && dst_mtu(dst) > dst->dev->mtu) |
| - dst->ops->update_pmtu(dst, NULL, skb, dst->dev->mtu, true); |
| + dst->ops->update_pmtu(dst, NULL, skb, dst->dev->mtu, false); |
| |
| err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu, |
| NEXTHDR_GRE); |
| -- |
| 2.7.4 |
| |