On 12.03.2026 10:20, Hannes Laimer wrote:
> On 2026-03-10 13:09, Gabriel Goller wrote:
> > The structured frr config can be deserialized by rust and rendered using
> > the templates (isis and bgp) in proxmox-frr.
> >
> > Co-authored-by: Stefan Hanreich <[email protected]>
> > Signed-off-by: Gabriel Goller <[email protected]>
> > ---
>
> [..]
>
> > diff --git a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > index cc217126607f..e3091c63ac8d 100644
> > --- a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > +++ b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
[snip]
> > @@ -102,10 +102,10 @@ sub generate_frr_config {
> > } elsif ($plugin_config->{'peers'}) {
> > @peers = PVE::Tools::split_list($plugin_config->{'peers'});
> >
> > - if ($bgprouter) {
> > - $loopback = $bgprouter->{loopback} if $bgprouter->{loopback};
> > - } elsif ($isisrouter) {
> > - $loopback = $isisrouter->{loopback} if $isisrouter->{loopback};
> > + if ($bgp_controller) {
> > + $loopback = $bgp_controller->{loopback} if
> > $bgp_controller->{loopback};
> > + } elsif ($isis_controller) {
> > + $loopback = $isis_controller->{loopback} if
> > $isis_controller->{loopback};
> > }
> >
> > ($ifaceip, my $interface) =
> > @@ -116,58 +116,60 @@ sub generate_frr_config {
> > return;
> > }
> >
> > - if ($bgprouter) {
> > - $ebgp = 1 if $plugin_config->{'asn'} ne $bgprouter->{asn};
> > - $asn = $bgprouter->{asn} if $bgprouter->{asn};
> > + if ($bgp_controller) {
> > + $ebgp = 1 if $plugin_config->{'asn'} ne $bgp_controller->{asn};
> > + $asn = $bgp_controller->{asn} if $bgp_controller->{asn};
>
> missing `int(..)`, so the var is flagged correctly
Ack, thanks for the review!
> > $autortas = $plugin_config->{'asn'} if $ebgp;
> > }
> >
> > return if !$asn || !$routerid;
> > - my $bgp = $config->{frr}->{router}->{"bgp $asn"} //= {};
> > -
> > - my $remoteas = $ebgp ? "external" : $asn;
> > -
> > - #global options
> > - my @controller_config = (
> > - "bgp router-id $routerid",
> > - "no bgp hard-administrative-reset",
> > - "no bgp default ipv4-unicast",
> > - "coalesce-time 1000",
> > - "no bgp graceful-restart notification",
> > - );
> > -
> > - push(@{ $bgp->{""} }, @controller_config) if keys %{$bgp} == 0;
> >
>
> [..]