bfdd: wire to the build process

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>
This commit is contained in:
Rafael Zalamena 2018-06-27 12:24:51 -03:00
parent e9e2c950d7
commit 7134904b1f
12 changed files with 87 additions and 9 deletions

View file

@ -56,6 +56,7 @@ include sharpd/subdir.am
include pimd/subdir.am
include pbrd/subdir.am
include staticd/subdir.am
include bfdd/subdir.am
SUBDIRS = . @LIBRFP@ @RFPTEST@ \
@BGPD@ \

View file

@ -452,6 +452,8 @@ AC_ARG_ENABLE([numeric_version],
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)
@ -1368,6 +1370,30 @@ AS_IF([test "${enable_ldpd}" != "no"], [
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*)
@ -1880,6 +1906,7 @@ AC_SUBST(frr_statedir)
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...

View file

@ -134,6 +134,7 @@ override_dh_auto_configure:
--enable-poll=yes \
$(USE_CUMULUS) \
$(USE_PIM) \
--disable-bfdd \
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(shell dpkg-buildflags --export=configure); \

View file

@ -16,6 +16,7 @@ WANT_CUMULUS_MODE ?= 0
WANT_MULTIPATH ?= 1
WANT_SNMP ?= 0
WANT_RPKI ?= 0
WANT_BFD ?= 1
# NOTES:
#
@ -108,6 +109,12 @@ else
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
@ -159,6 +166,7 @@ override_dh_auto_configure:
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(USE_RPKI) \
$(USE_BFD) \
$(shell dpkg-buildflags --export=configure); \
fi

View file

@ -16,6 +16,7 @@ WANT_CUMULUS_MODE ?= 0
WANT_MULTIPATH ?= 1
WANT_SNMP ?= 0
WANT_RPKI ?= 0
WANT_BFD ?= 1
# NOTES:
#
@ -108,6 +109,12 @@ else
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
@ -160,6 +167,7 @@ override_dh_auto_configure:
--enable-dependency-tracking \
$(USE_BGP_VNC) \
$(USE_RPKI) \
$(USE_BFD) \
$(shell dpkg-buildflags --export=configure); \
fi

View file

@ -52,6 +52,8 @@ babeld=no
sharpd=no
pbrd=no
staticd=no
bfdd=no
#
# Command line options for the daemons
#
@ -70,6 +72,7 @@ babeld_options=("-A 127.0.0.1")
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

View file

@ -33,7 +33,7 @@ V_PATH=/var/run/frr
# 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

View file

@ -86,3 +86,10 @@
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
}

View file

@ -11,6 +11,7 @@
#################### 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 }
@ -85,7 +86,7 @@
%{!?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
@ -129,7 +130,13 @@
%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 }
@ -193,7 +200,7 @@ protocol. It takes multi-server and multi-thread approach to resolve
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.
@ -331,9 +338,14 @@ developing OSPF-API and frr applications.
--enable-systemd \
%endif
%if %{with_rpki}
--enable-rpki
--enable-rpki \
%else
--disable-rpki
--disable-rpki \
%endif
%if %{with_bfdd}
--enable-bfdd
%else
--disable-bfdd
%endif
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split" SPHINXBUILD=%{sphinx}
@ -444,6 +456,9 @@ zebra_spec_add_service isisd 2608/tcp "ISISd vty"
%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
@ -591,6 +606,9 @@ fi
%if %{with_babeld}
%{_sbindir}/babeld
%endif
%if %{with_bfdd}
%{_sbindir}/bfdd
%endif
%{_libdir}/lib*.so.0
%{_libdir}/lib*.so.0.*
%if %{with_fpm}
@ -644,6 +662,9 @@ fi
%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

View file

@ -35,3 +35,4 @@ eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no

View file

@ -19,6 +19,7 @@ babeld_options=" --daemon -A 127.0.0.1"
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

View file

@ -21,7 +21,7 @@ V_PATH=/var/run/frr
# 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