[systemd-devel] [PATCH 0/8] Basic DHCPv6 client implementation

Patrik Flykt patrik.flykt at linux.intel.com
Thu Jun 26 03:24:10 PDT 2014


	Hi,

With this patch set it looks like basic DHCPv6 client functionality
should be covered as Renew and Rebind are now also handled.

The first patch in the series clears up dhcpv6 unref handling, after
this it works like the rest of the code in systemd.

Patches 02 and 03 add support for stopping ICMP Router Discovery.
This is what networkd actually wants to have done when the link
is not used anymore.

Patch 04 adds support for requesting options, currently none of the
requested options are going to be used, but it's always fun to request
things.

Patches 05 and 06 add the missing pieces for Renew and Rebind support.
Once Rebind state hits its timeout, the procedure is started all over
again with a new Solicitation. It should be discussed if the behavior
described in the RFC is the best possible, in there it is said that
Solicitation is restarted after all addresses have expired. It looks
a bit interesting, as one could at that point have lost all but the
last IPv6 address, and that one will be gone too about the same time
as the Solicitation is sent. Maybe someone with more knowledge will
pop in on some media and share their wisdom with this situation?

Rapid commit is done in patch 07, seems that the DHCP server I'm using
doesn't want to rapid commit anything here, perhaps due to a missing
IPv6 address to request or something.

Last but not least the TODO file lists a few items that are left for
later.


Cheers,

	Patrik



Patrik Flykt (8):
  sd-dhcp6-client: return NULL from _unref() like the other sd-*
    libraries
  sd-icmp6-nd: Add function to stop ongoing ICMPv6 discovery
  networkd: Properly stop router solicitation and DHCPv6 client
  sd-dhcp6-client: Add Option Request Option support
  sd-dhcp6-lease: Add helper function to compute remaining expiry time
  sd-dhcp6-client: Implement Renew and Rebind
  sd-dhcp6-client: Implement Rapid Commit
  TODO: Add items for the DHCPv6 implementation

 TODO                                          |  16 +++
 src/libsystemd-network/dhcp6-lease-internal.h |   5 +
 src/libsystemd-network/dhcp6-option.c         |   5 +-
 src/libsystemd-network/dhcp6-protocol.h       |  18 +++
 src/libsystemd-network/sd-dhcp6-client.c      | 192 ++++++++++++++++++++++----
 src/libsystemd-network/sd-dhcp6-lease.c       |  41 ++++++
 src/libsystemd-network/sd-icmp6-nd.c          |  13 ++
 src/libsystemd-network/test-dhcp6-client.c    |   9 ++
 src/libsystemd-network/test-icmp6-rs.c        |   4 +
 src/network/networkd-link.c                   |  14 +-
 src/systemd/sd-dhcp6-client.h                 |   2 +
 src/systemd/sd-icmp6-nd.h                     |   1 +
 12 files changed, 290 insertions(+), 30 deletions(-)

-- 
1.9.1



More information about the systemd-devel mailing list