FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
ikev2.c File Reference
+ Include dependency graph for ikev2.c:

Go to the source code of this file.

Data Structures

struct  ikev2_trace_t
 
struct  ikev2_add_ipsec_tunnel_args_t
 
struct  ikev2_del_ipsec_tunnel_args_t
 

Macros

#define IKEV2_LIVENESS_RETRIES   3
 
#define IKEV2_LIVENESS_PERIOD_CHECK   30
 
#define ikev2_set_state(sa, v, ...)
 
#define IKEV2_GENERATE_SA_INIT_OK_str   ""
 
#define IKEV2_GENERATE_SA_INIT_OK_ERR_NO_DH_STR   "no DH group configured for IKE proposals!"
 
#define IKEV2_GENERATE_SA_INIT_OK_ERR_UNSUPP_STR   "DH group not supported!"
 

Typedefs

typedef u32 ikev2_non_esp_marker
 

Enumerations

enum  ikev2_generate_sa_error_t { IKEV2_GENERATE_SA_INIT_OK, IKEV2_GENERATE_SA_INIT_ERR_NO_DH, IKEV2_GENERATE_SA_INIT_ERR_UNSUPPORTED_DH }
 
enum  ikev2_ip4_next_t { IKEV2_NEXT_IP4_LOOKUP, IKEV2_NEXT_IP4_ERROR_DROP, IKEV2_IP4_N_NEXT }
 
enum  ikev2_ip6_next_t { IKEV2_NEXT_IP6_LOOKUP, IKEV2_NEXT_IP6_ERROR_DROP, IKEV2_IP6_N_NEXT }
 

Functions

static int ikev2_delete_tunnel_interface (vnet_main_t *vnm, ikev2_sa_t *sa, ikev2_child_sa_t *child)
 
static u8format_ikev2_trace (u8 *s, va_list *args)
 
static u8format_ikev2_gen_sa_error (u8 *s, va_list *args)
 
static_always_inline u16 ikev2_get_port (ikev2_sa_t *sa)
 
static_always_inline int ikev2_insert_non_esp_marker (ike_header_t *ike, int len)
 
static ikev2_sa_transform_tikev2_find_transform_data (ikev2_sa_transform_t *t)
 
static ikev2_sa_proposal_tikev2_select_proposal (ikev2_sa_proposal_t *proposals, ikev2_protocol_id_t prot_id)
 
ikev2_sa_transform_tikev2_sa_get_td_for_type (ikev2_sa_proposal_t *p, ikev2_transform_type_t type)
 
ikev2_child_sa_tikev2_sa_get_child (ikev2_sa_t *sa, u32 spi, ikev2_protocol_id_t prot_id, int by_initiator)
 
void ikev2_sa_free_proposal_vector (ikev2_sa_proposal_t **v)
 
static void ikev2_sa_free_child_sa (ikev2_child_sa_t *c)
 
static void ikev2_sa_free_all_child_sa (ikev2_child_sa_t **childs)
 
static void ikev2_sa_del_child_sa (ikev2_sa_t *sa, ikev2_child_sa_t *child)
 
static void ikev2_sa_free_all_vec (ikev2_sa_t *sa)
 
static void ikev2_delete_sa (ikev2_main_per_thread_data_t *ptd, ikev2_sa_t *sa)
 
static ikev2_generate_sa_error_t ikev2_generate_sa_init_data (ikev2_sa_t *sa)
 
static void ikev2_complete_sa_data (ikev2_sa_t *sa, ikev2_sa_t *sai)
 
static void ikev2_calc_keys (ikev2_sa_t *sa)
 
static void ikev2_calc_child_keys (ikev2_sa_t *sa, ikev2_child_sa_t *child)
 
static_always_inline u8ikev2_compute_nat_sha1 (u64 ispi, u64 rspi, ip_address_t *ia, u16 port)
 
static int ikev2_parse_ke_payload (const void *p, u32 rlen, ikev2_sa_t *sa, u8 **ke_data)
 
static int ikev2_parse_nonce_payload (const void *p, u32 rlen, u8 *nonce)
 
static int ikev2_check_payload_length (const ike_payload_header_t *ikep, int rlen, u16 *plen)
 
static int ikev2_process_sa_init_req (vlib_main_t *vm, ikev2_sa_t *sa, ike_header_t *ike, udp_header_t *udp, u32 len, u32 sw_if_index)
 
static void ikev2_process_sa_init_resp (vlib_main_t *vm, ikev2_sa_t *sa, ike_header_t *ike, udp_header_t *udp, u32 len)
 
static u8ikev2_decrypt_sk_payload (ikev2_sa_t *sa, ike_header_t *ike, u8 *payload, u32 rlen, u32 *out_len)
 
static_always_inline int ikev2_is_id_equal (ikev2_id_t *i1, ikev2_id_t *i2)
 
static void ikev2_initial_contact_cleanup_internal (ikev2_main_per_thread_data_t *ptd, ikev2_sa_t *sa)
 
static void ikev2_initial_contact_cleanup (ikev2_main_per_thread_data_t *ptd, ikev2_sa_t *sa)
 
static int ikev2_parse_id_payload (const void *p, u16 rlen, ikev2_id_t *sa_id)
 
static int ikev2_parse_auth_payload (const void *p, u32 rlen, ikev2_auth_t *a)
 
static int ikev2_process_auth_req (vlib_main_t *vm, ikev2_sa_t *sa, ike_header_t *ike, u32 len)
 
static int ikev2_process_informational_req (vlib_main_t *vm, ikev2_sa_t *sa, ike_header_t *ike, u32 len)
 
static int ikev2_process_create_child_sa_req (vlib_main_t *vm, ikev2_sa_t *sa, ike_header_t *ike, u32 len)
 
static u8ikev2_sa_generate_authmsg (ikev2_sa_t *sa, int is_responder)
 
static int ikev2_ts_cmp (ikev2_ts_t *ts1, ikev2_ts_t *ts2)
 
