From: Jo-Philipp Wich Date: Wed, 14 Feb 2018 13:58:08 +0000 (+0100) Subject: 6in4: support multiple additional user prefixes X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=e83bc5e3c7531fe1a4ac090d49235274ba04b417;p=openwrt%2Fstaging%2Fblogic.git 6in4: support multiple additional user prefixes Support configuration in the form... list ip6prefix 2001:db8:1234::/64 list ip6prefix 2001:db8:5678::/64 ... to allow specifying multiple routed IPv6 prefixes. Implements feature request FS#1361. Signed-off-by: Jo-Philipp Wich Acked-by: Hans Dedecker --- diff --git a/package/network/ipv6/6in4/Makefile b/package/network/ipv6/6in4/Makefile index 34227ce9ef52..8ff4730e74f7 100644 --- a/package/network/ipv6/6in4/Makefile +++ b/package/network/ipv6/6in4/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=6in4 -PKG_VERSION:=24 +PKG_VERSION:=25 PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/network/ipv6/6in4/files/6in4.sh b/package/network/ipv6/6in4/files/6in4.sh index 786f37fc14c8..941dc43d688f 100755 --- a/package/network/ipv6/6in4/files/6in4.sh +++ b/package/network/ipv6/6in4/files/6in4.sh @@ -22,13 +22,18 @@ proto_6in4_update() { ' "$1" "$@" } +proto_6in4_add_prefix() { + append "$3" "$1" +} + proto_6in4_setup() { local cfg="$1" local iface="$2" local link="6in4-$cfg" - local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunlink tunnelid username password updatekey - json_get_vars mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunlink tunnelid username password updatekey + local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey + json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey + json_for_each_item proto_6in4_add_prefix ip6prefix ip6prefixes [ -z "$peeraddr" ] && { proto_notify_error "$cfg" "MISSING_ADDRESS" @@ -61,10 +66,10 @@ proto_6in4_setup() { proto_add_ipv6_route "::" 0 "" "" "" "$local6/$mask6" } - [ -n "$ip6prefix" ] && { + for ip6prefix in $ip6prefixes; do proto_add_ipv6_prefix "$ip6prefix" proto_add_ipv6_route "::" 0 "" "" "" "$ip6prefix" - } + done proto_add_tunnel json_add_string mode sit @@ -122,7 +127,7 @@ proto_6in4_init_config() { proto_config_add_string "ipaddr" proto_config_add_string "ip6addr" - proto_config_add_string "ip6prefix" + proto_config_add_array "ip6prefix" proto_config_add_string "peeraddr" proto_config_add_string "tunlink" proto_config_add_string "tunnelid"