FD.io VPP  v20.01-48-g3e0dafb74
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
 
#define forech_ipip_tunnel_flag
 Keep these idenitical to those in ipip.api. More...
 
#define IPIP_TUNNEL_FLAG_MASK   (0x1f)
 

Typedefs

typedef enum ipip_tunnel_flags_t_ ipip_tunnel_flags_t
 

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 }
 
enum  ipip_tunnel_flags_t_ { forech_ipip_tunnel_flag }
 

Functions

u8format_ipip_tunnel_flags (u8 *s, va_list *args)
 
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, ipip_tunnel_flags_t flags, ip_dscp_t dscp, 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.

◆ forech_ipip_tunnel_flag

#define forech_ipip_tunnel_flag
Value:
_(NONE, "none", 0x0) \
_(ENCAP_COPY_DF, "encap-copy-df", 0x1) \
_(ENCAP_SET_DF, "encap-set-df", 0x2) \
_(ENCAP_COPY_DSCP, "encap-copy-dscp", 0x4) \
_(ENCAP_COPY_ECN, "encap-copy-ecn", 0x8) \
_(DECAP_COPY_ECN, "decap-copy-ecn", 0x10)

Keep these idenitical to those in ipip.api.

Definition at line 70 of file ipip.h.

◆ IPIP_TUNNEL_FLAG_MASK

#define IPIP_TUNNEL_FLAG_MASK   (0x1f)

Definition at line 85 of file ipip.h.

Typedef Documentation

◆ ipip_tunnel_flags_t

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.

◆ ipip_tunnel_flags_t_

Enumerator
forech_ipip_tunnel_flag 

Definition at line 78 of file ipip.h.

Function Documentation

◆ format_ipip_tunnel_flags()

u8* format_ipip_tunnel_flags ( u8 s,
va_list *  args 
)

Definition at line 269 of file ipip.c.

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

◆ ipip_add_tunnel()

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

Definition at line 414 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 512 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 394 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 370 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 382 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 404 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 376 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 149 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 262 of file node.c.

◆ ipip6_input_node

vlib_node_registration_t ipip6_input_node

(constructor) VLIB_REGISTER_NODE (ipip6_input_node)

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