lantiq: add runtime generation of /etc/config/network
SVN-Revision: 29161
This commit is contained in:
parent
13839520bc
commit
bbe96f13a6
4 changed files with 135 additions and 26 deletions
5
target/linux/lantiq/base-files.mk
Normal file
5
target/linux/lantiq/base-files.mk
Normal file
|
@ -0,0 +1,5 @@
|
|||
define Package/base-files/install-target
|
||||
rm -f $(1)/etc/config/network
|
||||
endef
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
config interface loopback
|
||||
option ifname lo
|
||||
option proto static
|
||||
option ipaddr 127.0.0.1
|
||||
option netmask 255.0.0.0
|
||||
|
||||
config interface lan
|
||||
option ifname eth0
|
||||
option type bridge
|
||||
option proto static
|
||||
option ipaddr 192.168.1.1
|
||||
option netmask 255.255.255.0
|
||||
|
||||
config atm-bridge
|
||||
option unit 0
|
||||
option encaps llc
|
||||
option vpi 1
|
||||
option vci 32
|
||||
option payload bridged # some ISPs need this set to 'routed'
|
||||
|
||||
config interface wan
|
||||
option ifname nas0
|
||||
option proto pppoe
|
||||
option username ""
|
||||
option password ""
|
||||
option unit 0
|
126
target/linux/lantiq/base-files/etc/uci-defaults/network
Executable file
126
target/linux/lantiq/base-files/etc/uci-defaults/network
Executable file
|
@ -0,0 +1,126 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2011 OpenWrt.org
|
||||
#
|
||||
|
||||
set_interface_loopback() {
|
||||
uci batch <<EOF
|
||||
set network.loopback='interface'
|
||||
set network.loopback.ifname='lo'
|
||||
set network.loopback.proto='static'
|
||||
set network.loopback.ipaddr='127.0.0.1'
|
||||
set network.loopback.netmask='255.0.0.0'
|
||||
EOF
|
||||
}
|
||||
|
||||
set_interface_raw() {
|
||||
local cfg=$1
|
||||
local ifname=$2
|
||||
|
||||
uci batch <<EOF
|
||||
set network.$cfg='interface'
|
||||
set network.$cfg.ifname='$ifname'
|
||||
set network.$cfg.proto='none'
|
||||
EOF
|
||||
}
|
||||
|
||||
set_interface_lan() {
|
||||
local ifname=$1
|
||||
|
||||
uci batch <<EOF
|
||||
set network.lan='interface'
|
||||
set network.lan.ifname='$ifname'
|
||||
set network.lan.type='bridge'
|
||||
set network.lan.proto='static'
|
||||
set network.lan.ipaddr='192.168.1.1'
|
||||
set network.lan.netmask='255.255.255.0'
|
||||
EOF
|
||||
}
|
||||
|
||||
set_interface_wan() {
|
||||
local ifname=$1
|
||||
|
||||
uci batch <<EOF
|
||||
set network.wan='interface'
|
||||
set network.wan.ifname='$ifname'
|
||||
set network.wan.proto='dhcp'
|
||||
EOF
|
||||
}
|
||||
|
||||
set_atm_wan() {
|
||||
local vpi=$1
|
||||
local vci=$2
|
||||
local encaps=$3
|
||||
local payload=$4
|
||||
|
||||
uci batch <<EOF
|
||||
set network.atm='atm-bridge'
|
||||
set network.atm.unit='0'
|
||||
set network.atm.vpi='$vpi'
|
||||
set network.atm.vci='$vci'
|
||||
set network.atm.encaps='$encaps'
|
||||
set network.atm.payload='$payload'
|
||||
set network.wan='interface'
|
||||
set network.wan.ifname='nas0'
|
||||
set network.wan.proto='pppoe'
|
||||
set network.wan.username='foo'
|
||||
set network.wan.password='bar'
|
||||
EOF
|
||||
}
|
||||
|
||||
set_interfaces_lan_wan() {
|
||||
local lan_ifname=$1
|
||||
local wan_ifname=$2
|
||||
|
||||
set_interface_lan "$lan_ifname"
|
||||
set_interface_wan "$wan_ifname"
|
||||
}
|
||||
|
||||
add_switch() {
|
||||
local name=$1
|
||||
local reset=$2
|
||||
local enable=$3
|
||||
uci batch <<EOF
|
||||
add network switch
|
||||
set network.@switch[-1].name='$name'
|
||||
set network.@switch[-1].reset='$reset'
|
||||
set network.@switch[-1].enable_vlan='$enable'
|
||||
EOF
|
||||
}
|
||||
|
||||
add_switch_vlan() {
|
||||
local device=$1
|
||||
local vlan=$2
|
||||
local ports=$3
|
||||
uci batch <<EOF
|
||||
add network switch_vlan
|
||||
set network.@switch_vlan[-1].device='$device'
|
||||
set network.@switch_vlan[-1].vlan='$vlan'
|
||||
set network.@switch_vlan[-1].ports='$ports'
|
||||
EOF
|
||||
}
|
||||
|
||||
[ -e /etc/config/network ] && exit 0
|
||||
|
||||
. /lib/lantiq.sh
|
||||
|
||||
touch /etc/config/network
|
||||
|
||||
set_interface_loopback
|
||||
set_interface_lan 'eth0'
|
||||
|
||||
dsl=$(lantiq_soc_has_adsl)
|
||||
[ -z "$dsl" ] || set_atm_wan '1' '32' 'llc' 'bridged'
|
||||
|
||||
board=$(lantiq_board_name)
|
||||
|
||||
case "$board" in
|
||||
*)
|
||||
# custom foo goes here
|
||||
true
|
||||
;;
|
||||
esac
|
||||
|
||||
uci commit network
|
||||
|
||||
exit 0
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
lantiq_soc_has_adsl() {
|
||||
ls /lib/modules/*/drv_dsl_cpe_api.ko
|
||||
}
|
||||
|
||||
lantiq_soc_name() {
|
||||
grep ^system /proc/cpuinfo | sed "s/system type.*: \(.*\)/\1/g"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue