aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Cochard <olivier@FreeBSD.org>2023-10-05 12:51:49 +0000
committerOlivier Cochard <olivier@FreeBSD.org>2023-10-05 13:43:21 +0000
commit182306a0d5159992fd86da0181adfae92a0465b7 (patch)
treed1e210d8f1d2c7615d56f70debfa54061295f120
parentb4b03c1745c5282e2280cbcd7381877d3a9aa2b6 (diff)
downloadports-182306a0d5159992fd86da0181adfae92a0465b7.tar.gz
ports-182306a0d5159992fd86da0181adfae92a0465b7.zip
net/frr9: New major version 9.0.1 of FRRouting
ChangeLog: https://frrouting.org/release/9.0.1/ PR: 273790 Reported by: R. Christian McDonald <rcm@rcm.sh> Sponsored by: Rubicon Communications, LLC ("Netgate") Event: Oslo Hackathon at Modirum
-rw-r--r--net/Makefile2
-rw-r--r--net/frr9-pythontools/Makefile7
-rw-r--r--net/frr9-pythontools/pkg-plist3
-rw-r--r--net/frr9/Makefile147
-rw-r--r--net/frr9/distinfo3
-rw-r--r--net/frr9/files/frr.in168
-rw-r--r--net/frr9/files/patch-Makefile.am11
-rw-r--r--net/frr9/files/watchfrr.in30
-rw-r--r--net/frr9/pkg-descr3
-rw-r--r--net/frr9/pkg-message17
-rw-r--r--net/frr9/pkg-plist253
11 files changed, 644 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile
index d9df2ddb2829..3ac14a0bed21 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -176,6 +176,8 @@
SUBDIR += frr7-pythontools
SUBDIR += frr8
SUBDIR += frr8-pythontools
+ SUBDIR += frr9
+ SUBDIR += frr9-pythontools
SUBDIR += fspclient
SUBDIR += fspd
SUBDIR += fsplib
diff --git a/net/frr9-pythontools/Makefile b/net/frr9-pythontools/Makefile
new file mode 100644
index 000000000000..31791a6d2a3b
--- /dev/null
+++ b/net/frr9-pythontools/Makefile
@@ -0,0 +1,7 @@
+COMMENT= Provide configuration reload functionality for FRR
+
+PYTHONTOOLS= yes
+
+MASTERDIR= ${.CURDIR}/../frr9
+
+.include "${MASTERDIR}/Makefile"
diff --git a/net/frr9-pythontools/pkg-plist b/net/frr9-pythontools/pkg-plist
new file mode 100644
index 000000000000..1304b08bdb89
--- /dev/null
+++ b/net/frr9-pythontools/pkg-plist
@@ -0,0 +1,3 @@
+sbin/frr-reload.py
+sbin/generate_support_bundle.py
+%%ETCDIR%%/support_bundle_commands.conf
diff --git a/net/frr9/Makefile b/net/frr9/Makefile
new file mode 100644
index 000000000000..b65f8d16eb70
--- /dev/null
+++ b/net/frr9/Makefile
@@ -0,0 +1,147 @@
+PORTNAME= frr
+PORTVERSION= 9.0.1
+DISTVERSIONPREFIX= frr-
+CATEGORIES= net
+.if defined(PYTHONTOOLS)
+PKGNAMESUFFIX= 9-pythontools
+.else
+PKGNAMESUFFIX= 9
+.endif
+
+MAINTAINER= olivier@FreeBSD.org
+
+COMMENT?= IP routing protocol suite including BGP, IS-IS, OSPF, BABEL and RIP
+WWW= https://frrouting.org/
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+.if defined(PYTHONTOOLS)
+RUN_DEPENDS= frr-reload:net/frr9
+
+USES= python:run shebangfix
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/etc/frr|${ETCDIR}|g' \
+ -e 's|/usr/bin|${PREFIX}/bin|g' \
+ -e 's|/usr/local/bin/tail|${TAIL}|g' \
+ ${WRKSRC}/tools/frr-reload.py
+ @${REINPLACE_CMD} -e 's|/etc/frr|${ETCDIR}|g' \
+ ${WRKSRC}/tools/generate_support_bundle.py
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${ETCDIR}
+ ${INSTALL_SCRIPT} ${WRKSRC}/tools/frr-reload.py ${STAGEDIR}/${PREFIX}/sbin/
+ ${INSTALL_SCRIPT} ${WRKSRC}/tools/generate_support_bundle.py ${STAGEDIR}/${PREFIX}/sbin/
+ ${INSTALL_DATA} ${WRKSRC}/tools/etc/frr/support_bundle_commands.conf ${STAGEDIR}${ETCDIR}/
+.else
+
+LIB_DEPENDS= libcares.so:dns/c-ares \
+ libjson-c.so:devel/json-c \
+ libpcre2-8.so:devel/pcre2 \
+ libprotobuf-c.so:devel/protobuf-c \
+ libyang.so.2:net/libyang2
+
+USES= autoreconf bison compiler:c++11-lang gmake libtool makeinfo \
+ pkgconfig python:build readline shebangfix
+
+BINARY_ALIAS= python=${PYTHON_VERSION}
+
+CONFLICTS= frr[78] openbgpd openospfd quagga zebra
+
+GNU_CONFIGURE= yes
+INSTALL_TARGET= install-strip
+USE_LDCONFIG= yes
+.endif
+
+USE_GITHUB= yes
+GH_ACCOUNT= FRRouting
+
+.if defined(PYTHONTOOLS)
+NO_BUILD= yes
+NO_ARCH= yes
+
+SHEBANG_FILES= tools/frr-reload.py \
+ tools/generate_support_bundle.py
+PLIST= ${.CURDIR}/pkg-plist
+PKGMESSAGE= ""
+.else
+INFO= frr
+
+OPTIONS_DEFINE= BACKTRACE CONFIGROLLBACKS DATACENTER FPM LDPD MANPAGES \
+ MULTIPATH PAM RPKI SHARPD SHELLACCESS SNMP TCMALLOC
+OPTIONS_DEFAULT= BACKTRACE FPM MANPAGES RPKI
+OPTIONS_SUB= yes
+
+BACKTRACE_DESC= Enable backtrace
+CONFIGROLLBACKS_DESC= Enable configuration rollback support
+DATACENTER_DESC= Use reduced BGP timers
+FPM_DESC= Enable Forwarding Plane Manager support
+LDPD_DESC= Build ldpd
+MULTIPATH_DESC= Allow 64 multipath routes (16 default)
+PAM_DESC= Use libpam for PAM support in vtysh
+RPKI_DESC= Add BGP RPKI (RFC 6810) support
+SHARPD_DESC= Build sharpd
+SHELLACCESS_DESC= Allow users to access shell/telnet/ssh
+SNMP_DESC= SNMP support
+TCMALLOC_DESC= Use tcmalloc
+
+USERS= frr
+GROUPS= frr frrvty
+
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+
+# PIMD and PBRD compile but doesn't work on FreeBSD
+CONFIGURE_ARGS= --enable-user=frr \
+ --enable-group=frr \
+ --enable-vty-group=frrvty \
+ --enable-vtysh \
+ --disable-doc-html \
+ --sysconfdir=${ETCDIR} \
+ --localstatedir=/var/run/frr \
+ --disable-nhrpd \
+ --disable-pathd \
+ --disable-ospfclient \
+ --disable-pimd \
+ --disable-pbrd \
+ --with-vtysh-pager=cat
+
+BACKTRACE_LIB_DEPENDS= libunwind.so:devel/libunwind
+BACKTRACE_CONFIGURE_ENABLE= backtrace
+CONFIGROLLBACKS_LIB_DEPENDS= libsqlite3.so:databases/sqlite3
+CONFIGROLLBACKS_CONFIGURE_ENABLE= config-rollbacks
+DATACENTER_CONFIGURE_ENABLE= datacenter
+FPM_CONFIGURE_ENABLE= fpm
+LDPD_CONFIGURE_ENABLE= ldpd
+MANPAGES_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR}
+MANPAGES_CONFIGURE_OFF= --disable-doc
+MULTIPATH_CONFIGURE_ON= --enable-multipath=64
+PAM_CONFIGURE_WITH= libpam
+RPKI_CONFIGURE_ENABLE= rpki
+RPKI_LIB_DEPENDS= librtr.so:net-mgmt/rtrlib \
+ libssh.so:security/libssh
+SHARPD_CONFIGURE_ENABLE= sharpd
+SHELLACCESS_CONFIGURE_ENABLE= shell-access
+SNMP_CONFIGURE_ENABLE= snmp
+SNMP_LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp
+SNMP_USES= ssl
+TCMALLOC_CONFIGURE_ENABLE= tcmalloc
+TCMALLOC_LIB_DEPENDS= libtcmalloc.so:devel/google-perftools
+
+USE_RC_SUBR= frr watchfrr
+
+SHEBANG_FILES= yang/embedmodel.py
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/etc/frr|${ETCDIR}|g' \
+ -e 's|/usr/lib/|${PREFIX}/lib/|g' \
+ -e 's|frr-pythontools|frr9-pythontools|g' \
+ ${WRKSRC}/tools/frr-reload
+
+post-install:
+ ${MKDIR} ${STAGEDIR}/var/run/frr
+ ${INSTALL_SCRIPT} ${WRKSRC}/tools/frr-reload ${STAGEDIR}${PREFIX}/sbin
+.endif
+
+.include <bsd.port.mk>
diff --git a/net/frr9/distinfo b/net/frr9/distinfo
new file mode 100644
index 000000000000..3e9d8b1f7646
--- /dev/null
+++ b/net/frr9/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1694701143
+SHA256 (FRRouting-frr-frr-9.0.1_GH0.tar.gz) = 3a371ece41cdf334b070811287f6733acabbadb442c8e693f8b66ec517592db7
+SIZE (FRRouting-frr-frr-9.0.1_GH0.tar.gz) = 10334150
diff --git a/net/frr9/files/frr.in b/net/frr9/files/frr.in
new file mode 100644
index 000000000000..45de683c547b
--- /dev/null
+++ b/net/frr9/files/frr.in
@@ -0,0 +1,168 @@
+#!/bin/sh
+
+# PROVIDE: frr dynamicrouting
+# REQUIRE: netif routing
+# KEYWORD: nojailvnet shutdown
+
+# Add the following line to /etc/rc.conf to enable frr:
+# frr_enable="YES"
+#
+# You may also wish to use the following variables to fine-tune startup:
+# Enable Integrated configuration mode (using the single configuration file
+# frr.conf in place of one file for each dameon)
+# frr_vtysh_boot="YES"
+# Selecting limited set of daemons to run
+# frr_daemons="zebra mgmtd babeld bfdd bgpd eigrpd fabricd isisd ospfd ospf6d ripd ripngd staticd"
+# Global tuning
+# frr_flags=""
+# Per daemon tuning may be done with daemon_name_flags
+# zebra_flags="-P 0"
+# bgpd_flags="-nrP 0" and so on
+# If you want to give the routing daemons a chance to catchup before
+# continuing, set frr_wait_for to a "default" or certain prefix.
+# frr_wait_for="default"
+# Set the time limit for the wait.
+# frr_wait_seconds="90"
+#
+# If the frr daemons require additional shared libraries to start,
+# use the following variable to run ldconfig(8) in advance:
+# frr_extralibs_path="/usr/local/lib ..."
+#
+# This RC script was adapted from the net/quagga port
+
+. /etc/rc.subr
+
+name=frr
+rcvar=${name}_enable
+
+start_postcmd=start_postcmd
+stop_postcmd="rm -f $pidfile"
+configtest_cmd=check_config
+extra_commands=configtest
+command_args="-d"
+
+load_rc_config $name
+: ${frr_enable:="NO"}
+: ${frr_flags:=""}
+: ${frr_daemons:="zebra mgmtd babeld bfdd bgpd eigrpd fabricd isisd ospfd ospf6d ripd ripngd staticd"}
+: ${frr_vtysh_boot:="NO"}
+: ${frr_wait_for:=""}
+: ${frr_wait_seconds:="90"}
+
+check_config()
+{
+ echo "Checking $daemon.conf"
+ # pimd doesn't support -C
+ if [ "$daemon" = "pimd" ]; then
+ echo "Ignored"
+ else
+ $command $daemon_flags -C
+ result=$?
+ if [ "$result" -eq "0" ]; then
+ echo "OK"
+ else
+ echo "FAILED"
+ exit
+ fi
+ fi
+}
+
+start_postcmd()
+{
+ local waited_for
+ waited_for=0
+ # Wait only when last daemon has started.
+ if [ "${frr_daemons}" = "${frr_daemons% ${name}}" ]; then
+ return;
+ fi
+ if [ -n "${frr_wait_for}" ]; then
+ echo Waiting for ${frr_wait_for} route...
+ while [ ${waited_for} -lt ${frr_wait_seconds} ]; do
+ /sbin/route -n get ${frr_wait_for} >/dev/null 2>&1 && break;
+ waited_for=$((waited_for+1))
+ sleep 1;
+ done
+ [ ${waited_for} -lt ${frr_wait_seconds} ] || echo Giving up...
+ fi
+}
+
+do_cmd()
+{
+ local ret
+ ret=0
+ frr_cmd=$1
+ if checkyesno frr_vtysh_boot && ( [ ${frr_cmd} = "restart" ] || [ ${frr_cmd} = "start" ] ); then
+ echo "Checking intergrated config..."
+ daemon="vtysh"
+ daemon_flags=""
+ command=%%PREFIX%%/bin/${daemon}
+ if ! [ -f %%ETCDIR%%/vtysh.conf ]; then
+ touch %%ETCDIR%%/vtysh.conf
+ fi
+ check_config
+ fi
+ for daemon in ${frr_daemons}; do
+ command=%%PREFIX%%/sbin/${daemon}
+ pidfile=/var/run/frr/${daemon}.pid
+ if ! checkyesno frr_vtysh_boot; then
+ required_files=%%ETCDIR%%/${daemon}.conf
+ if [ ${frr_cmd} = "restart" ] || [ ${frr_cmd} = "start" ]; then
+ check_config
+ fi
+ if [ ${frr_cmd} = "start" ] && ! [ -f ${required_files} ]; then
+ continue
+ fi
+ fi
+ if [ ${frr_cmd} = "stop" ] && [ -z "$(check_process ${command})" ]; then
+ continue
+ fi
+ eval flags=\$\{${daemon}_flags:-\"${frr_flags}\"\}
+ name=${daemon}
+ _rc_restart_done=false
+ run_rc_command "$1" || ret=1
+ done
+ if checkyesno frr_vtysh_boot && ( [ ${frr_cmd} = "restart" ] || [ ${frr_cmd} = "start" ] ); then
+ echo "Booting for integrated-vtysh-config..."
+ %%PREFIX%%/bin/vtysh -b
+ fi
+ return ${ret}
+}
+
+frr_cmd=$1
+
+case "$1" in
+ force*)
+ frr_cmd=${frr_cmd#force}
+ ;;
+ fast*)
+ frr_cmd=${frr_cmd#fast}
+ ;;
+esac
+shift
+
+if [ $# -ge 1 -a "$1" != "all" ]; then
+ frr_daemons="$*"
+fi
+
+case "${frr_cmd}" in
+ start|quietstart)
+ if [ -n "${frr_extralibs_path}" ]; then
+ /sbin/ldconfig -m ${frr_extralibs_path}
+ fi
+ # Why should I need to add this check ?
+ checkyesno frr_enable && do_cmd "start"
+ ;;
+ stop)
+ frr_daemons=$(reverse_list ${frr_daemons})
+ do_cmd "stop"
+ ;;
+ restart)
+ frr_daemons=$(reverse_list ${frr_daemons})
+ do_cmd "stop"
+ frr_daemons=$(reverse_list ${frr_daemons})
+ checkyesno frr_enable && do_cmd "start"
+ ;;
+ *)
+ do_cmd "${frr_cmd}"
+ ;;
+esac
diff --git a/net/frr9/files/patch-Makefile.am b/net/frr9/files/patch-Makefile.am
new file mode 100644
index 000000000000..626f17a2d784
--- /dev/null
+++ b/net/frr9/files/patch-Makefile.am
@@ -0,0 +1,11 @@
+--- Makefile.am.orig 2021-11-08 12:44:24.000000000 +0900
++++ Makefile.am 2021-12-23 09:23:13.400659000 +0900
+@@ -168,7 +168,7 @@
+ include qpb/subdir.am
+ include fpm/subdir.am
+ include grpc/subdir.am
+-include tools/subdir.am
++# include tools/subdir.am
+
+ include bgpd/subdir.am
+ include bgpd/rfp-example/librfp/subdir.am
diff --git a/net/frr9/files/watchfrr.in b/net/frr9/files/watchfrr.in
new file mode 100644
index 000000000000..f3a36434e7f6
--- /dev/null
+++ b/net/frr9/files/watchfrr.in
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+# PROVIDE: watchfrr
+# REQUIRE: NETWORKING frr
+# KEYWORD: nojailvtnet shutdown
+
+# Add the following line to /etc/rc.conf to enable watchfrr:
+# watchfrr_enable="YES"
+#
+# You may also wish to use the following variables to fine-tune startup:
+# watchfrr_flags
+# Example of flags usage:
+# watchfrr_flags=" -d -r /usr/sbin/servicebBfrrbBrestartbB%s -s /usr/sbin/servicebBfrrbBstartbB%s -k /usr/sbin/servicebBfrrbBstopbB%s -b bB -t 30 zebra ripd ripngd ospfd ospf6d bgpd isisd eigrpd babeld bfdd staticd"
+
+. /etc/rc.subr
+
+name=watchfrr
+rcvar=${name}_enable
+
+load_rc_config $name
+
+stop_postcmd="rm -f $pidfile"
+
+watchfrr_enable=${watchfrr_enable:-"NO"}
+watchfrr_flags=${watchfrr_flags:-"-d -r /usr/sbin/servicebBfrrbBrestartbB%s -s /usr/sbin/servicebBfrrbBstartbB%s -k /usr/sbin/servicebBfrrbBstopbB%s -b bB -t 30 zebra babeld bfdd bgpd eigrpd fabricd isisd ospfd ospf6d ripd ripngd staticd"}
+
+command=%%PREFIX%%/sbin/watchfrr
+pidfile=/var/run/frr/watchfrr.pid
+
+run_rc_command "$1"
diff --git a/net/frr9/pkg-descr b/net/frr9/pkg-descr
new file mode 100644
index 000000000000..1e9960661fb1
--- /dev/null
+++ b/net/frr9/pkg-descr
@@ -0,0 +1,3 @@
+FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms
+which includes protocol daemons for BGP, IS-IS, OSPF and RIP. FRR has its roots
+in the Quagga project.
diff --git a/net/frr9/pkg-message b/net/frr9/pkg-message
new file mode 100644
index 000000000000..9a172838d6e1
--- /dev/null
+++ b/net/frr9/pkg-message
@@ -0,0 +1,17 @@
+[
+{ type: install
+ message: <<EOM
+Beware that remote control of frr9 daemons over TCP sockets is enabled by
+default.
+Use daemon flags in /etc/rc.conf to disable it if unneeded, for example:
+zebra_flags="-P0"
+ospfd_flags="-P0"
+
+FRR's OSPF daemons tries to allocate big socket buffer, so generate warning
+messages like:
+"setsockopt_so_sendbuf: fd 6: SO_SNDBUF set to 1048576 (requested 8388608)"
+To prevent such message kern.ipc.maxsockbuf can be increased:
+sysctl kern.ipc.maxsockbuf=16777216
+EOM
+}
+]
diff --git a/net/frr9/pkg-plist b/net/frr9/pkg-plist
new file mode 100644
index 000000000000..d046561bb6ff
--- /dev/null
+++ b/net/frr9/pkg-plist
@@ -0,0 +1,253 @@
+bin/vtysh
+include/frr/admin_group.h
+include/frr/affinitymap.h
+include/frr/agg_table.h
+include/frr/asn.h
+include/frr/assert.h
+include/frr/atomlist.h
+include/frr/base64.h
+include/frr/bfd.h
+include/frr/bfdd/bfddp_packet.h
+include/frr/bitfield.h
+include/frr/buffer.h
+include/frr/checksum.h
+include/frr/command.h
+include/frr/command_graph.h
+include/frr/command_match.h
+include/frr/compiler.h
+include/frr/cspf.h
+include/frr/csv.h
+include/frr/darr.h
+include/frr/db.h
+include/frr/debug.h
+include/frr/defaults.h
+include/frr/distribute.h
+include/frr/eigrpd/eigrp_dump.h
+include/frr/eigrpd/eigrp_topology.h
+include/frr/eigrpd/eigrpd.h
+include/frr/ferr.h
+include/frr/filter.h
+include/frr/flex_algo.h
+include/frr/freebsd-queue.h
+include/frr/frr_pthread.h
+include/frr/frratomic.h
+include/frr/frrcu.h
+include/frr/frrevent.h
+include/frr/frrlua.h
+include/frr/frrscript.h
+include/frr/frrstr.h
+include/frr/graph.h
+include/frr/hash.h
+include/frr/hook.h
+include/frr/iana_afi.h
+include/frr/id_alloc.h
+include/frr/if.h
+include/frr/if_rmap.h
+include/frr/imsg.h
+include/frr/ipaddr.h
+include/frr/iso.h
+include/frr/jhash.h
+include/frr/json.h
+include/frr/keychain.h
+include/frr/ldp_sync.h
+include/frr/lib_errors.h
+include/frr/lib_vty.h
+include/frr/libfrr.h
+include/frr/libfrr_trace.h
+include/frr/libospf.h
+include/frr/link_state.h
+include/frr/linklist.h
+include/frr/log.h
+include/frr/log_vty.h
+include/frr/md5.h
+include/frr/memory.h
+include/frr/mgmt.pb-c.h
+include/frr/mgmt_be_client.h
+include/frr/mgmt_fe_client.h
+include/frr/mgmt_msg.h
+include/frr/mgmt_pb.h
+include/frr/mgmtd/mgmt_defines.h
+include/frr/mlag.h
+include/frr/module.h
+include/frr/monotime.h
+include/frr/mpls.h
+include/frr/network.h
+include/frr/nexthop.h
+include/frr/nexthop_group.h
+include/frr/nexthop_group_private.h
+include/frr/northbound.h
+include/frr/northbound_cli.h
+include/frr/northbound_db.h
+include/frr/ns.h
+include/frr/openbsd-queue.h
+include/frr/openbsd-tree.h
+include/frr/ospfd/ospf_api.h
+include/frr/ospfd/ospf_asbr.h
+include/frr/ospfd/ospf_dump.h
+include/frr/ospfd/ospf_dump_api.h
+include/frr/ospfd/ospf_ism.h
+include/frr/ospfd/ospf_lsa.h
+include/frr/ospfd/ospf_lsdb.h
+include/frr/ospfd/ospf_nsm.h
+include/frr/ospfd/ospf_opaque.h
+include/frr/ospfd/ospfd.h
+include/frr/pbr.h
+include/frr/plist.h
+include/frr/prefix.h
+include/frr/printfrr.h
+include/frr/privs.h
+include/frr/ptm_lib.h
+include/frr/pullwr.h
+include/frr/pw.h
+include/frr/qobj.h
+include/frr/queue.h
+include/frr/resolver.h
+include/frr/ringbuf.h
+include/frr/route_opaque.h
+include/frr/route_types.h
+include/frr/routemap.h
+include/frr/routing_nb.h
+include/frr/sbuf.h
+include/frr/segment_routing.h
+include/frr/seqlock.h
+include/frr/sha256.h
+include/frr/sigevent.h
+include/frr/skiplist.h
+include/frr/smux.h
+include/frr/sockopt.h
+include/frr/sockunion.h
+include/frr/spf_backoff.h
+include/frr/srcdest_table.h
+include/frr/srte.h
+include/frr/srv6.h
+include/frr/stream.h
+include/frr/systemd.h
+include/frr/table.h
+include/frr/tc.h
+include/frr/termtable.h
+include/frr/trace.h
+include/frr/typerb.h
+include/frr/typesafe.h
+include/frr/vector.h
+include/frr/version.h
+include/frr/vlan.h
+include/frr/vrf.h
+include/frr/vrf_int.h
+include/frr/vty.h
+include/frr/vxlan.h
+include/frr/wheel.h
+include/frr/workqueue.h
+include/frr/xref.h
+include/frr/yang.h
+include/frr/yang_translator.h
+include/frr/yang_wrappers.h
+include/frr/zclient.h
+include/frr/zebra.h
+include/frr/zlog.h
+include/frr/zlog_5424.h
+include/frr/zlog_live.h
+include/frr/zlog_targets.h
+lib/libfrr.a
+lib/libfrr.so
+lib/libfrr.so.0
+lib/libfrr.so.0.0.0
+lib/libfrr_pb.a
+lib/libfrr_pb.so
+lib/libfrr_pb.so.0
+lib/libfrr_pb.so.0.0.0
+lib/libfrrcares.a
+lib/libfrrcares.so
+lib/libfrrcares.so.0
+lib/libfrrcares.so.0.0.0
+%%FPM%%lib/libfrrfpm_pb.a
+%%FPM%%lib/libfrrfpm_pb.so
+%%FPM%%lib/libfrrfpm_pb.so.0
+%%FPM%%lib/libfrrfpm_pb.so.0.0.0
+%%SNMP%%lib/libfrrsnmp.a
+%%SNMP%%lib/libfrrsnmp.so
+%%SNMP%%lib/libfrrsnmp.so.0
+%%SNMP%%lib/libfrrsnmp.so.0.0.0
+lib/libmgmt_be_nb.a
+lib/libmgmt_be_nb.so
+lib/libmgmt_be_nb.so.0
+lib/libmgmt_be_nb.so.0.0.0
+%%SNMP%%lib/frr/modules/bgpd_bmp.so
+%%RPKI%%lib/frr/modules/bgpd_rpki.so
+%%SNMP%%lib/frr/modules/bgpd_snmp.so
+%%SNMP%%lib/frr/modules/isisd_snmp.so
+%%SNMP%%%%LDPD%%lib/frr/modules/ldpd_snmp.so
+%%SNMP%%lib/frr/modules/ospf6d_snmp.so
+%%SNMP%%lib/frr/modules/ospfd_snmp.so
+%%SNMP%%lib/frr/modules/ripd_snmp.so
+%%FPM%%lib/frr/modules/zebra_fpm.so
+%%SNMP%%lib/frr/modules/zebra_snmp.so
+%%MANPAGES%%man/man1/frr.1.gz
+%%MANPAGES%%man/man8/frr-bfdd.8.gz
+%%MANPAGES%%man/man8/frr-eigrpd.8.gz
+%%MANPAGES%%man/man8/frr-isisd.8.gz
+%%MANPAGES%%man/man8/frr-staticd.8.gz
+%%MANPAGES%%man/man8/frr-watchfrr.8.gz
+%%MANPAGES%%man/man1/vtysh.1.gz
+%%MANPAGES%%man/man8/frr-bgpd.8.gz
+%%MANPAGES%%%%LDPD%%man/man8/frr-ldpd.8.gz
+%%MANPAGES%%man/man8/frr-ospf6d.8.gz
+%%MANPAGES%%man/man8/frr-ospfd.8.gz
+%%MANPAGES%%man/man8/frr-ripd.8.gz
+%%MANPAGES%%man/man8/frr-ripngd.8.gz
+%%MANPAGES%%%%SHARPD%%man/man8/frr-sharpd.8.gz
+%%MANPAGES%%man/man8/frr-zebra.8.gz
+sbin/babeld
+sbin/bfdd
+sbin/bgpd
+sbin/eigrpd
+sbin/fabricd
+sbin/frr-reload
+%%LDPD%%sbin/ldpd
+sbin/isisd
+sbin/mgmtd
+sbin/ospf6d
+sbin/ospfd
+sbin/ripd
+sbin/ripngd
+%%SHARPD%%sbin/sharpd
+sbin/staticd
+sbin/watchfrr
+sbin/zebra
+share/yang/frr-affinity-map.yang
+share/yang/frr-bfdd.yang
+share/yang/frr-bgp-bmp.yang
+share/yang/frr-bgp-common-multiprotocol.yang
+share/yang/frr-bgp-common-structure.yang
+share/yang/frr-bgp-common.yang
+share/yang/frr-bgp-filter.yang
+share/yang/frr-bgp-neighbor.yang
+share/yang/frr-bgp-peer-group.yang
+share/yang/frr-bgp-route-map.yang
+share/yang/frr-bgp-rpki.yang
+share/yang/frr-bgp-types.yang
+share/yang/frr-bgp.yang
+share/yang/frr-deviations-bgp-datacenter.yang
+share/yang/frr-eigrpd.yang
+share/yang/frr-filter.yang
+share/yang/frr-if-rmap.yang
+share/yang/frr-interface.yang
+share/yang/frr-isisd.yang
+share/yang/frr-module-translator.yang
+share/yang/frr-nexthop.yang
+share/yang/frr-ospf-route-map.yang
+share/yang/frr-ospf6-route-map.yang
+share/yang/frr-ospfd.yang
+share/yang/frr-ripd.yang
+share/yang/frr-ripngd.yang
+share/yang/frr-route-map.yang
+share/yang/frr-route-types.yang
+share/yang/frr-routing.yang
+share/yang/frr-staticd.yang
+share/yang/frr-test-module.yang
+share/yang/frr-vrf.yang
+share/yang/frr-zebra-route-map.yang
+share/yang/frr-zebra.yang
+share/yang/ietf-bgp-types.yang
+share/yang/ietf-interfaces.yang
+share/yang/ietf-routing-types.yang
+@dir(frr,frr,750) /var/run/frr