forked from freifunk-franken/firmware
Bird 2 has a few advantages over babeld. Especially the possiblity to dynamically reload the configuration without restarting the daemon and birds significant performance advantage make it an interesting alternative to babeld for our firmware. This adds the necessary implementation-specific fff-babel-bird2 package, which allows to integrate bird2 into the fff firmware. Signed-off-by: Fabian Bläse <fabian@blaese.de> Acked-by: Christian Dresel <freifunk@dresel.systems>
46 lines
1.4 KiB
Bash
Executable File
46 lines
1.4 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2010-2017 OpenWrt.org
|
|
|
|
USE_PROCD=1
|
|
START=70
|
|
|
|
BIRD_BIN="/usr/sbin/bird"
|
|
BIRD_CONF="/etc/bird.conf"
|
|
BIRD_PID_FILE="/var/run/bird.pid"
|
|
|
|
start_service() {
|
|
mkdir -p /var/run
|
|
|
|
set_include_path
|
|
|
|
procd_open_instance
|
|
procd_set_param command $BIRD_BIN -f -c $BIRD_CONF -P $BIRD_PID_FILE
|
|
procd_set_param file "$BIRD_CONF"
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
procd_set_param respawn
|
|
procd_close_instance
|
|
}
|
|
|
|
reload_service() {
|
|
set_include_path
|
|
procd_send_signal fff-bird
|
|
}
|
|
|
|
set_include_path() {
|
|
# Change include file path, so bird uses the correct configuration, depending on the configuration state:
|
|
# - If test mode is active (and /tmp/bird/fff exists), switch to the temporary configuration to be tested.
|
|
# - If new settings are applied or the old settings are restored after an unsuccessful test (and /tmp/bird/fff does not exist),
|
|
# switch back to the permanent configuration (/etc/bird/fff).
|
|
|
|
mkdir -p /tmp/bird/include
|
|
|
|
if [ -d /tmp/bird/fff ]; then
|
|
echo 'include "/tmp/bird/fff/babelpeers/*.conf";' > /tmp/bird/include/babelpeers.conf
|
|
echo 'include "/tmp/bird/fff/nat-filter.conf";' > /tmp/bird/include/nat-filter.conf
|
|
else
|
|
echo 'include "/etc/bird/fff/babelpeers/*.conf";' > /tmp/bird/include/babelpeers.conf
|
|
echo 'include "/etc/bird/fff/nat-filter.conf";' > /tmp/bird/include/nat-filter.conf
|
|
fi
|
|
}
|