diff options
author | Christian Breunig <christian@breunig.cc> | 2024-05-22 08:16:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-22 08:16:42 +0200 |
commit | 202c1d15999175e745f762b6c349f458c82857b5 (patch) | |
tree | 096463bae7b1d90913a049cca3bcc476c75e7e44 /python | |
parent | 412789b6ffff9172bf22d09ab9453849b63cfb40 (diff) | |
parent | bc1c850285a874de7d3a907e012a30fa3fdc24dc (diff) | |
download | vyos-1x-202c1d15999175e745f762b6c349f458c82857b5.tar.gz vyos-1x-202c1d15999175e745f762b6c349f458c82857b5.zip |
Merge pull request #3496 from vyos/mergify/bp/sagitta/pr-3494
T6373: QoS Policy Limiter - classes for marked traffic do not work (backport #3494)
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' |