Add BFD daemon to the build process and packaging instructions.
Currently the bfdd daemon does nothing, this is just to document how the
daemon insertion step occured.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
include pimd/subdir.am
include pbrd/subdir.am
include staticd/subdir.am
+include bfdd/subdir.am
SUBDIRS = . @LIBRFP@ @RFPTEST@ \
@BGPD@ \
AS_HELP_STRING([--enable-numeric-version], [Only numeric digits allowed in version (for Alpine)]))
AC_ARG_ENABLE([gcov],
AS_HELP_STRING([--enable-gcov], [Add code coverage information]))
+AC_ARG_ENABLE(bfdd,
+ AS_HELP_STRING([--disable-bfdd], [do not build bfdd]))
AS_IF([test "${enable_clippy_only}" != "yes"], [
AC_CHECK_HEADERS(json-c/json.h)
AC_DEFINE(HAVE_LDPD, 1, ldpd)
])
+if test "$enable_bfdd" = "no"; then
+ AC_DEFINE(HAVE_BFDD, 0, bfdd)
+ BFDD=""
+else
+ AC_DEFINE(HAVE_BFDD, 1, bfdd)
+ BFDD="bfdd"
+
+ case $host_os in
+ linux*)
+ AC_DEFINE(BFD_LINUX, 1, bfdd)
+ ;;
+
+ *)
+ AC_DEFINE(BFD_BSD, 1, bfdd)
+ ;;
+ esac
+fi
+
+AM_CONDITIONAL(BFDD, [test "x$BFDD" = "xbfdd"])
+
+if test $ac_cv_lib_json_c_json_object_get = no -a "x$BFDD" = "xbfdd"; then
+ AC_MSG_ERROR(["you must use json-c library to use bfdd"])
+fi
+
NHRPD=""
case "$host_os" in
linux*)
AC_DEFINE_UNQUOTED(LDPD_SOCKET, "$frr_statedir/ldpd.sock",ldpd control socket)
AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$frr_statedir/zserv.api",zebra api socket)
+AC_DEFINE_UNQUOTED(BFDD_CONTROL_SOCKET, "$frr_statedir/bfdd.sock", bfdd control socket)
AC_DEFINE_UNQUOTED(DAEMON_VTY_DIR, "$frr_statedir",daemon vty directory)
dnl autoconf does this, but it does it too late...
--enable-poll=yes \
$(USE_CUMULUS) \
$(USE_PIM) \
+ --disable-bfdd \
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(shell dpkg-buildflags --export=configure); \
WANT_MULTIPATH ?= 1
WANT_SNMP ?= 0
WANT_RPKI ?= 0
+WANT_BFD ?= 1
# NOTES:
#
USE_RPKI=--disable-rpki
endif
+ifeq ($(WANT_BFD), 1)
+ USE_BFD=--enable-bfdd
+else
+ USE_BFD=--disable-bfdd
+endif
+
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(USE_RPKI) \
+ $(USE_BFD) \
$(shell dpkg-buildflags --export=configure); \
fi
WANT_MULTIPATH ?= 1
WANT_SNMP ?= 0
WANT_RPKI ?= 0
+WANT_BFD ?= 1
# NOTES:
#
USE_RPKI=--disable-rpki
endif
+ifeq ($(WANT_BFD), 1)
+ USE_BFD=--enable-bfdd
+else
+ USE_BFD=--disable-bfdd
+endif
+
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(USE_RPKI) \
+ $(USE_BFD) \
$(shell dpkg-buildflags --export=configure); \
fi
sharpd=no
pbrd=no
staticd=no
+bfdd=no
+
#
# Command line options for the daemons
#
sharpd_options=("-A 127.0.0.1")
pbrd_options=("-A 127.0.0.1")
staticd_options=("-A 127.0.0.1")
+bfdd_options=("-A 127.0.0.1")
#
# If the vtysh_enable is yes, then the unified config is read
#
# chkconfig: 2345 15 85
#
-# description: FRRouting (FRR) is a routing suite for IP routing protocols
+# description: FRRouting (FRR) is a routing suite for IP routing protocols
# like BGP, OSPF, RIP and others. This script contols the main
# daemon "frr" as well as the individual protocol daemons.
#
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop the FRR Routing daemons
-# Description: FRRouting (FRR) is a routing suite for IP routing protocols
+# Description: FRRouting (FRR) is a routing suite for IP routing protocols
# like BGP, OSPF, RIP and others. This script contols the main
# daemon "frr" as well as the individual protocol daemons.
### END INIT INFO
# Local Daemon selection may be done by using /etc/frr/daemons.
# See /usr/share/doc/frr/README.Debian.gz for further information.
# Keep zebra first and do not list watchfrr!
-DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd pimd pbrd ldpd nhrpd eigrpd babeld staticd sharpd"
+DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd pimd pbrd ldpd nhrpd eigrpd babeld staticd sharpd bfdd"
MAX_INSTANCES=5
RELOAD_SCRIPT=/usr/lib/frr/frr-reload.py
endscript
}
+/var/log/frr/bfdd.log {
+ notifempty
+ missingok
+ postrotate
+ /bin/kill -USR1 `cat /var/run/frr/bfdd.pid 2> /dev/null` 2> /dev/null || true
+ endscript
+}
#################### FRRouting (FRR) configure options #####################
# with-feature options
%{!?with_babeld: %global with_babeld 1 }
+%{!?with_bfdd: %global with_bfdd 1 }
%{!?with_bgp_vnc: %global with_bgp_vnc 0 }
%{!?with_cumulus: %global with_cumulus 0 }
%{!?with_eigrpd: %global with_eigrpd 1 }
%{!?frr_gid: %global frr_gid 92 }
%{!?vty_gid: %global vty_gid 85 }
-%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd
+%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd bfdd
%if %{with_ldpd}
%define daemon_ldpd ldpd
%define daemon_watchfrr ""
%endif
-%define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_eigrpd} %{daemon_babeld} %{daemon_watchfrr} %{daemon_pbrd}
+%if %{with_bfdd}
+ %define daemon_bfdd bfdd
+%else
+ %define daemon_bfdd ""
+%endif
+
+%define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_eigrpd} %{daemon_babeld} %{daemon_watchfrr} %{daemon_pbrd} %{daemon_bfdd}
#release sub-revision (the two digits after the CONFDATE)
%{!?release_rev: %global release_rev 01 }
the current complexity of the Internet.
FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
-NHRP, Babel, PBR and EIGRP.
+NHRP, Babel, PBR, EIGRP and BFD.
FRRouting is a fork of Quagga.
--enable-systemd \
%endif
%if %{with_rpki}
- --enable-rpki
+ --enable-rpki \
+%else
+ --disable-rpki \
+%endif
+%if %{with_bfdd}
+ --enable-bfdd
%else
- --disable-rpki
+ --disable-bfdd
%endif
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split" SPHINXBUILD=%{sphinx}
%if %{with_eigrpd}
zebra_spec_add_service eigrpd 2613/tcp "EIGRPd vty"
%endif
+%if %{with_bfdd}
+ zebra_spec_add_service bfdd 2617/tcp "BFDd vty"
+%endif
%if "%{initsystem}" == "systemd"
for daemon in %all_daemons ; do
%if %{with_babeld}
%{_sbindir}/babeld
%endif
+%if %{with_bfdd}
+ %{_sbindir}/bfdd
+%endif
%{_libdir}/lib*.so.0
%{_libdir}/lib*.so.0.*
%if %{with_fpm}
%changelog
+* Sun May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org> - %{version}
+- Add BFDd support
+
* Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org>
- Fixed RPKI RPM build
babeld=no
sharpd=no
pbrd=no
+bfdd=no
sharpd_options=" --daemon -A 127.0.0.1"
pbrd_options=" --daemon -A 127.0.0.1"
staticd_options=" --daemon -A 127.0.0.1"
+bfdd_options=" --daemon -A 127.0.0.1"
# The list of daemons to watch is automatically generated by the init script.
watchfrr_enable=yes
# Local Daemon selection may be done by using /etc/frr/daemons.
# See /usr/share/doc/frr/README.Debian.gz for further information.
# Keep zebra first and do not list watchfrr!
-DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd staticd"
+DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd staticd bfdd"
MAX_INSTANCES=5
RELOAD_SCRIPT=/usr/lib/frr/frr-reload.py