static void ikev2_sa_match_ts (ikev2_sa_t *sa)
 
static ikev2_profile_tikev2_select_profile (ikev2_main_t *km, ikev2_sa_t *sa, ikev2_sa_transform_t *tr_prf, u8 *key_pad)
 
static void ikev2_sa_auth (ikev2_sa_t *sa)
 
static void ikev2_sa_auth_init (ikev2_sa_t *sa)
 
static u32 ikev2_mk_local_sa_id (u32 sai, u32 ci, u32 ti)
 
static u32 ikev2_mk_remote_sa_id (u32 sai, u32 ci, u32 ti)
 
static void ikev2_add_tunnel_from_main (ikev2_add_ipsec_tunnel_args_t *a)
 
static int ikev2_create_tunnel_interface (vlib_main_t *vm, ikev2_sa_t *sa, ikev2_child_sa_t *child, u32 sa_index, u32 child_index, u8 is_rekey)
 
static_always_inline u32 ikev2_flip_alternate_sa_bit (u32 id)
 
static void ikev2_del_tunnel_from_main (ikev2_del_ipsec_tunnel_args_t *a)
 
static u32 ikev2_generate_message (vlib_buffer_t *b, ikev2_sa_t *sa, ike_header_t *ike, void *user, udp_header_t *udp, ikev2_stats_t *stats)
 
static u32 ikev2_retransmit_sa_init_one (ikev2_sa_t *sa, ike_header_t *ike, ip_address_t iaddr, ip_address_t raddr, u32 rlen)
 
static u32 ikev2_retransmit_sa_init (ike_header_t *ike, ip_address_t iaddr, ip_address_t raddr, u32 rlen)
 
static u32 ikev2_retransmit_resp (ikev2_sa_t *sa, ike_header_t *ike)
 
static void ikev2_init_sa (vlib_main_t *vm, ikev2_sa_t *sa)
 
static void ikev2_del_sa_init_from_main (u64 *ispi)
 
static void ikev2_del_sa_init (u64 ispi)
 
static_always_inline void ikev2_rewrite_v6_addrs (ikev2_sa_t *sa, ip6_header_t *ih)
 
static_always_inline void ikev2_rewrite_v4_addrs (ikev2_sa_t *sa, ip4_header_t *ih)
 
static_always_inline void ikev2_set_ip_address (ikev2_sa_t *sa, const void *iaddr, const void *raddr, const ip_address_family_t af)
 
static void ikev2_elog_uint_peers_addr (u32 exchange, ip4_header_t *ip4, ip6_header_t *ip6, u8 is_ip4)
 
static void ikev2_generate_sa_init_data_and_log (ikev2_sa_t *sa)
 
static void ikev2_update_stats (vlib_main_t *vm, u32 node_index, ikev2_stats_t *s)
 
static_always_inline uword ikev2_node_internal (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u8 is_ip4, u8 natt)
 
