iopsys-feed/layer2interface/broadcom/etc/uci-defaults/20-layer2-config-generate

167 lines
3.9 KiB
Bash

#!/bin/sh
hasEthWan="$(db -q get hw.board.hasEthWan)"
hasEthWan=${hasEthWan:-1}
hasAdsl="$(db -q get hw.board.hasAdsl)"
hasVdsl="$(db -q get hw.board.hasVdsl)"
LANPORTS="$(db -q get hw.board.ethernetLanPorts)"
ETHDEV=""
PTMDEV=""
ATMDEV=""
WANIFACE=""
device_config_exists() {
ubus call uci get '{"config":"network","type":"device"}' | grep -w name | grep -qw "$1" && return 0
return 1
}
populate_dsl_settings() {
if [ "$hasAdsl" == "0" -a "$hasVdsl" == "0" ]; then
rm -f /etc/config/dsl
return
else
touch /etc/config/dsl
fi
if ! uci -q get dsl.line >/dev/null; then
uci -q set dsl.line="dsl-line"
if [ "$hasAdsl" == "1" ]; then
# Mode
uci -q add_list dsl.line.mode=gdmt
uci -q add_list dsl.line.mode=glite
uci -q add_list dsl.line.mode=t1413
uci -q add_list dsl.line.mode=adsl2
uci -q add_list dsl.line.mode=adsl2p
uci -q add_list dsl.line.mode=annexl
uci -q add_list dsl.line.mode=annexm
uci -q add_list dsl.line.mode=vdsl2
#uci -q add_list dsl.line.mode=gfast
fi
if [ "$hasVdsl" == "1" ]; then
# Mode
uci -q add_list dsl.line.mode=vdsl2
# Profile
uci -q add_list dsl.line.profile=8a
uci -q add_list dsl.line.profile=8b
uci -q add_list dsl.line.profile=8c
uci -q add_list dsl.line.profile=8d
uci -q add_list dsl.line.profile=12a
uci -q add_list dsl.line.profile=12b
uci -q add_list dsl.line.profile=17a
uci -q add_list dsl.line.profile=30a
#uci -q add_list dsl.line.profile=35b
# Capability
uci -q set dsl.line.us0=1
fi
# Capability
uci -q set dsl.line.bitswap=1
uci -q set dsl.line.sra=1
fi
uci -q commit dsl
}
populate_atm_device() {
[ "$hasAdsl" == "0" ] && return
# ATM Device
if ! uci -q get dsl.@atm-device[0] >/dev/null; then
uci -q set dsl.atm0=atm-device
uci -q set dsl.atm0.name="ATM835"
uci -q set dsl.atm0.device="atm0"
uci -q set dsl.atm0.vpi="8"
uci -q set dsl.atm0.vci="35"
uci -q set dsl.atm0.qos_class="ubr"
uci -q set dsl.atm0.link_type="eoa"
uci -q set dsl.atm0.encapsulation="llc"
uci -q commit dsl
else
ATMDEV="$(uci -q get dsl.@atm-device[0].device)"
fi
ATMDEV="${ATMDEV:-atm0}"
WANIFACE="$ATMDEV.1"
device_config_exists "$WANIFACE" && return
uci -q set network.atmwan=device
uci -q set network.atmwan.type=untagged
uci -q set network.atmwan.ifname="$ATMDEV"
uci -q set network.atmwan.name="$WANIFACE"
}
populate_ptm_device() {
[ "$hasVdsl" == "0" ] && return
# PTM Device
if ! uci -q get dsl.@ptm-device[0] >/dev/null; then
uci -q set dsl.ptm0=atm-device
uci -q set dsl.ptm0.name="PTM"
uci -q set dsl.ptm0.device="ptm0"
uci -q set dsl.ptm0.priority="1"
uci -q set dsl.ptm0.portid="1"
uci -q commit dsl
else
PTMDEV="$(uci -q get dsl.@ptm-device[0].device)"
fi
PTMDEV="${PTMDEV:-ptm0}"
WANIFACE="$PTMDEV.1"
device_config_exists "$PTMDEV" && return
uci -q set network.ptmwan=device
uci -q set network.ptmwan.type=untagged
uci -q set network.ptmwan.ifname="$PTMDEV"
uci -q set network.ptmwan.name="$WANIFACE"
}
populate_eth_device() {
[ "$hasEthWan" == "0" ] && return
ETHDEV="$(db -q get hw.board.ethernetWanPort)"
WANIFACE="$ETHDEV.1"
device_config_exists "$WANIFACE" && return
uci -q set network.ethwan=device
uci -q set network.ethwan.type=untagged
uci -q set network.ethwan.ifname="$ETHDEV"
uci -q set network.ethwan.name="$WANIFACE"
}
populate_network_config_ifnames() {
# LAN ports
uci -q get network.lan.ifname >/dev/null || uci -q set network.lan.ifname="$LANPORTS"
[ $((hasEthWan+hasAdsl+hasVdsl)) -eq 0 ] && {
uci -q commit network
return
}
WANTYPE="$(uci -q get network.wan.type)"
[ "$WANTYPE" == "anywan" ] && {
uci -q delete network.wan.type
uci -q set network.wan.ifname="$WANIFACE"
}
uci -q get network.wan.ifname >/dev/null || uci -q set network.wan.ifname="$WANIFACE"
uci -q commit network
}
populate_dsl_settings
populate_atm_device
populate_ptm_device
populate_eth_device
populate_network_config_ifnames