From baebb22c877d98c891d4d7a20ae23dc07f918edd Mon Sep 17 00:00:00 2001 From: Brian Russell Date: Tue, 19 Jan 2021 16:48:56 +0000 Subject: ip: add frame queues to punt policer nodes The policer is not thread safe. In order that handoff could be performed, add a frame queue to each of the punt policer nodes. Type: improvement Signed-off-by: Brian Russell Change-Id: Iee50267ee7e36f0e6c95b9b43bf651648198b834 --- src/vnet/ip/ip_punt_drop.c | 5 +++++ src/vnet/ip/ip_punt_drop.h | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'src/vnet') diff --git a/src/vnet/ip/ip_punt_drop.c b/src/vnet/ip/ip_punt_drop.c index f77a0ada078..f3388007b4a 100644 --- a/src/vnet/ip/ip_punt_drop.c +++ b/src/vnet/ip/ip_punt_drop.c @@ -235,6 +235,11 @@ ip_punt_drop_init (vlib_main_t * vm) fib_node_register_type (FIB_NODE_TYPE_IP_PUNT_REDIRECT, &ip_punt_redirect_vft); + ip4_punt_policer_cfg.fq_index = + vlib_frame_queue_main_init (ip4_punt_policer_node.index, 0); + ip6_punt_policer_cfg.fq_index = + vlib_frame_queue_main_init (ip6_punt_policer_node.index, 0); + return (NULL); } diff --git a/src/vnet/ip/ip_punt_drop.h b/src/vnet/ip/ip_punt_drop.h index 3e2796ee868..2fc1140a0bf 100644 --- a/src/vnet/ip/ip_punt_drop.h +++ b/src/vnet/ip/ip_punt_drop.h @@ -27,6 +27,7 @@ typedef struct ip_punt_policer_t_ { u32 policer_index; + u32 fq_index; } ip_punt_policer_t; typedef enum ip_punt_policer_next_t_ @@ -53,6 +54,10 @@ typedef enum } ip_punt_policer_error_t; extern u8 *format_ip_punt_policer_trace (u8 * s, va_list * args); +extern vlib_node_registration_t ip4_punt_policer_node; +extern ip_punt_policer_t ip4_punt_policer_cfg; +extern vlib_node_registration_t ip6_punt_policer_node; +extern ip_punt_policer_t ip6_punt_policer_cfg; /** * IP punt policing node function -- cgit 1.2.3-korg