From 97de8a2d2faad42ff6c36807ec1e21bf9a0d9c91 Mon Sep 17 00:00:00 2001 From: Brian Russell Date: Tue, 19 Jan 2021 16:50:56 +0000 Subject: policer: add policer handoff Add thread handoff for packets being policed. Note that the handoff currently requires the policer index to be passed in. This is suitable for use in the ip[46] punt paths where each policer node will only ever use a single policer. For the more general case, this will be expanded in future to use a policer index stored in packet metadata. Type: improvement Signed-off-by: Brian Russell Change-Id: I85a0ecbcfb025f8844e763224cd3de1561249aca --- src/vnet/policer/policer.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/vnet/policer/policer.c') diff --git a/src/vnet/policer/policer.c b/src/vnet/policer/policer.c index 7ad87a6ebdf..80fa1e6f68d 100644 --- a/src/vnet/policer/policer.c +++ b/src/vnet/policer/policer.c @@ -14,10 +14,24 @@ */ #include #include +#include #include vnet_policer_main_t vnet_policer_main; +u8 * +format_policer_handoff_trace (u8 *s, va_list *args) +{ + CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *); + CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); + policer_handoff_trace_t *t = va_arg (*args, policer_handoff_trace_t *); + + s = format (s, "policer %d, handoff thread %d to %d", t->policer_index, + t->current_worker_index, t->next_worker_index); + + return s; +} + clib_error_t * policer_add_del (vlib_main_t * vm, u8 * name, -- cgit 1.2.3-korg