Build the .deb release as part of the Github Actions run. The .deb file is available for download as an artifact of that build for 90 days. Please squash this commit.
So far new users have got these two parameters inverted more
than 50% of the time, with roughly the same probability of
toast landing buttered side down.
Rewriting the python to read the toml, or accessing rust via
the bus, would make this mistake impossible.
I would really like to retire ispConfig.py entirely.
* The JavaScript RingBuffer structure updated correctly.
* Replaced the funnel graph with text - easier to read.
* Discovered that the current "parking_lot" could become unstable
under very heavy load, and only with "fat" LTO. Since it's
no longer recommended (recent change), removed it.
* Replaced the "lazy_static" macro suite with the newly recommended
"once_cell" system. Less code.
* Full source format.
* Update some dependency versions.
* Bring the per-client buffer size back down to a reasonable 2k.
* Divide submission batches into groups and submit those. It's
still MASSIVELY faster, but it can't fall victim to guessing
the number of batches incorrectly.
a 2048000 size read buffer will support 80k queues being installed
in a batch.
H/T Lake Linx and Herbert for this improvement. Perhaps it too
can be improved to have no limit, or the right limit, in the future.
Step 1 of the network funnel
* network.json reader now tags throughput entries with their tree
location and parents to whom data should be applied.
* Data flows "up the tree", giving totals all the way up.
* Simple network map page for displaying the data while it's worked
on.
ShapedDevices.csv is now monitored in lqosd. This brings some
advantages:
* The Tracked Devices list now knows the circuit id association
for every tracked IP.
* The associations auto-update after a ShapedDevices reload.
* The webserver is no longer doing Trie lookups to figure
out what name to display.
Moving forwards, this will allow for stats gathering to group
IPs by circuit, and allow calculation of the "funnel".
* Add a new Python-exported class ('BatchedCommands') to the
Python-Rust library.
* Replace direct calls to xdp_iphash_cpu_cmdline with batched
commands.
* Execute the single batch and obtain counts from the batch.