summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2024-02-01 18:02:44 +0200
committerGitHub <noreply@github.com>2024-02-01 18:02:44 +0200
commitb026961edd6b732f4c57ff0c68099930bf6162e3 (patch)
treed04669dd6ee6aa78fe1f54e9e9972b18262dd0c4 /python
parent53f65eee68192addf07c146dc9d2ea3a30a66643 (diff)
parent6ddfe6328e1cbdde1b70763b39e3a87f8374755a (diff)
downloadvyos-1x-b026961edd6b732f4c57ff0c68099930bf6162e3.tar.gz
vyos-1x-b026961edd6b732f4c57ff0c68099930bf6162e3.zip
Merge pull request #2883 from sever-sever/T5974
T5974: Fix QoS shape bandwidth and ceil calculation for default
Diffstat (limited to 'python')
-rw-r--r--python/vyos/qos/trafficshaper.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/python/vyos/qos/trafficshaper.py b/python/vyos/qos/trafficshaper.py
index 1f3b03680..d6705cc77 100644
--- a/python/vyos/qos/trafficshaper.py
+++ b/python/vyos/qos/trafficshaper.py
@@ -99,7 +99,11 @@ class TrafficShaper(QoSBase):
self._cmd(tmp)
if 'default' in config:
- rate = self._rate_convert(config['default']['bandwidth'])
+ if config['default']['bandwidth'].endswith('%'):
+ percent = config['default']['bandwidth'].rstrip('%')
+ rate = self._rate_convert(config['bandwidth']) * int(percent) // 100
+ else:
+ rate = self._rate_convert(config['default']['bandwidth'])
burst = config['default']['burst']
quantum = config['default']['codel_quantum']
tmp = f'tc class replace dev {self._interface} parent {self._parent:x}:1 classid {self._parent:x}:{default_minor_id:x} htb rate {rate} burst {burst} quantum {quantum}'
@@ -107,7 +111,11 @@ class TrafficShaper(QoSBase):
priority = config['default']['priority']
tmp += f' prio {priority}'
if 'ceiling' in config['default']:
- f_ceil = self._rate_convert(config['default']['ceiling'])
+ if config['default']['ceiling'].endswith('%'):
+ percent = config['default']['ceiling'].rstrip('%')
+ f_ceil = self._rate_convert(config['bandwidth']) * int(percent) // 100
+ else:
+ f_ceil = self._rate_convert(config['default']['ceiling'])
tmp += f' ceil {f_ceil}'
self._cmd(tmp)