Commit Graph

2135 Commits

Author SHA1 Message Date
Herbert Wolverson
06d9fa7769 Rebase to current develop (which includes reverting this)
Interface status not being UP is no longer a blocker, it
lists the status in the log to help with diagnosis. (It turns
out that some valid configurations don't list UP at this
time).
2024-05-31 12:23:40 -05:00
Robert Chacón
0673a34202
Merge pull request #490 from LibreQoE/revert-487-preflight-bridge-check
Revert "Preflight bridge check"
2024-05-30 20:13:45 -06:00
Robert Chacón
b8a0d1977d
Revert "Preflight bridge check" 2024-05-30 20:13:00 -06:00
Herbert "TheBracket
55a88cbe1f
Merge pull request #486 from LibreQoE/xdp_hot_cache
Xdp hot cache
2024-05-30 10:12:14 -05:00
Herbert "TheBracket
17fb5e1d24
Merge pull request #487 from LibreQoE/preflight-bridge-check
Preflight bridge check - check that interfaces are up and not already part of a bridge
2024-05-30 10:11:46 -05:00
Herbert "TheBracket
36d41911f2
Merge pull request #488 from LibreQoE/node_manager_show_name
Change the window title for the node manager to include a specified name from the config
2024-05-30 10:11:02 -05:00
Herbert Wolverson
ab0d76eb6d Change the window title for the node manager to include a specified node name from the config. 2024-05-23 13:21:12 -05:00
Herbert Wolverson
b5f2ca1223 And if enabled with no license key, allow it to be set by a remote activation. 2024-05-23 13:12:55 -05:00
Herbert Wolverson
9b5e1b41e8 Update previous commit to use the right defaults. 2024-05-23 13:10:51 -05:00
Herbert Wolverson
6c3347b339 Change default config to enable LTS sufficiently that local stats are gathered and its ready to try. 2024-05-23 12:41:22 -05:00
Herbert Wolverson
12721dff85 ISSUE #468 - After managing to reproduce it with Robert, this should fix the actual issue. The actual problem was checked subtraction in a timer loop carefully checking for the negative - which isn't allowed - and then doing it anyway. Oops. 2024-05-23 09:55:48 -05:00
Herbert Wolverson
667fec63e9 ISSUEE #486 - Replace THROUGHPUT_BUFFER's external lock that required async with interior mutability regular lock that doesn't. This eliminates the possibility of cross-task locking issues leading to a deadlock, and reduces the surface area of the lock period also. Also replace RwLock with Mutex, the simplicity is usually a net gain. This appears to have resolved the issue for me. 2024-05-22 09:10:13 -05:00
Herbert Wolverson
a326dce33f ISSUE #486 - Fix the B to G in Plotly on the throughput graph. We're replacing it in beta 2, but that turned out to be a one-liner. 2024-05-22 08:41:49 -05:00
Herbert Wolverson
cc6d9d2d2d Missing doc block 2024-05-20 08:42:03 -05:00
Herbert Wolverson
417b545dc7 Add preflight checks that interface(s) are UP. Add a check that if XDP
bridging is enabled, there is no Linux bridge containing the listed
interfaces. If the interfaces are enabled, warnings are emitted and
the XDP bridge disabled to operate in Linux mode.
2024-05-19 21:47:47 -05:00
Herbert Wolverson
0e711dc09c Expand hot cache map size to 32k entries (as Gates would say,
that should be enough for everyone).

Add a "negative cache" element. When a "no match" item appears,
it is mapped to CPU 4294967294. That's considered a safe magic
number, because if you have that many CPUs in one box you are
really going to surprise me.

If an LPM lookup occurs, and still comes up as "no match" - then
the item is cached with this sentinel value. If a hot cache hit
returns the sentinal value, it returns NULL just like if no
hit had occurred.

