FD.io VPP  v20.05.1-5-g09f167997
Vector Packet Processing
punt.h File Reference
+ Include dependency graph for punt.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef enum vlib_punt_reason_t_ vlib_punt_reason_t
 The 'syatem' defined punt reasons. More...
 
typedef int(* punt_reason_walk_cb_t) (vlib_punt_reason_t id, const u8 *name, void *ctx)
 Walk each punt reason. More...
 
typedef int vlib_punt_hdl_t
 Typedef for a client handle. More...
 
typedef void(* punt_interested_listener_t) (vlib_enable_or_disable_t i, void *data)
 

Enumerations

enum  vlib_punt_reason_t_ { PUNT_N_REASONS }
 The 'syatem' defined punt reasons. More...
 

Functions

void punt_reason_walk (punt_reason_walk_cb_t cb, void *cxt)
 
u8format_vlib_punt_reason (u8 *s, va_list *args)
 Format a punt reason. More...
 
vlib_punt_hdl_t vlib_punt_client_register (const char *who)
 Register a new clinet. More...
 
int vlib_punt_reason_alloc (vlib_punt_hdl_t client, const char *reason_name, punt_interested_listener_t fn, void *data, vlib_punt_reason_t *reason)
 Allocate a new punt reason. More...
 
int vlib_punt_reason_validate (vlib_punt_reason_t reason)
 Validate that a punt reason is assigned. More...
 
int vlib_punt_register (vlib_punt_hdl_t client, vlib_punt_reason_t reason, const char *node)
 Register a node to receive particular punted buffers. More...
 
int vlib_punt_unregister (vlib_punt_hdl_t client, vlib_punt_reason_t pr, const char *node)
 

Variables

u16 ** punt_dp_db
 FOR USE IN THE DP ONLY. More...
 
vlib_combined_counter_main_t punt_counters
 FOR USE IN THE DP ONLY. More...
 

Typedef Documentation

◆ punt_interested_listener_t

typedef void(* punt_interested_listener_t) (vlib_enable_or_disable_t i, void *data)

Definition at line 59 of file punt.h.

◆ punt_reason_walk_cb_t

typedef int(* punt_reason_walk_cb_t) (vlib_punt_reason_t id, const u8 *name, void *ctx)

Walk each punt reason.

Definition at line 34 of file punt.h.

◆ vlib_punt_hdl_t

typedef int vlib_punt_hdl_t

Typedef for a client handle.

Definition at line 47 of file punt.h.

◆ vlib_punt_reason_t

The 'syatem' defined punt reasons.

Only add to this list reasons defined and used within the vlib subsystem. To define new reasons in e.g. plgins, use punt_reason_alloc()

Enumeration Type Documentation

◆ vlib_punt_reason_t_

The 'syatem' defined punt reasons.

Only add to this list reasons defined and used within the vlib subsystem. To define new reasons in e.g. plgins, use punt_reason_alloc()

Enumerator
PUNT_N_REASONS 

Definition at line 26 of file punt.h.

Function Documentation

◆ format_vlib_punt_reason()

u8* format_vlib_punt_reason ( u8 s,
va_list *  args 
)

Format a punt reason.

Definition at line 147 of file punt.c.

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

◆ punt_reason_walk()

void punt_reason_walk ( punt_reason_walk_cb_t  cb,
void *  cxt 
)

Definition at line 433 of file punt.c.

+ Here is the caller graph for this function:

◆ vlib_punt_client_register()

vlib_punt_hdl_t vlib_punt_client_register ( const char *  who)

Register a new clinet.

Parameters
who- The name of the client

the handle the punt infra allocated for this client that must be used when the client wishes to use the infra

Definition at line 155 of file punt.c.

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

◆ vlib_punt_reason_alloc()

int vlib_punt_reason_alloc ( vlib_punt_hdl_t  client,
const char *  reason_name,
punt_interested_listener_t  fn,
void *  data,
vlib_punt_reason_t reason 
)

Allocate a new punt reason.

Parameters
fn- A callback to invoke when an entity becomes [un]interested in the punt code.
data- To be passed in the callback function.

Definition at line 403 of file punt.c.

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

◆ vlib_punt_reason_validate()

int vlib_punt_reason_validate ( vlib_punt_reason_t  reason)

Validate that a punt reason is assigned.

Definition at line 394 of file punt.c.

+ Here is the caller graph for this function:

◆ vlib_punt_register()

int vlib_punt_register ( vlib_punt_hdl_t  client,
vlib_punt_reason_t  reason,
const char *  node 
)

Register a node to receive particular punted buffers.

client - The registered client registering for the packets

Parameters
reason- The reason the packet was punted
node- The node to which the punted packets will be sent

Definition at line 267 of file punt.c.

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

◆ vlib_punt_unregister()

int vlib_punt_unregister ( vlib_punt_hdl_t  client,
vlib_punt_reason_t  pr,
const char *  node 
)

Definition at line 336 of file punt.c.

+ Here is the call graph for this function:

Variable Documentation

◆ punt_counters

FOR USE IN THE DP ONLY.

Per-reason counters

FOR USE IN THE DP ONLY.

Definition at line 26 of file punt.c.

◆ punt_dp_db

u16** punt_dp_db

FOR USE IN THE DP ONLY.

Arc[s] to follow for each reason

FOR USE IN THE DP ONLY.

this is a vector of edges per-reason

Definition at line 118 of file punt.c.