| From foo@baz Wed 01 Jan 2020 10:36:29 PM CET |
| From: Hangbin Liu <liuhangbin@gmail.com> |
| Date: Sun, 22 Dec 2019 10:51:10 +0800 |
| Subject: ip6_gre: do not confirm neighbor when do pmtu update |
| |
| From: Hangbin Liu <liuhangbin@gmail.com> |
| |
| [ Upstream commit 675d76ad0ad5bf41c9a129772ef0aba8f57ea9a7 ] |
| |
| 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ipv6/ip6_gre.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/ipv6/ip6_gre.c |
| +++ b/net/ipv6/ip6_gre.c |
| @@ -1060,7 +1060,7 @@ static netdev_tx_t ip6erspan_tunnel_xmit |
| |
| /* 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); |