diff options
author | Brian Russell <brian@graphiant.com> | 2021-01-19 16:50:56 +0000 |
---|---|---|
committer | Neale Ranns <neale@graphiant.com> | 2021-01-28 10:26:35 +0000 |
commit | 97de8a2d2faad42ff6c36807ec1e21bf9a0d9c91 (patch) | |
tree | 0d29bf8de5d9a6489a8cd485ba25bed0a51152f5 /src/vnet/policer/policer.c | |
parent | baebb22c877d98c891d4d7a20ae23dc07f918edd (diff) |
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 <brian@graphiant.com>
Change-Id: I85a0ecbcfb025f8844e763224cd3de1561249aca
Diffstat (limited to 'src/vnet/policer/policer.c')
-rw-r--r-- | src/vnet/policer/policer.c | 14 |
1 files changed, 14 insertions, 0 deletions
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 <stdint.h> #include <vnet/policer/policer.h> +#include <vnet/policer/police_inlines.h> #include <vnet/classify/vnet_classify.h> 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, |