* the CPU configuration is available, so we have to
* preallocate the mini-counter per-cpu vectors
*/
-#define VLIB_COUNTER_MAX_CPUS 32
typedef struct {
/* Compact counters that (rarely) can overflow. */
v = 0;
- for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++)
+ for (i = 0; i < vec_len(cm->minis); i++)
{
my_minis = cm->minis[i];
mini = vec_elt_at_index (my_minis, index);
ASSERT (index < vec_len (cm->maxi));
- for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++)
+ for (i = 0; i < vec_len(cm->minis); i++)
{
my_minis = cm->minis[i];
my_minis[index] = 0;
result->packets = 0;
result->bytes = 0;
- for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++)
+ for (i = 0; i < vec_len(cm->minis); i++)
{
my_minis = cm->minis[i];
vlib_mini_counter_t * mini, * my_minis;
int i;
- for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++)
+ for (i = 0; i < vec_len(cm->minis); i++)
{
my_minis = cm->minis[i];
vlib_counter_zero (&cm->value_at_last_clear[index]);
}
-/* Initialize/allocate given counter index.
- Works for both simple and combined counters. */
-#define vlib_validate_counter_DEPRECATED(cm,index) \
- do { \
- int i; \
- \
- vec_validate ((cm)->minis, VLIB_COUNTER_MAX_CPUS-1); \
- for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++) \
- vec_validate ((cm)->minis[i], (index)); \
- vec_validate ((cm)->maxi, (index)); \
- } while (0)
-
-static inline void
-vlib_validate_simple_counter (vlib_simple_counter_main_t *cm, u32 index)
-{
- int i;
- vec_validate (cm->minis, VLIB_COUNTER_MAX_CPUS-1);
- for (i = 0; i < VLIB_COUNTER_MAX_CPUS; i++)
- vec_validate_aligned (cm->minis[i], index, CLIB_CACHE_LINE_BYTES);
- vec_validate_aligned (cm->maxi, index, CLIB_CACHE_LINE_BYTES);
-}
-
-static inline void
-vlib_validate_combined_counter (vlib_combined_counter_main_t *cm, u32 index)
-{
- int i;
- vec_validate (cm->minis, VLIB_COUNTER_MAX_CPUS-1);
- for (i = 0; i < VLIB_COUNTER_MAX_CPUS; 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_simple_counter (vlib_simple_counter_main_t *cm, u32 index);
+void vlib_validate_combined_counter (vlib_combined_counter_main_t *cm, u32 index);
/* Number of simple/combined counters allocated. */
#define vlib_counter_len(cm) vec_len((cm)->maxi)