]> git.puffer.fish Git - matthieu/pve-network.git/commitdiff
fix #5319: frr.local: add support for bgp-community
authorAlexandre Derumier via pve-devel <pve-devel@lists.proxmox.com>
Tue, 16 Apr 2024 16:25:04 +0000 (18:25 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 22 Apr 2024 11:56:48 +0000 (13:56 +0200)
Need to be inserted after ip prefix-list and before route map

Signed-off-by: Alexandre Derumier <alexandre.derumier@groupe-cyllene.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PVE/Network/SDN/Controllers/EvpnPlugin.pm

index 836a689cb5ab61149912baa184b05b3f31dd0d4b..3c7782afbd406b16e3b21bbcd18ea1ee4db1c2d4 100644 (file)
@@ -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;