Message ID | 20180214135808.28756-2-jo@mein.io |
---|---|
State | Accepted |
Delegated to: | Jo-Philipp Wich |
Headers | show |
Series | [LEDE-DEV,RFC,1/2] odhcp6c: support multiple additional user prefixes | expand |
On Wed, Feb 14, 2018 at 2:58 PM, Jo-Philipp Wich <jo@mein.io> wrote: > 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 <jo@mein.io> Acked-by: Hans Dedecker <dedeckeh@gmail.com> > --- > package/network/ipv6/6in4/Makefile | 2 +- > package/network/ipv6/6in4/files/6in4.sh | 15 ++++++++++----- > 2 files changed, 11 insertions(+), 6 deletions(-) > > diff --git a/package/network/ipv6/6in4/Makefile b/package/network/ipv6/6in4/Makefile > index 34227ce9ef..8ff4730e74 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 786f37fc14..941dc43d68 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" > -- > 2.15.1 >
diff --git a/package/network/ipv6/6in4/Makefile b/package/network/ipv6/6in4/Makefile index 34227ce9ef..8ff4730e74 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 786f37fc14..941dc43d68 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"
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 <jo@mein.io> --- package/network/ipv6/6in4/Makefile | 2 +- package/network/ipv6/6in4/files/6in4.sh | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-)