diff --git a/net/frr10/Makefile b/net/frr10/Makefile index 5b2566a52a23..9306a426d523 100644 --- a/net/frr10/Makefile +++ b/net/frr10/Makefile @@ -1,146 +1,146 @@ PORTNAME= frr DISTVERSIONPREFIX= frr- -DISTVERSION= 10.6.1 +DISTVERSION= 10.7.0 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.3:net/libyang3 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 SCRIPTING 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 SCRIPTING_DESC= Enable lua scripting capabilities 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 SCRIPTING_CONFIGURE_ENABLE= scripting SCRIPTING_USES= lua:53 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 53d526aef6e9..e2965d7691c5 100644 --- a/net/frr10/distinfo +++ b/net/frr10/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1777613665 -SHA256 (FRRouting-frr-frr-10.6.1_GH0.tar.gz) = 35f2cb4328617261db687e1d4e400c7c491b41b3aa4a109d7da9ebff0cf7e402 -SIZE (FRRouting-frr-frr-10.6.1_GH0.tar.gz) = 11999229 +TIMESTAMP = 1784959351 +SHA256 (FRRouting-frr-frr-10.7.0_GH0.tar.gz) = 5c56b27756854b8d0a62b3e152d3f9ea08091851b2d686e140fdfb95cd88f612 +SIZE (FRRouting-frr-frr-10.7.0_GH0.tar.gz) = 12518790 diff --git a/net/frr10/files/frr.in b/net/frr10/files/frr.in index 559fc87a8194..ff443b7d2dc8 100644 --- a/net/frr10/files/frr.in +++ b/net/frr10/files/frr.in @@ -1,248 +1,264 @@ #!/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" # FRR's daemon management concept: # - watchfrr is used to manage (start/monitor/restart) all frr deamons; # - vtysh used to daemons boot startup configuration; # - mgmtd is the management plane. # There are a minimum of 3 daemons running: watchfrr, zebra, mgmtd # Startup details with watchfrr enabled (default): # 1. "service frr start" calls "service frr start watchfrr" # 2. watchfrr once started calls "service frr restart all" # 3. "restart all" need to loop the list of $frr_daemons to start each # of then # 4. vtysh -b is executed to load boot startup configuration # Startup detail with watchfrr disabled (deprecated mode): # 1. "service frr start" call "service frr start all" and need to loop $frr_daemons # To select a limited set of daemons to run, use the frr_daemons. # Order matters: keep mgmtd first, followed by zebra. # Example to start only staticd and bgpd: # frr_daemons="mgmtd zebra staticd bgpd" # You may also wish to use the following variables to fine-tune startup: # To disable integrated configuration mode, to use one configuration file per # daemons. # This mode is deprecated and not compatible with watchfrr and mgmtd # frr_vtysh_boot="NO" # watchfrr_enable="NO" # Global tuning # frr_flags="--limit-fds 100000" (restricting fds for each daemons) # frr_default_profile="datacenter" (default: traditional) # 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: # - FRR's tools/frrinit.sh.in (starting watchfrr) # - FRR's tools/frrcommon.sh.in (starting frr daemons) # - FRR's tools/etc/frr/daemons (default daemon flags) . /etc/rc.subr name=frr rcvar=${name}_enable start_postcmd=start_postcmd command_args="-d" load_rc_config $name : ${frr_enable:="NO"} : ${frr_flags:="--limit-fds 100000"} : ${watchfrr_enable:="YES"} : ${frr_daemons:="mgmtd zebra babeld bfdd bgpd eigrpd fabricd isisd ospfd ospf6d ripd ripngd staticd"} : ${watchfrr_flags:="-r /usr/sbin/servicebBfrrbBrestartbB%s -s /usr/sbin/servicebBfrrbBstartbB%s -k /usr/sbin/servicebBfrrbBstopbB%s -b bB -t 30"} : ${frr_default_profile:="traditional"} : ${frr_vtysh_boot:="YES"} : ${frr_wait_for:=""} : ${frr_wait_seconds:="90"} # Default daemons'flag restrict binding vty's to localhost : ${zebra_flags:="-A 127.0.0.1"} : ${mgmtd_flags:="-A 127.0.0.1"} : ${babeld_flags:="-A 127.0.0.1"} : ${bgpd_flags:="-A 127.0.0.1"} : ${eigrpd_flags:="-A 127.0.0.1"} : ${fabricd_flags:="-A 127.0.0.1"} : ${isisd_flags:="-A 127.0.0.1"} : ${ospfd_flags:="-A 127.0.0.1"} : ${ospf6d_flags:="-A ::1"} : ${ripd_flags:="-A 127.0.0.1"} : ${ripngd_flags:="-A ::1"} : ${staticd_flags:="-A 127.0.0.1"} frr_flags="${frr_flags} -F ${frr_default_profile}" 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() { # Entering here, global var dmn contains the daemon name # $1 the daemon name (must be uniq and cannot be all) local ret local cmd local dmn ret=0 dmn=$1 if [ -n "${dmn}" ] && [ "${dmn}" != "all" ]; then command=%%PREFIX%%/sbin/${dmn} pidfile=/var/run/frr/${dmn}.pid eval flags=\$\{${dmn}_flags:-\"\"\} flags="${flags} ${frr_flags}" if [ "${dmn}" = "watchfrr" ]; then # watchfrr is expecting all daemon names as flags flags="${flags} ${watchfrr_daemons}" fi name=${dmn} _rc_restart_done=false stop_postcmd="rm -f $pidfile" run_rc_command "${frr_cmd}" || ret=1 else echo "Bug in do_cmd(): called without argument or with all" ret=1 fi return ${ret} } vtysh_b () { local ret ret=0 if checkyesno frr_vtysh_boot; then %%PREFIX%%/bin/vtysh -b || ret=1 fi return ${ret} } loop_do_cmd() { local ret local daemon ret=0 for daemon in ${frr_daemons}; do do_cmd ${daemon} || ret=1 done if ( [ ${frr_cmd} = "restart" ] || [ ${frr_cmd} = "start" ] ); then vtysh_b || ret=1 fi return ${ret} } frr_cmd=$1 # remove unsuported extra command # Example: "service frr fast start" is replaced by "service frr start" case "$1" in force*) frr_cmd=${frr_cmd#force} ;; fast*) frr_cmd=${frr_cmd#fast} ;; esac shift # If daemon specified, replace the full list by its name # or with watchfrr if not disabled # Example: extract "bgpd" from a "service frr start bgpd" if [ $# -ge 1 ]; then if [ "$1" != "all" ]; then frr_daemons=$1 fi else if checkyesno watchfrr_enable; then watchfrr_daemons=${frr_daemons} frr_daemons=watchfrr fi fi case "${frr_cmd}" in start|quietstart) if checkyesno frr_enable; then if [ -n "${frr_extralibs_path}" ]; then /sbin/ldconfig -m ${frr_extralibs_path} fi if [ -x %%PREFIX%%/etc/rc.d/watchfrr ]; then echo "WARNING: Old rc.d/watchfrr detected, this file must be deleted" fi mkdir -p /var/lib/frr chown -R frr:frr /var/lib/frr if checkyesno frr_vtysh_boot; then echo "Checking intergrated config..." if ! [ -f %%ETCDIR%%/vtysh.conf ]; then mkdir -p %%ETCDIR%% echo "service integrated-vtysh-config" > %%ETCDIR%%/vtysh.conf fi if ! [ -f %%ETCDIR%%/frr.conf ]; then echo "log syslog informational" > %%ETCDIR%%/frr.conf fi chown -R frr:frr %%ETCDIR%% fi loop_do_cmd fi ;; stop) if checkyesno frr_enable; then # watchfrr do not stop all daemons, so need to stop it first # then continuing with all others daemons if [ "${frr_daemons}" = "watchfrr" ]; then loop_do_cmd frr_daemons=${watchfrr_daemons} fi frr_daemons=$(reverse_list ${frr_daemons}) loop_do_cmd fi ;; restart) if checkyesno frr_enable; then - # watchfrr calls "service frr restart all" at startup - # to start all services - frr_daemons=$(reverse_list ${frr_daemons}) - frr_cmd=stop - loop_do_cmd - frr_daemons=$(reverse_list ${frr_daemons}) - frr_cmd=start - loop_do_cmd + # "service frr restart all" (watchfrr's -r hook) arrives + # with the full daemon list: stop then start each daemon. + # + # "service frr restart" (no arg) has frr_daemons=watchfrr. + # Restarting watchfrr alone does NOT bounce the daemons it + # supervises; it only re-attaches to the ones still running. + # Mirror upstream frrinit.sh "restart" (stop watchfrr, stop + # all daemons, start watchfrr) so the whole stack cycles. + if [ "${frr_daemons}" = "watchfrr" ]; then + frr_cmd=stop + loop_do_cmd + frr_daemons=$(reverse_list ${watchfrr_daemons}) + loop_do_cmd + frr_daemons=watchfrr + frr_cmd=start + loop_do_cmd + else + frr_daemons=$(reverse_list ${frr_daemons}) + frr_cmd=stop + loop_do_cmd + frr_daemons=$(reverse_list ${frr_daemons}) + frr_cmd=start + loop_do_cmd + fi fi ;; reload) if ! [ -x %%PREFIX%%/sbin/frr-reload.py ]; then echo "Please install frr-pythontools package. Required for reload" exit 0 fi %%PREFIX%%/sbin/frr-reload.py --reload --confdir %%ETCDIR%% --rundir /var/run/frr %%ETCDIR%%/frr.conf ;; *) loop_do_cmd ;; esac diff --git a/net/frr10/files/patch-Makefile.am b/net/frr10/files/patch-Makefile.am index 7941b6a84ce7..5fd35cbbc152 100644 --- a/net/frr10/files/patch-Makefile.am +++ b/net/frr10/files/patch-Makefile.am @@ -1,11 +1,11 @@ ---- Makefile.am.orig 2024-11-12 16:20:46 UTC +--- Makefile.am.orig 2026-04-21 05:19:06 UTC +++ Makefile.am -@@ -182,7 +182,7 @@ include grpc/subdir.am +@@ -184,7 +184,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 mgmtd/subdir.am diff --git a/net/frr10/files/patch-lib_zclient.c b/net/frr10/files/patch-lib_zclient.c new file mode 100644 index 000000000000..01ebda370c7d --- /dev/null +++ b/net/frr10/files/patch-lib_zclient.c @@ -0,0 +1,43 @@ +--- lib/zclient.c.orig 2026-07-15 15:51:52 UTC ++++ lib/zclient.c +@@ -3191,6 +3191,8 @@ size_t zebra_interface_link_params_write(struct stream + * : : + * | | + * +-+-+-+-+-+-+-+-+ ++ * | dst_pfx_len | prefixlen of destination (peer) address; 0 = unknown ++ * +-+-+-+-+-+-+-+-+ + */ + + static int memconstant(const void *s, int c, size_t n) +@@ -3243,6 +3245,7 @@ struct connected *zebra_interface_address_read(int typ + + /* Fetch destination address. */ + STREAM_GET(&d.u.prefix, s, plen); ++ STREAM_GETC(s, d.prefixlen); + + /* N.B. NULL destination pointers are encoded as all zeroes */ + dp = memconstant(&d.u.prefix, 0, plen) ? NULL : &d; +@@ -3256,10 +3259,19 @@ struct connected *zebra_interface_address_read(int typ + } + if (ifc) { + ifc->flags = ifc_flags; +- if (ifc->destination) +- ifc->destination->prefixlen = +- ifc->address->prefixlen; +- else if (CHECK_FLAG(ifc->flags, ZEBRA_IFA_PEER)) { ++ if (ifc->destination) { ++ /* Preserve peer-side prefixlen from the wire ++ * (FreeBSD point-to-point tunnels: local /32, ++ * peer carries the real subnet prefixlen). ++ * Fall back to address prefixlen when the ++ * sender didn't supply one. */ ++ if (d.prefixlen) ++ ifc->destination->prefixlen = ++ d.prefixlen; ++ else ++ ifc->destination->prefixlen = ++ ifc->address->prefixlen; ++ } else if (CHECK_FLAG(ifc->flags, ZEBRA_IFA_PEER)) { + /* carp interfaces on OpenBSD with 0.0.0.0/0 as + * "peer" */ + flog_err( diff --git a/net/frr10/files/patch-lib_zclient.h b/net/frr10/files/patch-lib_zclient.h new file mode 100644 index 000000000000..4ed6e9734269 --- /dev/null +++ b/net/frr10/files/patch-lib_zclient.h @@ -0,0 +1,11 @@ +--- lib/zclient.h.orig 2026-06-01 18:27:57 UTC ++++ lib/zclient.h +@@ -420,7 +420,7 @@ extern int zclient_bfd_session_update(ZAPI_CALLBACK_AR + #define ZAPI_MESSAGE_SRTE 0x0200 + #define ZAPI_MESSAGE_OPAQUE 0x0400 + +-#define ZSERV_VERSION 6 ++#define ZSERV_VERSION 7 + /* Zserv protocol message header */ + struct zmsghdr { + uint16_t length; diff --git a/net/frr10/files/patch-ospfd_ospf__packet.c b/net/frr10/files/patch-ospfd_ospf__packet.c new file mode 100644 index 000000000000..b9aab599913a --- /dev/null +++ b/net/frr10/files/patch-ospfd_ospf__packet.c @@ -0,0 +1,24 @@ +--- ospfd/ospf_packet.c.orig 2026-07-15 15:51:52 UTC ++++ ospfd/ospf_packet.c +@@ -3244,9 +3244,18 @@ static int ospf_make_hello(struct ospf_interface *oi, + /* Set netmask of interface. */ + if (!(CHECK_FLAG(oi->connected->flags, ZEBRA_IFA_UNNUMBERED) + && oi->type == OSPF_IFTYPE_POINTOPOINT) +- && oi->type != OSPF_IFTYPE_VIRTUALLINK) +- masklen2ip(oi->address->prefixlen, &mask); +- else ++ && oi->type != OSPF_IFTYPE_VIRTUALLINK) { ++ /* For a peer-addressed interface (FreeBSD gif/gre/vti tunnels) ++ * the local address is /32; the real subnet prefixlen lives on ++ * the peer. Use that one so strict OSPF peers (RouterOS, IOS, ++ * Junos) don't see a /32 mask on a numbered link. ++ */ ++ if (CONNECTED_PEER(oi->connected)) ++ masklen2ip(oi->connected->destination->prefixlen, ++ &mask); ++ else ++ masklen2ip(oi->address->prefixlen, &mask); ++ } else + memset((char *)&mask, 0, sizeof(struct in_addr)); + stream_put_ipv4(s, mask.s_addr); + diff --git a/net/frr10/files/patch-zebra_connected.c b/net/frr10/files/patch-zebra_connected.c new file mode 100644 index 000000000000..fc2c6a4a63a3 --- /dev/null +++ b/net/frr10/files/patch-zebra_connected.c @@ -0,0 +1,14 @@ +--- zebra/connected.c.orig 2026-05-30 23:00:53 UTC ++++ zebra/connected.c +@@ -60,7 +60,10 @@ static void connected_announce(struct interface *ifp, + return; + + if (!if_is_loopback(ifp) && ifc->address->family == AF_INET) { +- if (ifc->address->prefixlen == IPV4_MAX_BITLEN) ++ struct prefix *p = CONNECTED_PEER(ifc) ? ifc->destination ++ : ifc->address; ++ ++ if (p->prefixlen == IPV4_MAX_BITLEN) + SET_FLAG(ifc->flags, ZEBRA_IFA_UNNUMBERED); + else + UNSET_FLAG(ifc->flags, ZEBRA_IFA_UNNUMBERED); diff --git a/net/frr10/files/patch-zebra_zapi__msg.c b/net/frr10/files/patch-zebra_zapi__msg.c new file mode 100644 index 000000000000..a68d06bb7faf --- /dev/null +++ b/net/frr10/files/patch-zebra_zapi__msg.c @@ -0,0 +1,18 @@ +--- zebra/zapi_msg.c.orig 2026-05-31 06:08:07 UTC ++++ zebra/zapi_msg.c +@@ -309,10 +309,13 @@ int zsend_interface_address(int cmd, struct zserv *cli + + /* Destination. */ + p = ifc->destination; +- if (p) ++ if (p) { + stream_put(s, &p->u.prefix, blen); +- else ++ stream_putc(s, p->prefixlen); ++ } else { + stream_put(s, NULL, blen); ++ stream_putc(s, 0); ++ } + + /* Write packet size. */ + stream_putw_at(s, 0, stream_get_endp(s)); diff --git a/net/frr10/pkg-plist b/net/frr10/pkg-plist index 60fff1821dff..dde1e10226dc 100644 --- a/net/frr10/pkg-plist +++ b/net/frr10/pkg-plist @@ -1,335 +1,338 @@ bin/vtysh include/frr/eigrpd/eigrp_dump.h include/frr/eigrpd/eigrp_topology.h include/frr/eigrpd/eigrpd.h include/frr/lib/admin_group.h include/frr/lib/affinitymap.h include/frr/lib/agg_table.h include/frr/lib/asn.h include/frr/lib/assert/assert.h include/frr/lib/atomlist.h +include/frr/lib/atomptr.h include/frr/lib/base64.h include/frr/lib/bfd.h include/frr/bfdd/bfddp_packet.h include/frr/lib/bitfield.h include/frr/lib/buffer.h include/frr/lib/checksum.h include/frr/lib/command.h include/frr/lib/command_graph.h include/frr/lib/command_match.h include/frr/lib/compiler.h include/frr/lib/cspf.h include/frr/lib/csv.h include/frr/lib/darr.h include/frr/lib/db.h include/frr/lib/debug.h include/frr/lib/defaults.h include/frr/lib/distribute.h include/frr/lib/ferr.h include/frr/lib/filter.h include/frr/lib/flex_algo.h include/frr/lib/freebsd-queue.h include/frr/lib/frr_pthread.h include/frr/lib/frratomic.h include/frr/lib/frrcu.h include/frr/lib/frrdistance.h include/frr/lib/frrevent.h include/frr/lib/frrlua.h include/frr/lib/frrscript.h include/frr/lib/frrsendmmsg.h include/frr/lib/frrstr.h include/frr/lib/graph.h include/frr/lib/hash.h include/frr/lib/hook.h include/frr/lib/host_nb.h include/frr/lib/iana_afi.h include/frr/lib/id_alloc.h include/frr/lib/if.h include/frr/lib/if_rmap.h include/frr/lib/ipaddr.h include/frr/lib/iso.h include/frr/lib/jhash.h include/frr/lib/json.h include/frr/lib/keychain.h include/frr/lib/ldp_sync.h include/frr/lib/libagentx.h include/frr/lib/lib_errors.h include/frr/lib/lib_vty.h include/frr/lib/libfrr.h include/frr/lib/libfrr_trace.h include/frr/lib/libospf.h include/frr/lib/link_state.h include/frr/lib/linklist.h include/frr/lib/log.h include/frr/lib/log_vty.h include/frr/lib/md5.h include/frr/lib/memory.h include/frr/lib/mgmt_be_client.h include/frr/lib/mgmt_defines.h include/frr/lib/mgmt_fe_client.h include/frr/lib/mgmt_msg.h include/frr/lib/mgmt_msg_native.h include/frr/lib/mlag.h include/frr/lib/module.h include/frr/lib/monotime.h include/frr/lib/mpls.h include/frr/lib/netlink_parser.h include/frr/lib/network.h include/frr/lib/nexthop.h include/frr/lib/nexthop_group.h include/frr/lib/nexthop_group_private.h include/frr/lib/northbound.h include/frr/lib/northbound_cli.h include/frr/lib/northbound_db.h include/frr/lib/ns.h include/frr/lib/openbsd-queue.h include/frr/lib/openbsd-tree.h include/frr/lib/vlan.h include/frr/lib/workqueue.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/lib/pbr.h include/frr/lib/plist.h include/frr/lib/prefix.h include/frr/lib/printfrr.h include/frr/lib/privs.h include/frr/lib/ptm_lib.h include/frr/lib/pullwr.h include/frr/lib/pw.h include/frr/lib/qobj.h include/frr/lib/queue.h include/frr/lib/resolver.h include/frr/lib/ringbuf.h include/frr/lib/route_opaque.h include/frr/lib/route_types.h include/frr/lib/routemap.h include/frr/lib/routing_nb.h include/frr/lib/sbuf.h include/frr/lib/segment_routing.h include/frr/lib/seqlock.h include/frr/lib/sha256.h include/frr/lib/sigevent.h include/frr/lib/skiplist.h include/frr/lib/smux.h include/frr/lib/sockopt.h include/frr/lib/sockunion.h include/frr/lib/spf_backoff.h include/frr/lib/srcdest_table.h include/frr/lib/srte.h include/frr/lib/srv6.h include/frr/lib/stream.h include/frr/lib/systemd.h include/frr/lib/table.h include/frr/lib/tc.h include/frr/lib/termtable.h include/frr/lib/trace.h include/frr/lib/typerb.h include/frr/lib/typesafe.h include/frr/lib/vector.h include/frr/lib/version.h include/frr/lib/vrf.h include/frr/lib/vrf_int.h include/frr/lib/vty.h include/frr/lib/vxlan.h include/frr/lib/wheel.h include/frr/lib/xref.h include/frr/lib/yang.h include/frr/lib/yang_translator.h include/frr/lib/yang_wrappers.h include/frr/lib/zclient.h include/frr/lib/zebra.h include/frr/lib/zlog.h include/frr/lib/zlog_5424.h include/frr/lib/zlog_live.h include/frr/lib/zlog_recirculate.h include/frr/lib/zlog_targets.h include/frr/zebra/connected.h include/frr/zebra/debug.h include/frr/zebra/ge_netlink.h include/frr/zebra/if_netlink.h include/frr/zebra/interface.h include/frr/zebra/ioctl.h include/frr/zebra/ipforward.h include/frr/zebra/kernel_netlink.h include/frr/zebra/kernel_socket.h include/frr/zebra/label_manager.h include/frr/zebra/netconf_netlink.h include/frr/zebra/redistribute.h include/frr/zebra/rib.h include/frr/zebra/router-id.h include/frr/zebra/rt.h include/frr/zebra/rt_netlink.h include/frr/zebra/rtadv.h include/frr/zebra/rule_netlink.h include/frr/zebra/table_manager.h include/frr/zebra/tc_netlink.h include/frr/zebra/zapi_msg.h include/frr/zebra/zebra_affinitymap.h include/frr/zebra/zebra_dplane.h include/frr/zebra/zebra_errors.h include/frr/zebra/zebra_evpn.h +include/frr/zebra/zebra_evpn_base.h include/frr/zebra/zebra_evpn_mac.h include/frr/zebra/zebra_evpn_mh.h include/frr/zebra/zebra_evpn_neigh.h include/frr/zebra/zebra_evpn_vxlan.h include/frr/zebra/zebra_fpm_private.h include/frr/zebra/zebra_l2.h include/frr/zebra/zebra_l2_bridge_if.h include/frr/zebra/zebra_mlag.h include/frr/zebra/zebra_mlag_vty.h include/frr/zebra/zebra_mpls.h include/frr/zebra/zebra_mroute.h include/frr/zebra/zebra_nb.h include/frr/zebra/zebra_neigh.h include/frr/zebra/zebra_netns_id.h include/frr/zebra/zebra_netns_notify.h include/frr/zebra/zebra_nhg.h include/frr/zebra/zebra_nhg_private.h include/frr/zebra/zebra_ns.h include/frr/zebra/zebra_opaque.h include/frr/zebra/zebra_pbr.h include/frr/zebra/zebra_ptm.h include/frr/zebra/zebra_ptm_redistribute.h include/frr/zebra/zebra_pw.h include/frr/zebra/zebra_rnh.h include/frr/zebra/zebra_routemap.h include/frr/zebra/zebra_routemap_nb.h include/frr/zebra/zebra_router.h include/frr/zebra/zebra_script.h include/frr/zebra/zebra_srte.h include/frr/zebra/zebra_srv6.h include/frr/zebra/zebra_srv6_vty.h include/frr/zebra/zebra_tc.h include/frr/zebra/zebra_trace.h include/frr/zebra/zebra_vrf.h include/frr/zebra/zebra_vxlan.h include/frr/zebra/zebra_vxlan_if.h include/frr/zebra/zebra_vxlan_private.h include/frr/zebra/zserv.h share/yang/frr-logging.yang share/yang/ietf-syslog-types.yang 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 lib/libmlag_pb.a lib/libmlag_pb.so lib/libmlag_pb.so.0 lib/libmlag_pb.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-backend.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-host.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-config.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 share/yang/ietf-srv6-types.yang @dir(frr,frr,755) /var/run/frr