Browse Source

switch: eliminate the asterisk from the switch port configuration and set it automatically on the first vlan, this aligns the broadcom vlan config with the swconfig format

SVN-Revision: 19909
Jo-Philipp Wich 16 years ago
parent
commit
96e4312e7e

+ 9 - 1
package/switch/files/switch.sh

@@ -25,13 +25,21 @@ setup_switch_vlan() {
 	config_get vlan  "$s" vlan
 	config_get ports "$s" ports
 
-	[ -n "$dev" ] && [ -n "$vlan" ] && { 
+	[ -n "$dev" ] && [ -n "$vlan" ] && {
+		ports="${ports%\*}"
+
+		[ "$_vlan_pvid_set" = 1 ] || {
+			ports="$ports*"
+			_vlan_pvid_set=1
+		}
+
 		local proc="/proc/switch/$dev/vlan/$vlan/ports"
 		[ -f "$proc" ] && echo "$ports" > "$proc"
 	}
 }
 
 setup_switch() {
+	_vlan_pvid_set=0
 	config_load network
 	config_foreach setup_switch_hw switch
 	config_foreach setup_switch_vlan switch_vlan

+ 2 - 1
target/linux/brcm-2.4/base-files/etc/init.d/netconfig

@@ -14,11 +14,12 @@ start() {
 					case "$1" in
 					vlan[0-9]|vlan1[0-5])
 						local id="${1#vlan}"
+						local ports="${2%\*}"
 						append batch "delete network.eth0.${1}${N}"
 						append batch "set network.eth0_${id}=switch_vlan${N}"
 						append batch "set network.eth0_${id}.device=eth0${N}"
 						append batch "set network.eth0_${id}.vlan=${id}${N}"
-						append batch "set network.eth0_${id}.ports='${2}'${N}"
+						append batch "set network.eth0_${id}.ports='${ports}'${N}"
 					;;
 					esac
 				}