FD.io VPP  v19.04.2-12-g66b1689
Vector Packet Processing
ipsec_sa.c File Reference
+ Include dependency graph for ipsec_sa.c:

Go to the source code of this file.

Functions

static clib_error_tipsec_call_add_del_callbacks (ipsec_main_t *im, ipsec_sa_t *sa, u32 sa_index, int is_add)
 
void ipsec_mk_key (ipsec_key_t *key, const u8 *data, u8 len)
 
static void ipsec_sa_stack (ipsec_sa_t *sa)
 'stack' (resolve the recursion for) the SA tunnel destination More...
 
void ipsec_sa_set_crypto_alg (ipsec_sa_t *sa, ipsec_crypto_alg_t crypto_alg)
 
void ipsec_sa_set_integ_alg (ipsec_sa_t *sa, ipsec_integ_alg_t integ_alg)
 
int ipsec_sa_add (u32 id, u32 spi, ipsec_protocol_t proto, ipsec_crypto_alg_t crypto_alg, const ipsec_key_t *ck, ipsec_integ_alg_t integ_alg, const ipsec_key_t *ik, ipsec_sa_flags_t flags, u32 tx_table_id, u32 salt, const ip46_address_t *tun_src, const ip46_address_t *tun_dst, u32 *sa_out_index)
 
u32 ipsec_sa_del (u32 id)
 
u8 ipsec_is_sa_used (u32 sa_index)
 
int ipsec_set_sa_key (u32 id, const ipsec_key_t *ck, const ipsec_key_t *ik)
 
u32 ipsec_get_sa_index_by_sa_id (u32 sa_id)
 
void ipsec_sa_walk (ipsec_sa_walk_cb_t cb, void *ctx)
 
static fib_node_tipsec_sa_fib_node_get (fib_node_index_t index)
 Function definition to get a FIB node from its index. More...
 
static void ipsec_sa_last_lock_gone (fib_node_t *node)
 Function definition to inform the FIB node that its last lock has gone. More...
 
static ipsec_sa_tipsec_sa_from_fib_node (fib_node_t *node)
 
static fib_node_back_walk_rc_t ipsec_sa_back_walk (fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
 Function definition to backwalk a FIB node. More...
 
clib_error_tipsec_sa_interface_init (vlib_main_t *vm)
 

Variables

vlib_combined_counter_main_t ipsec_sa_counters
 SA packet & bytes counters. More...
 
static const fib_node_vft_t ipsec_sa_vft
 

Function Documentation

static clib_error_t* ipsec_call_add_del_callbacks ( ipsec_main_t im,
ipsec_sa_t sa,
u32  sa_index,
int  is_add 
)
static

Definition at line 32 of file ipsec_sa.c.

+ Here is the caller graph for this function:

u32 ipsec_get_sa_index_by_sa_id ( u32  sa_id)

Definition at line 362 of file ipsec_sa.c.

+ Here is the caller graph for this function:

u8 ipsec_is_sa_used ( u32  sa_index)

Definition at line 294 of file ipsec_sa.c.

+ Here is the caller graph for this function:

void ipsec_mk_key ( ipsec_key_t key,
const u8 data,
u8  len 
)

Definition at line 54 of file ipsec_sa.c.

+ Here is the caller graph for this function:

int ipsec_sa_add ( u32  id,
u32  spi,
ipsec_protocol_t  proto,
ipsec_crypto_alg_t  crypto_alg,
const ipsec_key_t ck,
ipsec_integ_alg_t  integ_alg,
const ipsec_key_t ik,
ipsec_sa_flags_t  flags,
u32  tx_table_id,
u32  salt,
const ip46_address_t *  tun_src,
const ip46_address_t *  tun_dst,
u32 sa_out_index 
)

Definition at line 123 of file ipsec_sa.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static fib_node_back_walk_rc_t ipsec_sa_back_walk ( fib_node_t node,
fib_node_back_walk_ctx_t ctx 
)
static

Function definition to backwalk a FIB node.

Definition at line 428 of file ipsec_sa.c.

+ Here is the call graph for this function:

u32 ipsec_sa_del ( u32  id)

Definition at line 254 of file ipsec_sa.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static fib_node_t* ipsec_sa_fib_node_get ( fib_node_index_t  index)
static

Function definition to get a FIB node from its index.

Definition at line 391 of file ipsec_sa.c.

static ipsec_sa_t* ipsec_sa_from_fib_node ( fib_node_t node)
static

Definition at line 416 of file ipsec_sa.c.

+ Here is the caller graph for this function:

clib_error_t* ipsec_sa_interface_init ( vlib_main_t vm)

Definition at line 447 of file ipsec_sa.c.

+ Here is the call graph for this function:

static void ipsec_sa_last_lock_gone ( fib_node_t node)
static

Function definition to inform the FIB node that its last lock has gone.

Definition at line 406 of file ipsec_sa.c.

void ipsec_sa_set_crypto_alg ( ipsec_sa_t sa,
ipsec_crypto_alg_t  crypto_alg 
)

Definition at line 95 of file ipsec_sa.c.

+ Here is the caller graph for this function:

void ipsec_sa_set_integ_alg ( ipsec_sa_t sa,
ipsec_integ_alg_t  integ_alg 
)

Definition at line 113 of file ipsec_sa.c.

+ Here is the caller graph for this function:

static void ipsec_sa_stack ( ipsec_sa_t sa)
static

'stack' (resolve the recursion for) the SA tunnel destination

Definition at line 70 of file ipsec_sa.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ipsec_sa_walk ( ipsec_sa_walk_cb_t  cb,
void *  ctx 
)

Definition at line 373 of file ipsec_sa.c.

int ipsec_set_sa_key ( u32  id,
const ipsec_key_t ck,
const ipsec_key_t ik 
)

Definition at line 321 of file ipsec_sa.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_combined_counter_main_t ipsec_sa_counters
Initial value:
= {
.name = "SA",
.stat_segment_name = "/net/ipsec/sa",
}

SA packet & bytes counters.

Definition at line 25 of file ipsec_sa.c.

const fib_node_vft_t ipsec_sa_vft
static
Initial value:
= {
.fnv_last_lock = ipsec_sa_last_lock_gone,
.fnv_back_walk = ipsec_sa_back_walk,
}
static void ipsec_sa_last_lock_gone(fib_node_t *node)
Function definition to inform the FIB node that its last lock has gone.
Definition: ipsec_sa.c:406
static fib_node_t * ipsec_sa_fib_node_get(fib_node_index_t index)
Function definition to get a FIB node from its index.
Definition: ipsec_sa.c:391
static fib_node_back_walk_rc_t ipsec_sa_back_walk(fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
Function definition to backwalk a FIB node.
Definition: ipsec_sa.c:428

Definition at line 439 of file ipsec_sa.c.