Page MenuHomeVyOS Platform

Cleanup of FRR daemons-file and various FRR fixes
Closed, ResolvedPublicFEATURE REQUEST

Description

VyOS 1.5-rolling is currently using FRR 9.0.1.

Its daemons-file exists over at:

https://github.com/FRRouting/frr/blob/stable/9.0/tools/etc/frr/daemons

and differs somewhat from the one currently used by VyOS over at:

https://github.com/vyos/vyos-1x/blob/8c3ce3cd28ed26794a2e2e4f660d2335f2ff2e06/data/templates/frr/daemons.frr.tmpl

  1. Comment watchfrr, zebra, mgmtd and staticd in the processlist (yes/no) since they are always started according to the FRR/daemons-file (mgmtd is a new feature so the comment from FRR/daemons-file isnt up2date):
# The watchfrr, zebra and staticd daemons are always started.
  1. Verify that all processes (yes/no) that FRR supports are listed and matches the FRR/daemons-file to make debugging easier in future.
  1. Same regarding order of xxx_options verify that it match the order of above.
  1. "--daemon" is redundant since the processes by default starts with "-d" (can be seen through ps auxwww | grep -i frr) but will remain in the VyOS daemons-file for safety and clearity.
  1. Include other variables from the FRR/daemons-file into the VyOS-edition. Start by having them commented (except for frr_profile which defaults to "Traditional").
  1. Verify that the configuration regarding which SNMP-modules exists matches between the VyOS daemons-file and the manual at FRR:

http://docs.frrouting.org/en/stable-9.0/basic.html#loadable-module-support

If SNMP is enabled during compile-time and installed as part of the package, the snmp module can be loaded for the Zebra, bgpd, ospfd, ospf6d and ripd daemons.

But looking in the modules directory in VyOS we can see these modules being available:

root@vyos:~# ls -la /usr/lib/x86_64-linux-gnu/frr/modules | grep -i snmp
-rw-r--r-- 1 root root  264712 Sep 16 08:09 bgpd_snmp.so
-rw-r--r-- 1 root root  142616 Sep 16 08:09 isisd_snmp.so
-rw-r--r-- 1 root root   89832 Sep 16 08:09 ldpd_snmp.so
-rw-r--r-- 1 root root  126688 Sep 16 08:09 ospf6d_snmp.so
-rw-r--r-- 1 root root  178096 Sep 16 08:09 ospfd_snmp.so
-rw-r--r-- 1 root root   38648 Sep 16 08:09 ripd_snmp.so
-rw-r--r-- 1 root root   50136 Sep 16 08:09 zebra_snmp.so

So which processes will get "-M snmp" will remain in the VyOS daemons-file.

However the frr_daemons_list in snmp.py must be updated since ripngd doesnt have any snmp-module compiled:

https://github.com/vyos/vyos-1x/blob/current/src/conf_mode/snmp.py#L256

  1. Match order of processes in variable _frr_daemons to the list in daemons-file:

https://github.com/vyos/vyos-1x/blob/current/python/vyos/frr.py#L89

  1. The variable cmd_args_parser.add_argument regarding which FRR processes exists today is out of sync:

https://github.com/vyos/vyos-1x/blob/current/src/op_mode/restart_frr.py#L142

This must be updated aswell:

https://github.com/vyos/vyos-1x/blob/current/op-mode-definitions/restart-frr.xml.in

For the proposed changes (next post in this task) I have included all services that FRR provides but Im not sure if this is the right thing to do in VyOS?

  1. Does anyone know if the below lines are still valid for FRR 9.0.1? They doesnt seem to be referenced any longer in github.com/vyos-1x but could still be used internally by FRR:
watchfrr_enable=no
valgrind_enable=no
  1. Why is pim6d set to autostart but not pimd?
pimd=no
pim6d=yes

Ref:

https://github.com/FRRouting/frr/blob/stable/9.0/tools/etc/frr/daemons

https://docs.frrouting.org/en/stable-9.0/basic.html#loadable-module-support

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Improvement (missing useful functionality)

Event Timeline

Proposed data/templates/frr/daemons.frr.tmpl:

# The watchfrr, zebra, mgmtd and staticd daemons are always started.
#zebra=yes
#mgmtd=yes
#staticd=yes
bgpd=yes
ospfd=yes
ospf6d=yes
ripd=yes
ripngd=yes
isisd=yes
pimd=no
pim6d=yes
ldpd=yes
nhrpd=no
eigrpd=yes
babeld=yes
sharpd=no
pbrd=no
bfdd=yes
fabricd=no
vrrpd=no
pathd=no

