interface: POC for multi-dhcp6c support
I'm not entirely sure why we settled for a single deamon of
dhcp6c back in the day, but there are certianly downsides to
it and I don't see something that wasn't fixed in the meantime
that makes this not work.
At the moment this splits off dhcp6c only but we need to
change the daemon's print a bit to avoid complaining about
"other" devices since the situation to ignore a non-listening
interface is normal and not "ignoring" something obvious as
the INFO log message suggests.
rtsold still needs to be split to allow for HUP reload of
a single interface instead of forcing a restart of all
DHCPv6 WAN clients at the same time.
For better debugging support in the future ditch the "normal"
log mode and always use -d or -D when debug is wanted.
interface: POC for multi-dhcp6c support
I'm not entirely sure why we settled for a single deamon of
dhcp6c back in the day, but there are certianly downsides to
it and I don't see something that wasn't fixed in the meantime
that makes this not work.
At the moment this splits off dhcp6c only but we need to
change the daemon's print a bit to avoid complaining about
"other" devices since the situation to ignore a non-listening
interface is normal and not "ignoring" something obvious as
the INFO log message suggests.
rtsold still needs to be split to allow for HUP reload of
a single interface instead of forcing a restart of all
DHCPv6 WAN clients at the same time.
For better debugging support in the future ditch the "normal"
log mode and always use -d or -D when debug is wanted.
interfaces: use model to get the hardware data
We should really add a test case for getNodeContent() to ensure
the output will not shift on us in the future for unintented
reasons.
getNodes() doesn't work as it structures option values weirdly
more tailored for GUI rendering.
interfaces: fix issue when /var/db/dhcp6c_duid is not found
This can happen when no DHCPv6 was used. It's problematic because
the JS on the settings page breaks. Allow the current one to be empty
saving to an empty one keeping it optional until pinned by the user.
This is what the previous behaviour did.
system: introduce an is_ipv6_allowed()
Since it is splattered over many places add a function to
reduce the hardcoding. There's still a problem if the
migration fails so it would be nicer to imply IPv6 is on
than explicitly looking for it (in 2026 and beyond).