Page MenuHomeFreeBSD

rtsold: handle media LINK_UP to accelerate RS/RA
Needs ReviewPublic

Authored by bz on Mon, Jul 13, 10:52 AM.
Tags
None
Referenced Files
F163471854: D58211.id181893.diff
Thu, Jul 23, 12:13 PM
F163471709: D58211.id181893.diff
Thu, Jul 23, 12:10 PM
Unknown Object (File)
Tue, Jul 21, 6:25 AM
Unknown Object (File)
Tue, Jul 21, 6:20 AM
Unknown Object (File)
Tue, Jul 21, 5:09 AM
Unknown Object (File)
Tue, Jul 21, 1:13 AM
Unknown Object (File)
Mon, Jul 20, 7:01 PM
Unknown Object (File)
Mon, Jul 20, 3:10 AM
Subscribers

Details

Reviewers
pouria
Summary

If a link is not UP at boot time, e.g., a cable gets plugged in later,
rtsold will not send out an RS and we have to wait for the next
unsolicitated RA to get a default router, prefix information, etc.

Hook into rtsolds routing message callback handler and rather than
complicating logic, simply re-set the internal timer if we find a link
UP and RUNNING (based on the rtmsg), and let the rtsold state machine
do the work.


I wrote this in response to D56927 but never tested it.
I would appreciate if someone could test/review.

XXX-BZ also, is there a reference in an RFC related to this which we can/should
mention about this case?

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 74765
Build 71648: arc lint + arc unit

Event Timeline

bz requested review of this revision.Mon, Jul 13, 10:52 AM

It helps, but not much. it might increase ifi->timer.tv_sec to PROBE_INTERVAL which is 60s.

usr.sbin/rtsold/rtsock.c
183
191

Why do we need IFF_RUNNING here?

194

After some debugging, I found out rtm_index is not same as ifm_index.

It helps, but not much. it might increase ifi->timer.tv_sec to PROBE_INTERVAL which is 60s.

So just doing the timer update is not enough? I wonder how we get it into a "reset" state to start running like on startup then without massive fiddling?

usr.sbin/rtsold/rtsock.c
191

Because if the interface is not UP and RUNNING you cannot transmit and so it would defeat the purpose.

194

That is a very good catch!