Commit Graph

1365 Commits

Author SHA1 Message Date
Herbert Wolverson
c9025f654c Add a couple of unit test. 2023-04-12 13:29:33 +00:00
Herbert Wolverson
a16bc66d79 Format-preserving TOML editing
Restore the automatic generation of a node_id if one isn't present,
based on a hash of /etc/machine_id. Switch from the "toml" crate
to the "toml_edit" crate, and use its Document type to preserve
the user's comments and formatting when editing the configuration
file for saving.
2023-04-12 13:29:33 +00:00
Herbert Wolverson
fada0a6e92 Fix displayed plans in Top/Worst N tables
A value was transposed in the IPStats to IPStats transit
conversion. The UI now displays (max download/max upload)
correctly.

Fix an accidental inclusion of a console.log statement
logging needlessly.
2023-04-12 13:29:33 +00:00
Herbert Wolverson
04bc7326ad Add DNS resolution to displayed flow IP addresses 2023-04-12 13:29:33 +00:00
Herbert Wolverson
2c63393356 Adds "client throughput" to the queue tree tab of circuit_queue
Also moves all the circuit graphs to use the same graphing
system as the other graphs on the plot.

FIXES #315
2023-04-12 13:29:33 +00:00
Herbert Wolverson
4ed077c634 Last 5 minutes of throughput data are stored server-side on node_manager
A server-side ringbuffer retains just the last 5 minutes of throughput.
When the dashboard first loads, it collects all 5 minutes of data,
so nothing appears skipped. Subsequent updates query the latest
value in the buffer.

FIXES #317
2023-04-12 13:29:32 +00:00
Robert Chacón
cfaae176d4 Fix bug pertaining to https://github.com/LibreQoE/LibreQoS/pull/320 2023-04-12 13:29:06 +00:00
Matthew McTague
567cde6b7c Check that priorQuery exists before using it 2023-04-12 13:29:05 +00:00
Robert Chacón
3f0ce35454 Fix error when multiple airFibers at site 2023-04-12 13:28:41 +00:00
Robert Chacón
c1c0bb2385 Use airfiber backhaul capacities to limit site bandwidths 2023-04-12 13:28:40 +00:00
Robert Chacón
59df418d1b Clean up excessive comments 2023-04-12 13:28:21 +00:00
Robert Chacón
7797f183c3 When network.json is created by integration, node bandwidth will be capped by parent nodes 2023-04-12 13:28:21 +00:00
Herbert Wolverson
da167fb84d Backlog is in bytes 2023-04-12 13:27:49 +00:00
Herbert Wolverson
a34505eca0 Use base delay (which is sparse delay) rather than average delay, and use log y values on the delays chart. 2023-04-12 13:27:48 +00:00
Herbert Wolverson
b8921fb7b3 Add pause button and fast/slow modes to circuit_queue page
FIXES #303

Adds a pause button to freeze a snapshot of the current circuit
queue page.

Adds a "fast mode" and "slow mode" toggle. Slow mode continues
at a 1s update cadence. Fast mode uses animation frame support
to update at a good speed, at the expense of CPU usage.

Stores the preference in local storage, so it will resume the
same mode next time you visit the page.
2023-04-12 13:27:29 +00:00
Herbert Wolverson
ec9028c3b2 Change units on backlog graph to packets. FIXES #304 2023-04-12 13:26:59 +00:00
Herbert Wolverson
83825e0376 Packet analysis page has a lot more options
See ISSUE #302

* Filter by FlowID
* Pagination is a select/drop-down
* Filtering is a select/drop-down
* Graph type is selectable from:
   * Packet size (the previous view)
   * Piano Roll (flows plotted by time)
   * TCP Window (differntiated by flow)
2023-04-12 13:26:13 +00:00
Herbert Wolverson
da0489b638 IP Dump supports flow filtering
Every packet is assigned a "flow id", and the UI allows you to
filter displayed packet data by flow id.
2023-04-12 13:26:10 +00:00
Herbert Wolverson
ebfcde2618 Fix a missing break - switch fallthrough by mistake - in dissector.h. This fixes a problem with misidentifying traffic as TCP when it is't. 2023-04-03 15:34:32 +00:00
Herbert Wolverson
34e3381af4 Add file missing from previous commit 2023-04-03 15:34:32 +00:00
Herbert Wolverson
16721208e6 Add DNS resolution to displayed flow IP addresses 2023-04-03 15:34:32 +00:00
Herbert Wolverson
9fce5d51de Adds "client throughput" to the queue tree tab of circuit_queue
Also moves all the circuit graphs to use the same graphing
system as the other graphs on the plot.

FIXES #315
2023-04-03 15:34:32 +00:00
Herbert Wolverson
3bc2c16328 Last 5 minutes of throughput data are stored server-side on node_manager
A server-side ringbuffer retains just the last 5 minutes of throughput.
When the dashboard first loads, it collects all 5 minutes of data,
so nothing appears skipped. Subsequent updates query the latest
value in the buffer.

