diff options
author | Christian Breunig <christian@breunig.cc> | 2025-01-06 12:13:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-06 12:13:47 +0100 |
commit | 5ae3f05d50f386cad33e7011ca9712e925ac7fa5 (patch) | |
tree | a2f3f705ceeed8bcbdff985e7b1b26f63572852f /src/op_mode | |
parent | 9c091f0f601d1a24e386ad0d883c6dd2f2c51b63 (diff) | |
parent | dda428fc42c44decb3e661a7b6ba4e55b178dc4f (diff) | |
download | vyos-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.py | 11 |
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" |