diff --git a/src/main.c b/src/main.c index 625523e14c63b1762eacf8730cecd70adef977fe..25b440babd03062392f4ac3a60d7cc00de48e12e 100644 --- a/src/main.c +++ b/src/main.c @@ -119,11 +119,11 @@ int cleanup() int main(int argc, char **argv) { - int ch; - int log_level = 7; + int ch, dm_type = 0; + int log_level = 7; struct bbfdm_context bbfdm_ctx = {0}; - while ((ch = getopt(argc, argv, "l:q:")) != -1) { + while ((ch = getopt(argc, argv, "dl:q:")) != -1) { switch (ch) { case 'l': if (optarg) { @@ -133,6 +133,9 @@ int main(int argc, char **argv) if (log_level < 0 || log_level > 7) log_level = 7; break; + case 'd': + dm_type++; + break; case 'q': int num_of_q = get_no_of_q_per_port(argv[argc-1]); printf("%d", num_of_q); @@ -142,10 +145,15 @@ int main(int argc, char **argv) } } - memset(&bbfdm_ctx, 0, sizeof(struct bbfdm_context)); - bbfdm_ubus_set_service_name(&bbfdm_ctx, "qosmngr"); - bbfdm_ubus_set_log_level(log_level); - bbfdm_ubus_load_data_model(tDynamicObj); + memset(&bbfdm_ctx, 0, sizeof(struct bbfdm_context)); + bbfdm_ubus_set_service_name(&bbfdm_ctx, "qosmngr"); + bbfdm_ubus_set_log_level(log_level); + bbfdm_ubus_load_data_model(tDynamicObj); + + if (dm_type > 0) { + int res = bbfdm_print_data_model_schema(&bbfdm_ctx, dm_type); + exit(res); + } openlog("qosmngr", LOG_PID|LOG_CONS, LOG_LOCAL1);