FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
ipsec_tun.h File Reference
+ Include dependency graph for ipsec_tun.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ipsec_ep_t_
 
struct  ipsec_tun_protect_t_
 
struct  ipsec_tun_lkup_result_t_
 

Macros

#define FOR_EACH_IPSEC_PROTECT_INPUT_SAI(_itp, _sai, body)
 
#define FOR_EACH_IPSEC_PROTECT_INPUT_SA(_itp, _sa, body)
 

Typedefs

typedef enum ipsec_protect_flags_t_ ipsec_protect_flags_t
 
typedef struct ipsec_ep_t_ ipsec_ep_t
 
typedef struct ipsec_tun_protect_t_ ipsec_tun_protect_t
 
typedef walk_rc_t(* ipsec_tun_protect_walk_cb_t) (index_t itpi, void *arg)
 
typedef struct ipsec_tun_lkup_result_t_ ipsec_tun_lkup_result_t
 

Enumerations

enum  ipsec_protect_flags_t_ { IPSEC_PROTECT_L2 = (1 << 0), IPSEC_PROTECT_ENCAPED = (1 << 1) }
 

Functions

typedef CLIB_PACKED (struct { union { struct { ip4_address_t remote_ip;u32 spi;};u64 as_u64;};}) ipsec4_tunnel_key_t
 
typedef CLIB_PACKED (struct { ip6_address_t remote_ip;u32 spi;}) ipsec6_tunnel_key_t
 
u8format_ipsec4_tunnel_key (u8 *s, va_list *args)
 
u8format_ipsec6_tunnel_key (u8 *s, va_list *args)
 
int ipsec_tun_protect_update_one (u32 sw_if_index, u32 sa_out, u32 sa_in)
 
int ipsec_tun_protect_update (u32 sw_if_index, u32 sa_out, u32 *sa_ins)
 
int ipsec_tun_protect_update_in (u32 sw_if_index, u32 sa_in)
 
int ipsec_tun_protect_update_out (u32 sw_if_index, u32 sa_out)
 
int ipsec_tun_protect_del (u32 sw_if_index)
 
void ipsec_tun_protect_walk (ipsec_tun_protect_walk_cb_t fn, void *cttx)
 
index_t ipsec_tun_protect_find (u32 sw_if_index)
 
u8format_ipsec_tun_protect (u8 *s, va_list *args)
 
static ipsec_tun_protect_tipsec_tun_protect_get (u32 index)
 

Variables

vlib_node_registration_t ipsec4_tun_input_node
 (constructor) VLIB_REGISTER_NODE (ipsec4_tun_input_node) More...
 
vlib_node_registration_t ipsec6_tun_input_node
 (constructor) VLIB_REGISTER_NODE (ipsec6_tun_input_node) More...
 
ipsec_tun_protect_tipsec_protect_pool
 Pool of tunnel protection objects. More...
 

Macro Definition Documentation

◆ FOR_EACH_IPSEC_PROTECT_INPUT_SA

#define FOR_EACH_IPSEC_PROTECT_INPUT_SA (   _itp,
  _sa,
  body 
)
Value:
{ \
u32 __ii; \
for (__ii = 0; __ii < _itp->itp_n_sa_in; __ii++) { \
_sa = ipsec_sa_get(itp->itp_in_sas[__ii]); \
body; \
} \
}
static ipsec_sa_t * ipsec_sa_get(u32 sa_index)
Definition: ipsec.h:273

Definition at line 90 of file ipsec_tun.h.

◆ FOR_EACH_IPSEC_PROTECT_INPUT_SAI

#define FOR_EACH_IPSEC_PROTECT_INPUT_SAI (   _itp,
  _sai,
  body 
)
Value:
{ \
u32 __ii; \
for (__ii = 0; __ii < _itp->itp_n_sa_in; __ii++) { \
_sai = itp->itp_in_sas[__ii]; \
body; \
} \
}

Definition at line 82 of file ipsec_tun.h.

Typedef Documentation

