summaryrefslogtreecommitdiff
path: root/src/op_mode
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-01-06 12:13:47 +0100
committerGitHub <noreply@github.com>2025-01-06 12:13:47 +0100
commit5ae3f05d50f386cad33e7011ca9712e925ac7fa5 (patch)
treea2f3f705ceeed8bcbdff985e7b1b26f63572852f /src/op_mode
parent9c091f0f601d1a24e386ad0d883c6dd2f2c51b63 (diff)
parentdda428fc42c44decb3e661a7b6ba4e55b178dc4f (diff)
downloadvyos-1x-5ae3f05d50f386cad33e7011ca9712e925ac7fa5.tar.gz
vyos-1x-5ae3f05d50f386cad33e7011ca9712e925ac7fa5.zip
Merge pull request #4180 from nicolas-fort/zbf-vrfaware
T6841: firewall: improve config parsing for ZBF when using VRFs and interfaces attached to VRFs
Diffstat (limited to 'src/op_mode')
-rw-r--r--src/op_mode/zone.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/op_mode/zone.py b/src/op_mode/zone.py
index 49fecdf28..df39549d2 100644
--- a/src/op_mode/zone.py
+++ b/src/op_mode/zone.py
@@ -56,10 +56,15 @@ def _convert_one_zone_data(zone: str, zone_config: dict) -> dict:
from_zone_dict['firewall_v6'] = dict_search(
'firewall.ipv6_name', from_zone_config)
list_of_rules.append(from_zone_dict)
+ zone_members =[]
+ interface_members = dict_search('member.interface', zone_config)
+ vrf_members = dict_search('member.vrf', zone_config)
+ zone_members += interface_members if interface_members is not None else []
+ zone_members += vrf_members if vrf_members is not None else []
zone_dict = {
'name': zone,
- 'interface': dict_search('interface', zone_config),
+ 'members': zone_members,
'type': 'LOCAL' if dict_search('local_zone',
zone_config) is not None else None,
}
@@ -126,7 +131,7 @@ def output_zone_list(zone_conf: dict) -> list:
if zone_conf['type'] == 'LOCAL':
zone_info.append('LOCAL')
else:
- zone_info.append("\n".join(zone_conf['interface']))
+ zone_info.append("\n".join(zone_conf['members']))
from_zone = []
firewall = []
@@ -175,7 +180,7 @@ def get_formatted_output(zone_policy: list) -> str:
:rtype: str
"""
headers = ["Zone",
- "Interfaces",
+ "Members",
"From Zone",
"Firewall IPv4",
"Firewall IPv6"