dhcpv6: add option to ignore stateless advertise
authorviktor.iarmola <viktor.iarmola@ui.com>
Fri, 21 Jan 2022 12:33:02 +0000 (14:33 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Mon, 1 Aug 2022 19:27:51 +0000 (21:27 +0200)
commit7d21e8d8ecd6d776f64b6928f62893c0f5c9747a
tree4fac6ec6a6bae4ef5886e66e4bbedd88cc12e67c
parent9212bfcbab7681cd30186ac7f1ef4c47bf38c89a
dhcpv6: add option to ignore stateless advertise

This change adds a new option to `odhcp6c` that makes it ignore any
advertisement without *both* IA_NA and IA_PD option.
Note that there is already an way to ignore advertisements without IA_NA
specifically (`-N force`) or without IA_PD specifically (`-F`), but there
is no way to express "advertisement MUST have either IA_NA or IA_PD
to be considered" - which is addressed by this change.

There are two primary use-cases for that.
First is to fix an issue with `odhcp6c` behavior when it encounters
a setup with both "stateful" (with IA_NA or IA_PD) and "stateless"
advertisements - and both coming with the same server DUID.
In that case, when the "stateless" advertisement comes last
during the RT window - it will overwrite the advertise entry for that
server DUID and effectively make it seem like we only received
one "stateless" advertisement on the link.
This, in turn, makes `odhcp6c` go into stateless mode
unless there was `-N force` or `-F` involved.

Second use case is as described in the initial part:
when we want to run in "stateful" mode, but would like to accept either
of IA_NA or IA_PD or both of them - and discard other advertisements.

Signed-off-by: Viktor Iarmola <viktor.iarmola@ui.com>
src/dhcpv6.c
src/odhcp6c.c
src/odhcp6c.h