Subject: Re: DHCP client, integration with ifconfig, etc.
To: None <tech-net@NetBSD.ORG>
From: Michael Richardson <mcr@sandelman.ottawa.on.ca>
List: tech-net
Date: 02/16/1997 21:22:54
> (1) Return enough information in the recvmsg() control message buffer
>     that a local address appropriate for a response to the message may
>     be chosen by the kernel when the same control message buffer is handed
>     back to a sendmsg() call.  This means that UDP servers (with named
>     and xntpd being common examples) no longer need to bind explicitly
>     to each local address on the machine to function properly on
>     multihomed hosts, the wildcard socket will suffice.

  What I did at Milkyway Networks to get "transparent UDP" (we needed
this same information) was an awful hack: if the sockaddr structure
was exactly 2*sockaddr_in in size, then we returned the source and
destination address. We did this to recvfrom()
  We did the same thing for sendto() call. 
  BSD 4.4 has a way to get at the same thing by using recvmsg()'s control
chain. I found this interface to be rather complicated at the time, and
we were pressed for time...
  So, I think we already have this, but perhaps a better interface
would make it easier to use.

> (3) Redo the routing socket so that it can be openned by a normal
>     process, which can then request that notifications be sent whenever
>     the interface address configuration and/or the local address set
>     changes without receiving a bunch of other cruft as well.  Asynchronous

  This would be nice. Is there some way that a common set of code might
be created, put into inetd so that most server application writer's wouldn't
have to worry as much about it? 

> (and takes a lot of thought).  Being able to configure IP up on an
> interface without actually having interface addresses is also useful, at
> least because it allows one to send and receive bootp/dhcp packets without
> having to resort to, say, bpf.  Really good IP mobility support can

  Yes, that would be nice.
  Perhaps an explicit ifconfig foo0 inet 0.0.0.0 up would indicate
to the interface that it is in this mode?

]   Coming to you from 10km above the north atlantic            | red quark  [
]  Michael Richardson, Sandelman Software Works, Ottawa, ON     | green quark[
] mcr@sandelman.ottawa.on.ca http://www.sandelman.ottawa.on.ca/ | blue quark [
] panic("Just another NetBSD/notebook using, kernel hacking, security guy"); [