Go to the source code of this file.
|
u8 * | format_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...
|
|
static int | punt_validate_client (vlib_punt_hdl_t client) |
|
static u64 | punt_reg_mk_key (vlib_punt_reason_t reason, u32 node_index) |
|
static u32 | punt_reg_find (vlib_punt_reason_t reason, u32 node_index) |
|
static void | punt_reg_add (const punt_reg_t *pr) |
|
static void | punt_reg_remove (const punt_reg_t *pr) |
|
static void | punt_reg_mk_dp (vlib_punt_reason_t reason) |
| reconstruct the DP per-reason DB More...
|
|
int | vlib_punt_register (vlib_punt_hdl_t client, vlib_punt_reason_t reason, const char *node_name) |
| Register a node to receive particular punted buffers. More...
|
|
int | vlib_punt_unregister (vlib_punt_hdl_t client, vlib_punt_reason_t reason, const char *node_name) |
|
int | vlib_punt_reason_validate (vlib_punt_reason_t reason) |
| Validate that a punt reason is assigned. 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...
|
|
void | punt_reason_walk (punt_reason_walk_cb_t cb, void *ctx) |
|
uword | unformat_punt_client (unformat_input_t *input, va_list *args) |
|
u8 * | format_punt_reg (u8 *s, va_list *args) |
|
u8 * | format_punt_reason_data (u8 *s, va_list *args) |
|
u8 * | format_punt_client (u8 *s, va_list *args) |
|
static clib_error_t * | punt_client_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | punt_reason_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | punt_db_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | punt_stats_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | punt_init (vlib_main_t *vm) |
|
◆ punt_client_t
A client using the punt serivce and its registrations.
◆ punt_format_flags_t
◆ punt_reason_data_t
◆ punt_reg_t
A registration, by a client, to direct punted traffic to a given node.
◆ punt_format_flags_t_
Enumerator |
---|
PUNT_FORMAT_FLAG_NONE | |
PUNT_FORMAT_FLAG_DETAIL | |
Definition at line 73 of file punt.c.
◆ format_punt_client()
u8* format_punt_client |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
◆ format_punt_reason_data()
u8* format_punt_reason_data |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
◆ format_punt_reg()
u8* format_punt_reg |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
◆ format_vlib_punt_reason()
u8* format_vlib_punt_reason |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
Format a punt reason.
Definition at line 148 of file punt.c.
◆ punt_client_show()
◆ punt_db_show()
◆ punt_init()
◆ punt_reason_show()
◆ punt_reason_walk()
◆ punt_reg_add()
◆ punt_reg_find()
◆ punt_reg_mk_dp()
reconstruct the DP per-reason DB
Definition at line 229 of file punt.c.
◆ punt_reg_mk_key()
◆ punt_reg_remove()
static void punt_reg_remove |
( |
const punt_reg_t * |
pr | ) |
|
|
static |
◆ punt_stats_show()
◆ punt_validate_client()
◆ unformat_punt_client()
◆ vlib_punt_client_register()
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 156 of file punt.c.
◆ vlib_punt_reason_alloc()
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 404 of file punt.c.
◆ vlib_punt_reason_validate()
Validate that a punt reason is assigned.
Definition at line 395 of file punt.c.
◆ vlib_punt_register()
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 268 of file punt.c.
◆ vlib_punt_unregister()
◆ punt_client_db
DB of clients key'd by their name.
Definition at line 145 of file punt.c.
◆ punt_client_pool
Pool of clients.
Definition at line 140 of file punt.c.
◆ punt_client_show_command
Initial value:=
{
.path = "show punt client",
.short_help = "show client[s] registered with the punt infra",
}
static clib_error_t * punt_client_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
(constructor) VLIB_CLI_COMMAND (punt_client_show_command)
Definition at line 561 of file punt.c.
◆ punt_counters
Initial value:= {
.name = "punt",
.stat_segment_name = "/net/punt",
}
Counters per punt-reason.
FOR USE IN THE DP ONLY.
Definition at line 27 of file punt.c.
◆ punt_db_show_command
Initial value:=
{
.path = "show punt db",
.short_help = "show the punt DB",
}
static clib_error_t * punt_db_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
(constructor) VLIB_CLI_COMMAND (punt_db_show_command)
Definition at line 627 of file punt.c.
◆ punt_dp_db
A DB used in the DP per-reason to dispatch packets to the requested nodes.
FOR USE IN THE DP ONLY.
this is a vector of edges per-reason
Definition at line 119 of file punt.c.
◆ punt_reason_data
data for each punt reason
Definition at line 71 of file punt.c.
◆ punt_reason_last
The last allocated punt reason Value 0 is reserved for invalid index.
Definition at line 22 of file punt.c.
◆ punt_reason_show_command
Initial value:=
{
.path = "show punt reasons",
.short_help = "show all punt reasons",
}
static clib_error_t * punt_reason_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
(constructor) VLIB_CLI_COMMAND (punt_reason_show_command)
Definition at line 584 of file punt.c.
◆ punt_reg_db
A DB of all the register nodes against punt reason and node index.
Definition at line 113 of file punt.c.
◆ punt_reg_pool
Pool of registrations.
Definition at line 108 of file punt.c.
◆ punt_stats_show_command
Initial value:=
{
.path = "show punt stats",
.short_help = "show the punt stats",
}
static clib_error_t * punt_stats_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
(constructor) VLIB_CLI_COMMAND (punt_stats_show_command)
Definition at line 654 of file punt.c.