diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network
index 7e5122986c564b7571c9f59cf1c03cd74ccccd5f..16e7b6fa13f548a6a265fb1d428f24b2154d2e36 100755
--- a/target/linux/ramips/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -19,15 +19,14 @@ ramips_setup_rt3x5x_vlans()
 			continue
 		fi
 		if [ `swconfig dev rt305x port $port get lan` = "0" ]; then
-			wanports="$port $wanports"
+			wanports="$port:wan $wanports"
 		else
-			lanports="$port $lanports"
+			lanports="$port:lan $lanports"
 		fi
 	done
 	ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 	ucidef_add_switch "rt305x" "1" "1"
-	ucidef_add_switch_vlan "rt305x" "1" "$lanports 6t"
-	ucidef_add_switch_vlan "rt305x" "2" "$wanports 6t"
+	ucidef_add_switch_ports "rt305x" $lanports $wanports "6@eth0"
 }
 
 ramips_setup_interfaces()
@@ -89,13 +88,14 @@ ramips_setup_interfaces()
 	youku-yk1)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 6t"
-		ucidef_add_switch_vlan "switch0" "2" "4 6t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
 		;;
 	a5-v11)
 		ucidef_set_interface_lan "eth0.1"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 6t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "6t@eth0"
 		;;
 	ar670w|\
 	ar725w|\
@@ -103,15 +103,16 @@ ramips_setup_interfaces()
 	wl-351)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t"
-		ucidef_add_switch_vlan "switch0" "2" "4 5t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
 		;;
 	asl26555|\
 	re6500|\
 	rp-n53)
 		ucidef_set_interface_lan "eth0.1"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
+		ucidef_add_switch_ports "switch0" \
+			"1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
 		;;
 	atp-52b|\
 	awm002-evb|\
@@ -128,14 +129,14 @@ ramips_setup_interfaces()
 	zbt-wa05)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
-		ucidef_add_switch_vlan "switch0" "2" "0 6t"
+		ucidef_add_switch_ports "switch0" \
+			"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
 		;;
 	awapn2403)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 6t"
-		ucidef_add_switch_vlan "switch0" "2" "1 6t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "1:wan" "6@eth0"
 		;;
 	b2c|\
 	nw718|\
@@ -149,19 +150,20 @@ ramips_setup_interfaces()
 	br-6475nd)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 9t"
-		ucidef_add_switch_vlan "switch0" "2" "0 9t"
+		ucidef_add_switch_ports "switch0" \
+			"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
 		;;
 	cf-wr800n)
 		ucidef_set_interface_lan "eth0.1"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "4 6t"
+		ucidef_add_switch_ports "switch0" \
+			"4:lan" "6t@eth0"
 		;;
 	cy-swr1100)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 9t"
-		ucidef_add_switch_vlan "switch0" "2" "4 9t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0"
 		;;
 	d105|\
 	hpm|\
@@ -173,15 +175,15 @@ ramips_setup_interfaces()
 	mt7620a_mt7530)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch1" "1" "1"
-		ucidef_add_switch_vlan "switch1" "1" "0 1 2 3 6t"
-		ucidef_add_switch_vlan "switch1" "2" "4 6t"
+		ucidef_add_switch_ports "switch1" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
 		;;
 	hc5*61|\
 	y1s)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5 6t"
-		ucidef_add_switch_vlan "switch0" "2" "0 6t"
+		ucidef_add_switch_ports "switch0" \
+			"1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
 		;;
 	m2m)
 		ucidef_add_switch "switch0" "4"
@@ -197,51 +199,52 @@ ramips_setup_interfaces()
 	vocore)
 		ucidef_set_interface_lan "eth0.1"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 4 6t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "4:lan" "6t@eth0"
 		;;
 	rt-n56u)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 8t"
-		ucidef_add_switch_vlan "switch0" "2" "4 8t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0"
 		;;
 	tew-691gr|\
 	tew-692gr)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0t 1 2 3 4"
-		ucidef_add_switch_vlan "switch0" "2" "0t 5"
+		ucidef_add_switch_ports "switch0" \
+			"1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
 		;;
 	v11st-fe|\
 	wzr-agl300nh)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t"
-		ucidef_add_switch_vlan "switch0" "2" "0 5t"
+		ucidef_add_switch_ports "switch0" \
+			"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
 		;;
 	wcr-150gn)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 6t"
-		ucidef_add_switch_vlan "switch0" "2" "6t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "6t@eth0"
 		;;
 	whr-1166d)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 6t"
-		ucidef_add_switch_vlan "switch0" "2" "5 6t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0"
 		;;
 	wizfi630a)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "1 2 6t"
-		ucidef_add_switch_vlan "switch0" "2" "0 6t"
+		ucidef_add_switch_ports "switch0" \
+			"1:lan" "2:lan" "0:wan" "6@eth0"
 		;;
 	zbt-wr8305rt)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 		ucidef_add_switch "switch0" "1" "1"
-		ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4 6t"
-		ucidef_add_switch_vlan "switch0" "2" "4 6t"
+		ucidef_add_switch_ports "switch0" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
 		;;
 	*)
 		RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`