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

Go to the source code of this file.

Data Structures

struct  ipip_tunnel_t
 A representation of a IPIP tunnel. More...
 
struct  ipip_main_t
 

Macros

#define foreach_ipip_error
 

Enumerations

enum  ipip_error_t { IPIP_N_ERROR }
 

Functions

 STATIC_ASSERT_SIZEOF (ipip_tunnel_key_t, 5 *sizeof(u64))
 
static_always_inline u32 sixrd_get_addr_net (const ipip_tunnel_t *t, u64 dal)
 
int ipip_add_tunnel (ipip_transport_t transport, u32 instance, ip46_address_t *src, ip46_address_t *dst, u32 fib_index, tunnel_encap_decap_flags_t flags, ip_dscp_t dscp, tunnel_mode_t mode, u32 *sw_if_indexp)
 
int ipip_del_tunnel (u32 sw_if_index)
 
int sixrd_add_tunnel (ip6_address_t *ip6_prefix, u8 ip6_prefix_len, ip4_address_t *ip4_prefix, u8 ip4_prefix_len, ip4_address_t *ip4_src, bool security_check, u32 ip4_fib_index, u32 ip6_fib_index, u32 *sw_if_index)
 
int sixrd_del_tunnel (u32 sw_if_index)
 
void ipip_tunnel_db_add (ipip_tunnel_t *t, const ipip_tunnel_key_t *key)
 
void ipip_tunnel_db_remove (ipip_tunnel_t *t, const ipip_tunnel_key_t *key)
 
ipip_tunnel_tipip_tunnel_db_find (const ipip_tunnel_key_t *key)
 
ipip_tunnel_tipip_tunnel_db_find_by_sw_if_index (u32 sw_if_index)
 
void ipip_mk_key (const ipip_tunnel_t *t, ipip_tunnel_key_t *key)
 
void ipip_mk_key_i (ipip_transport_t transport, ipip_mode_t mode, const ip46_address_t *src, const ip46_address_t *dst, u32 fib_index, ipip_tunnel_key_t *key)
 

Variables

vnet_hw_interface_class_t ipip_hw_interface_class
 
ipip_main_t ipip_main
 
vlib_node_registration_t ipip4_input_node
 (constructor) VLIB_REGISTER_NODE (ipip4_input_node) More...
 
vlib_node_registration_t ipip6_input_node
 (constructor) VLIB_REGISTER_NODE (ipip6_input_node) More...
 

Macro Definition Documentation

◆ foreach_ipip_error

#define foreach_ipip_error
Value:
/* Must be first. */ \
_(DECAP_PKTS, "packets decapsulated") \
_(BAD_PROTOCOL, "bad protocol") \
_(NO_TUNNEL, "no tunnel") \
_(FRAGMENTED_PACKET, "fragmented outer packet")

Definition at line 29 of file ipip.h.

Enumeration Type Documentation

◆ ipip_error_t

Enumerator
IPIP_N_ERROR 

Definition at line 36 of file ipip.h.

Function Documentation

◆ ipip_add_tunnel()

int ipip_add_tunnel ( ipip_transport_t  transport,
u32  instance,
ip46_address_t *  src,
ip46_address_t *  dst,
u32  fib_index,
tunnel_encap_decap_flags_t  flags,
ip_dscp_t  dscp,
tunnel_mode_t  mode,
u32 sw_if_indexp 
)

Definition at line 664 of file ipip.c.

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

◆ ipip_del_tunnel()

int ipip_del_tunnel ( u32  sw_if_index)

Definition at line 772 of file ipip.c.

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

◆ ipip_mk_key()

void ipip_mk_key ( const ipip_tunnel_t t,
ipip_tunnel_key_t *  key 
)

Definition at line 548 of file ipip.c.

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

◆ ipip_mk_key_i()

void ipip_mk_key_i ( ipip_transport_t  transport,
ipip_mode_t  mode,
const ip46_address_t *  src,
const ip46_address_t *  dst,
u32  fib_index,
ipip_tunnel_key_t *  key 
)

Definition at line 533 of file ipip.c.

+ Here is the caller graph for this function:

◆ ipip_tunnel_db_add()

void ipip_tunnel_db_add ( ipip_tunnel_t t,
const ipip_tunnel_key_t *  key 
)

Definition at line 517 of file ipip.c.

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

◆ ipip_tunnel_db_find()

ipip_tunnel_t* ipip_tunnel_db_find ( const ipip_tunnel_key_t *  key)

Definition at line 493 of file ipip.c.

+ Here is the caller graph for this function:

◆ ipip_tunnel_db_find_by_sw_if_index()

ipip_tunnel_t* ipip_tunnel_db_find_by_sw_if_index ( u32  sw_if_index)

Definition at line 505 of file ipip.c.

+ Here is the caller graph for this function:

◆ ipip_tunnel_db_remove()

void ipip_tunnel_db_remove ( ipip_tunnel_t t,
const ipip_tunnel_key_t *  key 
)

Definition at line 525 of file ipip.c.

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

◆ sixrd_add_tunnel()

int sixrd_add_tunnel ( ip6_address_t *  ip6_prefix,
u8  ip6_prefix_len,
ip4_address_t ip4_prefix,
u8  ip4_prefix_len,
ip4_address_t ip4_src,
bool  security_check,
u32  ip4_fib_index,
u32  ip6_fib_index,
u32 sw_if_index 
)

Definition at line 271 of file sixrd.c.

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

◆ sixrd_del_tunnel()

int sixrd_del_tunnel ( u32  sw_if_index)

Definition at line 374 of file sixrd.c.

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

◆ sixrd_get_addr_net()

static_always_inline u32 sixrd_get_addr_net ( const ipip_tunnel_t t,
u64  dal 
)

Definition at line 131 of file ipip.h.

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

◆ STATIC_ASSERT_SIZEOF()

STATIC_ASSERT_SIZEOF ( ipip_tunnel_key_t  ,
5 *  sizeofu64 
)

Variable Documentation

◆ ipip4_input_node

vlib_node_registration_t ipip4_input_node

(constructor) VLIB_REGISTER_NODE (ipip4_input_node)

Definition at line 252 of file node.c.

◆ ipip6_input_node

vlib_node_registration_t ipip6_input_node

(constructor) VLIB_REGISTER_NODE (ipip6_input_node)

Definition at line 268 of file node.c.

◆ ipip_hw_interface_class

vnet_hw_interface_class_t ipip_hw_interface_class

◆ ipip_main

ipip_main_t ipip_main

Definition at line 31 of file ipip.c.