diff options
author | Daniil Baturin <daniil@vyos.io> | 2023-11-22 00:09:33 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-22 00:09:33 +0000 |
commit | c87edc8f1f61dda36ece893dc523fa73e69307df (patch) | |
tree | 9048cc2d1cfcc6cfc76e3154bd9bf427dc69264c /python/vyos/firewall.py | |
parent | d1750790419d9db3e4d71974005190752c7928e0 (diff) | |
parent | 4e8839b6d78c7629cd2c1daee0438472c96365a4 (diff) | |
download | vyos-1x-c87edc8f1f61dda36ece893dc523fa73e69307df.tar.gz vyos-1x-c87edc8f1f61dda36ece893dc523fa73e69307df.zip |
Merge pull request #2517 from nicolas-fort/T5419-FT-Sagitta
T5419: firewall: backport firewall flowtable to Sagitta.
Diffstat (limited to 'python/vyos/firewall.py')
-rw-r--r-- | python/vyos/firewall.py | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/python/vyos/firewall.py b/python/vyos/firewall.py index 8ae269fed..4fc1abb15 100644 --- a/python/vyos/firewall.py +++ b/python/vyos/firewall.py @@ -421,19 +421,24 @@ def parse_rule(rule_conf, hook, fw_name, rule_id, ip_name): if 'action' in rule_conf: # Change action=return to action=action # #output.append(nft_action(rule_conf['action'])) - output.append(f'{rule_conf["action"]}') - if 'jump' in rule_conf['action']: - target = rule_conf['jump_target'] - output.append(f'NAME{def_suffix}_{target}') - - if 'queue' in rule_conf['action']: - if 'queue' in rule_conf: - target = rule_conf['queue'] - output.append(f'num {target}') - - if 'queue_options' in rule_conf: - queue_opts = ','.join(rule_conf['queue_options']) - output.append(f'{queue_opts}') + if rule_conf['action'] == 'offload': + offload_target = rule_conf['offload_target'] + output.append(f'flow add @VYOS_FLOWTABLE_{offload_target}') + else: + output.append(f'{rule_conf["action"]}') + + if 'jump' in rule_conf['action']: + target = rule_conf['jump_target'] + output.append(f'NAME{def_suffix}_{target}') + + if 'queue' in rule_conf['action']: + if 'queue' in rule_conf: + target = rule_conf['queue'] + output.append(f'num {target}') + + if 'queue_options' in rule_conf: + queue_opts = ','.join(rule_conf['queue_options']) + output.append(f'{queue_opts}') else: output.append('return') |