diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2015-12-03 22:27:06 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2015-12-03 22:27:06 +0000 |
commit | f6113588706628f09282a00205f901baf0c72a20 (patch) | |
tree | 3e405ca9a7ef0f93afaab79439384ff1535aa08d /package/base-files/files/bin/config_generate | |
parent | ac9bed4bc074d881d3d9ebe8f316dccff397723a (diff) | |
download | upstream-f6113588706628f09282a00205f901baf0c72a20.tar.gz upstream-f6113588706628f09282a00205f901baf0c72a20.tar.bz2 upstream-f6113588706628f09282a00205f901baf0c72a20.zip |
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
Diffstat (limited to 'package/base-files/files/bin/config_generate')
-rwxr-xr-x | package/base-files/files/bin/config_generate | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 264f7d3ed1..02f6998c84 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -20,12 +20,13 @@ generate_static_network() { EOF } +addr_offset=2 generate_network() { - local ifname macaddr type + local ifname macaddr protocol type json_select network json_select "$1" - json_get_vars ifname macaddr + json_get_vars ifname macaddr protocol json_select .. json_select .. @@ -45,23 +46,32 @@ generate_network() { set network.$1.macaddr='$macaddr' EOF - case "$1" in - lan) + case "$protocol" in + static) + local ipaddr + case "$1" in + lan) ipaddr="192.168.1.1" ;; + *) ipaddr="192.168.$((addr_offset++)).1" ;; + esac + uci -q batch <<-EOF set network.$1.proto='static' - set network.$1.ipaddr='192.168.1.1' + set network.$1.ipaddr='$ipaddr' set network.$1.netmask='255.255.255.0' set network.$1.ip6assign='60' EOF ;; - wan) + + dhcp) + # fixup IPv6 slave interface if parent is a bridge + [ "$type" = "bridge" ] && ifname="br-$1" + uci -q batch <<-EOF set network.$1.proto='dhcp' - delete network.wan6 - set network.wan6='interface' - set network.wan6.type='$type' - set network.wan6.ifname='$ifname' - set network.wan6.proto='dhcpv6' + delete network.${1}6 + set network.${1}6='interface' + set network.${1}6.ifname='$ifname' + set network.${1}6.proto='dhcpv6' EOF ;; esac |