Add support for DPDK 17.11
[samplevnf.git] / VNFs / DPPD-PROX / prox_args.c
index df9a2ca..97b4fb1 100644 (file)
@@ -35,6 +35,7 @@
 #include "defaults.h"
 #include "prox_lua.h"
 #include "cqm.h"
+#include "prox_compat.h"
 
 #define MAX_RTE_ARGV 64
 #define MAX_ARG_LEN  64
@@ -1063,6 +1064,15 @@ static int get_core_cfg(unsigned sindex, char *str, void *data)
                                set_errf("Master core can only have one task\n");
                                return -1;
                        }
+                       // Initialize number of tasks to 1 for master, even if no task specified
+                       lconf->n_tasks_all = 1;
+                       lconf->active_task = 0;
+                       lconf->targs[lconf->active_task].task = 0;
+                       struct task_init* task_init = to_task_init(mode, "");
+                       if (task_init) {
+                               targ->mode = task_init->mode;
+                       }
+                       targ->task_init = task_init;
                        return 0;
                }
 
@@ -1231,8 +1241,22 @@ static int get_core_cfg(unsigned sindex, char *str, void *data)
 
                targ->task_init = to_task_init(mode_str, sub_mode_str);
                if (!targ->task_init) {
-                       set_errf("sub mode %s not supported for mode %s", sub_mode_str, mode_str);
-                       return -1;
+                       if (strcmp(sub_mode_str, "l3") != 0) {
+                               set_errf("sub mode %s not supported for mode %s", sub_mode_str, mode_str);
+                               return -1;
+                       }
+                       targ->task_init = to_task_init(mode_str, "");
+                       if (!targ->task_init) {
+                               set_errf("sub mode %s not supported for mode %s", sub_mode_str, mode_str);
+                               return -1;
+                       }
+               }
+               if (strcmp(sub_mode_str, "l3") == 0) {
+                       prox_cfg.flags |= DSF_CTRL_PLANE_ENABLED;
+                       targ->flags |= TASK_ARG_L3;
+                       strcpy(targ->sub_mode_str, "l3");
+               } else {
+                       strcpy(targ->sub_mode_str, targ->task_init->sub_mode_str);
                }
                return 0;
        }
@@ -1282,12 +1306,12 @@ static int get_core_cfg(unsigned sindex, char *str, void *data)
        if (STR_EQ(str, "gateway ipv4")) { /* Gateway IP address used when generating */
                return parse_ip(&targ->gateway_ipv4, pkey);
        }
-       if (STR_EQ(str, "number of ip")) { /* Gateway IP address used when generating */
-               return parse_int(&targ->number_gen_ip, pkey);
-       }
        if (STR_EQ(str, "local ipv4")) { /* source IP address to be used for packets */
                return parse_ip(&targ->local_ipv4, pkey);
        }
+       if (STR_EQ(str, "remote ipv4")) { /* source IP address to be used for packets */
+               return parse_ip(&targ->remote_ipv4, pkey);
+       }
         if (STR_EQ(str, "local ipv6")) { /* source IPv6 address to be used for packets */
                 return parse_ip6(&targ->local_ipv6, pkey);
         }
@@ -1932,7 +1956,7 @@ int prox_setup_rte(const char *prog_name)
        }
 
        if (rte_cfg.no_output) {
-               rte_set_log_level(0);
+               rte_log_set_global_level(0);
        }
        /* init EAL */
        plog_info("\tEAL command line:");