diff options
| author | Christian Breunig <christian@breunig.cc> | 2024-05-21 20:01:18 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-21 20:01:18 +0200 | 
| commit | 23a420194f4d0eb0177f05bd0a8c60e4f5214e54 (patch) | |
| tree | c4cb4c8ee970408bd8b521885880245eed9bebbd /python | |
| parent | 108a42fc013073759c82caf7a6a8c79f417c2c81 (diff) | |
| parent | e50b7afc9d5b727d04933116ccf364a2b9a48c30 (diff) | |
| download | vyos-1x-23a420194f4d0eb0177f05bd0a8c60e4f5214e54.tar.gz vyos-1x-23a420194f4d0eb0177f05bd0a8c60e4f5214e54.zip | |
Merge pull request #3494 from HollyGurza/T6373
T6373: QoS Policy Limiter - classes for marked traffic do not work
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' | 
