Skip to content

Commit

Permalink
debianpkg, redhat, tools: Fixup startup/build for new daemon
Browse files Browse the repository at this point in the history
Add code to allow FRR to properly build and handle the staticd
for some of the more common packaging.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
  • Loading branch information
donaldsharp committed Apr 26, 2018
1 parent c3e8968 commit 370394f
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 4 deletions.
2 changes: 1 addition & 1 deletion debianpkg/frr.logrotate
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# open, as well as the daemons, so always signal the daemons.
# It's safe, a NOP if (only) syslog is being used.
for i in babeld bgpd eigrpd isisd ldpd nhrpd ospf6d ospfd \
pimd ripd ripngd zebra ; do
pimd ripd ripngd zebra staticd ; do
if [ -e /var/run/frr/$i.pid ] ; then
pids="$pids $(cat /var/run/frr/$i.pid)"
fi
Expand Down
2 changes: 2 additions & 0 deletions redhat/daemons
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ eigrpd=no
babeld=no
sharpd=no
pbrd=no
staticd=no
#
# Command line options for the daemons
#
Expand All @@ -68,6 +69,7 @@ eigrpd_options=("-A 127.0.0.1")
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")

#
# If the vtysh_enable is yes, then the unified config is read
Expand Down
2 changes: 1 addition & 1 deletion redhat/frr.init
Original file line number Diff line number Diff line change
Expand Up @@ -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"
DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd pimd pbrd ldpd nhrpd eigrpd babeld staticd sharpd"
MAX_INSTANCES=5
RELOAD_SCRIPT=/usr/lib/frr/frr-reload.py

Expand Down
3 changes: 2 additions & 1 deletion redhat/frr.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
%{!?frr_gid: %global frr_gid 92 }
%{!?vty_gid: %global vty_gid 85 }

%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd
%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd

%if %{with_ldpd}
%define daemon_ldpd ldpd
Expand Down Expand Up @@ -408,6 +408,7 @@ zebra_spec_add_service ()

zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
zebra_spec_add_service zebra 2601/tcp "zebra vty"
zebra_spec_add_service staticd 2616/tcp "staticd vty"
zebra_spec_add_service ripd 2602/tcp "RIPd vty"
zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
Expand Down
1 change: 1 addition & 0 deletions tools/etc/frr/daemons.conf
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ eigrpd_options=" --daemon -A 127.0.0.1"
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"

# The list of daemons to watch is automatically generated by the init script.
watchfrr_enable=yes
Expand Down
23 changes: 22 additions & 1 deletion tools/frr
Original file line number Diff line number Diff line change
Expand Up @@ -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"
DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd staticd"
MAX_INSTANCES=5
RELOAD_SCRIPT=/usr/lib/frr/frr-reload.py

Expand Down Expand Up @@ -170,6 +170,22 @@ start()
`eval echo "$""$1""_options"`
fi
fi

# Start the staticd automatically
if [ "$1" = "zebra" ]; then
echo -n "starting staticd since zebra is running"
if ! check_daemon staticd ; then
echo -n " (binary does not exist)"
return;
fi

${SSD} \
--start \
--pidfile=`pidfile staticd` \
--exec "$D_PATH/staticd" \
-- \
`eval echo "$"staticd"_options"`
fi
}

# Stop the daemon given in the parameter, printing its name to the terminal.
Expand Down Expand Up @@ -210,6 +226,11 @@ stop()
echo -n " $inst"
rm -f `pidfile $inst`
rm -f `vtyfile $inst`

if [ "$1" = "zebra" ]; then
echo -n "Stopping staticd since zebra is running"
stop staticd
fi
fi
}

Expand Down

0 comments on commit 370394f

Please sign in to comment.