From: David Ahern <dsah...@kernel.org> Date: Mon, 14 Sep 2020 21:03:54 -0600
> Kfir reported that pmtu exceptions are not created properly for > deployments where multipath routes use the same device. > > After some digging I see 2 compounding problems: > 1. ip_route_output_key_hash_rcu is updating the flowi4_oif *after* > the route lookup. This is the second use case where this has > been a problem (the first is related to use of vti devices with > VRF). I can not find any reason for the oif to be changed after the > lookup; the code goes back to the start of git. It does not seem > logical so remove it. > > 2. fib_lookups for exceptions do not call fib_select_path to handle > multipath route selection based on the hash. > > The end result is that the fib_lookup used to add the exception > always creates it based using the first leg of the route. ... > Before this patch the cache always shows exceptions against the first > leg in the multipath route; 192.168.252.250 per this example. Since the > hash has an initial random seed, you may need to vary the final octet > more than what is listed. In my tests, using addresses between 11 and 19 > usually found 1 that used both legs. > > With this patch, the cache will have exceptions for both legs. > > Fixes: 4895c771c7f0 ("ipv4: Add FIB nexthop exceptions") > Reported-by: Kfir Itzhak <masterthekn...@gmail.com> > Signed-off-by: David Ahern <dsah...@kernel.org> Applied and queued up for -stable, thanks David. The example topology and commands look like a good addition for selftests perhaps? Thanks again.