[pve-devel] [PATCH pve-network 1/1] frr: enable frr service on reloading the controller config

Stefan Hanreich s.hanreich at proxmox.com
Tue Apr 8 21:39:17 CEST 2025


> On 08.04.2025 20:43 CEST Thomas Lamprecht <t.lamprecht at proxmox.com> wrote:
> 
>  
> On 08/04/2025 18:32, Stefan Hanreich wrote:
> > Since we now ship frr with Proxmox VE, the frr service is available on
> > the nodes but disabled on install. Prior to that users had to manually
> > install frr, which automatically enabled the service. When applying a
> > SDN configuration with an EVPN controller, we invoke systemctl restart
> > frr, which leads to the service running but still being in the
> > disabled state. This means that the EVPN setup is working until the
> > next reboot. To avoid the situation where users configure an EVPN
> > controller and everything seems to be working, until a restart breaks
> > the EVPN setup, additionally enable the frr service before restarting
> > it.
> > 
> > Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> > ---
> >  src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > index c245ea2..4249cc5 100644
> > --- a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > +++ b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > @@ -638,6 +638,7 @@ sub reload_controller {
> >  	};
> >  	if ($@) {
> >  	    warn "frr reload command fail. Restarting frr.";
> > +	    run_command(['systemctl', 'enable', 'frr']);
> 
> can we guard this with an  file exists check for
> "/etc/systemd/system/multi-user.target.wants/frr.service"? Not a must, but does
> not feel right to unconditionally call systemctl enable.

probably a bit too convoluted and unclear, but this is guarded by the existence of frr-reload.py already, which requires frr to be installed (above in the if with an early return).

I can certainly whip up a v2 quite early tomorrow, shouldn't take long. Do you have any input on pre-installing frr-pythontools as well?

> >  	    eval { run_command(['systemctl', 'restart', 'frr']); };
> >  	}
> >      }




More information about the pve-devel mailing list