FD.io VPP  v16.06
Vector Packet Processing
cnat_ipv4_icmp_query_outside_input.c File Reference
+ Include dependency graph for cnat_ipv4_icmp_query_outside_input.c:

Go to the source code of this file.

Data Structures

struct  cnat_ipv4_icmp_q_outside_input_main_t
 

Macros

#define foreach_cnat_ipv4_icmp_q_outside_input_error
 
#define NSTAGES   5
 
#define stage0   generic_stage0
 
#define SPP_LOG2_CACHE_LINE_BYTES   6
 
#define SPP_CACHE_LINE_BYTES   (1 << SPP_LOG2_CACHE_LINE_BYTES)
 

Enumerations

enum  cnat_ipv4_icmp_q_outside_input_t { CNAT_IPV4_ICMP_Q_OUTSIDE_INPUT_N_ERROR }
 
enum  cnat_ipv4_icmp_q_outside_input_next_t { CNAT_V4_ICMP_Q_O2I_T, CNAT_V4_ICMP_Q_O2I_D, CNAT_V4_ICMP_Q_O2I_NEXT }
 

Functions

void swap_ip_dst_icmp_id (ipv4_header *ip, icmp_v4_t *icmp, cnat_main_db_entry_t *db, u16 vrf)
 
static void stage1 (vlib_main_t *vm, vlib_node_runtime_t *node, u32 buffer_index)
 
static void stage2 (vlib_main_t *vm, vlib_node_runtime_t *node, u32 buffer_index)
 
static void stage3 (vlib_main_t *vm, vlib_node_runtime_t *node, u32 buffer_index)
 
static u32 last_stage (vlib_main_t *vm, vlib_node_runtime_t *node, u32 bi)
 
static uword cnat_ipv4_icmp_q_outside_input_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
clib_error_tcnat_ipv4_icmp_q_outside_input_init (vlib_main_t *vm)
 

Variables

static char * cnat_ipv4_icmp_q_outside_input_error_strings []
 
cnat_ipv4_icmp_q_outside_input_main_t cnat_ipv4_icmp_q_outside_input_main
 
vlib_node_registration_t cnat_ipv4_icmp_q_outside_input_node
 (constructor) VLIB_REGISTER_NODE (cnat_ipv4_icmp_q_outside_input_node) More...
 

Macro Definition Documentation

#define foreach_cnat_ipv4_icmp_q_outside_input_error
Value:
_(CNAT_V4_ICMP_Q_O2I_T_PKT, "cnat v4 icmp_q o2i packet transmit") \
_(CNAT_V4_ICMP_Q_O2I_MISS_PKT, "cnat v4 icmp_q o2i drop") \
_(CNAT_V4_ICMP_Q_O2I_TTL_GEN, "cnat v4 icmp_q o2i ttl generate") \
_(CNAT_V4_ICMP_Q_O2I_TTL_DROP, "cnat v4 icmp_q o2i ttl drop") \
_(CNAT_V4_ICMP_Q_O2I_NO_SESSION_DROP, "cnat v4 icmp_q o2i no session drop")

Definition at line 27 of file cnat_ipv4_icmp_query_outside_input.c.

#define NSTAGES   5

Definition at line 65 of file cnat_ipv4_icmp_query_outside_input.c.

#define SPP_CACHE_LINE_BYTES   (1 << SPP_LOG2_CACHE_LINE_BYTES)

Definition at line 165 of file cnat_ipv4_icmp_query_outside_input.c.

#define SPP_LOG2_CACHE_LINE_BYTES   6

Definition at line 164 of file cnat_ipv4_icmp_query_outside_input.c.

#define stage0   generic_stage0

Definition at line 128 of file cnat_ipv4_icmp_query_outside_input.c.

Enumeration Type Documentation

Enumerator
CNAT_V4_ICMP_Q_O2I_T 
CNAT_V4_ICMP_Q_O2I_D 
CNAT_V4_ICMP_Q_O2I_NEXT 

Definition at line 56 of file cnat_ipv4_icmp_query_outside_input.c.

Enumerator
CNAT_IPV4_ICMP_Q_OUTSIDE_INPUT_N_ERROR 

Definition at line 34 of file cnat_ipv4_icmp_query_outside_input.c.

Function Documentation

clib_error_t* cnat_ipv4_icmp_q_outside_input_init ( vlib_main_t vm)

Definition at line 371 of file cnat_ipv4_icmp_query_outside_input.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword cnat_ipv4_icmp_q_outside_input_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 345 of file cnat_ipv4_icmp_query_outside_input.c.

+ Here is the call graph for this function:

static u32 last_stage ( vlib_main_t vm,
vlib_node_runtime_t node,
u32  bi 
)
inlinestatic

Definition at line 230 of file cnat_ipv4_icmp_query_outside_input.c.

+ Here is the call graph for this function:

static void stage1 ( vlib_main_t vm,
vlib_node_runtime_t node,
u32  buffer_index 
)
inlinestatic

Definition at line 131 of file cnat_ipv4_icmp_query_outside_input.c.

+ Here is the call graph for this function:

static void stage2 ( vlib_main_t vm,
vlib_node_runtime_t node,
u32  buffer_index 
)
inlinestatic

Definition at line 168 of file cnat_ipv4_icmp_query_outside_input.c.

+ Here is the call graph for this function:

static void stage3 ( vlib_main_t vm,
vlib_node_runtime_t node,
u32  buffer_index 
)
inlinestatic

Definition at line 198 of file cnat_ipv4_icmp_query_outside_input.c.

+ Here is the call graph for this function:

void swap_ip_dst_icmp_id ( ipv4_header ip,
icmp_v4_t icmp,
cnat_main_db_entry_t db,
u16  vrf 
)
inline

Definition at line 67 of file cnat_ipv4_icmp_query_outside_input.c.

+ Here is the caller graph for this function:

Variable Documentation

char* cnat_ipv4_icmp_q_outside_input_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_cnat_ipv4_icmp_q_outside_input_error

Definition at line 41 of file cnat_ipv4_icmp_query_outside_input.c.

cnat_ipv4_icmp_q_outside_input_main_t cnat_ipv4_icmp_q_outside_input_main

Definition at line 62 of file cnat_ipv4_icmp_query_outside_input.c.

vlib_node_registration_t cnat_ipv4_icmp_q_outside_input_node
Initial value:
= {
.name = "vcgn-v4-icmp-q-o2i",
.vector_size = sizeof (u32),
.n_next_nodes = CNAT_V4_ICMP_Q_O2I_NEXT,
.next_nodes = {
[CNAT_V4_ICMP_Q_O2I_T] = "ip4-input",
[CNAT_V4_ICMP_Q_O2I_D] = "error-drop",
},
}
static uword cnat_ipv4_icmp_q_outside_input_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
bad routing header type(not 4)") sr_error (NO_MORE_SEGMENTS
static char * cnat_ipv4_icmp_q_outside_input_error_strings[]
#define ARRAY_LEN(x)
Definition: clib.h:59
unsigned int u32
Definition: types.h:88

(constructor) VLIB_REGISTER_NODE (cnat_ipv4_icmp_q_outside_input_node)

Definition at line 63 of file cnat_ipv4_icmp_query_outside_input.c.