diff options
author | khramshinr <khramshinr@gmail.com> | 2024-05-21 20:02:31 +0600 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-05-21 18:02:11 +0000 |
commit | bc1c850285a874de7d3a907e012a30fa3fdc24dc (patch) | |
tree | 096463bae7b1d90913a049cca3bcc476c75e7e44 /python | |
parent | 412789b6ffff9172bf22d09ab9453849b63cfb40 (diff) | |
download | vyos-1x-bc1c850285a874de7d3a907e012a30fa3fdc24dc.tar.gz vyos-1x-bc1c850285a874de7d3a907e012a30fa3fdc24dc.zip |
T6373: QoS Policy Limiter - classes for marked traffic do not work
(cherry picked from commit e50b7afc9d5b727d04933116ccf364a2b9a48c30)
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/qos/base.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/python/vyos/qos/base.py b/python/vyos/qos/base.py index 87927ba9d..98e486e42 100644 --- a/python/vyos/qos/base.py +++ b/python/vyos/qos/base.py @@ -247,9 +247,15 @@ class QoSBase: filter_cmd_base += ' protocol all' if 'match' in cls_config: - is_filtered = False + has_filter = False for index, (match, match_config) in enumerate(cls_config['match'].items(), start=1): filter_cmd = filter_cmd_base + if not has_filter: + for key in ['mark', 'vif', 'ip', 'ipv6']: + if key in match_config: + has_filter = True + break + if self.qostype == 'shaper' and 'prio ' not in filter_cmd: filter_cmd += f' prio {index}' if 'mark' in match_config: @@ -332,13 +338,12 @@ class QoSBase: cls = int(cls) filter_cmd += f' flowid {self._parent:x}:{cls:x}' self._cmd(filter_cmd) - is_filtered = True vlan_expression = "match.*.vif" match_vlan = jmespath.search(vlan_expression, cls_config) if any(tmp in ['exceed', 'bandwidth', 'burst'] for tmp in cls_config) \ - and is_filtered: + and has_filter: # For "vif" "basic match" is used instead of "action police" T5961 if not match_vlan: filter_cmd += f' action police' |