diff options
Diffstat (limited to 'vlib/vlib/counter.c')
-rw-r--r-- | vlib/vlib/counter.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/vlib/vlib/counter.c b/vlib/vlib/counter.c index 1b94884e319..9c5e0db8427 100644 --- a/vlib/vlib/counter.c +++ b/vlib/vlib/counter.c @@ -44,7 +44,7 @@ void vlib_clear_simple_counters (vlib_simple_counter_main_t * cm) uword i, j; u16 * my_minis; - for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++) + for (i = 0; i < vec_len(cm->minis); i++) { my_minis = cm->minis[i]; @@ -67,7 +67,7 @@ void vlib_clear_combined_counters (vlib_combined_counter_main_t * cm) uword i, j; vlib_mini_counter_t * my_minis; - for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++) + for (i = 0; i < vec_len(cm->minis); i++) { my_minis = cm->minis[i]; @@ -92,6 +92,28 @@ void vlib_clear_combined_counters (vlib_combined_counter_main_t * cm) } } +void vlib_validate_simple_counter (vlib_simple_counter_main_t *cm, u32 index) +{ + vlib_thread_main_t * tm = vlib_get_thread_main(); + int i; + + vec_validate (cm->minis, tm->n_vlib_mains - 1); + for (i = 0; i < tm->n_vlib_mains; i++) + vec_validate_aligned (cm->minis[i], index, CLIB_CACHE_LINE_BYTES); + vec_validate_aligned (cm->maxi, index, CLIB_CACHE_LINE_BYTES); +} + +void vlib_validate_combined_counter (vlib_combined_counter_main_t *cm, u32 index) +{ + vlib_thread_main_t * tm = vlib_get_thread_main(); + int i; + + vec_validate (cm->minis, tm->n_vlib_mains - 1); + for (i = 0; i < tm->n_vlib_mains ; i++) + vec_validate_aligned (cm->minis[i], index, CLIB_CACHE_LINE_BYTES); + vec_validate_aligned (cm->maxi, index, CLIB_CACHE_LINE_BYTES); +} + void serialize_vlib_simple_counter_main (serialize_main_t * m, va_list * va) { clib_warning ("unimplemented"); |