u8 *namep;
u32 name_bytes;
uword i, j, k;
- u64 l, v, c, d;
+ u64 l, v, c, d, pmc;
state_string_enum_t state_code;
serialize_open_vector (sm, vector);
v = n->stats_total.vectors - n->stats_last_clear.vectors;
c = n->stats_total.calls - n->stats_last_clear.calls;
d = n->stats_total.suspends - n->stats_last_clear.suspends;
+ pmc = n->stats_total.perf_counter_ticks
+ - n->stats_last_clear.perf_counter_ticks;
state_code = STATE_INTERNAL;
serialize_likely_small_unsigned_integer (sm, (u64) state_code);
serialize_likely_small_unsigned_integer (sm, n->type);
+ serialize_likely_small_unsigned_integer (sm, n->flags);
if (include_nexts)
{
serialize_integer (sm, v, 8);
/* Total suspends */
serialize_integer (sm, d, 8);
+ /* PMC counter */
+ serialize_integer (sm, pmc, 8);
}
else /* no stats */
serialize_likely_small_unsigned_integer (sm, 0);
}
- vec_free (nodes);
}
return (serialize_close_vector (sm));
}
vlib_node_t **nodes;
vlib_node_t ***nodes_by_thread = 0;
int i, j, k;
- u64 l, v, c, d;
+ u64 l, v, c, d, pmc;
state_string_enum_t state_code;
int stats_present;
node->state_string = (u8 *) state_strings[state_code];
node->type = unserialize_likely_small_unsigned_integer (sm);
+ node->flags = unserialize_likely_small_unsigned_integer (sm);
nnexts = unserialize_likely_small_unsigned_integer (sm);
if (nnexts > 0)
vec_validate (node->next_nodes, nnexts - 1);
/* Total suspends */
unserialize_integer (sm, &d, 8);
node->stats_total.suspends = d;
+ /* PMC counter */
+ unserialize_integer (sm, &pmc, 8);
+ node->stats_total.perf_counter_ticks = pmc;
}
}
}