◆ ipsec_ep_t

typedef struct ipsec_ep_t_ ipsec_ep_t

◆ ipsec_protect_flags_t

◆ ipsec_tun_lkup_result_t

◆ ipsec_tun_protect_t

◆ ipsec_tun_protect_walk_cb_t

typedef walk_rc_t(* ipsec_tun_protect_walk_cb_t) (index_t itpi, void *arg)

Definition at line 108 of file ipsec_tun.h.

Enumeration Type Documentation

◆ ipsec_protect_flags_t_

Enumerator
IPSEC_PROTECT_L2 
IPSEC_PROTECT_ENCAPED 

Definition at line 50 of file ipsec_tun.h.

Function Documentation

◆ CLIB_PACKED() [1/2]

typedef CLIB_PACKED ( struct { union { struct { ip4_address_t remote_ip;u32 spi;};u64 as_u64;};}  )

◆ CLIB_PACKED() [2/2]

typedef CLIB_PACKED ( struct { ip6_address_t remote_ip;u32 spi;}  )

◆ format_ipsec4_tunnel_key()

u8* format_ipsec4_tunnel_key ( u8 s,
va_list *  args 
)

Definition at line 374 of file ipsec_format.c.

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

◆ format_ipsec6_tunnel_key()

u8* format_ipsec6_tunnel_key ( u8 s,
va_list *  args 
)

Definition at line 387 of file ipsec_format.c.

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

◆ format_ipsec_tun_protect()

u8* format_ipsec_tun_protect ( u8 s,
va_list *  args 
)

Definition at line 340 of file ipsec_format.c.

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

◆ ipsec_tun_protect_del()

int ipsec_tun_protect_del ( u32  sw_if_index)

Definition at line 480 of file ipsec_tun.c.

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

◆ ipsec_tun_protect_find()

index_t ipsec_tun_protect_find ( u32  sw_if_index)

Definition at line 247 of file ipsec_tun.c.

+ Here is the caller graph for this function:

◆ ipsec_tun_protect_get()

static ipsec_tun_protect_t* ipsec_tun_protect_get ( u32  index)
inlinestatic

Definition at line 138 of file ipsec_tun.h.

+ Here is the caller graph for this function:

◆ ipsec_tun_protect_update()

int ipsec_tun_protect_update ( u32  sw_if_index,
u32  sa_out,
u32 sa_ins 
)

Definition at line 362 of file ipsec_tun.c.

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

◆ ipsec_tun_protect_update_in()

int ipsec_tun_protect_update_in ( u32  sw_if_index,
u32  sa_in 
)

Definition at line 318 of file ipsec_tun.c.

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

◆ ipsec_tun_protect_update_one()

int ipsec_tun_protect_update_one ( u32  sw_if_index,
u32  sa_out,
u32  sa_in 
)

Definition at line 256 of file ipsec_tun.c.

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

◆ ipsec_tun_protect_update_out()

int ipsec_tun_protect_update_out ( u32  sw_if_index,
u32  sa_out 
)

Definition at line 268 of file ipsec_tun.c.

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

◆ ipsec_tun_protect_walk()

void ipsec_tun_protect_walk ( ipsec_tun_protect_walk_cb_t  fn,
void *  cttx 
)

Definition at line 511 of file ipsec_tun.c.

+ Here is the caller graph for this function:

Variable Documentation

◆ ipsec4_tun_input_node

vlib_node_registration_t ipsec4_tun_input_node

(constructor) VLIB_REGISTER_NODE (ipsec4_tun_input_node)

Definition at line 364 of file ipsec_tun_in.c.

◆ ipsec6_tun_input_node

vlib_node_registration_t ipsec6_tun_input_node

(constructor) VLIB_REGISTER_NODE (ipsec6_tun_input_node)

Definition at line 387 of file ipsec_tun_in.c.

◆ ipsec_protect_pool

ipsec_tun_protect_t* ipsec_protect_pool

Pool of tunnel protection objects.

Definition at line 25 of file ipsec_tun.c.