[openbeosnetteam] Re: DHCP Stay Alive Question

  • From: Philippe Houdoin <philippe.houdoin@xxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Fri, 22 Oct 2004 20:23:00 +0200

David Enderson asked:
> How solidified is the internal API in the Haiku netserver?

You mean "Haiku net stack", right?
Because we don't have a "netserver" as in R5's net_server design.
Our stack overall design is shown here:
http://philippe.houdoin.free.fr/phil/beos/openbeos/network_kit/overview.html

Beside this remark, nothing is solidified in our internal stack until R1.
Currently, a stack kernel module should conform to the (very) simple API defined
in current/headers/private/net/net_module.h.

The internal API use for UDP packets, interfaces enumeration and interfaces
setup is not solidified at all.
The good side is that we can modify it the way we want/need.
The bad side is that it can still evolve, breaking some code.

> There has
> been talk of integrating DHCP into what you have.  Do you know exactly
> where it will go and how it will plug in?

I guess we can consider DHCP being a protocol and making a network protocol
kernel module make sense to me.
However, currently your (C++) code can't be refactoring into a kernel module
like this, before move from socket API to internal API to send and receive UDP
packets, iterate and setup interfaces.

BTW, maybe it's a good occasion to write a kernel module exporting the basic
(without DNS resolver support at start) sockets API to kernelland. That would
help network-related drivers (netblock devices?) and kernel add-ons (network
filesystems) but also porting your DHCP_client code...

> The reason I ask is that the DHCP server will need to refresh IPs when
> the lease time is up.  Do you plan to have the client running a looping
> thread, will the new netserver fire off an event to the DHCP client when
> the lease expires, or do you have another way of doing it?  I thought I
> would bring the issue up just in case it hadn't been thought of.

While moved into the kernel stack, ther DHCP code can use the stack "net_timer"
service to fired a callback on a specific DHCP expiration. That the way our ARP
network protocol kernel module handle ARP entries expiration, if it's good
enough for ARP it should works fine for DHCP expirations...

- Philippe

Other related posts: