FD.io VPP  v21.01.1
Vector Packet Processing
ip_punt_drop.h File Reference
+ Include dependency graph for ip_punt_drop.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ip_punt_policer_t_
 IP4 punt policer configuration we police the punt rate to prevent overloading the host. More...
 
struct  ip_punt_policer_trace_t_
 
struct  ip_punt_redirect_rx_t_
 IP4 punt redirect per-rx interface configuration redirect punted traffic to another location. More...
 
struct  ip_punt_redirect_t_
 IP punt redirect configuration. More...
 
struct  ip4_punt_redirect_trace_t_
 IP Punt redirect trace. More...
 

Macros

#define foreach_ip_punt_policer_error   _(DROP, "ip punt policer drop")
 

Typedefs

typedef struct ip_punt_policer_t_ ip_punt_policer_t
 IP4 punt policer configuration we police the punt rate to prevent overloading the host. More...
 
typedef enum ip_punt_policer_next_t_ ip_punt_policer_next_t
 
typedef struct ip_punt_policer_trace_t_ ip_punt_policer_trace_t
 
typedef struct ip_punt_redirect_rx_t_ ip_punt_redirect_rx_t
 IP4 punt redirect per-rx interface configuration redirect punted traffic to another location. More...
 
typedef struct ip_punt_redirect_t_ ip_punt_redirect_cfg_t
 IP punt redirect configuration. More...
 
typedef enum ip_punt_redirect_next_t_ ip_punt_redirect_next_t
 IP punt redirect next nodes. More...
 
typedef struct ip4_punt_redirect_trace_t_ ip_punt_redirect_trace_t
 IP Punt redirect trace. More...
 
typedef walk_rc_t(* ip_punt_redirect_walk_cb_t) (u32 rx_sw_if_index, const ip_punt_redirect_rx_t *redirect, void *arg)
 

Enumerations

enum  ip_punt_policer_next_t_ { IP_PUNT_POLICER_NEXT_DROP, IP_PUNT_POLICER_N_NEXT }
 
enum  ip_punt_policer_error_t { IP4_PUNT_POLICER_N_ERROR }
 
enum  ip_punt_redirect_next_t_ { IP_PUNT_REDIRECT_NEXT_DROP, IP_PUNT_REDIRECT_NEXT_TX, IP_PUNT_REDIRECT_NEXT_ARP, IP_PUNT_REDIRECT_N_NEXT }
 IP punt redirect next nodes. More...
 

Functions

u8format_ip_punt_policer_trace (u8 *s, va_list *args)
 
static uword ip_punt_policer (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u8 arc_index, u32 policer_index)
 IP punt policing node function. More...
 
void ip_punt_redirect_add (fib_protocol_t fproto, u32 rx_sw_if_index, fib_forward_chain_type_t ct, fib_route_path_t *rpaths)
 Add a punt redirect entry. More...
 
void ip_punt_redirect_del (fib_protocol_t fproto, u32 rx_sw_if_index)
 
index_t ip_punt_redirect_find (fib_protocol_t fproto, u32 rx_sw_if_index)
 
u8format_ip_punt_redirect (u8 *s, va_list *args)
 
u8format_ip_punt_redirect_trace (u8 *s, va_list *args)
 
void ip_punt_redirect_walk (fib_protocol_t fproto, ip_punt_redirect_walk_cb_t cb, void *ctx)
 
static_always_inline ip_punt_redirect_rx_tip_punt_redirect_get (index_t rrxi)
 
static uword ip_punt_redirect (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u8 arc_index, fib_protocol_t fproto)
 
static uword ip_drop_or_punt (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u8 arc_index)
 

Variables

ip_punt_redirect_cfg_t ip_punt_redirect_cfg
 

Macro Definition Documentation

◆ foreach_ip_punt_policer_error

#define foreach_ip_punt_policer_error   _(DROP, "ip punt policer drop")

Definition at line 44 of file ip_punt_drop.h.

Typedef Documentation

◆ ip_punt_policer_next_t

◆ ip_punt_policer_t

IP4 punt policer configuration we police the punt rate to prevent overloading the host.

◆ ip_punt_policer_trace_t

◆ ip_punt_redirect_cfg_t

IP punt redirect configuration.

◆ ip_punt_redirect_next_t

IP punt redirect next nodes.

◆ ip_punt_redirect_rx_t

IP4 punt redirect per-rx interface configuration redirect punted traffic to another location.

◆ ip_punt_redirect_trace_t

IP Punt redirect trace.

◆ ip_punt_redirect_walk_cb_t

typedef walk_rc_t(* ip_punt_redirect_walk_cb_t) (u32 rx_sw_if_index, const ip_punt_redirect_rx_t *redirect, void *arg)

Definition at line 264 of file ip_punt_drop.h.

Enumeration Type Documentation

◆ ip_punt_policer_error_t

Enumerator
IP4_PUNT_POLICER_N_ERROR 

Definition at line 47 of file ip_punt_drop.h.

◆ ip_punt_policer_next_t_

Enumerator
IP_PUNT_POLICER_NEXT_DROP 
IP_PUNT_POLICER_N_NEXT 

Definition at line 32 of file ip_punt_drop.h.

◆ ip_punt_redirect_next_t_

IP punt redirect next nodes.

Enumerator
IP_PUNT_REDIRECT_NEXT_DROP 
IP_PUNT_REDIRECT_NEXT_TX 
IP_PUNT_REDIRECT_NEXT_ARP 
IP_PUNT_REDIRECT_N_NEXT 

Definition at line 232 of file ip_punt_drop.h.

Function Documentation

◆ format_ip_punt_policer_trace()

u8* format_ip_punt_policer_trace ( u8 s,
va_list *  args 
)

Definition at line 39 of file ip4_punt_drop.c.

◆ format_ip_punt_redirect()

u8* format_ip_punt_redirect ( u8 s,
va_list *  args 
)

Definition at line 131 of file ip_punt_drop.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_ip_punt_redirect_trace()

u8* format_ip_punt_redirect_trace ( u8 s,
va_list *  args 
)

Definition at line 25 of file ip_punt_drop.c.

◆ ip_drop_or_punt()

static uword ip_drop_or_punt ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
u8  arc_index 
)
inlinestatic

Definition at line 358 of file ip_punt_drop.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ip_punt_policer()

static uword ip_punt_policer ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
u8  arc_index,
u32  policer_index 
)
inlinestatic

IP punt policing node function.

Definition at line 61 of file ip_punt_drop.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ip_punt_redirect()

static uword ip_punt_redirect ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
u8  arc_index,
fib_protocol_t  fproto 
)
inlinestatic

Definition at line 277 of file ip_punt_drop.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ip_punt_redirect_add()

void ip_punt_redirect_add ( fib_protocol_t  fproto,
u32  rx_sw_if_index,
fib_forward_chain_type_t  ct,
fib_route_path_t rpaths 
)

Add a punt redirect entry.

Definition at line 74 of file ip_punt_drop.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ip_punt_redirect_del()

void ip_punt_redirect_del ( fib_protocol_t  fproto,
u32  rx_sw_if_index 
)

Definition at line 107 of file ip_punt_drop.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ip_punt_redirect_find()

index_t ip_punt_redirect_find ( fib_protocol_t  fproto,
u32  rx_sw_if_index 
)

Definition at line 61 of file ip_punt_drop.c.

+ Here is the caller graph for this function:

◆ ip_punt_redirect_get()

static_always_inline ip_punt_redirect_rx_t* ip_punt_redirect_get ( index_t  rrxi)

Definition at line 271 of file ip_punt_drop.h.

+ Here is the caller graph for this function:

◆ ip_punt_redirect_walk()

void ip_punt_redirect_walk ( fib_protocol_t  fproto,
ip_punt_redirect_walk_cb_t  cb,
void *  ctx 
)

Definition at line 160 of file ip_punt_drop.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ ip_punt_redirect_cfg

ip_punt_redirect_cfg_t ip_punt_redirect_cfg

Definition at line 22 of file ip_punt_drop.c.