On Mon, 3 Aug 2020 17:30:46 -0600 David Ahern <dsah...@gmail.com> wrote:
> On 8/3/20 2:52 PM, Stefano Brivio wrote: > > diff --git a/net/ipv4/route.c b/net/ipv4/route.c > > index a01efa062f6b..c14fd8124f57 100644 > > --- a/net/ipv4/route.c > > +++ b/net/ipv4/route.c > > @@ -1050,6 +1050,7 @@ static void ip_rt_update_pmtu(struct dst_entry *dst, > > struct sock *sk, > > struct flowi4 fl4; > > > > ip_rt_build_flow_key(&fl4, sk, skb); > > + fl4.flowi4_oif = 0; /* Don't make lookup fail for encapsulations */ > > __ip_rt_update_pmtu(rt, &fl4, mtu); > > } > > > > Can this be limited to: > if (skb && > netif_is_bridge_port(skb->dev) || netif_is_ovs_port(skb->dev)) > fl4.flowi4_oif = 0; > > I'm not sure we want to reset oif for all MTU updates. I think that generally speaking we might, because this is about the *path* MTU after all, so the output interface doesn't look very relevant. On the other hand, I couldn't find any other case where this makes a difference, and I guess it's better to eventually find out about those other cases if any, rather than fixing things by accident possibly in the wrong way. Changed in v2, thanks. -- Stefano