| 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (C) 2011 OpenWrt.org |
| 4 | # |
| 5 | |
| 6 | set_interface_loopback() { |
| 7 | uci batch <<EOF |
| 8 | set network.loopback='interface' |
| 9 | set network.loopback.ifname='lo' |
| 10 | set network.loopback.proto='static' |
| 11 | set network.loopback.ipaddr='127.0.0.1' |
| 12 | set network.loopback.netmask='255.0.0.0' |
| 13 | EOF |
| 14 | } |
| 15 | |
| 16 | set_interface_raw() { |
| 17 | local cfg=$1 |
| 18 | local ifname=$2 |
| 19 | |
| 20 | uci batch <<EOF |
| 21 | set network.$cfg='interface' |
| 22 | set network.$cfg.ifname='$ifname' |
| 23 | set network.$cfg.proto='none' |
| 24 | EOF |
| 25 | } |
| 26 | |
| 27 | set_interface_lan() { |
| 28 | local ifname=$1 |
| 29 | |
| 30 | uci batch <<EOF |
| 31 | set network.lan='interface' |
| 32 | set network.lan.ifname='$ifname' |
| 33 | set network.lan.type='bridge' |
| 34 | set network.lan.proto='static' |
| 35 | set network.lan.ipaddr='192.168.1.1' |
| 36 | set network.lan.netmask='255.255.255.0' |
| 37 | EOF |
| 38 | } |
| 39 | |
| 40 | set_interface_wan() { |
| 41 | local ifname=$1 |
| 42 | |
| 43 | uci batch <<EOF |
| 44 | set network.wan='interface' |
| 45 | set network.wan.ifname='$ifname' |
| 46 | set network.wan.proto='dhcp' |
| 47 | EOF |
| 48 | } |
| 49 | |
| 50 | set_atm_wan() { |
| 51 | local vpi=$1 |
| 52 | local vci=$2 |
| 53 | local encaps=$3 |
| 54 | local payload=$4 |
| 55 | uci batch <<EOF |
| 56 | set network.atm='atm-bridge' |
| 57 | set network.atm.unit='0' |
| 58 | set network.atm.vpi='$vpi' |
| 59 | set network.atm.vci='$vci' |
| 60 | set network.atm.encaps='$encaps' |
| 61 | set network.atm.payload='$payload' |
| 62 | set network.atm.fwannex='$annex' |
| 63 | set network.atm.annex='$annex' |
| 64 | set network.wan='interface' |
| 65 | set network.wan.ifname='nas0' |
| 66 | set network.wan.proto='pppoe' |
| 67 | set network.wan.username='foo' |
| 68 | set network.wan.password='bar' |
| 69 | EOF |
| 70 | } |
| 71 | |
| 72 | set_adsl() { |
| 73 | local fwannex=$1 |
| 74 | local annex=$2 |
| 75 | uci batch <<EOF |
| 76 | set network.adsl='adsl-device' |
| 77 | set network.adsl.fwannex='$fwannex' |
| 78 | set network.adsl.annex='$annex' |
| 79 | EOF |
| 80 | } |
| 81 | |
| 82 | set_interfaces_lan_wan() { |
| 83 | local lan_ifname=$1 |
| 84 | local wan_ifname=$2 |
| 85 | |
| 86 | set_interface_lan "$lan_ifname" |
| 87 | set_interface_wan "$wan_ifname" |
| 88 | } |
| 89 | |
| 90 | add_switch() { |
| 91 | local name=$1 |
| 92 | local reset=$2 |
| 93 | local enable=$3 |
| 94 | uci batch <<EOF |
| 95 | add network switch |
| 96 | set network.@switch[-1].name='$name' |
| 97 | set network.@switch[-1].reset='$reset' |
| 98 | set network.@switch[-1].enable_vlan='$enable' |
| 99 | EOF |
| 100 | } |
| 101 | |
| 102 | add_switch_vlan() { |
| 103 | local device=$1 |
| 104 | local vlan=$2 |
| 105 | local ports=$3 |
| 106 | uci batch <<EOF |
| 107 | add network switch_vlan |
| 108 | set network.@switch_vlan[-1].device='$device' |
| 109 | set network.@switch_vlan[-1].vlan='$vlan' |
| 110 | set network.@switch_vlan[-1].ports='$ports' |
| 111 | EOF |
| 112 | } |
| 113 | |
| 114 | [ -e /etc/config/network ] && exit 0 |
| 115 | |
| 116 | . /lib/lantiq.sh |
| 117 | |
| 118 | touch /etc/config/network |
| 119 | |
| 120 | set_interface_loopback |
| 121 | set_interface_lan 'eth0' |
| 122 | |
| 123 | |
| 124 | vpi=1 |
| 125 | vci=32 |
| 126 | encaps="llc" |
| 127 | payload="bridged" |
| 128 | fwannex=$(lantiq_dsl_fwannex) |
| 129 | annex="$fwannex" |
| 130 | |
| 131 | board=$(lantiq_board_name) |
| 132 | case "$board" in |
| 133 | GIGASX76X) |
| 134 | set_interface_lan "eth0.1" |
| 135 | add_switch "eth0" "1" "1" |
| 136 | add_switch_vlan "eth0" "1" "1 2 3 4 5t" |
| 137 | ;; |
| 138 | |
| 139 | *) |
| 140 | # custom foo goes here |
| 141 | true |
| 142 | ;; |
| 143 | esac |
| 144 | |
| 145 | dsl=$(lantiq_soc_has_adsl) |
| 146 | [ -z "$dsl" ] || set_atm_wan "$vpi" "vci" "$encaps" "$payload" "$annex" |
| 147 | [ -z "$fwannex" ] || set_adsl "$fwannex" "$annex" |
| 148 | |
| 149 | uci commit network |
| 150 | |
| 151 | exit 0 |
| 152 | |