uradvd: add new packagelilik-openwrt-22.03
@ -0,0 +1,37 @@ | |||||
include $(TOPDIR)/rules.mk | |||||
PKG_NAME:=uradvd | |||||
PKG_RELEASE:=1 | |||||
PKG_SOURCE_PROTO:=git | |||||
PKG_SOURCE_URL=https://github.com/freifunk-gluon/uradvd.git | |||||
PKG_SOURCE_DATE:=2021-09-14 | |||||
PKG_SOURCE_VERSION:=9b0da60e27c67305d251b10163e388191d566d7a | |||||
PKG_MIRROR_HASH=c3c9cb5d3a7b30503bff64541bbcaffa84b33e0de39560a5efae077df4e9b134 | |||||
PKG_MAINTAINER:=Moritz Warning <moritzwarning@web.de> | |||||
PKG_LICENSE:=BSD-2-Clause | |||||
PKG_LICENSE_FILES:=LICENSE | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/uradvd | |||||
SECTION:=net | |||||
CATEGORY:=Network | |||||
TITLE:=A tiny radvd | |||||
endef | |||||
define Package/uradvd/description | |||||
Advertise an IPv6 prefix/route via SLAAC. | |||||
endef | |||||
define Package/uradvd/install | |||||
$(INSTALL_DIR) $(1)/etc/config/ | |||||
$(INSTALL_DATA) ./files/uradvd.config $(1)/etc/config/ | |||||
$(INSTALL_DIR) $(1)/etc/init.d/ | |||||
$(INSTALL_BIN) ./files/uradvd.init $(1)/etc/init.d/ | |||||
$(INSTALL_DIR) $(1)/usr/sbin | |||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uradvd $(1)/usr/sbin/ | |||||
endef | |||||
$(eval $(call BuildPackage,uradvd)) |
@ -0,0 +1,11 @@ | |||||
config interface | |||||
option enabled '0' | |||||
# send router advertisment over this device | |||||
# alternative: option device 'lan' | |||||
option ifname 'br-lan' | |||||
# lifetime of the default route (in seconds) | |||||
option default_lifetime '0' | |||||
list prefix_on_link '300::/64' | |||||
list prefix_off_link '200::/64' | |||||
list dns '2001:4860:4860::8888' |
@ -0,0 +1,72 @@ | |||||
#!/bin/sh /etc/rc.common | |||||
START=50 | |||||
USE_PROCD=1 | |||||
ARGS="" | |||||
append_prefix_off_link() { | |||||
ARGS="$ARGS -a $1" | |||||
} | |||||
append_prefix_on_link() { | |||||
ARGS="$ARGS -p $1" | |||||
} | |||||
append_dns() { | |||||
ARGS="$ARGS --rdnss $1" | |||||
} | |||||
start_instance() { | |||||
local cfg="$1" enabled device ifname default_lifetime | |||||
ARGS="" | |||||
config_get_bool enabled $cfg 'enabled' 1 | |||||
config_get device $cfg 'device' | |||||
config_get ifname $cfg 'ifname' | |||||
config_get default_lifetime $cfg 'default_lifetime' | |||||
if [ "$enabled" != "1" ]; then | |||||
exit 0 | |||||
fi | |||||
if [ -n "$device" ] && [ -n "$ifname" ]; then | |||||
echo "either set device or ifname" >&2 | |||||
exit 1 | |||||
fi | |||||
if [ -z "$device" ] && [ -z "$ifname" ]; then | |||||
echo "either set device or ifname" >&2 | |||||
exit 1 | |||||
fi | |||||
if [ -z "$ifname" ]; then | |||||
network_get_device 'ifname' "$ifname" | |||||
fi | |||||
if [ -z "$ifname" ]; then | |||||
echo "no valid device or ifname set" >&2 | |||||
exit 1 | |||||
fi | |||||
if [ -n "$default_lifetime" ]; then | |||||
ARGS="$ARGS --default-lifetime $default_lifetime" | |||||
fi | |||||
ARGS="$ARGS -i $ifname" | |||||
config_list_foreach $cfg 'prefix_off_link' append_prefix_off_link | |||||
config_list_foreach $cfg 'prefix_on_link' append_prefix_on_link | |||||
config_list_foreach $cfg "dns" append_dns | |||||
procd_open_instance | |||||
procd_set_param command /usr/sbin/uradvd $ARGS | |||||
procd_set_param respawn | |||||
procd_close_instance | |||||
} | |||||
start_service() { | |||||
config_load uradvd | |||||
config_foreach start_instance interface | |||||
} |