stats: fix state counter removal
[vpp.git] / src / vpp / app / vpp_get_stats.c
index d500f8f..d13e4d9 100644 (file)
@@ -80,13 +80,18 @@ stat_poll_loop (u8 ** patterns)
              break;
 
            case STAT_DIR_TYPE_ERROR_INDEX:
-             fformat (stdout, "%llu %s\n", res[i].error_value, res[i].name);
+             for (j = 0; j < vec_len (res[i].error_vector); j++)
+               fformat (stdout, "%llu %s\n", res[i].error_vector[j],
+                        res[i].name);
              break;
 
            case STAT_DIR_TYPE_SCALAR_INDEX:
              fformat (stdout, "%.2f %s\n", res[i].scalar_value, res[i].name);
              break;
 
+           case STAT_DIR_TYPE_EMPTY:
+             break;
+
            default:
              printf ("Unknown value\n");
              ;
@@ -194,7 +199,7 @@ reconnect:
            case STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE:
              if (res[i].simple_counter_vec == 0)
                continue;
-             for (k = 0; k < vec_len (res[i].simple_counter_vec) - 1; k++)
+             for (k = 0; k < vec_len (res[i].simple_counter_vec); k++)
                for (j = 0; j < vec_len (res[i].simple_counter_vec[k]); j++)
                  fformat (stdout, "[%d @ %d]: %llu packets %s\n",
                           j, k, res[i].simple_counter_vec[k][j],
@@ -202,7 +207,7 @@ reconnect:
              break;
 
            case STAT_DIR_TYPE_COUNTER_VECTOR_COMBINED:
-             if (res[i].simple_counter_vec == 0)
+             if (res[i].combined_counter_vec == 0)
                continue;
              for (k = 0; k < vec_len (res[i].combined_counter_vec); k++)
                for (j = 0; j < vec_len (res[i].combined_counter_vec[k]); j++)
@@ -213,13 +218,27 @@ reconnect:
              break;
 
            case STAT_DIR_TYPE_ERROR_INDEX:
-             fformat (stdout, "%llu %s\n", res[i].error_value, res[i].name);
+             for (j = 0; j < vec_len (res[i].error_vector); j++)
+               fformat (stdout, "[@%d] %llu %s\n", j, res[i].error_vector[j],
+                        res[i].name);
              break;
 
            case STAT_DIR_TYPE_SCALAR_INDEX:
              fformat (stdout, "%.2f %s\n", res[i].scalar_value, res[i].name);
              break;
 
+           case STAT_DIR_TYPE_NAME_VECTOR:
+             if (res[i].name_vector == 0)
+               continue;
+             for (k = 0; k < vec_len (res[i].name_vector); k++)
+               if (res[i].name_vector[k])
+                 fformat (stdout, "[%d]: %s %s\n", k, res[i].name_vector[k],
+                          res[i].name);
+             break;
+
+           case STAT_DIR_TYPE_EMPTY:
+             break;
+
            default:
              ;
            }