vtysh_enable=yes
zebra_options="  --daemon -A 127.0.0.1 -s 90000000
{%- if irdp is defined %} -M irdp{% endif -%}
{%- if snmp is defined and snmp.zebra is defined %} -M snmp{% endif -%}
"
mgmtd_options="  --daemon -A 127.0.0.1"
staticd_options="--daemon -A 127.0.0.1"
bgpd_options="   --daemon -A 127.0.0.1 -M rpki
{%- if bmp is defined %} -M bmp{% endif -%}
{%- if snmp is defined and snmp.bgpd is defined %} -M snmp{% endif -%}
"
ospfd_options="  --daemon -A 127.0.0.1
{%- if snmp is defined and snmp.ospfd is defined %} -M snmp{% endif -%}
"
ospf6d_options=" --daemon -A ::1
{%- if snmp is defined and snmp.ospf6d is defined %} -M snmp{% endif -%}
"
ripd_options="   --daemon -A 127.0.0.1
{%- if snmp is defined and snmp.ripd is defined %} -M snmp{% endif -%}
"
ripngd_options=" --daemon -A ::1"
isisd_options="  --daemon -A 127.0.0.1
{%- if snmp is defined and snmp.isisd is defined %} -M snmp{% endif -%}
"
pimd_options="   --daemon -A 127.0.0.1"
pim6d_options="  --daemon -A ::1"
ldpd_options="   --daemon -A 127.0.0.1
{%- if snmp is defined and snmp.ldpd is defined %} -M snmp{% endif -%}
"
nhrpd_options="  --daemon -A 127.0.0.1"
eigrpd_options=" --daemon -A 127.0.0.1"
babeld_options=" --daemon -A 127.0.0.1"
sharpd_options=" --daemon -A 127.0.0.1"
pbrd_options="   --daemon -A 127.0.0.1"
bfdd_options="   --daemon -A 127.0.0.1"
fabricd_options="--daemon -A 127.0.0.1"
vrrpd_options="  --daemon -A 127.0.0.1"
pathd_options="  --daemon -A 127.0.0.1"

watchfrr_enable=no
valgrind_enable=no

#frr_global_options=""

#watchfrr_options=""

frr_profile="traditional"

#MAX_FDS=1024

#FRR_NO_ROOT="yes"

#zebra_wrap=""
#mgmtd_wrap=""
#staticd_wrap=""
#bgpd_wrap=""
#ospfd_wrap=""
#ospf6d_wrap=""
#ripd_wrap=""
#ripngd_wrap=""
#isisd_wrap=""
#pimd_wrap=""
#pim6d_wrap=""
#ldpd_wrap=""
#nhrpd_wrap=""
#eigrpd_wrap=""
#babeld_wrap=""
#sharpd_wrap=""
#pbrd_wrap=""
#bfdd_wrap=""
#fabricd_wrap=""
#vrrpd_wrap=""
#pathd_wrap=""

#all_wrap=""

Proposed change to https://github.com/vyos/vyos-1x/blob/current/src/conf_mode/snmp.py#L256:

frr_daemons_list = [
    'zebra', 'bgpd', 'ospf6d', 'ospfd', 'ripd', 'isisd', 'ldpd'
]

Proposed change to https://github.com/vyos/vyos-1x/blob/current/python/vyos/frr.py#L89:

_frr_daemons = ['zebra', 'mgmtd', 'staticd', 'bgpd', 'ospfd', 'ospf6d', 'ripd',
                'ripngd', 'isisd', 'pimd', 'pim6d', 'ldpd', 'nhrpd', 'eigrpd',
                'babeld', 'sharpd', 'pbrd', 'bfdd', 'fabricd', 'vrrpd', 'pathd']

Proposed change to https://github.com/vyos/vyos-1x/blob/current/src/op_mode/restart_frr.py#L142:

Probably needs to be adjusted for which daemons should be able to be restarted by this op-mode command?

cmd_args_parser.add_argument('--daemon', choices=['zebra', 'mgmtd', 'staticd', 'bgpd', 'ospfd', 'ospf6d', 'ripd', 'ripngd', 'isisd', 'pimd', 'pim6d', 'ldpd', 'nhrpd', 'eigrpd', 'babeld', 'sharpd', 'pbrd', 'bfdd', 'fabricd', 'vrrpd', 'pathd'], required=False,  nargs='*', help='select single or multiple daemons')

Proposed change to https://github.com/vyos/vyos-1x/blob/current/op-mode-definitions/restart-frr.xml.in:

Probably needs to be adjusted for which daemons should be able to be restarted by this op-mode command?

