diff options
Diffstat (limited to 'target/linux/bcm53xx/base-files/etc/board.d')
-rwxr-xr-x | target/linux/bcm53xx/base-files/etc/board.d/02_network | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/base-files/etc/board.d/02_network b/target/linux/bcm53xx/base-files/etc/board.d/02_network new file mode 100755 index 0000000..a164251 --- /dev/null +++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network @@ -0,0 +1,70 @@ +#!/bin/sh +# +# Copyright (C) 2011 OpenWrt.org +# + +. /lib/functions/uci-defaults-new.sh + +board_config_update + +board=$(cat /proc/device-tree/compatible | tr '\0' '\t' | cut -f 1) +case "$board" in +asus,rt-ac87u) + ifname=eth1 + ;; +netgear,r8000) + ifname=eth2 + ;; +*) + ifname=eth0 + ;; +esac + +# Workaround for devices using eth2 +case "$board" in +netgear,r8000) + ifname=eth0 + ;; +esac + +ucidef_set_interface_loopback +ucidef_set_interfaces_lan_wan "$ifname.1" "$ifname.2" +ucidef_add_switch "switch0" "1" "1" + +# Workaround for devices using CPU port 8 (connected to eth2) +case "$board" in +netgear,r8000) + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t" + ucidef_add_switch_vlan "switch0" "2" "4 5t" + board_config_flush + exit 0 + ;; +esac + +# NVRAM entries may contain unsorted ports, e.g. Netgear R6250 uses +# vlan1ports=3 2 1 0 5* +# vlan2ports=4 5u +# and early Netgear R8000 was using +# vlan1ports=3 2 1 0 5 7 8* +vlan1ports="$(echo $(nvram get vlan1ports | tr " " "\n" | sort))" +vlan2ports="$(echo $(nvram get vlan2ports | tr " " "\n" | sort))" +if echo "$vlan1ports" | egrep -q "^1 2 3 4 5" && \ + echo "$vlan2ports" | egrep -q "^0 5"; then + ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t" + ucidef_add_switch_vlan "switch0" "2" "0 5t" +elif echo "$vlan1ports" | egrep -q "^1 2 3 5 7" && \ + echo "$vlan2ports" | egrep -q "^0 7"; then + ucidef_add_switch_vlan "switch0" "1" "1 2 3 5 7t" + ucidef_add_switch_vlan "switch0" "2" "0 7t" +elif echo "$vlan1ports" | egrep -q "^0 1 2 3 5 7 8" && \ + echo "$vlan2ports" | egrep -q "^4 8"; then + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5 7 8t" + ucidef_add_switch_vlan "switch0" "2" "4 8t" +else + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t" + ucidef_add_switch_vlan "switch0" "2" "4 5t" +fi + +board_config_flush + +exit 0 |