base-files: add support for ipv6-prefixes in connection with netifd

SVN-Revision: 35168
This commit is contained in:
Steven Barth
2013-01-15 13:07:51 +00:00
parent 06890959d1
commit 847cd984b9
4 changed files with 51 additions and 1 deletions

View File

@@ -57,6 +57,20 @@ __network_parse_ifstatus()
fi
done
# parse prefixes
if json_is_a "ipv6_prefix" array; then
json_select "ipv6_prefix"
if json_is_a 1 object; then
json_select 1
__network_set_cache "${__key}_prefix6_address" address
__network_set_cache "${__key}_prefix6_mask" mask
json_select ".."
fi
json_select ".."
fi
# parse routes
if json_is_a route array; then
@@ -170,6 +184,22 @@ network_get_subnet() { __network_ipaddr "$1" "$2" 4 1; }
# 2: interface
network_get_subnet6() { __network_ipaddr "$1" "$2" 6 1; }
# determine IPv6 prefix
network_get_prefix6() {
local __prefix="$1"
local __iface="$2"
local __address
local __mask
__network_parse_ifstatus "$__iface" || return 1
__network_export __address "${__iface}_prefix6_address"
local return="$?"
[ "$return" -eq 0 ] || return $?
__network_export __mask "${__iface}_prefix6_mask"
eval "$__prefix=$__address/$__mask"
return 0
}
__network_gateway()
{