diff options
author | Brian Russell <brian@graphiant.com> | 2021-01-19 16:48:56 +0000 |
---|---|---|
committer | Neale Ranns <neale@graphiant.com> | 2021-01-28 10:26:00 +0000 |
commit | baebb22c877d98c891d4d7a20ae23dc07f918edd (patch) | |
tree | 9ca93fabed20b5a7998822ee461ae875802fd830 /src | |
parent | 89cd74427277692f77f2d38e79495592ad440a68 (diff) |
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 <brian@graphiant.com>
Change-Id: Iee50267ee7e36f0e6c95b9b43bf651648198b834
Diffstat (limited to 'src')
-rw-r--r-- | src/vnet/ip/ip_punt_drop.c | 5 | ||||
-rw-r--r-- | src/vnet/ip/ip_punt_drop.h | 5 |
2 files changed, 10 insertions, 0 deletions
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 |