Support multiple tasks in "dp core stats" command
[samplevnf.git] / VNFs / DPPD-PROX / parse_utils.c
index d258c59..6653ca6 100644 (file)
@@ -106,7 +106,7 @@ static struct var *var_lookup(const char *name)
        return NULL;
 }
 
-static int parse_single_var(char *val, size_t len, const char *name)
+int parse_single_var(char *val, size_t len, const char *name)
 {
        struct var *match;
 
@@ -135,7 +135,7 @@ int parse_vars(char *val, size_t len, const char *name)
 {
        static char result[MAX_CFG_STRING_LEN];
        static char cur_var[MAX_CFG_STRING_LEN];
-       char parsed[2048];
+       char parsed[MAX_CFG_STRING_LEN];
        size_t name_len = strlen(name);
        enum parse_vars_state {NO_VAR, WHOLE_VAR, INLINE_VAR} state = NO_VAR;
        size_t result_len = 0;
@@ -430,6 +430,8 @@ int parse_mac(struct ether_addr *ether_addr, const char *str2)
                return -1;
 
        uint8_t ret = rte_strsplit(str, strlen(str), addr_parts, 7, ':');
+       if (ret != 6)
+               ret = rte_strsplit(str, strlen(str), addr_parts, 7, ' ');
 
        if (ret != 6) {
                set_errf("Invalid MAC address format");
@@ -895,7 +897,7 @@ int parse_list_set(uint32_t *list, const char *str2, uint32_t max_list)
                                effective_core = cur_core;
 
                        if (list_count >= max_list) {
-                               set_errf("Too many elements in list\n");
+                               set_errf("Too many elements in list");
                                return -1;
                        }
                        list[list_count++] = effective_core;