base-files: board.d: support specifiying the protocol of lan and wan

Some boards, e.g. the Sheeva Plug, require the lan interface to be set
to DHCP instead of a static address, therfore support that.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 47732
This commit is contained in:
Jo-Philipp Wich
2015-12-03 22:27:06 +00:00
parent ac9bed4bc0
commit f611358870
2 changed files with 47 additions and 21 deletions

View File

@ -32,9 +32,26 @@ json_select_object() {
_ucidef_set_interface() {
local name="$1"
local iface="$2"
local proto="$3"
json_select_object "$name"
json_add_string ifname "$iface"
if ! json_is_a protocol string; then
case "$proto" in
static|dhcp|none) : ;;
*)
case "$name" in
lan) proto="static" ;;
wan) proto="dhcp" ;;
*) proto="none" ;;
esac
;;
esac
json_add_string protocol "$proto"
fi
json_select ..
}
@ -57,19 +74,15 @@ ucidef_set_interface_loopback()
}
ucidef_set_interface_lan() {
local lan_if="$1"
json_select_object network
_ucidef_set_interface lan "$lan_if"
_ucidef_set_interface lan "$@"
json_select ..
}
ucidef_set_interface_wan() {
local wan_if="$1"
json_select_object network
_ucidef_set_interface wan "$wan_if"
json_select ..
json_select_object network
_ucidef_set_interface wan "$@"
json_select ..
}
ucidef_set_interfaces_lan_wan() {
@ -164,14 +177,17 @@ _ucidef_finish_switch_roles() {
json_select ..
json_select_object network
local devices
json_select_object "$role"
# attach previous interfaces (for multi-switch devices)
local devices; json_get_var devices ifname
json_get_var devices ifname
if ! list_contains devices "$device"; then
devices="${devices:+$devices }$device"
fi
json_add_string ifname "$devices"
json_select ..
_ucidef_set_interface "$role" "$devices"
json_select ..
done
}