summaryrefslogtreecommitdiff
path: root/PVE/Network/SDN/Controllers/EvpnPlugin.pm
diff options
context:
space:
mode:
authorAlexandre Derumier <aderumier@odiso.com>2021-08-23 15:22:15 +0200
committerThomas Lamprecht <t.lamprecht@proxmox.com>2021-08-24 14:25:02 +0200
commit92d8effb6e5973c918f7dc83c214ffddcb80c25a (patch)
tree68c614c875edd7f96597ad238f9cc0b7e6e33c80 /PVE/Network/SDN/Controllers/EvpnPlugin.pm
parent110b881d498d236959d873df9a7fa617504cd2e2 (diff)
evpn : add advertise-subnets option
allow to advertise type5 routes for evpn subnets, if vms are silents hosts. (don't do any traffic, so anycast gateway don't have their mac-ip) fix: https://bugzilla.proxmox.com/show_bug.cgi?id=3571 Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
Diffstat (limited to 'PVE/Network/SDN/Controllers/EvpnPlugin.pm')
-rw-r--r--PVE/Network/SDN/Controllers/EvpnPlugin.pm14
1 files changed, 14 insertions, 0 deletions
diff --git a/PVE/Network/SDN/Controllers/EvpnPlugin.pm b/PVE/Network/SDN/Controllers/EvpnPlugin.pm
index 55828ef..d629140 100644
--- a/PVE/Network/SDN/Controllers/EvpnPlugin.pm
+++ b/PVE/Network/SDN/Controllers/EvpnPlugin.pm
@@ -113,6 +113,7 @@ sub generate_controller_zone_config {
my $vrf = "vrf_$id";
my $vrfvxlan = $plugin_config->{'vrf-vxlan'};
my $exitnodes = $plugin_config->{'exitnodes'};
+ my $advertisesubnets = $plugin_config->{'advertise-subnets'};
my $asn = $controller->{asn};
my $ebgp = undef;
@@ -165,6 +166,19 @@ sub generate_controller_zone_config {
push @controller_config, "default-originate ipv4";
push @controller_config, "default-originate ipv6";
push(@{$config->{frr}->{router}->{"bgp $asn vrf $vrf"}->{"address-family"}->{"l2vpn evpn"}}, @controller_config);
+ } elsif ($advertisesubnets) {
+
+ @controller_config = ();
+ #redistribute connected networks
+ push @controller_config, "redistribute connected";
+ push(@{$config->{frr}->{router}->{"bgp $asn vrf $vrf"}->{"address-family"}->{"ipv4 unicast"}}, @controller_config);
+ push(@{$config->{frr}->{router}->{"bgp $asn vrf $vrf"}->{"address-family"}->{"ipv6 unicast"}}, @controller_config);
+
+ @controller_config = ();
+ #advertise connected networks type5 route in evpn
+ push @controller_config, "advertise ipv4 unicast";
+ push @controller_config, "advertise ipv6 unicast";
+ push(@{$config->{frr}->{router}->{"bgp $asn vrf $vrf"}->{"address-family"}->{"l2vpn evpn"}}, @controller_config);
}
return $config;