Subject: [hackathon] Minimal implementation of draft-ietf-dhc-rfc3315bis on RIOT @ IETF Hackathon 101

From: Martine Lenders <[email-masked]>
Date: Wed, 14 Mar 2018 16:32:29 +0100

Hi,

I will be championing a minimal DHCPv6 implementation for the RIOT
operating system [1]. The main plan is to replace RIOT's proprietary (or
rather quickly hacked together) UHCP client which functionality is
comparable to a DHCP client requesting IA_PD. If time allows further
features can also be implemented.

Main development will happen on the `native` platform, which allows RIOT to
be run as a process on Linux. For preparation please set-up a Vagrant-VM
[2] or set the toolchains up natively on your system [3] (experience shows
that Ubuntu LTS works the easiest, and OSX the hardest with that option).
If you want to familiarize with RIOT, have a look at our tutorials [4] and
our API documentation [5]. The plan is to use the `sock_udp` API [6] for
the implementation.

Hope to see you this Saturday!

Kind regards,
Martine

[1] https://riot-os.org/
[2] https://github.com/RIOT-OS/RIOT/tree/master/dist/tools/vagrant
[3] https://github.com/RIOT-OS/RIOT/wiki/Family%3A-native
[4] https://github.com/RIOT-OS/Tutorials
[5] http://api.riot-os.org/
[6] http://api.riot-os.org/group__net__sock__udp.html

---

From: Tomek Mrugalski <[email-masked]>
Date: Thu, 15 Mar 2018 11:50:03 +0000

> features can also be implemented.
Hi!

Great to hear that. I was somewhat involved in the 3315bis work, so I'll
try to answer any questions if anything it unclear. I'll try to
participate a tiny bit, but since I'll be pursuing a different goal
(implement Netconf interface for Kea DHCP server) the amount of time I'm
able to dedicate will be limited.

To test a client, you'll need a DHCPv6 server. Do you have anything set
up? If not, may I recommend Kea? It's a modern DHCPv6 server with
support for many features, including PD. It's open source and runs on
about any Linux, BSD and Mac OS. And if you need anything from the
server that's not super complex, we can hack something real quick. I'm
quite familiar with the code and willing to help.

I'd love to discuss your plans for the client. I know nothing about
RIOT, but I wrote a dhcpv6 client and two dhcpv6 servers before, so I
may be able to share some tips.

> Main development will happen on the `native` platform, which allows RIOT
> to be run as a process on Linux. For preparation please set-up a
> Vagrant-VM [2] or set the toolchains up natively on your system [3]
> (experience shows that Ubuntu LTS works the easiest, and OSX the hardest
> with that option). If you want to familiarize with RIOT, have a look at
> our tutorials [4] and our API documentation [5]. The plan is to use the
> `sock_udp` API [6] for the implementation.
Thanks for the info. If time permits, will set up the env.

> Hope to see you this Saturday!
See you there!

Cheers,
Tomek

---

From: Martine Lenders <[email-masked]>
Date: Thu, 15 Mar 2018 13:22:18 +0100

Hi,

> able to dedicate will be limited.

Great! In case something comes up, I'll ping you if you are available ;-).

> quite familiar with the code and willing to help.

I will be there with an Ubuntu machine (my personal Laptop) who are
notorious for randomly starting dnsmasq in the background via the
NetworkManager. I'm still trying to find a solution to have a custom
configured DHCP server running without axing the NetworkManager, but I
think I will find something. If so, I may be consider Kea, but it might be
a good idea to cross-test with other implementations as well ;-). I also
bring a Raspberry Pi, in case we surpass our first goal, that can ship a
DHCP server for leases beyond PD (PD is mainly of interest for us to
configure a 6Lo border router "over the wire" and since the RaspPi already
acts as a border router itself it isn't really an option for our main goal
+ we would need real hardware for this of which I will only bring a limited
amount).

> may be able to share some tips.

Since RIOT is an IoT OS for class 1 and 2 devices [1], we are mainly
interested in a very lean, feature-driven implementation (where features
can be added/removed at compile time). Any hints regarding some design
parameters regarding these requirements would be greatly appreciated.

Cheers,
Martine

[1] https://tools.ietf.org/html/rfc7228#section-3