From 51c766f8a00a8a447bdb4bbf6e567eee04deb95c Mon Sep 17 00:00:00 2001 From: Alexandre Derumier via pve-devel Date: Tue, 16 Apr 2024 18:25:04 +0200 Subject: [PATCH] fix #5319: frr.local: add support for bgp-community Need to be inserted after ip prefix-list and before route map Signed-off-by: Alexandre Derumier Signed-off-by: Thomas Lamprecht --- src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm index 836a689..3c7782a 100644 --- a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm +++ b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm @@ -421,17 +421,16 @@ sub generate_frr_vrf { push @{$final_config}, @config; } -sub generate_frr_ip_protocol { - my ($final_config, $ips) = @_; +sub generate_frr_simple_list { + my ($final_config, $rules) = @_; - return if !$ips; + return if !$rules; my @config = (); push @{$final_config}, "!"; - foreach my $rule (sort @$ips) { + foreach my $rule (sort @$rules) { push @{$final_config}, $rule; } - } sub generate_frr_interfaces { @@ -517,8 +516,9 @@ sub generate_controller_rawconfig { generate_frr_list($final_config, $config->{frr_access_list}, "access-list"); generate_frr_list($final_config, $config->{frr_prefix_list}, "ip prefix-list"); generate_frr_list($final_config, $config->{frr_prefix_list_v6}, "ipv6 prefix-list"); + generate_frr_simple_list($final_config, $config->{frr_bgp_community_list}); generate_frr_routemap($final_config, $config->{frr_routemap}); - generate_frr_ip_protocol($final_config, $config->{frr_ip_protocol}); + generate_frr_simple_list($final_config, $config->{frr_ip_protocol}); push @{$final_config}, "!"; push @{$final_config}, "line vty"; @@ -553,6 +553,9 @@ sub parse_merge_frr_local_config { } elsif ($line =~ m/^interface (.+)$/) { $section = \$config->{'frr_interfaces'}->{$1}; next; + } elsif ($line =~ m/^bgp community-list (.+)$/) { + push(@{$config->{'frr_bgp_community_list'}}, $line); + next; } elsif ($line =~ m/address-family (.+)$/) { $section = \$config->{'frr'}->{'router'}->{$router}->{'address-family'}->{$1}; next; -- 2.39.5