FD.io VPP  v18.10-34-gcce845e
Vector Packet Processing
ipip.c File Reference
+ Include dependency graph for ipip.c:

Go to the source code of this file.

Data Structures

struct  ipip_tx_trace_t
 

Functions

u8format_ipip_tx_trace (u8 *s, va_list *args)
 
static u8ipip_build_rewrite (vnet_main_t *vnm, u32 sw_if_index, vnet_link_t link_type, const void *dst_address)
 
static void ipip4_fixup (vlib_main_t *vm, ip_adjacency_t *adj, vlib_buffer_t *b, const void *data)
 
static void ipip6_fixup (vlib_main_t *vm, ip_adjacency_t *adj, vlib_buffer_t *b, const void *data)
 
static void ipip_tunnel_stack (adj_index_t ai)
 
static adj_walk_rc_t ipip_adj_walk_cb (adj_index_t ai, void *ctx)
 
static void ipip_tunnel_restack (ipip_tunnel_t *gt)
 
void ipip_update_adj (vnet_main_t *vnm, u32 sw_if_index, adj_index_t ai)
 
static u8format_ipip_tunnel_name (u8 *s, va_list *args)
 
static u8format_ipip_device (u8 *s, va_list *args)
 
static clib_error_tipip_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
 VNET_DEVICE_CLASS (ipip_device_class)
 
 VNET_HW_INTERFACE_CLASS (ipip_hw_interface_class)
 
ipip_tunnel_tipip_tunnel_db_find (ipip_tunnel_key_t *key)
 
ipip_tunnel_tipip_tunnel_db_find_by_sw_if_index (u32 sw_if_index)
 
void ipip_tunnel_db_add (ipip_tunnel_t *t, ipip_tunnel_key_t *key)
 
void ipip_tunnel_db_remove (ipip_tunnel_t *t)
 
static ipip_tunnel_tipip_tunnel_from_fib_node (fib_node_t *node)
 
static fib_node_back_walk_rc_t ipip_tunnel_back_walk (fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
 
static fib_node_tipip_tunnel_fib_node_get (fib_node_index_t index)
 
static void ipip_tunnel_last_lock_gone (fib_node_t *node)
 
static void ipip_fib_add (ipip_tunnel_t *t)
 
static void ipip_fib_delete (ipip_tunnel_t *t)
 
int ipip_add_tunnel (ipip_transport_t transport, u32 instance, ip46_address_t *src, ip46_address_t *dst, u32 fib_index, u8 tc_tos, u32 *sw_if_indexp)
 
int ipip_del_tunnel (u32 sw_if_index)
 
static clib_error_tipip_init (vlib_main_t *vm)
 

Variables

ipip_main_t ipip_main
 
static const fib_node_vft_t ipip_vft
 

Function Documentation

static u8* format_ipip_device ( u8 s,
va_list *  args 
)
static

Definition at line 292 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* format_ipip_tunnel_name ( u8 s,
va_list *  args 
)
static

Definition at line 278 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_ipip_tx_trace ( u8 s,
va_list *  args 
)

Definition at line 40 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ipip4_fixup ( vlib_main_t vm,
ip_adjacency_t adj,
vlib_buffer_t b,
const void *  data 
)
static

Definition at line 104 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ipip6_fixup ( vlib_main_t vm,
ip_adjacency_t adj,
vlib_buffer_t b,
const void *  data 
)
static

Definition at line 135 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ipip_add_tunnel ( ipip_transport_t  transport,
u32  instance,
ip46_address_t *  src,
ip46_address_t *  dst,
u32  fib_index,
u8  tc_tos,
u32 sw_if_indexp 
)

Definition at line 467 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static adj_walk_rc_t ipip_adj_walk_cb ( adj_index_t  ai,
void *  ctx 
)
static

Definition at line 232 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* ipip_build_rewrite ( vnet_main_t vnm,
u32  sw_if_index,
vnet_link_t  link_type,
const void *  dst_address 
)
static

Definition at line 54 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ipip_del_tunnel ( u32  sw_if_index)

Definition at line 566 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ipip_fib_add ( ipip_tunnel_t t)
static

Definition at line 440 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ipip_fib_delete ( ipip_tunnel_t t)
static

Definition at line 459 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* ipip_init ( vlib_main_t vm)
static

Definition at line 589 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* ipip_interface_admin_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 302 of file ipip.c.

+ Here is the call graph for this function:

static fib_node_back_walk_rc_t ipip_tunnel_back_walk ( fib_node_t node,
fib_node_back_walk_ctx_t ctx 
)
static

Definition at line 400 of file ipip.c.

+ Here is the call graph for this function:

void ipip_tunnel_db_add ( ipip_tunnel_t t,
ipip_tunnel_key_t key 
)

Definition at line 371 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ipip_tunnel_t* ipip_tunnel_db_find ( ipip_tunnel_key_t key)

Definition at line 347 of file ipip.c.

+ Here is the caller graph for this function:

ipip_tunnel_t* ipip_tunnel_db_find_by_sw_if_index ( u32  sw_if_index)

Definition at line 359 of file ipip.c.

+ Here is the caller graph for this function:

void ipip_tunnel_db_remove ( ipip_tunnel_t t)

Definition at line 381 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static fib_node_t* ipip_tunnel_fib_node_get ( fib_node_index_t  index)
static

Definition at line 408 of file ipip.c.

static ipip_tunnel_t* ipip_tunnel_from_fib_node ( fib_node_t node)
static

Definition at line 391 of file ipip.c.

+ Here is the caller graph for this function:

static void ipip_tunnel_last_lock_gone ( fib_node_t node)
static

Definition at line 420 of file ipip.c.

static void ipip_tunnel_restack ( ipip_tunnel_t gt)
static

Definition at line 240 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ipip_tunnel_stack ( adj_index_t  ai)
static

Definition at line 172 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ipip_update_adj ( vnet_main_t vnm,
u32  sw_if_index,
adj_index_t  ai 
)

Definition at line 254 of file ipip.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VNET_DEVICE_CLASS ( ipip_device_class  )

+ Here is the caller graph for this function:

VNET_HW_INTERFACE_CLASS ( ipip_hw_interface_class  )

+ Here is the caller graph for this function:

Variable Documentation

ipip_main_t ipip_main

Definition at line 28 of file ipip.c.

const fib_node_vft_t ipip_vft
static
Initial value:
= {
.fnv_last_lock = ipip_tunnel_last_lock_gone,
.fnv_back_walk = ipip_tunnel_back_walk,
}
static fib_node_t * ipip_tunnel_fib_node_get(fib_node_index_t index)
Definition: ipip.c:408
static void ipip_tunnel_last_lock_gone(fib_node_t *node)
Definition: ipip.c:420
static fib_node_back_walk_rc_t ipip_tunnel_back_walk(fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
Definition: ipip.c:400

Definition at line 433 of file ipip.c.