Commit Graph

2071 Commits

Author SHA1 Message Date
Herbert Wolverson
370b65fa67 Compromise on 10ms sampling time for rate estimation. Giving pretty accurate results on my tests, and not hitting the CPU too hard. 2024-02-29 11:19:35 -06:00
Herbert Wolverson
23f2cfb9d8 Reduce the flow rate estimation frequency from 1 second to 1 ms.
This reduces round-error issues and is generally more accurate -
at the expense of slightly higher CPU usage and a "more bouncy"
rate - that is, for a widely variable flow such as Netflix it
jumps around a lot more. I remain unconvinced that 1ms is the
right number - will continue to test.

Thanks again to Simon Sundberg for this suggestion.
2024-02-29 11:05:37 -06:00
Herbert Wolverson
7d6cbd417a * Remove most code duplication by tracking rate_index and its reciprocal.
* Significantly nicer comments.
* I used a ternary operator. Please shoot me.

Thanks to Simon Sundberg for this recommendation.
2024-02-29 10:17:28 -06:00
Herbert Wolverson
8f343b7c3b More flexible API for 'top N' calculations based on flow buffer. 2024-02-29 09:10:31 -06:00
Herbert Wolverson
0659cda225 Managed to reduce the amount of space required in the XDP metadata buffer to 32 bits. 2024-02-29 08:45:41 -06:00
Herbert Wolverson
9de53853e7 Improve comments on metadata 2024-02-29 08:28:33 -06:00
Herbert Wolverson
f84798885b Add a stub for listing top flows by current bitrate. 2024-02-28 15:03:03 -06:00
Herbert Wolverson
7516715874 Add a real-time flow counter to the display and API. 2024-02-28 14:44:20 -06:00
Herbert Wolverson
393c3adc2a * Restore the tc_dissector, I didn't mean to remove that.
* Add SKB metadata support for pass-through and eliding the
  second LPM check if we can. Checks at run-time to see if
  it is possible.
2024-02-28 12:52:04 -06:00
Herbert Wolverson
95b7c9ac5c No more second stage dissector. 2024-02-28 10:32:02 -06:00
Herbert Wolverson
22d56a71bf Correct the ordering of src/dst ports in the flow map. 2024-02-28 09:56:59 -06:00
Herbert Wolverson
ff4c070b7d Improve the JSON transfer data by listing protocol explicitly for flowbee. 2024-02-28 09:51:43 -06:00
Herbert Wolverson
29b0e07867 Massive improvement in RTT tracking accuracy. 2024-02-28 09:29:20 -06:00
Herbert Wolverson
e98a1864ad Add a new api call - api/flows/dump_all - that lists all recent flows that have been collected. Intended for debugging. 2024-02-27 16:22:22 -06:00
Herbert Wolverson
df2b9dfe32 Integrate the flow data into the moving average system for RTTs, giving a better spread of results. 2024-02-27 14:54:29 -06:00
Herbert Wolverson
f33d22faa0 In progress. The RTT data from the flows system is integrated into the high-level per-IP RTT tracker. 2024-02-27 14:06:13 -06:00
Herbert Wolverson
b7c02d251d Warning fix 2024-02-27 11:56:36 -06:00
Herbert Wolverson
8fa53782c6 Work in progress. Add endian conversions. Add Rust interface for iterating the flows list. Add a temporary interface that dumps flow data to the console to prove that it works. 2024-02-27 11:53:18 -06:00
Herbert Wolverson
bfc9b8227c Skeleton for including UDP and ICMP flow data. 2024-02-27 10:38:17 -06:00
Herbert Wolverson
c7df905e24 WIP - cleanup done, TCP is mostly working on the server-side. 2024-02-27 10:30:48 -06:00
Herbert Wolverson
0fd6b29e6c Considerably cleaned up flow tracking system. 2024-02-26 20:36:37 -06:00
Robert Chacón
4829861eb5
Merge pull request #460 from LibreQoE/rchac-patch-12
Fix UISP Integration Bug - Disconnected Sites Should Still Be Shaped
2024-02-16 06:59:48 -07:00
Robert Chacón
16efa540f3
Update integrationUISP.py 2024-02-16 06:55:52 -07:00
Herbert Wolverson
23487f3328 The flows now include their very own rate estimator, and only count RTT when rate exceeds a threshold - 5mbps right now, which is probably not a good choice. 2024-02-14 14:56:46 -06:00
Herbert Wolverson
1ca595b16c Hacking away - remove the fin/reset flags because they shouldn't be needed. 2024-02-14 14:40:58 -06:00
Herbert Wolverson
295caaad91 Very early days - kinda/sorta working per-flow work. 2024-02-14 13:51:55 -06:00
Herbert Wolverson
088eed555a Correct URL in device_weights.rs 2024-02-08 13:21:56 -06:00
Herbert Wolverson
05d2a398a3 Add a device_weights() call to the Python API
Adds the ability to call device_weights() from liblqos_python.
This returns a set of objects containing circuit_id and weight.