static uword ikev2_ip4 (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword ikev2_ip4_natt (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static uword ikev2_ip6 (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static clib_error_tikev2_set_initiator_proposals (vlib_main_t *vm, ikev2_sa_t *sa, ikev2_transforms_set *ts, ikev2_sa_proposal_t **proposals, int is_ike)
 
static ikev2_profile_tikev2_profile_index_by_name (u8 *name)
 
static void ikev2_send_ike (vlib_main_t *vm, ip_address_t *src, ip_address_t *dst, u32 bi0, u32 len, u16 src_port, u16 dst_port, u32 sw_if_index)
 
static u32 ikev2_get_new_ike_header_buff (vlib_main_t *vm, vlib_buffer_t **b)
 
clib_error_tikev2_set_local_key (vlib_main_t *vm, u8 *file)
 
static_always_inline vnet_api_error_t ikev2_register_udp_port (ikev2_profile_t *p, u16 port)
 
static_always_inline void ikev2_unregister_udp_port (ikev2_profile_t *p)
 
static void ikev2_initiate_delete_ike_sa_internal (vlib_main_t *vm, ikev2_main_per_thread_data_t *tkm, ikev2_sa_t *sa, u8 send_notification)
 
static void ikev2_cleanup_profile_sessions (ikev2_main_t *km, ikev2_profile_t *p)
 
static void ikev2_profile_responder_free (ikev2_responder_t *r)
 
static void ikev2_profile_free (ikev2_profile_t *p)
 
clib_error_tikev2_add_del_profile (vlib_main_t *vm, u8 *name, int is_add)
 
clib_error_tikev2_set_profile_auth (vlib_main_t *vm, u8 *name, u8 auth_method, u8 *auth_data, u8 data_hex_format)
 
static int ikev2_is_id_supported (u8 id_type)
 
clib_error_tikev2_set_profile_id (vlib_main_t *vm, u8 *name, u8 id_type, u8 *data, int is_local)
 
static_always_inline void ikev2_set_ts_type (ikev2_ts_t *ts, const ip_address_t *addr)
 
static_always_inline void ikev2_set_ts_addrs (ikev2_ts_t *ts, const ip_address_t *start, const ip_address_t *end)
 
clib_error_tikev2_set_profile_ts (vlib_main_t *vm, u8 *name, u8 protocol_id, u16 start_port, u16 end_port, ip_address_t start_addr, ip_address_t end_addr, int is_local)
 
clib_error_tikev2_set_profile_responder_hostname (vlib_main_t *vm, u8 *name, u8 *hostname, u32 sw_if_index)
 
clib_error_tikev2_set_profile_responder (vlib_main_t *vm, u8 *name, u32 sw_if_index, ip_address_t addr)
 
clib_error_tikev2_set_profile_ike_transforms (vlib_main_t *vm, u8 *name, ikev2_transform_encr_type_t crypto_alg, ikev2_transform_integ_type_t integ_alg, ikev2_transform_dh_type_t dh_type, u32 crypto_key_size)
 
clib_error_tikev2_set_profile_esp_transforms (vlib_main_t *vm, u8 *name, ikev2_transform_encr_type_t crypto_alg, ikev2_transform_integ_type_t integ_alg, u32 crypto_key_size)
 
clib_error_tikev2_set_profile_tunnel_interface (vlib_main_t *vm, u8 *name, u32 sw_if_index)
 
vnet_api_error_t ikev2_set_profile_ipsec_udp_port (vlib_main_t *vm, u8 *name, u16 port, u8 is_set)
 
clib_error_tikev2_set_profile_udp_encap (vlib_main_t *vm, u8 *name)
 
clib_error_tikev2_set_profile_sa_lifetime (vlib_main_t *vm, u8 *name, u64 lifetime, u32 jitter, u32 handover, u64 maxdata)
 
static int ikev2_get_if_address (u32 sw_if_index, ip_address_family_t af, ip_address_t *out_addr)
 
static clib_error_tikev2_resolve_responder_hostname (vlib_main_t *vm, ikev2_responder_t *r)
 
clib_error_tikev2_initiate_sa_init (vlib_main_t *vm, u8 *name)
 
static void ikev2_delete_child_sa_internal (vlib_main_t *vm, ikev2_sa_t *sa, ikev2_child_sa_t *csa)
 
clib_error_tikev2_initiate_delete_child_sa (vlib_main_t *vm, u32 ispi)
 
clib_error_tikev2_initiate_delete_ike_sa (vlib_main_t *vm, u64 ispi)
 
static void ikev2_rekey_child_sa_internal (vlib_main_t *vm, ikev2_sa_t *sa, ikev2_child_sa_t *csa)
 
clib_error_tikev2_initiate_rekey_child_sa (vlib_main_t *vm, u32 ispi)
 
static int ikev2_sa_sw_if_match (ikev2_sa_t *sa, u32 sw_if_index)
 
static void ikev2_sa_del (ikev2_profile_t *p, u32 sw_if_index)
 
static clib_error_tikev2_sw_interface_add_del (vnet_main_t *vnm, u32 sw_if_index, u32 is_add)
 
 VNET_SW_INTERFACE_ADD_DEL_FUNCTION (ikev2_sw_interface_add_del)
 
clib_error_tikev2_init (vlib_main_t *vm)
 
static u8 ikev2_mngr_process_child_sa (ikev2_sa_t *sa, ikev2_child_sa_t *csa, u8 del_old_ids)
 
int ikev2_set_log_level (ikev2_log_level_t log_level)
 
clib_error_tikev2_set_liveness_params (u32 period, u32 max_retries)
 
clib_error_tikev2_profile_natt_disable (u8 *name)
 
static void ikev2_mngr_process_ipsec_sa (ipsec_sa_t *ipsec_sa)
 
static void ikev2_process_pending_sa_init_one (vlib_main_t *vm, ikev2_main_t *km, ikev2_sa_t *sa)
 
static void ikev2_process_pending_sa_init (vlib_main_t *vm, ikev2_main_t *km)
 
static void ikev2_send_informational_request (ikev2_sa_t *sa)
 
void ikev2_disable_dpd (void)
 
static_always_inline int ikev2_mngr_process_responder_sas (ikev2_sa_t *sa)
 
static uword ikev2_mngr_process_fn (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
 VLIB_PLUGIN_REGISTER ()
 

Variables

ikev2_main_t ikev2_main
 
static vlib_node_registration_t ikev2_node_ip4
 (constructor) VLIB_REGISTER_NODE (ikev2_node_ip4) More...
 
static vlib_node_registration_t ikev2_node_ip4_natt
 (constructor) VLIB_REGISTER_NODE (ikev2_node_ip4_natt) More...
 
static vlib_node_registration_t ikev2_node_ip6
 (constructor) VLIB_REGISTER_NODE (ikev2_node_ip6) More...
 
static vlib_node_registration_t ikev2_mngr_process_node
 (constructor) VLIB_REGISTER_NODE (ikev2_mngr_process_node) More...
 

Macro Definition Documentation

◆ IKEV2_GENERATE_SA_INIT_OK_ERR_NO_DH_STR

#define IKEV2_GENERATE_SA_INIT_OK_ERR_NO_DH_STR   "no DH group configured for IKE proposals!"

Definition at line 67 of file ikev2.c.

◆ IKEV2_GENERATE_SA_INIT_OK_ERR_UNSUPP_STR

#define IKEV2_GENERATE_SA_INIT_OK_ERR_UNSUPP_STR   "DH group not supported!"

Definition at line 69 of file ikev2.c.

◆ IKEV2_GENERATE_SA_INIT_OK_str

#define IKEV2_GENERATE_SA_INIT_OK_str   ""

Definition at line 66 of file ikev2.c.

◆ IKEV2_LIVENESS_PERIOD_CHECK

#define IKEV2_LIVENESS_PERIOD_CHECK   30

Definition at line 35 of file ikev2.c.

◆ IKEV2_LIVENESS_RETRIES

#define IKEV2_LIVENESS_RETRIES   3

Definition at line 34 of file ikev2.c.

◆ ikev2_set_state

#define ikev2_set_state (   sa,
  v,
  ... 
)
Value:
do { \
(sa)->state = v; \
ikev2_elog_sa_state("ispi %lx SA state changed to " #v __VA_ARGS__, sa->ispi); \
} while(0);

Definition at line 43 of file ikev2.c.

Typedef Documentation

◆ ikev2_non_esp_marker

Definition at line 111 of file ikev2.c.

Enumeration Type Documentation

◆ ikev2_generate_sa_error_t

Enumerator
IKEV2_GENERATE_SA_INIT_OK 
IKEV2_GENERATE_SA_INIT_ERR_NO_DH 
IKEV2_GENERATE_SA_INIT_ERR_UNSUPPORTED_DH 

Definition at line 72 of file ikev2.c.

◆ ikev2_ip4_next_t

Enumerator
IKEV2_NEXT_IP4_LOOKUP 
IKEV2_NEXT_IP4_ERROR_DROP 
IKEV2_IP4_N_NEXT 

Definition at line 97 of file ikev2.c.

◆ ikev2_ip6_next_t

Enumerator
IKEV2_NEXT_IP6_LOOKUP 
IKEV2_NEXT_IP6_ERROR_DROP 
IKEV2_IP6_N_NEXT 

Definition at line 104 of file ikev2.c.

Function Documentation

◆ format_ikev2_gen_sa_error()

static u8* format_ikev2_gen_sa_error ( u8 s,
va_list *  args 
)
static

Definition at line 80 of file ikev2.c.

+ Here is the caller graph for this function:

◆ format_ikev2_trace()

static u8* format_ikev2_trace ( u8 s,
va_list *  args 
)
static

Definition at line 55 of file ikev2.c.

◆ ikev2_add_del_profile()

clib_error_t* ikev2_add_del_profile ( vlib_main_t vm,
u8 name,
int  is_add 
)

Definition at line 3882 of file ikev2.c.

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

◆ ikev2_add_tunnel_from_main()

static void ikev2_add_tunnel_from_main ( ikev2_add_ipsec_tunnel_args_t a)
static

Definition at line 1855 of file ikev2.c.

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

◆ ikev2_calc_child_keys()

static void ikev2_calc_child_keys ( ikev2_sa_t sa,
ikev2_child_sa_t child 
)
static

Definition at line 571 of file ikev2.c.

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

◆ ikev2_calc_keys()

static void ikev2_calc_keys ( ikev2_sa_t sa)
static

Definition at line 483 of file ikev2.c.

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

◆ ikev2_check_payload_length()

static int ikev2_check_payload_length ( const ike_payload_header_t *  ikep,
int  rlen,
u16 plen 
)
static

Definition at line 684 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_cleanup_profile_sessions()

static void ikev2_cleanup_profile_sessions ( ikev2_main_t km,
ikev2_profile_t p 
)
static

Definition at line 3815 of file ikev2.c.

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

◆ ikev2_complete_sa_data()

static void ikev2_complete_sa_data ( ikev2_sa_t sa,
ikev2_sa_t sai 
)
static

Definition at line 419 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_compute_nat_sha1()

static_always_inline u8* ikev2_compute_nat_sha1 ( u64  ispi,
u64  rspi,
ip_address_t ia,
u16  port 
)

Definition at line 642 of file ikev2.c.

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

◆ ikev2_create_tunnel_interface()

static int ikev2_create_tunnel_interface ( vlib_main_t vm,
ikev2_sa_t sa,
ikev2_child_sa_t child,
u32  sa_index,
u32  child_index,
u8  is_rekey 
)
static

Definition at line 1954 of file ikev2.c.

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

◆ ikev2_decrypt_sk_payload()

static u8* ikev2_decrypt_sk_payload ( ikev2_sa_t sa,
ike_header_t *  ike,
u8 payload,
u32  rlen,
u32 out_len 
)
static

Definition at line 915 of file ikev2.c.

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

◆ ikev2_del_sa_init()

static void ikev2_del_sa_init ( u64  ispi)
static

Definition at line 2793 of file ikev2.c.

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

◆ ikev2_del_sa_init_from_main()

static void ikev2_del_sa_init_from_main ( u64 ispi)
static

Definition at line 2779 of file ikev2.c.

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

◆ ikev2_del_tunnel_from_main()

static void ikev2_del_tunnel_from_main ( ikev2_del_ipsec_tunnel_args_t a)
static

Definition at line 2215 of file ikev2.c.

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

◆ ikev2_delete_child_sa_internal()

static void ikev2_delete_child_sa_internal ( vlib_main_t vm,
ikev2_sa_t sa,
ikev2_child_sa_t csa 
)
static

Definition at line 4471 of file ikev2.c.

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

◆ ikev2_delete_sa()

static void ikev2_delete_sa ( ikev2_main_per_thread_data_t ptd,
ikev2_sa_t sa 
)
static

Definition at line 354 of file ikev2.c.

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

◆ ikev2_delete_tunnel_interface()

static int ikev2_delete_tunnel_interface ( vnet_main_t vnm,
ikev2_sa_t sa,
ikev2_child_sa_t child 
)
static

Definition at line 2260 of file ikev2.c.

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

◆ ikev2_disable_dpd()

void ikev2_disable_dpd ( void  )

Definition at line 5134 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_elog_uint_peers_addr()

static void ikev2_elog_uint_peers_addr ( u32  exchange,
ip4_header_t ip4,
ip6_header_t ip6,
u8  is_ip4 
)
static

Definition at line 2838 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_find_transform_data()

static ikev2_sa_transform_t* ikev2_find_transform_data ( ikev2_sa_transform_t t)
static

Definition at line 128 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_flip_alternate_sa_bit()

static_always_inline u32 ikev2_flip_alternate_sa_bit ( u32  id)

Definition at line 2206 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_generate_message()

static u32 ikev2_generate_message ( vlib_buffer_t b,
ikev2_sa_t sa,
ike_header_t *  ike,
void *  user,
udp_header_t udp,
ikev2_stats_t stats 
)
static

Definition at line 2288 of file ikev2.c.

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

◆ ikev2_generate_sa_init_data()

static ikev2_generate_sa_error_t ikev2_generate_sa_init_data ( ikev2_sa_t sa)
static

Definition at line 369 of file ikev2.c.

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

◆ ikev2_generate_sa_init_data_and_log()

static void ikev2_generate_sa_init_data_and_log ( ikev2_sa_t sa)
static

Definition at line 2858 of file ikev2.c.

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

◆ ikev2_get_if_address()

static int ikev2_get_if_address ( u32  sw_if_index,
ip_address_family_t  af,
ip_address_t out_addr 
)
static

Definition at line 4233 of file ikev2.c.

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

◆ ikev2_get_new_ike_header_buff()

static u32 ikev2_get_new_ike_header_buff ( vlib_main_t vm,
vlib_buffer_t **  b 
)
static

Definition at line 3698 of file ikev2.c.

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

◆ ikev2_get_port()

static_always_inline u16 ikev2_get_port ( ikev2_sa_t sa)

Definition at line 114 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_init()

clib_error_t* ikev2_init ( vlib_main_t vm)

Definition at line 4744 of file ikev2.c.

+ Here is the call graph for this function:

◆ ikev2_init_sa()

static void ikev2_init_sa ( vlib_main_t vm,
ikev2_sa_t sa 
)
static

Definition at line 2771 of file ikev2.c.

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

◆ ikev2_initial_contact_cleanup()

static void ikev2_initial_contact_cleanup ( ikev2_main_per_thread_data_t ptd,
ikev2_sa_t sa 
)
static

Definition at line 1075 of file ikev2.c.

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

◆ ikev2_initial_contact_cleanup_internal()

static void ikev2_initial_contact_cleanup_internal ( ikev2_main_per_thread_data_t ptd,
ikev2_sa_t sa 
)
static

Definition at line 1040 of file ikev2.c.

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

◆ ikev2_initiate_delete_child_sa()

clib_error_t* ikev2_initiate_delete_child_sa ( vlib_main_t vm,
u32  ispi 
)

Definition at line 4513 of file ikev2.c.

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

◆ ikev2_initiate_delete_ike_sa()

clib_error_t* ikev2_initiate_delete_ike_sa ( vlib_main_t vm,
u64  ispi 
)

Definition at line 4553 of file ikev2.c.

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

◆ ikev2_initiate_delete_ike_sa_internal()

static void ikev2_initiate_delete_ike_sa_internal ( vlib_main_t vm,
ikev2_main_per_thread_data_t tkm,
ikev2_sa_t sa,
u8  send_notification 
)
static

Definition at line 3743 of file ikev2.c.

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

◆ ikev2_initiate_rekey_child_sa()

clib_error_t* ikev2_initiate_rekey_child_sa ( vlib_main_t vm,
u32  ispi 
)

Definition at line 4636 of file ikev2.c.

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

◆ ikev2_initiate_sa_init()

clib_error_t* ikev2_initiate_sa_init ( vlib_main_t vm,
u8 name 
)

Definition at line 4286 of file ikev2.c.

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

◆ ikev2_insert_non_esp_marker()

static_always_inline int ikev2_insert_non_esp_marker ( ike_header_t *  ike,
int  len 
)

Definition at line 120 of file ikev2.c.

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

◆ ikev2_ip4()

static uword ikev2_ip4 ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 3414 of file ikev2.c.

+ Here is the call graph for this function:

◆ ikev2_ip4_natt()

static uword ikev2_ip4_natt ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 3420 of file ikev2.c.

+ Here is the call graph for this function:

◆ ikev2_ip6()

static uword ikev2_ip6 ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 3427 of file ikev2.c.

+ Here is the call graph for this function:

◆ ikev2_is_id_equal()

static_always_inline int ikev2_is_id_equal ( ikev2_id_t i1,
ikev2_id_t i2 
)

Definition at line 1025 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_is_id_supported()

static int ikev2_is_id_supported ( u8  id_type)
static

Definition at line 3952 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_mk_local_sa_id()

static u32 ikev2_mk_local_sa_id ( u32  sai,
u32  ci,
u32  ti 
)
static

Definition at line 1821 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_mk_remote_sa_id()

static u32 ikev2_mk_remote_sa_id ( u32  sai,
u32  ci,
u32  ti 
)
static

Definition at line 1827 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_mngr_process_child_sa()

static u8 ikev2_mngr_process_child_sa ( ikev2_sa_t sa,
ikev2_child_sa_t csa,
u8  del_old_ids 
)
static

Definition at line 4810 of file ikev2.c.

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

◆ ikev2_mngr_process_fn()

static uword ikev2_mngr_process_fn ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 5164 of file ikev2.c.

+ Here is the call graph for this function:

◆ ikev2_mngr_process_ipsec_sa()

static void ikev2_mngr_process_ipsec_sa ( ipsec_sa_t ipsec_sa)
static

Definition at line 4949 of file ikev2.c.

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

◆ ikev2_mngr_process_responder_sas()

static_always_inline int ikev2_mngr_process_responder_sas ( ikev2_sa_t sa)

Definition at line 5141 of file ikev2.c.

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

◆ ikev2_node_internal()

static_always_inline uword ikev2_node_internal ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
u8  is_ip4,
u8  natt 
)

Definition at line 2885 of file ikev2.c.

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

◆ ikev2_parse_auth_payload()

static int ikev2_parse_auth_payload ( const void *  p,
u32  rlen,
ikev2_auth_t a 
)
static

Definition at line 1111 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_parse_id_payload()

static int ikev2_parse_id_payload ( const void *  p,
u16  rlen,
ikev2_id_t sa_id 
)
static

Definition at line 1096 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_parse_ke_payload()

static int ikev2_parse_ke_payload ( const void *  p,
u32  rlen,
ikev2_sa_t sa,
u8 **  ke_data 
)
static

Definition at line 658 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_parse_nonce_payload()

static int ikev2_parse_nonce_payload ( const void *  p,
u32  rlen,
u8 nonce 
)
static

Definition at line 674 of file ikev2.c.

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

◆ ikev2_process_auth_req()

static int ikev2_process_auth_req ( vlib_main_t vm,
ikev2_sa_t sa,
ike_header_t *  ike,
u32  len 
)
static

Definition at line 1123 of file ikev2.c.

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

◆ ikev2_process_create_child_sa_req()

static int ikev2_process_create_child_sa_req ( vlib_main_t vm,
ikev2_sa_t sa,
ike_header_t *  ike,
u32  len 
)
static

Definition at line 1335 of file ikev2.c.

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

◆ ikev2_process_informational_req()

static int ikev2_process_informational_req ( vlib_main_t vm,
ikev2_sa_t sa,
ike_header_t *  ike,
u32  len 
)
static

Definition at line 1265 of file ikev2.c.

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

◆ ikev2_process_pending_sa_init()

static void ikev2_process_pending_sa_init ( vlib_main_t vm,
ikev2_main_t km 
)
static

Definition at line 5067 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_process_pending_sa_init_one()

static void ikev2_process_pending_sa_init_one ( vlib_main_t vm,
ikev2_main_t km,
ikev2_sa_t sa 
)
static

Definition at line 4993 of file ikev2.c.

+ Here is the call graph for this function:

◆ ikev2_process_sa_init_req()

static int ikev2_process_sa_init_req ( vlib_main_t vm,
ikev2_sa_t sa,
ike_header_t *  ike,
udp_header_t udp,
u32  len,
u32  sw_if_index 
)
static

Definition at line 696 of file ikev2.c.

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

◆ ikev2_process_sa_init_resp()

static void ikev2_process_sa_init_resp ( vlib_main_t vm,
ikev2_sa_t sa,
ike_header_t *  ike,
udp_header_t udp,
u32  len 
)
static

Definition at line 804 of file ikev2.c.

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

◆ ikev2_profile_free()

static void ikev2_profile_free ( ikev2_profile_t p)
static

Definition at line 3867 of file ikev2.c.

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

◆ ikev2_profile_index_by_name()

static ikev2_profile_t* ikev2_profile_index_by_name ( u8 name)
static

Definition at line 3614 of file ikev2.c.

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

◆ ikev2_profile_natt_disable()

clib_error_t* ikev2_profile_natt_disable ( u8 name)

Definition at line 4938 of file ikev2.c.

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

◆ ikev2_profile_responder_free()

static void ikev2_profile_responder_free ( ikev2_responder_t r)
static

Definition at line 3861 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_register_udp_port()

static_always_inline vnet_api_error_t ikev2_register_udp_port ( ikev2_profile_t p,
u16  port 
)

Definition at line 3725 of file ikev2.c.

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

◆ ikev2_rekey_child_sa_internal()

static void ikev2_rekey_child_sa_internal ( vlib_main_t vm,
ikev2_sa_t sa,
ikev2_child_sa_t csa 
)
static

Definition at line 4590 of file ikev2.c.

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

◆ ikev2_resolve_responder_hostname()

static clib_error_t* ikev2_resolve_responder_hostname ( vlib_main_t vm,
ikev2_responder_t r 
)
static

Definition at line 4261 of file ikev2.c.

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

◆ ikev2_retransmit_resp()

static u32 ikev2_retransmit_resp ( ikev2_sa_t sa,
ike_header_t *  ike 
)
static

Definition at line 2728 of file ikev2.c.

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

◆ ikev2_retransmit_sa_init()

static u32 ikev2_retransmit_sa_init ( ike_header_t *  ike,
ip_address_t  iaddr,
ip_address_t  raddr,
u32  rlen 
)
static

Definition at line 2708 of file ikev2.c.

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

◆ ikev2_retransmit_sa_init_one()

static u32 ikev2_retransmit_sa_init_one ( ikev2_sa_t sa,
ike_header_t *  ike,
ip_address_t  iaddr,
ip_address_t  raddr,
u32  rlen 
)
static

Definition at line 2638 of file ikev2.c.

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

◆ ikev2_rewrite_v4_addrs()

static_always_inline void ikev2_rewrite_v4_addrs ( ikev2_sa_t sa,
ip4_header_t ih 
)

Definition at line 2815 of file ikev2.c.

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

◆ ikev2_rewrite_v6_addrs()

static_always_inline void ikev2_rewrite_v6_addrs ( ikev2_sa_t sa,
ip6_header_t ih 
)

Definition at line 2800 of file ikev2.c.

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

◆ ikev2_sa_auth()

static void ikev2_sa_auth ( ikev2_sa_t sa)
static

Definition at line 1701 of file ikev2.c.

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

◆ ikev2_sa_auth_init()

static void ikev2_sa_auth_init ( ikev2_sa_t sa)
static

Definition at line 1779 of file ikev2.c.

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

◆ ikev2_sa_del()

static void ikev2_sa_del ( ikev2_profile_t p,
u32  sw_if_index 
)
static

Definition at line 4682 of file ikev2.c.

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

◆ ikev2_sa_del_child_sa()

static void ikev2_sa_del_child_sa ( ikev2_sa_t sa,
ikev2_child_sa_t child 
)
static

Definition at line 303 of file ikev2.c.

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

◆ ikev2_sa_free_all_child_sa()

static void ikev2_sa_free_all_child_sa ( ikev2_child_sa_t **  childs)
static

Definition at line 294 of file ikev2.c.

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

◆ ikev2_sa_free_all_vec()

static void ikev2_sa_free_all_vec ( ikev2_sa_t sa)
static

Definition at line 310 of file ikev2.c.

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

◆ ikev2_sa_free_child_sa()

static void ikev2_sa_free_child_sa ( ikev2_child_sa_t c)
static

Definition at line 281 of file ikev2.c.

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

◆ ikev2_sa_free_proposal_vector()

void ikev2_sa_free_proposal_vector ( ikev2_sa_proposal_t **  v)

Definition at line 261 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_sa_generate_authmsg()

static u8* ikev2_sa_generate_authmsg ( ikev2_sa_t sa,
int  is_responder 
)
static

Definition at line 1501 of file ikev2.c.

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

◆ ikev2_sa_get_child()

ikev2_child_sa_t* ikev2_sa_get_child ( ikev2_sa_t sa,
u32  spi,
ikev2_protocol_id_t  prot_id,
int  by_initiator 
)

Definition at line 245 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_sa_get_td_for_type()

ikev2_sa_transform_t* ikev2_sa_get_td_for_type ( ikev2_sa_proposal_t p,
ikev2_transform_type_t  type 
)

Definition at line 228 of file ikev2.c.

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

◆ ikev2_sa_match_ts()

static void ikev2_sa_match_ts ( ikev2_sa_t sa)
static

Definition at line 1556 of file ikev2.c.

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

◆ ikev2_sa_sw_if_match()

static int ikev2_sa_sw_if_match ( ikev2_sa_t sa,
u32  sw_if_index 
)
static

Definition at line 4676 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_select_profile()

static ikev2_profile_t* ikev2_select_profile ( ikev2_main_t km,
ikev2_sa_t sa,
ikev2_sa_transform_t tr_prf,
u8 key_pad 
)
static

Definition at line 1626 of file ikev2.c.

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

◆ ikev2_select_proposal()

static ikev2_sa_proposal_t* ikev2_select_proposal ( ikev2_sa_proposal_t proposals,
ikev2_protocol_id_t  prot_id 
)
static

Definition at line 156 of file ikev2.c.

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

◆ ikev2_send_ike()

static void ikev2_send_ike ( vlib_main_t vm,
ip_address_t src,
ip_address_t dst,
u32  bi0,
u32  len,
u16  src_port,
u16  dst_port,
u32  sw_if_index 
)
static

Definition at line 3628 of file ikev2.c.

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

◆ ikev2_send_informational_request()

static void ikev2_send_informational_request ( ikev2_sa_t sa)
static

Definition at line 5086 of file ikev2.c.

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

◆ ikev2_set_initiator_proposals()

static clib_error_t* ikev2_set_initiator_proposals ( vlib_main_t vm,
ikev2_sa_t sa,
ikev2_transforms_set ts,
ikev2_sa_proposal_t **  proposals,
int  is_ike 
)
static

Definition at line 3487 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_set_ip_address()

static_always_inline void ikev2_set_ip_address ( ikev2_sa_t sa,
const void *  iaddr,
const void *  raddr,
const ip_address_family_t  af 
)

Definition at line 2830 of file ikev2.c.

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

◆ ikev2_set_liveness_params()

clib_error_t* ikev2_set_liveness_params ( u32  period,
u32  max_retries 
)

Definition at line 4925 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_set_local_key()

clib_error_t* ikev2_set_local_key ( vlib_main_t vm,
u8 file 
)

Definition at line 3711 of file ikev2.c.

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

◆ ikev2_set_log_level()

int ikev2_set_log_level ( ikev2_log_level_t  log_level)

Definition at line 4910 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_set_profile_auth()

clib_error_t* ikev2_set_profile_auth ( vlib_main_t vm,
u8 name,
u8  auth_method,
u8 auth_data,
u8  data_hex_format 
)

Definition at line 3918 of file ikev2.c.

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

◆ ikev2_set_profile_esp_transforms()

clib_error_t* ikev2_set_profile_esp_transforms ( vlib_main_t vm,
u8 name,
ikev2_transform_encr_type_t  crypto_alg,
ikev2_transform_integ_type_t  integ_alg,
u32  crypto_key_size 
)

Definition at line 4124 of file ikev2.c.

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

◆ ikev2_set_profile_id()

clib_error_t* ikev2_set_profile_id ( vlib_main_t vm,
u8 name,
u8  id_type,
u8 data,
int  is_local 
)

Definition at line 3961 of file ikev2.c.

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

◆ ikev2_set_profile_ike_transforms()

clib_error_t* ikev2_set_profile_ike_transforms ( vlib_main_t vm,
u8 name,
ikev2_transform_encr_type_t  crypto_alg,
ikev2_transform_integ_type_t  integ_alg,
ikev2_transform_dh_type_t  dh_type,
u32  crypto_key_size 
)

Definition at line 4099 of file ikev2.c.

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

◆ ikev2_set_profile_ipsec_udp_port()

vnet_api_error_t ikev2_set_profile_ipsec_udp_port ( vlib_main_t vm,
u8 name,
u16  port,
u8  is_set 
)

Definition at line 4167 of file ikev2.c.

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

◆ ikev2_set_profile_responder()

clib_error_t* ikev2_set_profile_responder ( vlib_main_t vm,
u8 name,
u32  sw_if_index,
ip_address_t  addr 
)

Definition at line 4077 of file ikev2.c.

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

◆ ikev2_set_profile_responder_hostname()

clib_error_t* ikev2_set_profile_responder_hostname ( vlib_main_t vm,
u8 name,
u8 hostname,
u32  sw_if_index 
)

Definition at line 4055 of file ikev2.c.

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

◆ ikev2_set_profile_sa_lifetime()

clib_error_t* ikev2_set_profile_sa_lifetime ( vlib_main_t vm,
u8 name,
u64  lifetime,
u32  jitter,
u32  handover,
u64  maxdata 
)

Definition at line 4210 of file ikev2.c.

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

◆ ikev2_set_profile_ts()

clib_error_t* ikev2_set_profile_ts ( vlib_main_t vm,
u8 name,
u8  protocol_id,
u16  start_port,
u16  end_port,
ip_address_t  start_addr,
ip_address_t  end_addr,
int  is_local 
)

Definition at line 4016 of file ikev2.c.

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

◆ ikev2_set_profile_tunnel_interface()

clib_error_t* ikev2_set_profile_tunnel_interface ( vlib_main_t vm,
u8 name,
u32  sw_if_index 
)

Definition at line 4147 of file ikev2.c.

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

◆ ikev2_set_profile_udp_encap()

clib_error_t* ikev2_set_profile_udp_encap ( vlib_main_t vm,
u8 name 
)

Definition at line 4194 of file ikev2.c.

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

◆ ikev2_set_ts_addrs()

static_always_inline void ikev2_set_ts_addrs ( ikev2_ts_t ts,
const ip_address_t start,
const ip_address_t end 
)

Definition at line 4008 of file ikev2.c.

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

◆ ikev2_set_ts_type()

static_always_inline void ikev2_set_ts_type ( ikev2_ts_t ts,
const ip_address_t addr 
)

Definition at line 3999 of file ikev2.c.

+ Here is the caller graph for this function:

◆ ikev2_sw_interface_add_del()

static clib_error_t* ikev2_sw_interface_add_del ( vnet_main_t vnm,
u32  sw_if_index,
u32  is_add 
)
static

Definition at line 4723 of file ikev2.c.

+ Here is the call graph for this function:

◆ ikev2_ts_cmp()

static int ikev2_ts_cmp ( ikev2_ts_t ts1,
ikev2_ts_t ts2 
)
static

Definition at line 1544 of file ikev2.c.

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

◆ ikev2_unregister_udp_port()

static_always_inline void ikev2_unregister_udp_port ( ikev2_profile_t p)

Definition at line 3733 of file ikev2.c.

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

◆ ikev2_update_stats()

static void ikev2_update_stats ( vlib_main_t vm,
u32  node_index,
ikev2_stats_t s 
)
static

Definition at line 2872 of file ikev2.c.

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

◆ VLIB_PLUGIN_REGISTER()

VLIB_PLUGIN_REGISTER ( )

◆ VNET_SW_INTERFACE_ADD_DEL_FUNCTION()

VNET_SW_INTERFACE_ADD_DEL_FUNCTION ( ikev2_sw_interface_add_del  )

Variable Documentation

◆ ikev2_main

ikev2_main_t ikev2_main

Definition at line 37 of file ikev2.c.

◆ ikev2_mngr_process_node

vlib_node_registration_t ikev2_mngr_process_node
static
Initial value:
= {
.function = ikev2_mngr_process_fn,
.name =
"ikev2-manager-process",
}

(constructor) VLIB_REGISTER_NODE (ikev2_mngr_process_node)

Definition at line 5253 of file ikev2.c.

◆ ikev2_node_ip4

vlib_node_registration_t ikev2_node_ip4
static
Initial value:
= {
.function = ikev2_ip4,
.name = "ikev2-ip4",
.vector_size = sizeof (u32),
.format_trace = format_ikev2_trace,
.n_errors = IKEV2_N_ERROR,
.error_counters = ikev2_error_counters,
.n_next_nodes = IKEV2_IP4_N_NEXT,
.next_nodes = {
[IKEV2_NEXT_IP4_LOOKUP] = "ip4-lookup",
[IKEV2_NEXT_IP4_ERROR_DROP] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (ikev2_node_ip4)

Definition at line 3433 of file ikev2.c.

◆ ikev2_node_ip4_natt

vlib_node_registration_t ikev2_node_ip4_natt
static
Initial value:
= {
.function = ikev2_ip4_natt,
.name = "ikev2-ip4-natt",
.vector_size = sizeof (u32),
.format_trace = format_ikev2_trace,
.n_errors = IKEV2_N_ERROR,
.error_counters = ikev2_error_counters,
.n_next_nodes = IKEV2_IP4_N_NEXT,
.next_nodes = {
[IKEV2_NEXT_IP4_LOOKUP] = "ip4-lookup",
[IKEV2_NEXT_IP4_ERROR_DROP] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (ikev2_node_ip4_natt)

Definition at line 3450 of file ikev2.c.

◆ ikev2_node_ip6

vlib_node_registration_t ikev2_node_ip6
static
Initial value:
= {
.function = ikev2_ip6,
.name = "ikev2-ip6",
.vector_size = sizeof (u32),
.format_trace = format_ikev2_trace,
.n_errors = IKEV2_N_ERROR,
.error_counters = ikev2_error_counters,
.n_next_nodes = IKEV2_IP6_N_NEXT,
.next_nodes = {
[IKEV2_NEXT_IP6_LOOKUP] = "ip6-lookup",
[IKEV2_NEXT_IP6_ERROR_DROP] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (ikev2_node_ip6)

Definition at line 3467 of file ikev2.c.

ikev2_mngr_process_fn
static uword ikev2_mngr_process_fn(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: ikev2.c:5164
IKEV2_NEXT_IP6_ERROR_DROP
@ IKEV2_NEXT_IP6_ERROR_DROP
Definition: ikev2.c:107
VLIB_NODE_TYPE_INTERNAL
@ VLIB_NODE_TYPE_INTERNAL
Definition: node.h:72
IKEV2_NEXT_IP4_LOOKUP
@ IKEV2_NEXT_IP4_LOOKUP
Definition: ikev2.c:99
state
vl_api_dhcp_client_state_t state
Definition: dhcp.api:201
ikev2_ip4_natt
static uword ikev2_ip4_natt(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: ikev2.c:3420
IKEV2_NEXT_IP4_ERROR_DROP
@ IKEV2_NEXT_IP4_ERROR_DROP
Definition: ikev2.c:100
IKEV2_IP6_N_NEXT
@ IKEV2_IP6_N_NEXT
Definition: ikev2.c:108
format_ikev2_trace
static u8 * format_ikev2_trace(u8 *s, va_list *args)
Definition: ikev2.c:55
IKEV2_IP4_N_NEXT
@ IKEV2_IP4_N_NEXT
Definition: ikev2.c:101
u32
unsigned int u32
Definition: types.h:88
VLIB_NODE_TYPE_PROCESS
@ VLIB_NODE_TYPE_PROCESS
Definition: node.h:84
ikev2_ip4
static uword ikev2_ip4(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: ikev2.c:3414
ikev2_ip6
static uword ikev2_ip6(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: ikev2.c:3427
IKEV2_NEXT_IP6_LOOKUP
@ IKEV2_NEXT_IP6_LOOKUP
Definition: ikev2.c:106
type
vl_api_fib_path_type_t type
Definition: fib_types.api:123