diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index d81173dff634642f00e26935441f3601e6b63351..7647039515fd5f9c6d58c48cda326b6762b7205e 100755
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -94,6 +94,9 @@ get_status_led() {
 	nbg460n_550n_550nh)
 		status_led="nbg460n:green:power"
 		;;
+	nbg6716)
+		status_led="nbg6716:white:power"
+		;;
 	om2p | \
 	om2p-hs | \
 	om2p-lc)
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
index a1078695e2701819a411c14b4b1a0969122b14ba..db60cee9dd093c8f576771f7b0322c6b0060ea87 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
@@ -142,6 +142,14 @@ nbg460n_550n_550nh)
 	ucidef_set_led_wlan "wlan" "WLAN" "nbg460n:green:wlan" "phy0tpt"
 	;;
 
+nbg6716)
+	ucidef_set_led_netdev "wan" "WAN" "zyxel:white:internet" "eth1"
+	ucidef_set_led_wlan "wlan" "WLAN" "zyxel:white:wifi2g" "phy1tpt"
+	ucidef_set_led_wlan "wlan5" "WLAN5" "zyxel:white:wifi5g" "phy0tpt"
+	ucidef_set_led_usbdev "usb1" "USB1" "zyxel:white:usb0" "1-1"
+	ucidef_set_led_usbdev "usb2" "USB2" "zyxel:white:usb1" "2-1"
+	;;
+
 om2p | \
 om2p-hs | \
 om2p-lc)
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index a78f7f90429c2d466a93b0332abce8ab61907cbb..62373e43e15979fad2f6c73a5484a0ed3efc4df0 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -86,6 +86,13 @@ nbg460n_550n_550nh)
 	ucidef_add_switch_vlan "switch0" "0" "0 1 2 3 5"
 	;;
 
+nbg6716)
+	ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
+	ucidef_add_switch "switch0" "1" "1"
+	ucidef_add_switch_vlan "switch0" "1" "0t 1 2 3 4"
+	ucidef_add_switch_vlan "switch0" "2" "5 6"
+	;;
+
 rb-433 |\
 rb-433u)
 	ucidef_set_interfaces_lan_wan "eth1" "eth0"
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index a2bbefd9b762d6a2321e02e01c52d91ce6f4185e..02c46f9b94a5e8b4d58bada774736550716e019b 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -352,6 +352,9 @@ ar71xx_board_detect() {
 	*"NBG460N/550N/550NH")
 		name="nbg460n_550n_550nh"
 		;;
+	*"Zyxel NBG6716")
+		name="nbg6716"
+		;;
 	*OM2P)
 		name="om2p"
 		;;