mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2026-11-02 20:30:15 -06:00
changes
This commit is contained in:
1 parent
b42e1db722
commit
f8c6852617
6 files changed
+72
-64
No files matched your search
@@ -303,15 +303,15 @@ Examples:
|
||||
|
||||
If `sqm` is empty/missing, global queue defaults apply.
|
||||
|
||||
#### TreeGuard and per-circuit SQM (upcoming feature)
|
||||
#### TreeGuard and per-circuit SQM
|
||||
|
||||
TreeGuard is an upcoming v2.0 feature that can dynamically adjust per-circuit SQM (`cake`/`fq_codel`) based on circuit conditions.
|
||||
TreeGuard can dynamically adjust per-circuit SQM (`cake`/`fq_codel`) based on circuit conditions.
|
||||
|
||||
Important:
|
||||
- TreeGuard is not enabled by default.
|
||||
- Default LibreQoS behavior remains your configured/global SQM unless you explicitly enable TreeGuard.
|
||||
- In LibreQoS v2.0, TreeGuard is enabled by default.
|
||||
- If you want fixed/manual SQM behavior, review TreeGuard settings early in deployment and either narrow its enrollment or disable it explicitly.
|
||||
|
||||
See [TreeGuard (Upcoming v2.0 Feature)](treeguard.md).
|
||||
See [TreeGuard](treeguard.md).
|
||||
|
||||
Here is an example of an entry in the ShapedDevices.csv file:
|
||||
| Circuit ID | Circuit Name | Device ID | Device Name | Parent Node | MAC | IPv4 | IPv6 | Download Min Mbps | Upload Min Mbps | Download Max Mbps | Upload Max Mbps | Comment |
|
||||
|
||||
@@ -39,10 +39,10 @@ Each HTB class has a child qdisc attachment point. If no explicit leaf qdisc is
|
||||
Practical LibreQoS behavior model:
|
||||
|
||||
1. Default behavior uses `HTB` + `cake diffserv4` for shaped circuits.
|
||||
2. TreeGuard (upcoming feature) can dynamically switch circuit directions between `cake diffserv4` and `fq_codel` based on low-load/RTT guardrails.
|
||||
3. TreeGuard is not enabled by default.
|
||||
2. TreeGuard can dynamically switch circuit directions between `cake diffserv4` and `fq_codel` based on low-load/RTT guardrails.
|
||||
3. In LibreQoS v2.0, TreeGuard is enabled by default and operators should review its enrollment and guardrails if they want fixed/manual SQM behavior.
|
||||
|
||||
See [TreeGuard (Upcoming v2.0 Feature)](treeguard.md) for configuration and rollout details.
|
||||
See [TreeGuard](treeguard.md) for configuration and rollout details.
|
||||
|
||||
## 3) HTB Summary for AQM Users
|
||||
|
||||
|
||||
+28
-24
@@ -1,12 +1,12 @@
|
||||
# TreeGuard (Upcoming v2.0 Feature)
|
||||
# TreeGuard
|
||||
|
||||
TreeGuard is an upcoming LibreQoS v2.0 feature for intelligent node management.
|
||||
TreeGuard is a current LibreQoS v2.0 feature for intelligent node management.
|
||||
|
||||
Important status:
|
||||
|
||||
1. TreeGuard is **upcoming**.
|
||||
2. TreeGuard is **not enabled by default**.
|
||||
3. Current defaults remain unchanged unless an operator explicitly enables TreeGuard.
|
||||
1. TreeGuard is **enabled by default** in LibreQoS v2.0.
|
||||
2. TreeGuard can manage both eligible node virtualization and per-circuit SQM policy.
|
||||
3. Operators can tune or disable TreeGuard in `/etc/lqos.conf` or the WebUI TreeGuard page.
|
||||
|
||||
## What TreeGuard Does
|
||||
|
||||
@@ -17,13 +17,15 @@ TreeGuard has two control domains:
|
||||
|
||||
For circuits, TreeGuard can make per-direction decisions (download and upload independently).
|
||||
|
||||
## Default Behavior Without TreeGuard
|
||||
## Default Behavior in LibreQoS v2.0
|
||||
|
||||
When TreeGuard is not enabled, LibreQoS behavior stays with configured/default SQM policy (commonly `cake diffserv4`, with operator overrides where configured).
|
||||
In LibreQoS v2.0, TreeGuard is enabled by default.
|
||||
|
||||
TreeGuard does not affect traffic unless enabled.
|
||||
By default, TreeGuard may virtualize enrolled nodes and may switch enrolled circuit directions between `cake diffserv4` and `fq_codel` according to its configured guardrails.
|
||||
|
||||
## Circuit SQM Switching Model (When Enabled)
|
||||
If you prefer fixed/manual behavior, disable TreeGuard or narrow its enrollment lists.
|
||||
|
||||
## Circuit SQM Switching Model
|
||||
|
||||
TreeGuard evaluates utilization, RTT freshness, CPU guardrails, and optional QoO guardrails.
|
||||
|
||||
@@ -45,34 +47,36 @@ TreeGuard config lives under `[treeguard]` and sub-sections:
|
||||
4. `[treeguard.circuits]`: circuit enrollment and SQM switching guardrails.
|
||||
5. `[treeguard.qoo]`: optional QoO protection threshold.
|
||||
|
||||
From PR #946 defaults:
|
||||
Current default behavior:
|
||||
|
||||
```toml
|
||||
[treeguard]
|
||||
enabled = false
|
||||
dry_run = true
|
||||
enabled = true
|
||||
dry_run = false
|
||||
tick_seconds = 1
|
||||
|
||||
[treeguard.links]
|
||||
enabled = true
|
||||
all_nodes = true
|
||||
top_level_auto_virtualize = true
|
||||
|
||||
[treeguard.circuits]
|
||||
enabled = true
|
||||
all_circuits = true
|
||||
switching_enabled = true
|
||||
independent_directions = true
|
||||
idle_util_pct = 2.0
|
||||
idle_min_minutes = 15
|
||||
rtt_missing_seconds = 120
|
||||
upgrade_util_pct = 5.0
|
||||
min_switch_dwell_minutes = 30
|
||||
max_switches_per_hour = 4
|
||||
persist_sqm_overrides = true
|
||||
|
||||
[treeguard.qoo]
|
||||
enabled = true
|
||||
```
|
||||
|
||||
## Safe Rollout Pattern
|
||||
|
||||
1. Keep `enabled = false` until you have reviewed policy and enrollment lists.
|
||||
2. Start with `enabled = true` and `dry_run = true`.
|
||||
3. Use a small allowlist of nodes/circuits first.
|
||||
4. Validate behavior over multiple peak/off-peak windows.
|
||||
5. Only then set `dry_run = false`.
|
||||
1. Review TreeGuard settings early in deployment instead of assuming static/manual queue behavior.
|
||||
2. If you want a narrower rollout, disable `all_nodes` and/or `all_circuits` and use allowlists first.
|
||||
3. Validate behavior over multiple peak/off-peak windows.
|
||||
4. If you want observation-only validation, set `dry_run = true` temporarily.
|
||||
5. If you need fixed/manual behavior, set `enabled = false`.
|
||||
|
||||
## Overrides and Operational Notes
|
||||
|
||||
|
||||
Reference in new issue
Block a user