From: Sabrina Dubroca <s...@queasysnail.net>
Date: Wed, 14 Mar 2018 10:21:14 +0100

> Prior to the rework of PMTU information storage in commit
> 2c8cec5c10bc ("ipv4: Cache learned PMTU information in inetpeer."),
> when a PMTU event advertising a PMTU smaller than
> net.ipv4.route.min_pmtu was received, we would disable setting the DF
> flag on packets by locking the MTU metric, and set the PMTU to
> net.ipv4.route.min_pmtu.
> 
> Since then, we don't disable DF, and set PMTU to
> net.ipv4.route.min_pmtu, so the intermediate router that has this link
> with a small MTU will have to drop the packets.
> 
> This patch reestablishes pre-2.6.39 behavior by splitting
> rtable->rt_pmtu into a bitfield with rt_mtu_locked and rt_pmtu.
> rt_mtu_locked indicates that we shouldn't set the DF bit on that path,
> and is checked in ip_dont_fragment().
> 
> One possible workaround is to set net.ipv4.route.min_pmtu to a value low
> enough to accommodate the lowest MTU encountered.
> 
> Fixes: 2c8cec5c10bc ("ipv4: Cache learned PMTU information in inetpeer.")
> Signed-off-by: Sabrina Dubroca <s...@queasysnail.net>
> Reviewed-by: Stefano Brivio <sbri...@redhat.com>
> ---
> v2: make rt_pmtu a bitfield
>     fix missing initializations of rt_mtu_locked

Applied and queued up for -stable, thanks.

Reply via email to