This should eliminate the performance penalty that accompanies
IP addresses blasting out as fast as they can, but not being
in Shaped Devices.
2024-05-17 15:01:09 -05:00
Herbert Wolverson
8372786d46 TINY change: only set the prefixlen if we're actually going to use it. 2024-05-17 14:52:13 -05:00
Herbert Wolverson
d9eedcd804 Add cache invalidation to the hot cache. Whenever an IP mapping
changes, the cache is invalidated - meaning it will re-cache
the correct values.
2024-05-17 14:36:59 -05:00
Herbert Wolverson
6dc811968b Pin the HOT_CACHE map so it can be accessed elsewhere. 2024-05-17 14:36:59 -05:00
Herbert Wolverson
ab64113f98 Add a "hot cache" to the XDP LPM lookup system.
Adds a new BPF map (an LRU hash) containing IP addresses and
TC mapping info. IPs are first checked against the hot cache,
because a hashmap lookup is faster than an LPM lookup. If
found, the cached value is used. If not found, then the
key is inserted into the LRU map (so currently hot stays
present, others expire over time) for future cache use.
2024-05-17 14:36:59 -05:00
Herbert Wolverson
11375d34e1 Add a TRACING flag to the lqos_kern C system. If it is defined,
the entry and exit times of the XDP and TC system are recorded
in the kernel trace pipe.
2024-05-17 14:36:59 -05:00
Robert Chacón
58f898e0f0
Merge pull request #476 from LibreQoE/preflight
Preflight checks for lqosd
2024-05-17 11:14:03 -06:00
Herbert Wolverson
a6f90fc7ee Correct not displaying the "stats free trial" toast message if
stats are disabled.
2024-05-17 11:32:35 -05:00
Herbert "TheBracket
ed403f7869
Merge pull request #483 from LibreQoE/lqtop_ratatui
Merge lqtop2 into develop. Extends lqtop to include the new features we display on the dashboard, switches to ratatui. 

Co-authored-by:  Dave Täht (dtaht)
2024-05-15 10:55:52 -05:00
Herbert Wolverson
e615d26934 Add lqtop latency histo 2024-05-13 15:00:07 -05:00
Herbert Wolverson
0c8916400d Add help line to top 2024-05-13 14:41:11 -05:00
Herbert Wolverson
0c30eb5b8f Regenerate cargo lock 2024-05-13 14:24:19 -05:00
Herbert Wolverson
22104e25a3 Remove unused import 2024-05-08 16:04:51 -05:00
Herbert Wolverson
9bfce3ecec GREATLY improved ShapedDevices writer system. It now catches the changes you make, and the formatting seems to work. 2024-05-08 09:30:02 -05:00
Robert Chacón
648d20183d
Merge pull request #482 from LibreQoE/config_ui
Config UI
2024-05-06 18:17:15 -06:00
Robert Chacón
f7ca4cadef
Merge pull request #480 from LibreQoE/influx_fix_15
Re-enable InfluxDB support with the new configuration.
2024-05-06 18:16:56 -06:00
Herbert Wolverson
12e4320eaa You can now save shaped devices and network json 2024-05-06 14:05:30 -05:00
Herbert Wolverson
a4d4a6df7d Speed editing with buttons works 2024-05-03 09:26:56 -05:00
Herbert Wolverson
c3e7c84e02 Network list node deletion works 2024-05-03 09:16:12 -05:00
Herbert Wolverson
07f82661f8 Allow renaming of top-level tree items 2024-05-03 08:11:38 -05:00
Herbert Wolverson
a61070529b Promote and rename on the network tree 2024-05-02 08:49:18 -05:00
Herbert Wolverson
386003214b Include IP conflict detection. 2024-05-01 15:41:56 -05:00
Herbert Wolverson
d21f4fa8e0 Shaped Devices save button and validation, row removal and addition. Actual saving not implemented yet. 2024-05-01 14:53:40 -05:00
Herbert Wolverson
e2e22ea7ae Round-trip load/edit/save cycle is basically working for lqos.conf files. More testing needed, passed the easy cases I tried. 2024-05-01 12:36:47 -05:00
Herbert Wolverson
001f01da98 Setting the in-memory config from changes after validation is apparently working. 2024-05-01 11:00:21 -05:00
Herbert Wolverson
861c6e2a8d Initial validation workflow for saving configuration. 2024-05-01 10:09:11 -05:00
Herbert Wolverson
d4f479dab8 More config work in progress. 2024-04-30 09:32:46 -05:00
Herbert Wolverson
1ad80a278c Basic network json viewer, shaped devices viewer. All read-only still, but progress. 2024-04-26 12:56:06 -05:00
Herbert Wolverson
3e9fb1e518 Add NIC drop-down lists to config editor 2024-04-25 12:53:16 -05:00
Herbert Wolverson
7ad6001646 Config system can now display the whole lqos.conf file. 2024-04-25 12:31:17 -05:00
Herbert Wolverson
f3c6b344b7 WIP - Current status on config page 2024-04-25 09:02:04 -05:00
Herbert Wolverson
062e1e7eb8 Minimal read-only view of most of the configuration - a good start. 2024-04-24 15:43:43 -05:00
Herbert Wolverson
dba1ed78ae Re-enable InfluxDB support with the new configuration. 2024-04-24 13:17:46 -05:00
Robert Chacón
4c0af0bdea
Update integrationUISP.py 2024-04-16 16:41:04 -06:00
Robert Chacón
d6cf9db8f7
Update integrationUISP.py 2024-04-16 14:21:37 -06:00