[KD6-DANIR-v2] Lite Kernel DHCPv6 PD and NDP implementation


In this post I am happy to introduce a second version of DHCPv6_PD+ND kernel module:  [KD6-DANIR-v2].

The kernel module implementation follows the state machine for RR (Requesting Router), SR (ServeR) and CT (ClienT).


The kernel in the IoT Router (Requesting Router) issues a DHCPv6 PD request on its egress interface and obtains a /56 from DHCPv6 PD server. Further it splits multiple /64s out of it and sends RAs with /64 on the ingress interfaces. After clients receive the RA the default route is configured (link-local) address of IoT Requesting Router and /64 prefix is used to configure interface IP address.

GITHUB(v2), DEMO(v1) and IETF(v2) docs:

DANIR implementation at github:

IETF document draft-shytyi-v6ops-danir-05.txt:

Demo of this v1 implementation:

The DEMO recorded the virtual machines output on the IoT Router (Requesting Router), the Client device behind it, and the DHCPv6-PD server.

Have a nice day!