my_counters[index] += increment;
}
+/** Set a simple counter
+ @param cm - (vlib_simple_counter_main_t *) simple counter main pointer
+ @param thread_index - (u32) the current cpu index
+ @param index - (u32) index of the counter to increment
+ @param value - (u64) quantitiy to set to the counter
+*/
+always_inline void
+vlib_set_simple_counter (vlib_simple_counter_main_t * cm,
+ u32 thread_index, u32 index, u64 value)
+{
+ counter_t *my_counters;
+
+ my_counters = cm->counters[thread_index];
+ my_counters[index] = value;
+}
+
/** Get the value of a simple counter
Scrapes the entire set of per-thread counters. Innacurate unless
worker threads which might increment the counter are
void vlib_validate_simple_counter (vlib_simple_counter_main_t * cm,
u32 index);
+void vlib_free_simple_counter (vlib_simple_counter_main_t * cm);
+
/** validate a combined counter
@param cm - (vlib_combined_counter_main_t *) pointer to the counter
collection
void vlib_validate_combined_counter (vlib_combined_counter_main_t * cm,
u32 index);
+void vlib_free_combined_counter (vlib_combined_counter_main_t * cm);
/** Obtain the number of simple or combined counters allocated.
A macro which reduces to to vec_len(cm->maxi), the answer in either
*/
#define vlib_counter_len(cm) vec_len((cm)->maxi)
-serialize_function_t serialize_vlib_simple_counter_main,
- unserialize_vlib_simple_counter_main;
-serialize_function_t serialize_vlib_combined_counter_main,
- unserialize_vlib_combined_counter_main;
-
#endif /* included_vlib_counter_h */
/*