When we receive an ICMP redirect, rib_add_redirect() is used to apply
the redirect to all FIBs. This has been the case since support for
multiple FIBs was added. However, it seems rather dubious: the new
gateway might not be routable from all FIBs, and the validation done for
v4 redirects in icmp_verify_redirect_gateway() is only applied to the
FIB from which the redirect originated.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Indeed looks dubious. I wonder why Alexander did it this way. Could it be M_GETFIB(m) may give us a wrong number in certain conditions? I'll prod him with a private message to take a look at this review.
Comment Actions
Note, this behaviour comes from commit 8b07e49a008c8 in 2008, which is what introduced support for multiple FIBs.
Comment Actions
Then probably we don't need to block this review on Alexander if he doesn't reply in a reasonable time.