STEP 2, fixing dhclient behaviour with multiple interfaces

Terry Lambert tlambert2 at mindspring.com
Tue Jul 29 22:43:18 PDT 2003


Robert Watson wrote:
> On Tue, 29 Jul 2003, Daniel C. Sobral wrote:
> > > You could add kevents for interface arrival and departure, and
> > > add a kqueue to the dhcpd to catch the arrival/departure events,
> > > and then just act on them.
> >
> > Instead of just adding the stuff to devd?
> 
> Currently, devd is in the business of dealing with attachment and removal
> from the hardware management subsystem.  Network subsystem events, such as
> "interface has arrived" are semantically different, but "close enough" in
> many cases.  In the past, routing sockets have been the means by which
> topology-relevant changes are announced to the user processes.  More
> recently, kqueue has permitted monitoring of a plethora of event types.  I
> think there's a decent argument for a neteventd, perhaps integrated as a
> thread into devd, listening on network events rather than device
> attach/detach events.  The only real problem is that it would be very nice
> if the DHCP client code were available in a library so it could be linked
> into a network event manager.

This is part of the problem.  The other parts are that this
is really networking code, and should be a separate thing, if
possible, and, as Martin just pointed out, the OMAPI stuff is
not really cooked yet.

It's really a lot easier the process a small list of events
in dhacpd as a result of a kqueue or kqueue/select combo, if
you want to avoid rewriting as much code as humanly possible,
and still be able to pull this feature out of the project.

I still haven't been able to repeat your test; are you sure
you are listening on a routing socket for the configuration
change events?  Maybe I'm doing something silly with my dumb
little test program that you aren't doing with yours?  I'm not
seeing my Linksys my 3COM interfaces showing up and disappearing
as kevents, but they are definitely still being seen by the
laptop.  Maybe it's my local hacks to make it work at all (it's
an older Sony VAIO PCG-XG29).

-- Terry


More information about the freebsd-current mailing list