Introduces the isBanner property, which explicitly defines the message
as a banner, which doesn't necessarily have a relation to
the persistent property. While here, update the UI to remove
cursor events when the message doesn't have a location set.
above 95% usage triggers a persistent banner.
while here, fix a small issue that excluded persistent notification
types from counting towards the icon color used.
Adhere to standard binding behaviour of other components:
Use the address read to get all addresses and binding ok instead
of using the arcane "interface name" bind option. CARP VIPs are
ignored although allowed to be selected... something we should just
remove since interfaces_addresses() will load all aliases as well.
We also will not get tentative or otherwise unusable addresses.
Next stop for this code is probaby MVC conversion.
It has the downside of losing changes to config.xml but
we are far more likely to run the tests than to change
the file. Ideally, the UUIDs should not shift.
The configd call "filter diag table_size" is quite convenient when inspecting the aliases grid, but if we're only interested in the names and descriptions, it adds quite some overhead.
We can skip the collection of this information by constructing with $skip_dynamic_info set to "true" now, which increases performance quite a bit.
pf in FreeBSD 14.x supports dnpipe and dnqueue targets which hook dummynet, in theory we should be able to use these as well although our solution uses ipfw
for the shaper.
There might be some risks involved when using shapers in pf and configuring rules in ipfw, which is also why this feature is marked experimental.
Benefits of offering shaper targets in our standard firewall are increased flexibility (use of large aliases for example) and cleaner rulesets for example.
A quick test of a rule to shape iperf3 traffic does seem to work as expected.
While testing some changes I ran configctl service reload all and got a timeout error. After doing some digging I found that this relates to netflow data collection and doesn't happen if netflow collection is disabled.
After a bit of poking around it is due to the daemon/samplicate processes keeping a pipe open shared with the reload_all script, which then never termintes. Adding the daemon -f parameter fixes.
While here ignore all return values consistently. Most of them are
ignored, some of them already on the add case. Makes little sense
to report errors on a fraction of operations and adding the same route
will unfortunately yield an error anyway so it's not helpful in the
bulk of cases either.