1. The weights are loaded from ShapedDevices.csv using HALF the
   maximum download mbps.
2. If LTS is enabled, a REST call is made to an LTS API located at
   https:/stats.libreqos.io/api/device_weights and the results
   merged in (overwiting existing entries).
3. The merged weights are returned as a Python array of classes.

Example Python code:

```python
from liblqos_python import get_weights;
weights = get_weights();
for w in weights:
    print(w.circuit_id + " : " + str(w.weight));
```
2024-02-08 12:01:12 -06:00
Herbert Wolverson
d412851560 WIP 2024-02-08 08:32:58 -06:00
Herbert "TheBracket
206ba2641f
Merge pull request #459 from LibreQoE/unifig
Unified Configuration System
2024-02-07 12:55:32 -06:00
Herbert Wolverson
7180dd7950 BUGFIX: We weren't correctly honouring requests to use a Linux bridge. This patch fixes it. 2024-02-05 11:33:32 -06:00
Herbert Wolverson
f7c9e82173 Just starting - display some packet info 2024-02-05 11:28:31 -06:00
Herbert Wolverson
3ab165a591 Re-add InfluxDB Support to the unified configuration. 2024-02-04 21:29:02 -06:00
Herbert Wolverson
1ee3543eb1 Add documentation updates for the unified config 2024-02-04 20:55:31 -06:00
Robert Chacón
989f38c0f7
Update share.md 2024-01-28 08:55:29 -07:00
Herbert Wolverson
699e265850 Add some small documentation for adding config items. 2024-01-27 10:12:57 -06:00
Herbert Wolverson
e0e81ed715 Finish porting the Sonar integration over 2024-01-27 10:06:46 -06:00
Herbert Wolverson
8a812fe190 Update the parts of the Sonar configuration that are ported. Still have to figure out some types. 2024-01-27 09:46:46 -06:00
Herbert Wolverson
9c2747de37 Update the scheduler to use the latest config system 2024-01-27 09:42:11 -06:00
Herbert Wolverson
ed5cbbc29c Add the beginnings of the Sonar integration into the config system. Add defaults for every Python field to reduce the chances of getting a partial config. 2024-01-27 09:30:54 -06:00
Herbert Wolverson
a24c51065f Fix on-a-stick typo messing up vlans 2024-01-26 16:36:36 -06:00
Herbert Wolverson
d851161670 General warning and documentation pass. 2024-01-26 16:33:35 -06:00
Herbert Wolverson
50bc071db1 Fix issue with queueRefreshInterval being optional but not treated as such, and breaking things. 2024-01-26 16:33:26 -06:00
Herbert Wolverson
84f7562d54 Add line to example file to complete on-a-stick outline. 2024-01-26 16:08:29 -06:00
Herbert Wolverson
b1b01b89a6 Update cargo packages to latest releases, update rocket and sysinfo to newer syntaxes. 2024-01-26 12:50:30 -06:00
Herbert Wolverson
8cd8b7d404 Update example.toml to include the powercode required fields 2024-01-26 11:49:24 -06:00
Herbert Wolverson
3769bc3d84 Merge branch 'main' into unifig 2024-01-26 11:42:19 -06:00
Robert Chacón
bb3700202e
Update README.md 2024-01-23 11:03:34 -07:00
Robert Chacón
232942a216
Update README.md 2024-01-18 10:14:32 -07:00
Robert Chacón
d39322eaaf
Update Compute.md 2024-01-18 10:06:05 -07:00