diff options
| author | khramshinr <khramshinr@gmail.com> | 2024-11-11 10:04:15 +0800 |
|---|---|---|
| committer | khramshinr <khramshinr@gmail.com> | 2024-12-11 09:32:37 +0800 |
| commit | 99feb3bbe88a3ed96ec5d6dd741689f30a385693 (patch) | |
| tree | e4ac6beba05a46656bdace0e75070e04c213a771 /python/vyos/qos/priority.py | |
| parent | 3ed6f02a66fd9d02a4cc3c45b2605cb3d8ad0d2e (diff) | |
| download | veeos-1x-99feb3bbe88a3ed96ec5d6dd741689f30a385693.tar.gz veeos-1x-99feb3bbe88a3ed96ec5d6dd741689f30a385693.zip | |
T6790: QoS: Improve CAKE Policy
- Fixed handling of flow isolation parameters.
- Corrected support for `nat` and `nonat` in flow isolation.
- Extended RTT values to cover the full range supported by `tc`.
Diffstat (limited to 'python/vyos/qos/priority.py')
| -rw-r--r-- | python/vyos/qos/priority.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/python/vyos/qos/priority.py b/python/vyos/qos/priority.py index 7f0a67032..66d27a639 100644 --- a/python/vyos/qos/priority.py +++ b/python/vyos/qos/priority.py @@ -20,17 +20,18 @@ class Priority(QoSBase): # https://man7.org/linux/man-pages/man8/tc-prio.8.html def update(self, config, direction): - if 'class' in config: - class_id_max = self._get_class_max_id(config) - bands = int(class_id_max) +1 + class_id_max = self._get_class_max_id(config) + class_id_max = class_id_max if class_id_max else 1 + bands = int(class_id_max) + 1 - tmp = f'tc qdisc add dev {self._interface} root handle {self._parent:x}: prio bands {bands} priomap ' \ - f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' \ - f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' \ - f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' \ - f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' - self._cmd(tmp) + tmp = f'tc qdisc add dev {self._interface} root handle {self._parent:x}: prio bands {bands} priomap ' \ + f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' \ + f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' \ + f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' \ + f'{class_id_max} {class_id_max} {class_id_max} {class_id_max} ' + self._cmd(tmp) + if 'class' in config: for cls in config['class']: cls = int(cls) tmp = f'tc qdisc add dev {self._interface} parent {self._parent:x}:{cls:x} pfifo' |
