diff --git a/net/frr10/Makefile b/net/frr10/Makefile index e6282111df78..3b564c48739b 100644 --- a/net/frr10/Makefile +++ b/net/frr10/Makefile @@ -1,144 +1,143 @@ PORTNAME= frr DISTVERSIONPREFIX= frr- -DISTVERSION= 10.1.1 -PORTREVISION= 1 +DISTVERSION= 10.2 CATEGORIES= net .if defined(PYTHONTOOLS) PKGNAMESUFFIX= 10-pythontools .else PKGNAMESUFFIX= 10 .endif MAINTAINER= olivier@FreeBSD.org COMMENT?= IP routing protocol suite WWW= https://frrouting.org/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING .if defined(PYTHONTOOLS) RUN_DEPENDS= frr-reload:net/frr10 USES= python:run shebangfix post-patch: @${REINPLACE_CMD} -e 's|/etc/frr|${ETCDIR}|g' \ -e 's|/usr/bin|${PREFIX}/bin|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= frr8 frr9 openbgpd openospfd quagga zebra GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share 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 # 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_USES= sqlite 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 SHEBANG_FILES= yang/embedmodel.py post-patch: @${REINPLACE_CMD} -e 's|/etc/frr|${ETCDIR}|g' \ -e 's|/usr/lib/frr|${PREFIX}/sbin|g' \ -e 's|frr-pythontools|frr10-pythontools|g' \ ${WRKSRC}/tools/frr-reload post-install: ${MKDIR} ${STAGEDIR}/var/run/frr ${INSTALL_SCRIPT} ${WRKSRC}/tools/frr-reload ${STAGEDIR}${PREFIX}/sbin .endif .include diff --git a/net/frr10/distinfo b/net/frr10/distinfo index d65c514ef47f..3dbe8cf4ce78 100644 --- a/net/frr10/distinfo +++ b/net/frr10/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1727640851 -SHA256 (FRRouting-frr-frr-10.1.1_GH0.tar.gz) = 76004c312de3348b6164f6ae15db4c0cf0f504945f8c69aed871c0b4dcedfa29 -SIZE (FRRouting-frr-frr-10.1.1_GH0.tar.gz) = 11044980 +TIMESTAMP = 1732620979 +SHA256 (FRRouting-frr-frr-10.2_GH0.tar.gz) = f9212701a8bba9ce32b4f2d361149db7778bb7bdc053bfb27415ec1948d83a47 +SIZE (FRRouting-frr-frr-10.2_GH0.tar.gz) = 11173035 diff --git a/net/frr10/files/patch-Makefile.am b/net/frr10/files/patch-Makefile.am index 626f17a2d784..7941b6a84ce7 100644 --- a/net/frr10/files/patch-Makefile.am +++ b/net/frr10/files/patch-Makefile.am @@ -1,11 +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 @@ +--- Makefile.am.orig 2024-11-12 16:20:46 UTC ++++ Makefile.am +@@ -182,7 +182,7 @@ include grpc/subdir.am 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 + include mgmtd/subdir.am + diff --git a/net/frr10/files/patch-lib_event.c b/net/frr10/files/patch-lib_event.c deleted file mode 100644 index 96acbf3265ce..000000000000 --- a/net/frr10/files/patch-lib_event.c +++ /dev/null @@ -1,14 +0,0 @@ ---- lib/event.c.orig 2024-09-12 07:46:05 UTC -+++ lib/event.c -@@ -571,8 +571,9 @@ struct event_loop *event_master_create(const char *nam - } - - if (rv->fd_limit > STUPIDLY_LARGE_FD_SIZE) { -- zlog_warn("FD Limit set: %u is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to %u", -- rv->fd_limit, STUPIDLY_LARGE_FD_SIZE); -+ if (frr_is_daemon()) -+ zlog_warn("FD Limit set: %u is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to %u", -+ rv->fd_limit, STUPIDLY_LARGE_FD_SIZE); - - rv->fd_limit = STUPIDLY_LARGE_FD_SIZE; - } diff --git a/net/frr10/files/patch-lib_libfrr.c b/net/frr10/files/patch-lib_libfrr.c deleted file mode 100644 index ece5de3d82e5..000000000000 --- a/net/frr10/files/patch-lib_libfrr.c +++ /dev/null @@ -1,14 +0,0 @@ ---- lib/libfrr.c.orig 2024-09-12 07:46:05 UTC -+++ lib/libfrr.c -@@ -1463,3 +1463,11 @@ const char *frr_vers2str(uint32_t version, char *buf, - - return buf; - } -+ -+bool frr_is_daemon(void) -+{ -+ if (di) -+ return true; -+ -+ return false; -+} diff --git a/net/frr10/files/patch-lib_libfrr.h b/net/frr10/files/patch-lib_libfrr.h deleted file mode 100644 index fdc368a90369..000000000000 --- a/net/frr10/files/patch-lib_libfrr.h +++ /dev/null @@ -1,11 +0,0 @@ ---- lib/libfrr.h.orig 2024-09-12 07:46:05 UTC -+++ lib/libfrr.h -@@ -188,7 +188,7 @@ extern bool frr_is_startup_fd(int fd); - extern enum frr_cli_mode frr_get_cli_mode(void); - extern uint32_t frr_get_fd_limit(void); - extern bool frr_is_startup_fd(int fd); -- -+extern bool frr_is_daemon(void); - /* call order of these hooks is as ordered here */ - DECLARE_HOOK(frr_early_init, (struct event_loop * tm), (tm)); - DECLARE_HOOK(frr_late_init, (struct event_loop * tm), (tm)); diff --git a/net/frr10/files/patch-lib_sockopt.c b/net/frr10/files/patch-lib_sockopt.c new file mode 100644 index 000000000000..8c996de059ef --- /dev/null +++ b/net/frr10/files/patch-lib_sockopt.c @@ -0,0 +1,33 @@ +--- lib/sockopt.c.orig 2024-11-12 16:20:46 UTC ++++ lib/sockopt.c +@@ -19,7 +19,7 @@ + #define HAVE_BSD_STRUCT_IP_MREQ_HACK + #endif + +-void setsockopt_so_recvbuf(int sock, int size) ++int setsockopt_so_recvbuf(int sock, int size) + { + int orig_req = size; + +@@ -34,9 +34,11 @@ void setsockopt_so_recvbuf(int sock, int size) + flog_err(EC_LIB_SOCKET, + "%s: fd %d: SO_RCVBUF set to %d (requested %d)", + __func__, sock, size, orig_req); ++ ++ return size; + } + +-void setsockopt_so_sendbuf(const int sock, int size) ++int setsockopt_so_sendbuf(const int sock, int size) + { + int orig_req = size; + +@@ -51,6 +53,8 @@ void setsockopt_so_sendbuf(const int sock, int size) + flog_err(EC_LIB_SOCKET, + "%s: fd %d: SO_SNDBUF set to %d (requested %d)", + __func__, sock, size, orig_req); ++ ++ return size; + } + + int getsockopt_so_sendbuf(const int sock) diff --git a/net/frr10/files/patch-lib_sockopt.h b/net/frr10/files/patch-lib_sockopt.h new file mode 100644 index 000000000000..7d6b615fe700 --- /dev/null +++ b/net/frr10/files/patch-lib_sockopt.h @@ -0,0 +1,13 @@ +--- lib/sockopt.h.orig 2024-11-12 16:20:46 UTC ++++ lib/sockopt.h +@@ -12,8 +12,8 @@ extern "C" { + extern "C" { + #endif + +-extern void setsockopt_so_recvbuf(int sock, int size); +-extern void setsockopt_so_sendbuf(const int sock, int size); ++extern int setsockopt_so_recvbuf(int sock, int size); ++extern int setsockopt_so_sendbuf(const int sock, int size); + extern int getsockopt_so_sendbuf(const int sock); + extern int getsockopt_so_recvbuf(const int sock); + diff --git a/net/frr10/files/patch-lib_vty.c b/net/frr10/files/patch-lib_vty.c new file mode 100644 index 000000000000..45af30dcecf5 --- /dev/null +++ b/net/frr10/files/patch-lib_vty.c @@ -0,0 +1,52 @@ +--- lib/vty.c.orig 2024-11-12 16:20:46 UTC ++++ lib/vty.c +@@ -43,6 +43,7 @@ + #include "northbound_cli.h" + #include "printfrr.h" + #include "json.h" ++#include "sockopt.h" + + #include + #include +@@ -352,7 +353,7 @@ int vty_out(struct vty *vty, const char *format, ...) + * put the data of collective vty->obuf Linked List items on the + * socket and free the vty->obuf data. + */ +- if (vty->vty_buf_size_accumulated >= VTY_MAX_INTERMEDIATE_FLUSH) { ++ if (vty->vty_buf_size_accumulated >= vty->buf_size_intermediate) { + vty->vty_buf_size_accumulated = 0; + vtysh_flush(vty); + } +@@ -2157,15 +2158,15 @@ static void vtysh_accept(struct event *thread) + * Increasing the SEND socket buffer size so that the socket can hold + * before sending it to VTY shell. + */ +- ret = setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *)&sndbufsize, +- sizeof(sndbufsize)); +- if (ret < 0) { ++ ret = setsockopt_so_sendbuf(sock, sndbufsize); ++ if (ret <= 0) { + flog_err(EC_LIB_SOCKET, + "Cannot set socket %d send buffer size, %s", sock, + safe_strerror(errno)); + close(sock); + return; + } ++ + set_cloexec(sock); + + #ifdef VTYSH_DEBUG +@@ -2173,6 +2174,13 @@ static void vtysh_accept(struct event *thread) + #endif /* VTYSH_DEBUG */ + + vty = vty_new(); ++ ++ vty->buf_size_set = ret; ++ if (vty->buf_size_set < VTY_MAX_INTERMEDIATE_FLUSH) ++ vty->buf_size_intermediate = vty->buf_size_set / 2; ++ else ++ vty->buf_size_intermediate = VTY_MAX_INTERMEDIATE_FLUSH; ++ + vty->fd = sock; + vty->wfd = sock; + vty->type = VTY_SHELL_SERV; diff --git a/net/frr10/files/patch-lib_vty.h b/net/frr10/files/patch-lib_vty.h new file mode 100644 index 000000000000..397ea225cce1 --- /dev/null +++ b/net/frr10/files/patch-lib_vty.h @@ -0,0 +1,12 @@ +--- lib/vty.h.orig 2024-11-12 16:20:46 UTC ++++ lib/vty.h +@@ -237,6 +237,9 @@ struct vty { + bool mgmt_locked_candidate_ds; + bool mgmt_locked_running_ds; + uint64_t vty_buf_size_accumulated; ++ ++ int buf_size_set; ++ uint64_t buf_size_intermediate; + }; + + static inline void vty_push_context(struct vty *vty, int node, uint64_t id) diff --git a/net/frr10/files/patch-vtysh_vtysh.c b/net/frr10/files/patch-vtysh_vtysh.c new file mode 100644 index 000000000000..a6f09b5a5980 --- /dev/null +++ b/net/frr10/files/patch-vtysh_vtysh.c @@ -0,0 +1,22 @@ +--- vtysh/vtysh.c.orig 2024-11-12 16:20:46 UTC ++++ vtysh/vtysh.c +@@ -39,6 +39,7 @@ + #include "frrstr.h" + #include "json.h" + #include "ferr.h" ++#include "sockopt.h" + + DEFINE_MTYPE_STATIC(MVTYSH, VTYSH_CMD, "Vtysh cmd copy"); + +@@ -4694,9 +4695,8 @@ static int vtysh_connect(struct vtysh_client *vclient) + * Increasing the RECEIVE socket buffer size so that the socket can hold + * after receving from other process. + */ +- ret = setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *)&rcvbufsize, +- sizeof(rcvbufsize)); +- if (ret < 0) { ++ ret = setsockopt_so_recvbuf(sock, rcvbufsize); ++ if (ret <= 0) { + #ifdef DEBUG + fprintf(stderr, "Cannot set socket %d rcv buffer size, %s\n", + sock, safe_strerror(errno)); diff --git a/net/frr10/pkg-plist b/net/frr10/pkg-plist index b8d9fec72859..0a69c6bee67d 100644 --- a/net/frr10/pkg-plist +++ b/net/frr10/pkg-plist @@ -1,264 +1,264 @@ 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/frrdistance.h include/frr/frrevent.h include/frr/frrlua.h include/frr/frrscript.h include/frr/frrsendmmsg.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/libagentx.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_defines.h include/frr/mgmt_fe_client.h include/frr/mgmt_msg.h include/frr/mgmt_msg_native.h include/frr/mgmt_pb.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_recirculate.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%%share/man/man1/frr.1.gz %%MANPAGES%%share/man/man8/frr-bfdd.8.gz %%MANPAGES%%share/man/man8/frr-eigrpd.8.gz %%MANPAGES%%share/man/man8/frr-isisd.8.gz %%MANPAGES%%share/man/man8/frr-staticd.8.gz %%MANPAGES%%share/man/man8/frr-watchfrr.8.gz %%MANPAGES%%share/man/man1/vtysh.1.gz %%MANPAGES%%share/man/man8/frr-bgpd.8.gz %%MANPAGES%%%%LDPD%%share/man/man8/frr-ldpd.8.gz %%MANPAGES%%share/man/man8/frr-ospf6d.8.gz %%MANPAGES%%share/man/man8/frr-ospfd.8.gz %%MANPAGES%%share/man/man8/frr-ripd.8.gz %%MANPAGES%%share/man/man8/frr-ripngd.8.gz %%MANPAGES%%%%SHARPD%%share/man/man8/frr-sharpd.8.gz %%MANPAGES%%share/man/man8/frr-zebra.8.gz sbin/babeld sbin/bfdd sbin/bgpd sbin/eigrpd sbin/fabricd sbin/fpm_listener 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-deviations-ietf-key-chain.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-key-chain.yang share/yang/ietf-netconf-acm.yang share/yang/ietf-netconf-with-defaults.yang share/yang/ietf-netconf.yang share/yang/ietf-routing-types.yang -@dir(frr,frr,750) /var/run/frr +@dir(frr,frr,755) /var/run/frr