diff options
author | Nicolas Fort <nicolasfort1988@gmail.com> | 2023-08-14 10:13:39 -0300 |
---|---|---|
committer | Nicolas Fort <nicolasfort1988@gmail.com> | 2023-08-23 07:41:19 -0300 |
commit | 524b517c53d18b0b50e7ddc83da4baec63172bb8 (patch) | |
tree | 192b33542d7ca90dec6cc3c2ba89fcdabb2ae905 /python/vyos | |
parent | 50c0bc7b2582618fe340b0ca2da1087933e0c6be (diff) | |
download | vyos-1x-524b517c53d18b0b50e7ddc83da4baec63172bb8.tar.gz vyos-1x-524b517c53d18b0b50e7ddc83da4baec63172bb8.zip |
T5450: update smoketest and interface definition in order to work with new firewall cli
Diffstat (limited to 'python/vyos')
-rw-r--r-- | python/vyos/firewall.py | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/python/vyos/firewall.py b/python/vyos/firewall.py index 4aa509fe2..53ff8259e 100644 --- a/python/vyos/firewall.py +++ b/python/vyos/firewall.py @@ -272,20 +272,34 @@ def parse_rule(rule_conf, hook, fw_name, rule_id, ip_name): output.append(f'ip6 hoplimit {operator} {value}') if 'inbound_interface' in rule_conf: + operator = '' if 'interface_name' in rule_conf['inbound_interface']: iiface = rule_conf['inbound_interface']['interface_name'] - output.append(f'iifname {{{iiface}}}') + if iiface[0] == '!': + operator = '!=' + iiface = iiface[1:] + output.append(f'iifname {operator} {{{iiface}}}') else: iiface = rule_conf['inbound_interface']['interface_group'] - output.append(f'iifname @I_{iiface}') + if iiface[0] == '!': + operator = '!=' + iiface = iiface[1:] + output.append(f'iifname {operator} @I_{iiface}') if 'outbound_interface' in rule_conf: + operator = '' if 'interface_name' in rule_conf['outbound_interface']: oiface = rule_conf['outbound_interface']['interface_name'] - output.append(f'oifname {{{oiface}}}') + if oiface[0] == '!': + operator = '!=' + oiface = oiface[1:] + output.append(f'oifname {operator} {{{oiface}}}') else: oiface = rule_conf['outbound_interface']['interface_group'] - output.append(f'oifname @I_{oiface}') + if oiface[0] == '!': + operator = '!=' + oiface = oiface[1:] + output.append(f'oifname {operator} @I_{oiface}') if 'ttl' in rule_conf: operators = {'eq': '==', 'gt': '>', 'lt': '<'} |