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.