FIXES #317
2023-04-03 15:34:32 +00:00
Robert Chacón
33ece34df6 Fix bug pertaining to https://github.com/LibreQoE/LibreQoS/pull/320 2023-04-03 15:34:32 +00:00
Matthew McTague
691a1d9e6d Check that priorQuery exists before using it 2023-04-03 15:34:32 +00:00
Matthew McTague
5d36828b35 replaceRootNote should be replaceRootNode 2023-04-03 15:34:32 +00:00
Robert Chacón
f38553c72b Fix error when multiple airFibers at site 2023-04-03 15:34:32 +00:00
Robert Chacón
52a961181e Use airfiber backhaul capacities to limit site bandwidths 2023-04-03 15:34:32 +00:00
Robert Chacón
ec9a7e71b8 Clean up excessive comments 2023-04-03 15:34:32 +00:00
Robert Chacón
ebc980c782 When network.json is created by integration, node bandwidth will be capped by parent nodes 2023-04-03 15:34:32 +00:00
Herbert Wolverson
1b73c3765c Backlog is in bytes 2023-04-03 15:34:32 +00:00
Herbert Wolverson
3f4ee288ae Use base delay (which is sparse delay) rather than average delay, and use log y values on the delays chart. 2023-04-03 15:34:32 +00:00
Herbert Wolverson
53acf90600 Add pause button and fast/slow modes to circuit_queue page
FIXES #303

Adds a pause button to freeze a snapshot of the current circuit
queue page.

Adds a "fast mode" and "slow mode" toggle. Slow mode continues
at a 1s update cadence. Fast mode uses animation frame support
to update at a good speed, at the expense of CPU usage.

Stores the preference in local storage, so it will resume the
same mode next time you visit the page.
2023-04-03 15:34:32 +00:00
Herbert Wolverson
7321c00234 Change units on backlog graph to packets. FIXES #304 2023-04-03 15:34:32 +00:00
Herbert Wolverson
536d165f9b Fix loss of context when clicking zoom in/out buttons. 2023-04-03 15:34:32 +00:00
Herbert Wolverson
869f97ff3b Packet analysis page has a lot more options
See ISSUE #302

* Filter by FlowID
* Pagination is a select/drop-down
* Filtering is a select/drop-down
* Graph type is selectable from:
   * Packet size (the previous view)
   * Piano Roll (flows plotted by time)
   * TCP Window (differntiated by flow)
2023-04-03 15:34:32 +00:00
Herbert Wolverson
182dbcf8d9 IP Dump supports flow filtering
Every packet is assigned a "flow id", and the UI allows you to
filter displayed packet data by flow id.
2023-04-03 15:34:32 +00:00
Herbert Wolverson
920399c4e5 Add favicon with explicit link rel element to call it. 2023-03-28 21:05:13 +00:00
Herbert Wolverson
b93d91c557 Merge branch 'main' of https://github.com/LibreQoE/LibreQoS 2023-03-27 15:03:25 +00:00
Herbert "TheBracket
b99073460a
1st Draft of CONTRIBUTING.md
This is very much a first draft. Comments and edits are appreciated.
2023-03-27 08:03:12 -07:00
Herbert Wolverson
cc87412a84 Merge branch 'main' of https://github.com/LibreQoE/LibreQoS 2023-03-25 15:08:32 +00:00
Herbert "TheBracket
05186030e4
Merge pull request #299 from LibreQoE/heimdall
Heimdall to main
2023-03-25 10:08:13 -05:00
Herbert Wolverson
e50e03411e Revert WebGL on tins, it doesn't work well on Apple devices. 2023-03-25 14:47:51 +00:00
Herbert "TheBracket
0cf7d5dd0a
Heimdall circuit UI speed (#296)
* Circuit queue - lazy rendering by active tab

Only perform network requests for the active tab on the
circuit_queue.html page. Small to moderate performance
improvement, but it greatly reduces the time spent polling.

* Significantly optimize network and rendering performance of the queues funnel display.

* Substantially improve performance on the flows display by using msgpack with a dictionary.

* Remove some commented code

* Fetch circuit info via efficient msgpack

* Use MsgPack for circuit throughput

* Get rid of the monstrosity that was copying queue data over the bus in a raw JSON string, hideously wasteful. Instead, we now have a 'transit' series of objects in the bus definition for tight encoding. This also cleaned up some node manager code. It's mostly useful for the next stage, which will start to reduce the amount of data we are transmitting.

* A lot of the redundant network transport is culled.

* More unused fields culled.

* Elimate a HUGE amount of garbage collection by allocating and reusing a single object, and cleaning up the JS rendering. Still not good enough.

* Switch to an efficient msgpack transmission format.

* Cleanup handling of 'none' in msgpack

* Fix scale delays to ms

* Commit to send to payne

* Use WebGL for a slight rendering boost.

* Further reduce draw time of circuit page by using redraw commands.

* Finish previous commit

* Use redraw with preallocated/non-GC data for all ringbuffer renders.

* Fix a rare issue with reloading network.json that could cause a stall.

* Optimize RTT graphs with the reload system.
2023-03-25 07:37:04 -07:00
Robert Chacón
5f0e1f61f7
Remove duplicate output of "Executed X linux TC class/qdisc commands" 2023-03-24 16:45:21 -06:00
Robert Chacón
4a5c5b15a0
Merge pull request #297 from LibreQoE/fixFirstRun
Check for mq before attempting to delete root qdisc
2023-03-24 16:42:29 -06:00
Robert Chacón
549772e3db
Check for mq before attempting to delete https://github.com/LibreQoE/LibreQoS/issues/228 2023-03-24 16:41:34 -06:00
Herbert Wolverson
d53200f43d Fix from chat: add quotes around node_id in the setup. 2023-03-24 13:05:31 +00:00
Herbert Wolverson
936a2f7a21 Merge branch 'main' of https://github.com/LibreQoE/LibreQoS 2023-03-24 12:53:07 +00:00
Robert Chacón
1c4b9a7666
Create CODE_OF_CONDUCT.md 2023-03-23 14:13:19 -06:00