Page MenuHomeFreeBSD

routing: Make ip[6]_tryforward() FIB-aware for local traffic
ClosedPublic

Authored by pouria on Sat, Apr 11, 1:13 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 18, 1:35 PM
Unknown Object (File)
Sat, Apr 18, 5:58 AM
Unknown Object (File)
Sat, Apr 18, 5:58 AM
Unknown Object (File)
Sat, Apr 18, 5:58 AM
Unknown Object (File)
Sat, Apr 18, 5:10 AM
Unknown Object (File)
Fri, Apr 17, 10:45 PM
Unknown Object (File)
Fri, Apr 17, 6:50 PM
Unknown Object (File)
Fri, Apr 17, 2:18 AM

Details

Summary

ip_tryforward() and ip6_tryforward() checks whether the destination
address is local or not without considering if it belongs to the current FIB.
If the destination is local but not in our FIB, forward it instead
of returning it to ip_input().

PR: 292319

Test Plan

Test is described under PR292319

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

I think this is correct for the fast forward.

I have tested yet but I think probably this does not resolve the original reported issue 292319 . I think the original issue is caused by a redirect route by the gateway, then subsequently ICMP packets follow the new route which is shorter.

This revision is now accepted and ready to land.Sun, Apr 12, 3:25 PM

I think this is correct for the fast forward.

I have tested yet but I think probably this does not resolve the original reported issue 292319 . I think the original issue is caused by a redirect route by the gateway, then subsequently ICMP packets follow the new route which is shorter.

This is what I originally thought.
But if you look at his last message, you can see there is no dynamic route installed in his routing table.
ICMP redirects are indicated by the D flag in netstat.
I also tested his scenario, it was resolved by this patch.

Thank you for your review.