Commit Graph

2224 Commits

Author SHA1 Message Date
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
Robert Chacón
7b911e8d62
Update integrationUISP.py 2024-04-16 14:14:17 -06:00
Robert Chacón
3243d9c1f3
Update integrationUISP.py 2024-04-16 14:11:55 -06:00
Herbert Wolverson
9ba992db5f Update package versions in Rust, to remove some more theoretical CVEs. 2024-04-09 14:44:39 -05:00
Herbert Wolverson
2334922dbe Add simple lqosd startup preflight checks to warn about the most common issues: non-existent interfaces, and single queue interfaces. 2024-04-09 14:33:20 -05:00
Robert Chacón
086eaf0510
Allow Suspension UISP Flat Network 2024-03-24 11:45:30 -06:00
Herbert Wolverson
cefda5e936 And top hosts is ported to the new setup. I like this approach. 2024-03-21 13:59:50 -05:00
Herbert Wolverson
2cc5973ce7 Add a table helper type to make it easier to display data. Migrate the flows view to the new system. 2024-03-21 13:59:50 -05:00
Herbert Wolverson
205066b54d Flows system moved over to the new regime. 2024-03-21 13:59:50 -05:00
Herbert Wolverson
e6a30bc370 Start working on a better layout for widgets that retain local state, and eliminate the need for messy synchronized global variables. 2024-03-21 13:59:50 -05:00
Herbert Wolverson
a4aa1f63fa Add a flow map icon to the main page in lqos_node_manager. 2024-03-21 13:59:50 -05:00
Herbert Wolverson
f6d1b48153 Enable binpacking for on-a-stick mode. 2024-03-21 13:59:50 -05:00