diff --git a/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh b/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
index b6f69da35491128ad92f917fd836ec9d4199bb29..3a0525de4d75b604f64e76f3a103e08a1433e6bf 100755
--- a/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
+++ b/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
@@ -141,6 +141,9 @@ parse_matching_rule() {
 					append "$var" "-i $device"
 				fi
 			;;
+			*:srciface)
+				append "$var" "-i $value"
+			;;
 			1:pktsize)
 				value="$(echo "$value" | sed -e 's,-,:,g')"
 				add_insmod xt_length