* Add Ipsec Leases widget to display a list of mobile IPsec users, their online status and their IP addresses.
* Add translations to IpsecLeases Widget.
* Remove nested promises and improve error handling.
* Fix small error that userCountsRow was added twice.
* IpsecLeases fix sorting of users by online status.
* Add IpsecTunnels widget that shows the online/offline status, phase 1 description, local and remote address of each configured IPsec Tunnel.
* Create new method dataHasChanged() in IpsecLeases class, that detects if collected leases have changed. If not, the UI is not updated. Since detecting data changes should be less expensive than updating the whole UI every time, the performance should be better. The console log statements can be used to verify the functionality.
* Also track if the number of leases have changed. Lower tickTimeout to 2 seconds since only updating changed data seems very efficient. This makes the widget update almost in real time without having a big performance impact.
* Generalize dataHasChanged method to compare strings in a deep comparison instead of comparing explicit keys in a shallow comparison. Rewrite IpsecTunnels to use the same methods as IpsecLeases. Comment out console statements.
* Remove debugging statements from code.
While cloning model fields, the identifier for these new fields should also be set, which is currently being arranged in the ArrayField->add() method.
This commit makes sure we set the identifiers for one level below the array field type, which is good enough for current implementations, eventually this should be a recursive action or needs a way to push the identifiers directly on clone.
re-arrange the code a bit as well to remove the need for the $new_record array.
The origin of the link-local allow rule for DHCPv6 traffic is a bit weird and
the rule itself is probably dysfunctional, see pfsense/pfsense@dbcddabcdf
It has never been edited again and remains the same in OPNsense and pfSense
today. Typically server client traffic exchanges exclusively over port 546 and
547 so the original one may have been a typo.
Now as witnessed by #7527 the server port could be random, but should
always come from link-local so we can merge both rules into one without
causing much problems. Works fine locally on my network too.
While here make it possible to go back to the original MAC address by
providing the "hwaddr" field of ifconfig back to link command.
This operates under the constraint that the interface where the MAC
address changes is the same as the interface where IPv6 is running
so that we do not perform useless or problematic configuration.
The case for VLANs and parent MACs is probably also quite tricky, but
since it has never been considered before do not start now.