This commit improves alias save/validate performance by fixing two main issues:
1) Faster unique constraint handling using caching, in order to prevent nested loops we should cache our results while still in the validation cycle.
This required an attribute to count validation cycles so we know the model could not have changed in between, getValidationSequence() helps to reach that goal
2) Alias::getByName() more optimistic caching, also prevening nested loops when locating aliases.
Although this is slighly more optimistic than the previous construction, in practice when validating data the set won't change, if there is a risk of mutations, we should flush the set using the "flush" parameter (same as before, but a bit more sensitive).
Let the user decide on the password and use root as the default,
but then also allow these to be seen on the GUI and stop flapping
options when a header can do the same job now.
Currently it doesn't seem to be possible to reliably set both peer and peer6, but since in the kernel these are organized as two fields on the same vhid we prevent both being set with a validation.
If we would only offer a "peer" field matching the ip protocol, we might have difficulties in the future when both can be provided at the same time.
This commit parses the ifconfig output and offers the result in the interfaces/overview page (tooltip like freq settings).
If any widget failed to import/instantiate/update in the previous logic,
this would halt execution for the entire dashboard. This commit takes
care of these cases, but it cannot account for asynchronous callbacks
executed in the widget logic itself, these should be caught there.
The situation is a bit complex involving rtsold, the accept_rtadv and
the system configuration for WAN and LAN. Will see if we can find
another way to discourage the use of the SLAAC address. I don't think
we really really need it.
Tie them to the IPv6 allow setting which is used by more things
than just the filter, so also move the IPv6 allow to the general
settings for consistency.
There is not much point to tie these sysctls to their former
condition of something set in SLAAC or DHCPv6 connectivity mode
because "ifdisabled" is used and because prior you couldn't turn
it off without a reboot after having tried the IPv6 connetivity.
To make thus super effective refuse to configure IPv6 on interfaces
in these instances by forcing the individual IPv6 interface modes
to 'none'.
While here restructure and reword some of the options. Also
add a possibility to disable the SLAAC address which complements
this nicely and has been known to be problematic for some users.