FD.io VPP  v19.01.3-6-g70449b9b9
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_key_t
 
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 }
 
enum  ipip_transport_t { IPIP_TRANSPORT_IP4, IPIP_TRANSPORT_IP6 }
 IPIP Tunnel key. More...
 
enum  ipip_mode_t { IPIP_MODE_P2P = 0, IPIP_MODE_6RD }
 

Functions

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, u8 tc_tos, 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, ipip_tunnel_key_t *key)
 
void ipip_tunnel_db_remove (ipip_tunnel_t *t)
 
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)
 

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.

◆ ipip_mode_t

Enumerator
IPIP_MODE_P2P 
IPIP_MODE_6RD 

Definition at line 61 of file ipip.h.

◆ ipip_transport_t

IPIP Tunnel key.

Enumerator
IPIP_TRANSPORT_IP4 
IPIP_TRANSPORT_IP6 

Definition at line 47 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,
u8  tc_tos,
u32 sw_if_indexp 
)

Definition at line 436 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 535 of file ipip.c.

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

◆ ipip_tunnel_db_add()

void ipip_tunnel_db_add ( ipip_tunnel_t t,
ipip_tunnel_key_t key 
)

Definition at line 340 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 ( ipip_tunnel_key_t key)

Definition at line 316 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 328 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)

Definition at line 350 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 272 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 377 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 134 of file ipip.h.

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

Variable Documentation

◆ ipip4_input_node

vlib_node_registration_t ipip4_input_node

(constructor) VLIB_REGISTER_NODE (ipip4_input_node)

Definition at line 240 of file node.c.

◆ ipip6_input_node

vlib_node_registration_t ipip6_input_node

(constructor) VLIB_REGISTER_NODE (ipip6_input_node)

Definition at line 257 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 28 of file ipip.c.