diff --git a/include/qosmngr.h b/include/qosmngr.h
index 494715974ac8f924b385d3b9f565a46408984d07..d745993fecad2fb4560606d39335a69029d38266 100644
--- a/include/qosmngr.h
+++ b/include/qosmngr.h
@@ -45,6 +45,8 @@
 #define OPT_BURST_SIZE   "burst_size"
 #define OPT_WEIGHT       "weight"
 
+#define QOS_MIN_Q_NUM_PER_PORT 4 //default minimum number of queue per port
+
 enum {
       QOS_POLICY_IFNAME,
       QOS_POLICY_QID,
diff --git a/src/main.c b/src/main.c
index be7e7e7d71af2f8c5408ba8a9f2601f7023d0ad3..68ffc6372b3dffeec833452cc65e7c0558da6e5d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -89,11 +89,12 @@ int main(int argc, char **argv)
 {
 	int ret;
 	int ch;
+	int num_of_q = QOS_MIN_Q_NUM_PER_PORT;
 
 	/* Logging to syslog */
 	openlog("qosmngr", LOG_PID|LOG_CONS, LOG_LOCAL1);
 
-	while ((ch = getopt(argc, argv, "vs:e:")) != -1) {
+	while ((ch = getopt(argc, argv, "vsq:e:")) != -1) {
 		switch (ch) {
 		case 'v':
 			qosmngr_version();
@@ -101,6 +102,10 @@ int main(int argc, char **argv)
 		case 's':
 			ubus_socket = optarg;
 			break;
+		case 'q':
+			num_of_q = get_no_of_q_per_port(argv[argc-1]);
+			printf("%d", num_of_q);
+			exit(0);
 		default:
 			break;
 		}