<?xml version="1.0"?>
<interfaceDefinition>
  <node name="restart">
    <children>
      <leafNode name="all">
        <properties>
          <help>Restart all routing daemons</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart</command>
      </leafNode>
      <leafNode name="zebra">
        <properties>
          <help>Restart Routing Information Base (RIB) manager daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon zebra</command>
      </leafNode>
      <leafNode name="mgmt">
        <properties>
          <help>Restart Management daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon mgmtd</command>
      </leafNode>
      <leafNode name="static">
        <properties>
          <help>Restart static routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon staticd</command>
      </leafNode>
      <leafNode name="bgp">
        <properties>
          <help>Restart Border Gateway Protocol (BGP) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bgpd</command>
      </leafNode>
      <leafNode name="ospf">
        <properties>
          <help>Restart Open Shortest Path First (OSPF) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospfd</command>
      </leafNode>
      <leafNode name="ospfv3">
        <properties>
          <help>Restart IPv6 Open Shortest Path First (OSPFv3) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospf6d</command>
      </leafNode>
      <leafNode name="rip">
        <properties>
          <help>Restart Routing Information Protocol (RIP) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripd</command>
      </leafNode>
      <leafNode name="ripng">
        <properties>
          <help>Restart IPv6 Routing Information Protocol (RIPng) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripngd</command>
      </leafNode>
      <leafNode name="isis">
        <properties>
          <help>Restart Intermediate System to Intermediate System (IS-IS) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon isisd</command>
      </leafNode>
      <leafNode name="pim">
        <properties>
          <help>Restart Protocol Independent Multicast (PIM) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pimd</command>
      </leafNode>
      <leafNode name="pim6">
        <properties>
          <help>Restart IPv6 Protocol Independent Multicast (PIM) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pim6d</command>
      </leafNode>
      <leafNode name="ldp">
        <properties>
          <help>Restart Label Distribution Protocol (LDP) daemon used by MPLS</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ldpd</command>
      </leafNode>
      <leafNode name="nhrp">
        <properties>
          <help>Restart NBMA Next Hop Resolution Protocol (NHRP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon nhrpd</command>
      </leafNode>
      <leafNode name="eigrp">
        <properties>
          <help>Restart Enhanced Interior Gateway Routing Protocol (EIGRP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon eigrpd</command>
      </leafNode>
      <leafNode name="babel">
        <properties>
          <help>Restart Babel routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon babeld</command>
      </leafNode>
      <leafNode name="sharp">
        <properties>
          <help>Restart Testing (SHARP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon sharpd</command>
      </leafNode>
      <leafNode name="pbr">
        <properties>
          <help>Restart Policy Based Routing (PBR) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pbrd</command>
      </leafNode>
      <leafNode name="bfd">
        <properties>
          <help>Restart Bidirectional Forwarding Detection (BFD) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bfdd</command>
      </leafNode>
      <leafNode name="fabric">
        <properties>
          <help>Restart OpenFabric daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon fabricd</command>
      </leafNode>
      <leafNode name="vrrp">
        <properties>
          <help>Restart Virtual Router Redundancy Protocol (VRRP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon vrrpd</command>
      </leafNode>
      <leafNode name="path">
        <properties>
          <help>Restart Path Computation Element (PCE) Communication Protocol (PCEP) daemon used by SR</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pathd</command>
      </leafNode>
    </children>
  </node>
</interfaceDefinition>

I can create a PR if everyone agrees upon the proposed changes above however I have limited capability to test each and everyone of these changes.

Also the major question of above proposed changes is if all FRR services should be exposed through these files or not (and if not which should be removed in which file)?

https://github.com/vyos/vyos-1x/blob/current/python/vyos/frr.py#L89

https://github.com/vyos/vyos-1x/blob/current/src/op_mode/restart_frr.py#L142

https://github.com/vyos/vyos-1x/blob/current/op-mode-definitions/restart-frr.xml.in

Along with if I have missed some file(s) that needs to be changed aswell?

mgmtd can not be disabled. It's a mandatory FRR process.

We aslo can not use vrrpd as this is done by keepalived on out end. FRR vrrpd is not feature on-par with keepalived (transition script smissing)

If we alter the Jinja2 file we should also update the syntax - just ospf an example but its valid for all other SNMP stuff:

ospfd_options="  --daemon -A 127.0.0.1
{%- if snmp is defined and snmp.ospfd is defined %} -M snmp{% endif -%}
"

should become:

ospfd_options="  --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.ospfd is vyos_defined }}"

So everything spans over one line only

Update of proposed changes (Ill call them proposed v2).

Diff since last propose:

  • Updated jinja2-template of daemons to be oneliner for options.
  • Removed mgmtd and vrrpd from frr.py, restart_frr.py and restart-frr.xml.in.

Proposed data/templates/frr/daemons.frr.tmpl:

# The watchfrr, zebra, mgmtd and staticd daemons are always started.
#zebra=yes
#mgmtd=yes
#staticd=yes
bgpd=yes
ospfd=yes
ospf6d=yes
ripd=yes
ripngd=yes
isisd=yes
pimd=no
pim6d=yes
ldpd=yes
nhrpd=no
eigrpd=yes
babeld=yes
sharpd=no
pbrd=no
bfdd=yes
fabricd=no
vrrpd=no
pathd=no

vtysh_enable=yes
zebra_options="  --daemon -A 127.0.0.1 -s 90000000{{ ' -M snmp' if snmp.zebra is vyos_defined }}{{ ' -M irdp' if irdp is vyos_defined }}"
mgmtd_options="  --daemon -A 127.0.0.1"
staticd_options="--daemon -A 127.0.0.1"
bgpd_options="   --daemon -A 127.0.0.1 -M rpki{{ ' -M snmp' if snmp.bgpd is vyos_defined }}{{ ' -M bmp' if bmp is vyos_defined }}"
ospfd_options="  --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.ospfd is vyos_defined }}"
ospf6d_options=" --daemon -A ::1{{ ' -M snmp' if snmp.ospf6d is vyos_defined }}"
ripd_options="   --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.ripd is vyos_defined }}"
ripngd_options=" --daemon -A ::1"
isisd_options="  --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.isisd is vyos_defined }}"
pimd_options="   --daemon -A 127.0.0.1"
pim6d_options="  --daemon -A ::1"
ldpd_options="   --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.ldpd is vyos_defined }}"
nhrpd_options="  --daemon -A 127.0.0.1"
eigrpd_options=" --daemon -A 127.0.0.1"
babeld_options=" --daemon -A 127.0.0.1"
sharpd_options=" --daemon -A 127.0.0.1"
pbrd_options="   --daemon -A 127.0.0.1"
bfdd_options="   --daemon -A 127.0.0.1"
fabricd_options="--daemon -A 127.0.0.1"
vrrpd_options="  --daemon -A 127.0.0.1"
pathd_options="  --daemon -A 127.0.0.1"

watchfrr_enable=no
valgrind_enable=no

#frr_global_options=""

#watchfrr_options=""

frr_profile="traditional"

#MAX_FDS=1024

#FRR_NO_ROOT="yes"

#zebra_wrap=""
#mgmtd_wrap=""
#staticd_wrap=""
#bgpd_wrap=""
#ospfd_wrap=""
#ospf6d_wrap=""
#ripd_wrap=""
#ripngd_wrap=""
#isisd_wrap=""
#pimd_wrap=""
#pim6d_wrap=""
#ldpd_wrap=""
#nhrpd_wrap=""
#eigrpd_wrap=""
#babeld_wrap=""
#sharpd_wrap=""
#pbrd_wrap=""
#bfdd_wrap=""
#fabricd_wrap=""
#vrrpd_wrap=""
#pathd_wrap=""

#all_wrap=""

Proposed change to https://github.com/vyos/vyos-1x/blob/current/src/conf_mode/snmp.py#L256:

frr_daemons_list = ['zebra', 'bgpd', 'ospf6d', 'ospfd', 'ripd', 'isisd', 'ldpd']

Proposed change to https://github.com/vyos/vyos-1x/blob/current/python/vyos/frr.py#L89:

_frr_daemons = ['zebra', 'staticd', 'bgpd', 'ospfd', 'ospf6d', 'ripd', 'ripngd',
                'isisd', 'pimd', 'pim6d', 'ldpd', 'nhrpd', 'eigrpd', 'babeld',
                'sharpd', 'pbrd', 'bfdd', 'fabricd', 'pathd']

Proposed change to https://github.com/vyos/vyos-1x/blob/current/src/op_mode/restart_frr.py#L142:

cmd_args_parser.add_argument('--daemon', choices=['zebra', 'staticd', 'bgpd', 'ospfd', 'ospf6d', 'ripd', 'ripngd', 'isisd', 'pimd', 'pim6d', 'ldpd', 'nhrpd', 'eigrpd', 'babeld', 'sharpd', 'pbrd', 'bfdd', 'fabricd', 'pathd'], required=False,  nargs='*', help='select single or multiple daemons')

Proposed change to https://github.com/vyos/vyos-1x/blob/current/op-mode-definitions/restart-frr.xml.in:

<?xml version="1.0"?>
<interfaceDefinition>
  <node name="restart">
    <children>
      <leafNode name="all">
        <properties>
          <help>Restart all routing daemons</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart</command>
      </leafNode>
      <leafNode name="zebra">
        <properties>
          <help>Restart Routing Information Base (RIB) manager daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon zebra</command>
      </leafNode>
      <leafNode name="static">
        <properties>
          <help>Restart static routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon staticd</command>
      </leafNode>
      <leafNode name="bgp">
        <properties>
          <help>Restart Border Gateway Protocol (BGP) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bgpd</command>
      </leafNode>
      <leafNode name="ospf">
        <properties>
          <help>Restart Open Shortest Path First (OSPF) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospfd</command>
      </leafNode>
      <leafNode name="ospfv3">
        <properties>
          <help>Restart IPv6 Open Shortest Path First (OSPFv3) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospf6d</command>
      </leafNode>
      <leafNode name="rip">
        <properties>
          <help>Restart Routing Information Protocol (RIP) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripd</command>
      </leafNode>
      <leafNode name="ripng">
        <properties>
          <help>Restart IPv6 Routing Information Protocol (RIPng) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripngd</command>
      </leafNode>
      <leafNode name="isis">
        <properties>
          <help>Restart Intermediate System to Intermediate System (IS-IS) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon isisd</command>
      </leafNode>
      <leafNode name="pim">
        <properties>
          <help>Restart Protocol Independent Multicast (PIM) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pimd</command>
      </leafNode>
      <leafNode name="pim6">
        <properties>
          <help>Restart IPv6 Protocol Independent Multicast (PIM) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pim6d</command>
      </leafNode>
      <leafNode name="ldp">
        <properties>
          <help>Restart Label Distribution Protocol (LDP) daemon used by MPLS</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ldpd</command>
      </leafNode>
      <leafNode name="nhrp">
        <properties>
          <help>Restart NBMA Next Hop Resolution Protocol (NHRP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon nhrpd</command>
      </leafNode>
      <leafNode name="eigrp">
        <properties>
          <help>Restart Enhanced Interior Gateway Routing Protocol (EIGRP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon eigrpd</command>
      </leafNode>
      <leafNode name="babel">
        <properties>
          <help>Restart Babel routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon babeld</command>
      </leafNode>
      <leafNode name="sharp">
        <properties>
          <help>Restart Testing (SHARP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon sharpd</command>
      </leafNode>
      <leafNode name="pbr">
        <properties>
          <help>Restart Policy Based Routing (PBR) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pbrd</command>
      </leafNode>
      <leafNode name="bfd">
        <properties>
          <help>Restart Bidirectional Forwarding Detection (BFD) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bfdd</command>
      </leafNode>
      <leafNode name="fabric">
        <properties>
          <help>Restart OpenFabric daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon fabricd</command>
      </leafNode>
      <leafNode name="path">
        <properties>
          <help>Restart Path Computation Element (PCE) Communication Protocol (PCEP) daemon used by SR</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pathd</command>
      </leafNode>
    </children>
  </node>
</interfaceDefinition>

Update of proposed changes (Ill call them proposed v3).

Diff since last propose:

  • Turns out that pimd must be disabled as long as package igmpproxy is used instead.
  • Same with nhrpd as long as package opennhrp is used instead.
  • It also looks like pbrd must be disabled because PBR is done through nftables, if some maintainer can confirm?

Proposed data/templates/frr/daemons.frr.tmpl:

#
# The watchfrr, zebra, mgmtd and staticd daemons are always started.
#
# Note: The following FRR-services must be kept disabled because they are replaced by other packages in VyOS:
#
# pimd   Replaced by package igmpproxy.
# nhrpd  Replaced by package opennhrp.
# pbrd   Replaced by PBR in nftables.
# vrrpd  Replaced by package keepalived.
#

#zebra=yes
#mgmtd=yes
#staticd=yes
bgpd=yes
ospfd=yes
ospf6d=yes
ripd=yes
ripngd=yes
isisd=yes
pimd=no
pim6d=yes
ldpd=yes
nhrpd=no
eigrpd=yes
babeld=yes
sharpd=yes
pbrd=no
bfdd=yes
fabricd=yes
vrrpd=no
pathd=yes

#
# Define defaults for all services even those who shall be kept disabled.
#

zebra_options="  --daemon -A 127.0.0.1 -s 90000000{{ ' -M snmp' if snmp.zebra is vyos_defined }}{{ ' -M irdp' if irdp is vyos_defined }}"
mgmtd_options="  --daemon -A 127.0.0.1"
staticd_options="--daemon -A 127.0.0.1"
bgpd_options="   --daemon -A 127.0.0.1 -M rpki{{ ' -M snmp' if snmp.bgpd is vyos_defined }}{{ ' -M bmp' if bmp is vyos_defined }}"
ospfd_options="  --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.ospfd is vyos_defined }}"
ospf6d_options=" --daemon -A ::1{{ ' -M snmp' if snmp.ospf6d is vyos_defined }}"
ripd_options="   --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.ripd is vyos_defined }}"
ripngd_options=" --daemon -A ::1"
isisd_options="  --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.isisd is vyos_defined }}"
pimd_options="   --daemon -A 127.0.0.1"
pim6d_options="  --daemon -A ::1"
ldpd_options="   --daemon -A 127.0.0.1{{ ' -M snmp' if snmp.ldpd is vyos_defined }}"
nhrpd_options="  --daemon -A 127.0.0.1"
eigrpd_options=" --daemon -A 127.0.0.1"
babeld_options=" --daemon -A 127.0.0.1"
sharpd_options=" --daemon -A 127.0.0.1"
pbrd_options="   --daemon -A 127.0.0.1"
bfdd_options="   --daemon -A 127.0.0.1"
fabricd_options="--daemon -A 127.0.0.1"
vrrpd_options="  --daemon -A 127.0.0.1"
pathd_options="  --daemon -A 127.0.0.1"

#frr_global_options=""

#zebra_wrap=""
#mgmtd_wrap=""
#staticd_wrap=""
#bgpd_wrap=""
#ospfd_wrap=""
#ospf6d_wrap=""
#ripd_wrap=""
#ripngd_wrap=""
#isisd_wrap=""
#pimd_wrap=""
#pim6d_wrap=""
#ldpd_wrap=""
#nhrpd_wrap=""
#eigrpd_wrap=""
#babeld_wrap=""
#sharpd_wrap=""
#pbrd_wrap=""
#bfdd_wrap=""
#fabricd_wrap=""
#vrrpd_wrap=""
#pathd_wrap=""

#all_wrap=""

#
# Other options.
#
# For more information see:
# https://github.com/FRRouting/frr/blob/stable/9.0/tools/etc/frr/daemons
# https://docs.frrouting.org/en/stable-9.0/setup.html
#

vtysh_enable=yes
watchfrr_enable=no
valgrind_enable=no

#watchfrr_options=""

frr_profile="traditional"

#MAX_FDS=1024

#FRR_NO_ROOT="yes"

Proposed change to https://github.com/vyos/vyos-1x/blob/current/src/conf_mode/snmp.py#L256:

frr_daemons_list = ['zebra', 'bgpd', 'ospf6d', 'ospfd', 'ripd', 'isisd', 'ldpd']

Proposed change to https://github.com/vyos/vyos-1x/blob/current/python/vyos/frr.py#L89:

_frr_daemons = ['zebra', 'staticd', 'bgpd', 'ospfd', 'ospf6d', 'ripd', 'ripngd',
                'isisd', 'pim6d', 'ldpd', 'eigrpd', 'babeld', 'sharpd', 'bfdd',
                'fabricd', 'pathd']

Proposed change to https://github.com/vyos/vyos-1x/blob/current/src/op_mode/restart_frr.py#L142:

cmd_args_parser.add_argument('--daemon', choices=['zebra', 'staticd', 'bgpd', 'ospfd', 'ospf6d', 'ripd', 'ripngd', 'isisd', 'pim6d', 'ldpd', 'eigrpd', 'babeld', 'sharpd', 'bfdd', 'fabricd', 'pathd'], required=False,  nargs='*', help='select single or multiple daemons')

Proposed change to https://github.com/vyos/vyos-1x/blob/current/op-mode-definitions/restart-frr.xml.in:

<?xml version="1.0"?>
<interfaceDefinition>
  <node name="restart">
    <children>
      <leafNode name="all">
        <properties>
          <help>Restart all routing daemons</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart</command>
      </leafNode>
      <leafNode name="zebra">
        <properties>
          <help>Restart Routing Information Base (RIB) manager daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon zebra</command>
      </leafNode>
      <leafNode name="static">
        <properties>
          <help>Restart static routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon staticd</command>
      </leafNode>
      <leafNode name="bgp">
        <properties>
          <help>Restart Border Gateway Protocol (BGP) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bgpd</command>
      </leafNode>
      <leafNode name="ospf">
        <properties>
          <help>Restart Open Shortest Path First (OSPF) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospfd</command>
      </leafNode>
      <leafNode name="ospfv3">
        <properties>
          <help>Restart IPv6 Open Shortest Path First (OSPFv3) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospf6d</command>
      </leafNode>
      <leafNode name="rip">
        <properties>
          <help>Restart Routing Information Protocol (RIP) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripd</command>
      </leafNode>
      <leafNode name="ripng">
        <properties>
          <help>Restart IPv6 Routing Information Protocol (RIPng) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripngd</command>
      </leafNode>
      <leafNode name="isis">
        <properties>
          <help>Restart Intermediate System to Intermediate System (IS-IS) routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon isisd</command>
      </leafNode>
      <leafNode name="pim6">
        <properties>
          <help>Restart IPv6 Protocol Independent Multicast (PIM) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pim6d</command>
      </leafNode>
      <leafNode name="ldp">
        <properties>
          <help>Restart Label Distribution Protocol (LDP) daemon used by MPLS</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ldpd</command>
      </leafNode>
      <leafNode name="eigrp">
        <properties>
          <help>Restart Enhanced Interior Gateway Routing Protocol (EIGRP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon eigrpd</command>
      </leafNode>
      <leafNode name="babel">
        <properties>
          <help>Restart Babel routing daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon babeld</command>
      </leafNode>
      <leafNode name="sharp">
        <properties>
          <help>Restart Testing (SHARP) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon sharpd</command>
      </leafNode>
      <leafNode name="bfd">
        <properties>
          <help>Restart Bidirectional Forwarding Detection (BFD) daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bfdd</command>
      </leafNode>
      <leafNode name="fabric">
        <properties>
          <help>Restart OpenFabric daemon</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon fabricd</command>
      </leafNode>
      <leafNode name="path">
        <properties>
          <help>Restart Path Computation Element (PCE) Communication Protocol (PCEP) daemon used by SR</help>
        </properties>
        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon pathd</command>
      </leafNode>
    </children>
  </node>
</interfaceDefinition>

Output of ps auxww | grep -i frr after proposed v3 is applied:

root@vyos:/home/vyos# ps auxwww | grep -i frr
root        1782  0.1  0.0   8552  3268 ?        S<s  14:31   0:00 /usr/lib/frr/watchfrr -d -F traditional zebra mgmtd bgpd ripd ripngd ospfd ospf6d isisd babeld pim6d ldpd eigrpd staticd bfdd fabricd pathd
frr         1824  0.1  0.3 1192244 27368 ?       S<sl 14:31   0:00 /usr/lib/frr/zebra -d -F traditional --daemon -A 127.0.0.1 -s 90000000 -M snmp
frr         1829  0.0  0.0  10088  6580 ?        S<s  14:31   0:00 /usr/lib/frr/mgmtd -d -F traditional --daemon -A 127.0.0.1
frr         1831  0.0  0.2 258384 17964 ?        S<sl 14:31   0:00 /usr/lib/frr/bgpd -d -F traditional --daemon -A 127.0.0.1 -M rpki -M snmp
frr         1838  0.0  0.1  26884 11692 ?        S<s  14:31   0:00 /usr/lib/frr/ripd -d -F traditional --daemon -A 127.0.0.1 -M snmp
frr         1841  0.0  0.0   9976  5744 ?        S<s  14:31   0:00 /usr/lib/frr/ripngd -d -F traditional --daemon -A ::1
frr         1844  0.0  0.1  29096 13116 ?        S<s  14:31   0:00 /usr/lib/frr/ospfd -d -F traditional --daemon -A 127.0.0.1 -M snmp
frr         1847  0.0  0.1  28060 12500 ?        S<s  14:31   0:00 /usr/lib/frr/ospf6d -d -F traditional --daemon -A ::1 -M snmp
frr         1850  0.0  0.1  28880 13000 ?        S<s  14:31   0:00 /usr/lib/frr/isisd -d -F traditional --daemon -A 127.0.0.1 -M snmp
frr         1853  0.0  0.0   9580  5372 ?        S<s  14:31   0:00 /usr/lib/frr/babeld -d -F traditional --daemon -A 127.0.0.1
frr         1856  0.0  0.0  11180  6148 ?        S<s  14:31   0:00 /usr/lib/frr/pim6d -d -F traditional --daemon -A ::1
frr         1860  0.0  0.0  10044  7304 ?        S<   14:31   0:00 /usr/lib/frr/ldpd -L -u frr -g frr
frr         1861  0.0  0.0  10040  7256 ?        S<   14:31   0:00 /usr/lib/frr/ldpd -E -u frr -g frr
frr         1862  0.0  0.0  23128  6696 ?        S<s  14:31   0:00 /usr/lib/frr/ldpd -d -F traditional --daemon -A 127.0.0.1 -M snmp
frr         1866  0.0  0.0  10184  5900 ?        S<s  14:31   0:00 /usr/lib/frr/eigrpd -d -F traditional --daemon -A 127.0.0.1
frr         1869  0.0  0.0   9816  6168 ?        S<s  14:31   0:00 /usr/lib/frr/staticd -d -F traditional --daemon -A 127.0.0.1
frr         1872  0.0  0.0   9800  5544 ?        S<s  14:31   0:00 /usr/lib/frr/bfdd -d -F traditional --daemon -A 127.0.0.1
frr         1875  0.0  0.0  10828  5988 ?        S<s  14:31   0:00 /usr/lib/frr/fabricd -d -F traditional --daemon -A 127.0.0.1
frr         1879  0.0  0.0   9988  5464 ?        S<s  14:31   0:00 /usr/lib/frr/pathd -d -F traditional --daemon -A 127.0.0.1

And output of netstat -atunp:

root@vyos:/home/vyos# netstat -atunp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN      3334/snmpd          
tcp        0      0 192.168.56.2:22         0.0.0.0:*               LISTEN      3475/sshd: /usr/sbi 
tcp        0      0 127.0.0.1:2604          0.0.0.0:*               LISTEN      1844/ospfd          
tcp        0      0 127.0.0.1:2605          0.0.0.0:*               LISTEN      1831/bgpd           
tcp        0      0 127.0.0.1:2602          0.0.0.0:*               LISTEN      1838/ripd           
tcp        0      0 127.0.0.1:2601          0.0.0.0:*               LISTEN      1824/zebra          
tcp        0      0 127.0.0.1:2612          0.0.0.0:*               LISTEN      1862/ldpd           
tcp        0      0 127.0.0.1:2613          0.0.0.0:*               LISTEN      1866/eigrpd         
tcp        0      0 127.0.0.1:2608          0.0.0.0:*               LISTEN      1850/isisd          
tcp        0      0 127.0.0.1:2609          0.0.0.0:*               LISTEN      1853/babeld         
tcp        0      0 127.0.0.1:2622          0.0.0.0:*               LISTEN      1829/mgmtd          
tcp        0      0 127.0.0.1:2621          0.0.0.0:*               LISTEN      1879/pathd          
tcp        0      0 127.0.0.1:2618          0.0.0.0:*               LISTEN      1875/fabricd        
tcp        0      0 127.0.0.1:2616          0.0.0.0:*               LISTEN      1869/staticd        
tcp        0      0 127.0.0.1:2617          0.0.0.0:*               LISTEN      1872/bfdd           
tcp        0      0 192.168.56.2:22         192.168.56.1:57526      ESTABLISHED 3679/sshd: vyos [pr 
tcp6       0      0 ::1:2606                :::*                    LISTEN      1847/ospf6d         
tcp6       0      0 ::1:2603                :::*                    LISTEN      1841/ripngd         
tcp6       0      0 ::1:2622                :::*                    LISTEN      1856/pim6d          
udp        0      0 192.168.56.2:59575      0.0.0.0:*                           3334/snmpd          
udp        0      0 0.0.0.0:3784            0.0.0.0:*                           1872/bfdd           
udp        0      0 0.0.0.0:3784            0.0.0.0:*                           1872/bfdd           
udp        0      0 0.0.0.0:3784            0.0.0.0:*                           1872/bfdd           
udp        0      0 127.0.0.1:123           0.0.0.0:*                           3243/chronyd        
udp        0      0 127.0.0.1:161           0.0.0.0:*                           3334/snmpd          
udp        0      0 192.168.56.2:161        0.0.0.0:*                           3334/snmpd          
udp        0      0 127.0.0.1:323           0.0.0.0:*                           3243/chronyd        
udp        0      0 0.0.0.0:4784            0.0.0.0:*                           1872/bfdd           
udp        0      0 0.0.0.0:4784            0.0.0.0:*                           1872/bfdd           
udp        0      0 0.0.0.0:4784            0.0.0.0:*                           1872/bfdd           
udp6       0      0 :::3784                 :::*                                1872/bfdd           
udp6       0      0 :::3784                 :::*                                1872/bfdd           
udp6       0      0 :::3784                 :::*                                1872/bfdd           
udp6       0      0 :::3785                 :::*                                1872/bfdd           
udp6       0      0 :::3785                 :::*                                1872/bfdd           
udp6       0      0 :::3785                 :::*                                1872/bfdd           
udp6       0      0 ::1:161                 :::*                                3334/snmpd          
udp6       0      0 ::1:323                 :::*                                3243/chronyd        
udp6       0      0 :::4784                 :::*                                1872/bfdd           
udp6       0      0 :::4784                 :::*                                1872/bfdd           
udp6       0      0 :::4784                 :::*                                1872/bfdd

And output of vtysh:

root@vyos:/home/vyos# vtysh

Hello, this is FRRouting (version 9.0.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
vyos# 
vyos# show version
FRRouting 9.0.1 (vyos) on Linux(6.1.53-amd64-vyos).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
configured with:
    '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-option-checking' '--disable-silent-rules' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--disable-maintainer-mode' '--localstatedir=/var/run/frr' '--sbindir=/usr/lib/frr' '--sysconfdir=/etc/frr' '--with-vtysh-pager=/usr/bin/pager' '--libdir=/usr/lib/x86_64-linux-gnu/frr' '--with-moduledir=/usr/lib/x86_64-linux-gnu/frr/modules' '--disable-dependency-tracking' '--enable-rpki' '--disable-scripting' '--enable-pim6d' '--with-libpam' '--enable-doc' '--enable-doc-html' '--enable-snmp' '--enable-fpm' '--disable-protobuf' '--disable-zeromq' '--enable-ospfapi' '--enable-bgp-vnc' '--enable-multipath=256' '--enable-user=frr' '--enable-group=frr' '--enable-vty-group=frrvty' '--enable-configfile-mask=0640' '--enable-logfile-mask=0640' 'build_alias=x86_64-linux-gnu' 'PYTHON=python3'
vyos# 
vyos# show daemons
 mgmtd zebra ripd ripngd ospfd ospf6d ldpd bgpd isisd eigrpd babeld fabricd watchfrr staticd bfdd pathd pim6d
vyos# 
vyos# show watchfrr
watchfrr global phase: Idle
 Restart Command: "/usr/lib/frr/watchfrr.sh restart %s"
 Start Command: "/usr/lib/frr/watchfrr.sh start %s"
 Stop Command: "/usr/lib/frr/watchfrr.sh stop %s"
 Min Restart Interval: 60
 Max Restart Interval: 600
 Restart Timeout: 20
 Reading Configuration: no
  zebra                Up
  mgmtd                Up
  bgpd                 Up
  ripd                 Up
  ripngd               Up
  ospfd                Up
  ospf6d               Up
  isisd                Up
  babeld               Up
  pim6d                Up
  ldpd                 Up
  eigrpd               Up
  staticd              Up
  bfdd                 Up
  fabricd              Up
  pathd                Up
vyos# 
vyos# show modules
Module information for mgmtd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
mgmtd        9.0.1                     mgmtd daemon
pid: 1829

Module information for zebra:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
zebra        9.0.1                     zebra daemon
zebra_snmp   9.0.1                     zebra AgentX SNMP module
	from: /usr/lib/x86_64-linux-gnu/frr/modules/zebra_snmp.so
pid: 1824

Module information for ripd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
ripd         9.0.1                     ripd daemon
ripd_snmp    9.0.1                     ripd AgentX SNMP module
	from: /usr/lib/x86_64-linux-gnu/frr/modules/ripd_snmp.so
pid: 1838

Module information for ripngd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
ripngd       9.0.1                     ripngd daemon
pid: 1841

Module information for ospfd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
ospfd        9.0.1                     ospfd daemon
ospfd_snmp   9.0.1                     ospfd AgentX SNMP module
	from: /usr/lib/x86_64-linux-gnu/frr/modules/ospfd_snmp.so
pid: 1844

Module information for ospf6d:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
ospf6d       9.0.1                     ospf6d daemon
ospf6d_snmp  9.0.1                     ospf6d AgentX SNMP module
	from: /usr/lib/x86_64-linux-gnu/frr/modules/ospf6d_snmp.so
pid: 1847

Module information for ldpd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
ldpd         9.0.1                     ldpd daemon
ldp_snmp     9.0.1                     ldp AgentX SNMP module
	from: /usr/lib/x86_64-linux-gnu/frr/modules/ldpd_snmp.so
pid: 1862

Module information for bgpd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
bgpd         9.0.1                     bgpd daemon
bgpd_rpki    0.3.6                     Enable RPKI support for FRR.
	from: /usr/lib/x86_64-linux-gnu/frr/modules/bgpd_rpki.so
bgpd_snmp    9.0.1                     bgpd AgentX SNMP module
	from: /usr/lib/x86_64-linux-gnu/frr/modules/bgpd_snmp.so
pid: 1831

Module information for isisd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
isisd        9.0.1                     isisd daemon
isis_snmp    9.0.1                     isis AgentX SNMP module
	from: /usr/lib/x86_64-linux-gnu/frr/modules/isisd_snmp.so
pid: 1850

Module information for eigrpd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
eigrpd       9.0.1                     eigrpd daemon
pid: 1866

Module information for babeld:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
babeld       9.0.1                     babeld daemon
pid: 1853

Module information for fabricd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
fabricd      9.0.1                     fabricd daemon
pid: 1875

Module information for watchfrr:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
watchfrr     9.0.1                     watchfrr daemon
pid: 1782

Module information for staticd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
staticd      9.0.1                     staticd daemon
pid: 1869

Module information for bfdd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
bfdd         9.0.1                     bfdd daemon
pid: 1872

Module information for pathd:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
pathd        9.0.1                     pathd daemon
pid: 1879

Module information for pim6d:
Module Name  Version                   Description

libfrr       9.0.1                     libfrr core module
pim6d        9.0.1                     pim6d daemon
pid: 1856
Viacheslav changed the task status from Open to In progress.Sep 19 2023, 6:14 AM

Verified through smoketests.