[pve-devel] [PATCH pve-network 4/6] sdn: evpn: keep router-id valid on IPv6 underlay

Hannes Laimer h.laimer at proxmox.com
Thu Jan 22 14:51:49 CET 2026


BGP router-ids are 32-bit values, so use get_router_id() instead of the
address directly, cause that would only work for IPv4 underlays.
And remove dead code in the EVPN zone plugin, we don't need the
router-id there anywhere.

Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
---
 src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 4 ++--
 src/PVE/Network/SDN/Zones/EvpnPlugin.pm       | 2 --
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
index 88bdcb8..8bc00c7 100644
--- a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
+++ b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
@@ -116,7 +116,7 @@ sub generate_frr_config {
         $loopback = "dummy_$fabric->{id}";
 
         $ifaceip = $current_node->{$addr_key};
-        $routerid = $current_node->{$addr_key};
+        $routerid = PVE::Network::SDN::Controllers::Plugin::get_router_id($ifaceip, $loopback);
 
     } elsif ($plugin_config->{'peers'}) {
         @peers = PVE::Tools::split_list($plugin_config->{'peers'});
@@ -268,7 +268,7 @@ sub generate_zone_frr_config {
         $loopback = "dummy_$fabric->{id}";
 
         $ifaceip = $current_node->{$addr_key};
-        $routerid = $current_node->{$addr_key};
+        $routerid = PVE::Network::SDN::Controllers::Plugin::get_router_id($ifaceip, $loopback);
 
     } elsif ($controller->{peers}) {
         @peers = PVE::Tools::split_list($controller->{'peers'}) if $controller->{'peers'};
diff --git a/src/PVE/Network/SDN/Zones/EvpnPlugin.pm b/src/PVE/Network/SDN/Zones/EvpnPlugin.pm
index 227d917..9aeced5 100644
--- a/src/PVE/Network/SDN/Zones/EvpnPlugin.pm
+++ b/src/PVE/Network/SDN/Zones/EvpnPlugin.pm
@@ -145,7 +145,6 @@ sub generate_sdn_config {
     my $loopback = undef;
     my $ifaceip = undef;
     my $iface = undef;
-    my $routerid = undef;
 
     if ($controller->{peers}) {
         @peers = PVE::Tools::split_list($controller->{'peers'});
@@ -204,7 +203,6 @@ sub generate_sdn_config {
         $loopback = "dummy_$fabric->{id}";
 
         $ifaceip = $current_node->{$addr_key};
-        $routerid = $current_node->{$addr_key};
     } else {
         die "neither fabric nor peers configured for EVPN controller $controller->{id}";
     }
-- 
2.47.3





More information about the pve-devel mailing list