aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Matov <sergey.matov@travelping.com>2020-09-15 13:40:55 +0400
committerDave Barach <openvpp@barachs.net>2020-09-18 15:23:01 +0000
commit34262d4d56295b0872ad4e9a4a4791953f3fa444 (patch)
tree7b100a5367cc1896b308cee0a28574b4aff1c75e
parent84f3d9fba4e1715237a41f0978430193363187c7 (diff)
vlib: add decrement counter method
Currently there is no way to decrease simple counter. To extend counters API new method allows to decrement counter by given value. This might be useful in implementation of statistics stored in stats segment. Type: improvement Change-Id: I7c08c62bffa6a2d50e9e2cf884f7b2d48538f34b Signed-off-by: Sergey Matov <sergey.matov@travelping.com> Signed-off-by: Dave Barach <dave@barachs.net>
-rw-r--r--src/vlib/counter.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/vlib/counter.h b/src/vlib/counter.h
index 8a5aed4c194..04ab83769cc 100644
--- a/src/vlib/counter.h
+++ b/src/vlib/counter.h
@@ -84,6 +84,25 @@ vlib_increment_simple_counter (vlib_simple_counter_main_t * cm,
my_counters[index] += increment;
}
+/** Decrement 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 increment - (u64) quantitiy remove from the counter value
+*/
+always_inline void
+vlib_decrement_simple_counter (vlib_simple_counter_main_t * cm,
+ u32 thread_index, u32 index, u64 decrement)
+{
+ counter_t *my_counters;
+
+ my_counters = cm->counters[thread_index];
+
+ ASSERT (my_counters[index] >= decrement);
+
+ my_counters[index] -= decrement;
+}
+
/** Set a simple counter
@param cm - (vlib_simple_counter_main_t *) simple counter main pointer
@param thread_index - (u32) the current cpu index