Commit Graph

2230 Commits

Author SHA1 Message Date
Herbert Wolverson
2d3874e812 Build complete spanning tree for data links and use it to orient tree
Rather than obeying the "parent" field, which leads to wrong-way up
graphs when building from a non-root site - instead build a complete
cost-based spanning tree from the specified root node. Then use
the generated tree - falling back on parent if nothing is found -
to populate the tree in order.

Tested on Herbert's network, correctly generates topology from several
different locations.

Still to come: adding a mechanism for providing parenting overloads
to allow for cases where a long path is actually optimal, but we
have no way of knowing that.
2023-04-12 13:29:33 +00:00
Herbert Wolverson
d2aa804ace Use dot renderer for PDF 2023-04-12 13:29:33 +00:00
Herbert Wolverson
6e15181fab Add a couple of 'is none' checks to remove crashes I experienced. 2023-04-12 13:29:33 +00:00
Herbert Wolverson
0cc1a6eaee Add documentation headers for Queue Tracker. 2023-04-12 13:29:33 +00:00
Herbert Wolverson
6106c26899 Add documentation headers for Heimdall. 2023-04-12 13:29:33 +00:00
Herbert Wolverson
f56581f1d6 Add some unit tests and documentation to the crate. No functional changes. 2023-04-12 13:29:33 +00:00
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
Robert Chacón
20e69d2415
Merge pull request #332 from LibreQoE/fixUispAPoffPtMP
Handle sites branched off PtMP Access Points
2023-04-11 16:14:31 -06:00
Robert Chacón
f3bcf61475
Update integrationUISP.py 2023-04-11 16:13:26 -06:00
Robert Chacón
b00f99beec
Update integrationUISP.py 2023-04-11 15:30:28 -06:00
Robert Chacón
27c5ce59bf
Merge pull request #329 from LibreQoE/allowOverrideNetworkJSON
Offer toggle to overwrite Network.json on each integration reload. Disabled by default.
2023-04-11 10:41:40 -06:00
Robert Chacón
ddc30894cf
Update integrationUISP.py 2023-04-11 10:39:30 -06:00
Robert Chacón
19928a5e5e
Update ispConfig.example.py 2023-04-11 10:38:00 -06:00
Robert Chacón
88cfdd9da4
Merge pull request #328 from LibreQoE/uisp_integration_enhancements
Uisp integration enhancements: Topology
2023-04-11 09:57:42 -06:00
Robert Chacón
8c6e973b19
Merge pull request #327 from LibreQoE/more_unit_tests
More unit tests & documentation
2023-04-11 09:57:15 -06:00
Robert Chacón
f70c4ca639
Merge pull request #326 from LibreQoE/format_preserving_toml
Format-preserving TOML editing
2023-04-11 09:57:00 -06:00
Herbert Wolverson
cb63968e81 Allow integrationUISProutes.csv to override default costs in UISP route determination.
Requested by D. Denson.

Now that the UISP network tree is built as a spanning tree, with 10
cost per hop we can reliably flip the tree from A->B->C to C->B->A
depending upon root positioning.

This addition allows you to specify additional routes (that MUST
exist!) e.g. A->C and specify a cost to use instead of the default
10. This allows for topologies in which A-B-C is actually faster
than a direct A-C route (for example, becuase of short 60ghz
hops).
2023-04-11 15:30:47 +00:00
Herbert Wolverson
400c4fbee1 Minimal - not very safe at all - submission. 2023-04-07 19:50:05 +00:00
Herbert Wolverson
54e9095748 Support more license valid data, and the test license 2023-04-07 16:35:08 +00:00
Herbert Wolverson
85b713fe31 Licensing server can deny or accept a key of 'test'. Truly minimal, designed to get things moving. 2023-04-07 15:29:27 +00:00
Herbert Wolverson
80c9a279b3 Include new directories 2023-04-06 19:01:03 +00:00
Herbert Wolverson
ff4df61d54 Build complete spanning tree for data links and use it to orient tree
Rather than obeying the "parent" field, which leads to wrong-way up
graphs when building from a non-root site - instead build a complete
cost-based spanning tree from the specified root node. Then use
the generated tree - falling back on parent if nothing is found -
to populate the tree in order.

Tested on Herbert's network, correctly generates topology from several
different locations.

Still to come: adding a mechanism for providing parenting overloads
to allow for cases where a long path is actually optimal, but we
have no way of knowing that.
2023-04-06 16:22:01 +00:00
Herbert Wolverson
d33cd0d3e6 Use dot renderer for PDF 2023-04-05 20:34:32 +00:00
Herbert Wolverson
5f9655b529 Add a couple of 'is none' checks to remove crashes I experienced. 2023-04-05 20:16:57 +00:00
Herbert Wolverson
415f939715 Add documentation headers for Queue Tracker. 2023-04-05 19:21:39 +00:00
Herbert Wolverson
bcb4a8a53a Add documentation headers for Heimdall. 2023-04-05 16:58:19 +00:00
Herbert Wolverson
bb53be9bfc Add some unit tests and documentation to the crate. No functional changes. 2023-04-05 16:51:15 +00:00
Herbert Wolverson
c9a443f77b Add a couple of unit test. 2023-04-05 16:36:10 +00:00
Herbert Wolverson
eb9b32ef65 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-05 15:00:35 +00:00
Herbert "TheBracket
f4991fcb95
Merge pull request #323 from LibreQoE/displayed_plans
Fix displayed plans in Top/Worst N tables
2023-04-03 11:11:04 -05:00
Herbert Wolverson
01433160ac 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-03 16:09:53 +00:00
Herbert Wolverson
54d8acc7c1 Merge branch 'develop' of https://github.com/LibreQoE/LibreQoS into develop 2023-04-03 15:34:43 +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