summaryrefslogtreecommitdiffstats
path: root/src/vnet/lisp-gpe/lisp_gpe_adjacency.c
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2017-04-10 07:54:31 +0200
committerFlorin Coras <florin.coras@gmail.com>2017-04-11 06:30:06 +0000
commit5e189f1a8862f5a8f837dc612c15d63d2b9b6457 (patch)
tree6273347a54f84cb5645124d4a120f116e293fcf6 /src/vnet/lisp-gpe/lisp_gpe_adjacency.c
parent92bcecfdcc8b44877349fe952339a8bb24be6dfc (diff)
LSIP: make LISP statistics collecting thread safe, VPP-692
Change-Id: If884835c0f63de162ecf75fecd2a63a1240ee910 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Diffstat (limited to 'src/vnet/lisp-gpe/lisp_gpe_adjacency.c')
-rw-r--r--src/vnet/lisp-gpe/lisp_gpe_adjacency.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/src/vnet/lisp-gpe/lisp_gpe_adjacency.c b/src/vnet/lisp-gpe/lisp_gpe_adjacency.c
index 50662dd679f..6cb323cdb25 100644
--- a/src/vnet/lisp-gpe/lisp_gpe_adjacency.c
+++ b/src/vnet/lisp-gpe/lisp_gpe_adjacency.c
@@ -250,7 +250,6 @@ lisp_gpe_increment_stats_counters (lisp_cp_main_t * lcm, ip_adjacency_t * adj,
index_t lai;
u32 si, di;
gid_address_t src, dst;
- lisp_stats_t *stats;
uword *feip;
ip46_address_to_ip_address (&adj->sub_type.nbr.next_hop, &rloc);
@@ -299,23 +298,12 @@ lisp_gpe_increment_stats_counters (lisp_cp_main_t * lcm, ip_adjacency_t * adj,
key.tunnel_index = ladj->tunnel_index;
uword *p = hash_get_mem (lgm->lisp_stats_index_by_key, &key);
- if (p)
- {
- stats = pool_elt_at_index (lgm->lisp_stats_pool, p[0]);
- }
- else
- {
- pool_get (lgm->lisp_stats_pool, stats);
- memset (stats, 0, sizeof (*stats));
+ ASSERT (p);
- lisp_stats_key_t *key_copy = clib_mem_alloc (sizeof (*key_copy));
- memcpy (key_copy, &key, sizeof (*key_copy));
- hash_set_mem (lgm->lisp_stats_index_by_key, key_copy,
- stats - lgm->lisp_stats_pool);
- }
- stats->pkt_count++;
/* compute payload length starting after GPE */
- stats->bytes += b->current_length - (lisp_data - b->data - b->current_data);
+ u32 bytes = b->current_length - (lisp_data - b->data - b->current_data);
+ vlib_increment_combined_counter (&lgm->counters, os_get_cpu_number (),
+ p[0], 1, bytes);
}
static void