[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(usagi-users 02782) Re: Adding IPv6 addrs with finite lifetime



Brian Buesker wrote:
I'm not sure if there is a way to insert an address into the kernel that has a defined preferred and valid lifetime. I think the DHCPv6 client would have to maintain a timer for any addresses it has been leased. That is the way the client implementation available at:

http://dhcpv6.sourceforge.net

does it. Once the timer expires it takes the appropriate action, such as trying to renew the address. I'm not aware of any interface from the kernel to a user-space daemon to signal that an address is going to expire, but I haven't looked into this too much so maybe I'm just not
Yes, I'm doing it just as you described. Linux kernel (even without USAGI patches) is capable of using finite lifetime addresses. I've went through ip-route2 sources. I can read those addresses (with lifetimes) from kernel using RTNetlink functions (I think RTnetlink is the proper name, but I'm not sure.) But adding/modifying this values is not working.

Right now everything works and client behaves correctly when valid lifetime is exceeded. It just removes it from interface. And that's it.
That's ugly, but acceptable. But prefered lifetime is a different story. The whole idea with prefered lifetime is that when this timeout is reached, address should change state do depreciated and application MUST NOT use this address to open new connections. And currently this funtionality is not working. In winXP environment, this works ok. In Linux, it does not. Hey, USAGI gurus! Treat it as a feature request :)


aware of it. By the way, the above-mentioned project also has a server implementation, and both are released under the BSD license in case you are interested.
I'm curious. Will your implementation be fully RFC 3315 compliant, or is it only going to implement a subset of the functionality? Are you implementing just a client, or are you also implementing a server and relay agent?
Full compliance is a long term goal. Right now I have Linux client and server (which is usable, but has some bugs and needs lots of testing) and early winxp port, client and server also.

Greatest missing functionality is of course relay agent support. But it's on top of my long-term TODO list :)

--
Tomasz Mrugalski
spam@xxxxxxxxxxx