FD.io VPP  v21.01.1
Vector Packet Processing
session_inlines.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static int acl_fa_ifc_has_sessions (acl_main_t *am, int sw_if_index0)
 
static int acl_fa_ifc_has_in_acl (acl_main_t *am, int sw_if_index0)
 
static int acl_fa_ifc_has_out_acl (acl_main_t *am, int sw_if_index0)
 
static int fa_session_get_timeout_type (acl_main_t *am, fa_session_t *sess)
 
static u64 fa_session_get_timeout (acl_main_t *am, fa_session_t *sess)
 
static fa_session_tget_session_ptr_no_check (acl_main_t *am, u16 thread_index, u32 session_index)
 
static fa_session_tget_session_ptr (acl_main_t *am, u16 thread_index, u32 session_index)
 
static int is_valid_session_ptr (acl_main_t *am, u16 thread_index, fa_session_t *sess)
 
static void acl_fa_conn_list_add_session (acl_main_t *am, fa_full_session_id_t sess_id, u64 now)
 
static int acl_fa_conn_list_delete_session (acl_main_t *am, fa_full_session_id_t sess_id, u64 now)
 
static int acl_fa_restart_timer_for_session (acl_main_t *am, u64 now, fa_full_session_id_t sess_id)
 
static int is_ip6_5tuple (fa_5tuple_t *p5t)
 
static u8 acl_fa_track_session (acl_main_t *am, int is_input, u32 sw_if_index, u64 now, fa_session_t *sess, fa_5tuple_t *pkt_5tuple, u32 pkt_len)
 
static u64 reverse_l4_u64_fastpath (u64 l4, int is_ip6)
 
static int reverse_l4_u64_slowpath_valid (u64 l4, int is_ip6, u64 *out)
 
static void reverse_session_add_del_ip6 (acl_main_t *am, clib_bihash_kv_40_8_t *pkv, int is_add)
 
static void reverse_session_add_del_ip4 (acl_main_t *am, clib_bihash_kv_16_8_t *pkv, int is_add)
 
static void acl_fa_deactivate_session (acl_main_t *am, u32 sw_if_index, fa_full_session_id_t sess_id)
 
static void acl_fa_put_session (acl_main_t *am, u32 sw_if_index, fa_full_session_id_t sess_id)
 
static int acl_fa_two_stage_delete_session (acl_main_t *am, u32 sw_if_index, fa_full_session_id_t sess_id, u64 now)
 
static int acl_fa_can_add_session (acl_main_t *am, int is_input, u32 sw_if_index)
 
static void acl_fa_try_recycle_session (acl_main_t *am, int is_input, u16 thread_index, u32 sw_if_index, u64 now)
 
static fa_full_session_id_t acl_fa_add_session (acl_main_t *am, int is_input, int is_ip6, u32 sw_if_index, u64 now, fa_5tuple_t *p5tuple, u16 current_policy_epoch)
 
static int acl_fa_find_session (acl_main_t *am, int is_ip6, u32 sw_if_index0, fa_5tuple_t *p5tuple, u64 *pvalue_sess)
 
static u64 acl_fa_make_session_hash (acl_main_t *am, int is_ip6, u32 sw_if_index0, fa_5tuple_t *p5tuple)
 
static void acl_fa_prefetch_session_bucket_for_hash (acl_main_t *am, int is_ip6, u64 hash)
 
static void acl_fa_prefetch_session_data_for_hash (acl_main_t *am, int is_ip6, u64 hash)
 
static int acl_fa_find_session_with_hash (acl_main_t *am, int is_ip6, u32 sw_if_index0, u64 hash, fa_5tuple_t *p5tuple, u64 *pvalue_sess)
 

Variables

static const u8 icmp4_invmap []
 
static const u8 icmp4_valid_new []
 
static const u8 icmp6_invmap []
 
static const u8 icmp6_valid_new []
 
static u8 icmp_protos [] = { IP_PROTOCOL_ICMP, IP_PROTOCOL_ICMP6 }
 

Function Documentation

◆ acl_fa_add_session()

static fa_full_session_id_t acl_fa_add_session ( acl_main_t am,
int  is_input,
int  is_ip6,
u32  sw_if_index,
u64  now,
fa_5tuple_t p5tuple,
u16  current_policy_epoch 
)
inlinestatic

Definition at line 515 of file session_inlines.h.

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

◆ acl_fa_can_add_session()

static int acl_fa_can_add_session ( acl_main_t am,
int  is_input,
u32  sw_if_index 
)
inlinestatic

Definition at line 465 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ acl_fa_conn_list_add_session()

static void acl_fa_conn_list_add_session ( acl_main_t am,
fa_full_session_id_t  sess_id,
u64  now 
)
inlinestatic

Definition at line 147 of file session_inlines.h.

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

◆ acl_fa_conn_list_delete_session()

static int acl_fa_conn_list_delete_session ( acl_main_t am,
fa_full_session_id_t  sess_id,
u64  now 
)
static

Definition at line 193 of file session_inlines.h.

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

◆ acl_fa_deactivate_session()

static void acl_fa_deactivate_session ( acl_main_t am,
u32  sw_if_index,
fa_full_session_id_t  sess_id 
)
inlinestatic

Definition at line 403 of file session_inlines.h.

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

◆ acl_fa_find_session()

static int acl_fa_find_session ( acl_main_t am,
int  is_ip6,
u32  sw_if_index0,
fa_5tuple_t p5tuple,
u64 pvalue_sess 
)
inlinestatic

Definition at line 584 of file session_inlines.h.

◆ acl_fa_find_session_with_hash()

static int acl_fa_find_session_with_hash ( acl_main_t am,
int  is_ip6,
u32  sw_if_index0,
u64  hash,
fa_5tuple_t p5tuple,
u64 pvalue_sess 
)
inlinestatic

Definition at line 635 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ acl_fa_ifc_has_in_acl()

static int acl_fa_ifc_has_in_acl ( acl_main_t am,
int  sw_if_index0 
)
inlinestatic

Definition at line 57 of file session_inlines.h.

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

◆ acl_fa_ifc_has_out_acl()

static int acl_fa_ifc_has_out_acl ( acl_main_t am,
int  sw_if_index0 
)
inlinestatic

Definition at line 64 of file session_inlines.h.

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

◆ acl_fa_ifc_has_sessions()

static int acl_fa_ifc_has_sessions ( acl_main_t am,
int  sw_if_index0 
)
inlinestatic

Definition at line 51 of file session_inlines.h.

◆ acl_fa_make_session_hash()

static u64 acl_fa_make_session_hash ( acl_main_t am,
int  is_ip6,
u32  sw_if_index0,
fa_5tuple_t p5tuple 
)
inlinestatic

Definition at line 606 of file session_inlines.h.

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

◆ acl_fa_prefetch_session_bucket_for_hash()

static void acl_fa_prefetch_session_bucket_for_hash ( acl_main_t am,
int  is_ip6,
u64  hash 
)
inlinestatic

Definition at line 616 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ acl_fa_prefetch_session_data_for_hash()

static void acl_fa_prefetch_session_data_for_hash ( acl_main_t am,
int  is_ip6,
u64  hash 
)
inlinestatic

Definition at line 626 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ acl_fa_put_session()

static void acl_fa_put_session ( acl_main_t am,
u32  sw_if_index,
fa_full_session_id_t  sess_id 
)
inlinestatic

Definition at line 427 of file session_inlines.h.

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

◆ acl_fa_restart_timer_for_session()

static int acl_fa_restart_timer_for_session ( acl_main_t am,
u64  now,
fa_full_session_id_t  sess_id 
)
inlinestatic

Definition at line 247 of file session_inlines.h.

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

◆ acl_fa_track_session()

static u8 acl_fa_track_session ( acl_main_t am,
int  is_input,
u32  sw_if_index,
u64  now,
fa_session_t sess,
fa_5tuple_t pkt_5tuple,
u32  pkt_len 
)
inlinestatic

Definition at line 277 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ acl_fa_try_recycle_session()

static void acl_fa_try_recycle_session ( acl_main_t am,
int  is_input,
u16  thread_index,
u32  sw_if_index,
u64  now 
)
inlinestatic

Definition at line 475 of file session_inlines.h.

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

◆ acl_fa_two_stage_delete_session()

static int acl_fa_two_stage_delete_session ( acl_main_t am,
u32  sw_if_index,
fa_full_session_id_t  sess_id,
u64  now 
)
inlinestatic

Definition at line 446 of file session_inlines.h.

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

◆ fa_session_get_timeout()

static u64 fa_session_get_timeout ( acl_main_t am,
fa_session_t sess 
)
inlinestatic

Definition at line 102 of file session_inlines.h.

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

◆ fa_session_get_timeout_type()

static int fa_session_get_timeout_type ( acl_main_t am,
fa_session_t sess 
)
inlinestatic

Definition at line 71 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ get_session_ptr()

static fa_session_t* get_session_ptr ( acl_main_t am,
u16  thread_index,
u32  session_index 
)
inlinestatic

Definition at line 127 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ get_session_ptr_no_check()

static fa_session_t* get_session_ptr_no_check ( acl_main_t am,
u16  thread_index,
u32  session_index 
)
inlinestatic

Definition at line 118 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ is_ip6_5tuple()

static int is_ip6_5tuple ( fa_5tuple_t p5t)
inlinestatic

Definition at line 269 of file session_inlines.h.

◆ is_valid_session_ptr()

static int is_valid_session_ptr ( acl_main_t am,
u16  thread_index,
fa_session_t sess 
)
inlinestatic

Definition at line 138 of file session_inlines.h.

◆ reverse_l4_u64_fastpath()

static u64 reverse_l4_u64_fastpath ( u64  l4,
int  is_ip6 
)
inlinestatic

Definition at line 295 of file session_inlines.h.

+ Here is the caller graph for this function:

◆ reverse_l4_u64_slowpath_valid()

static int reverse_l4_u64_slowpath_valid ( u64  l4,
int  is_ip6,
u64 out 
)
inlinestatic

Definition at line 309 of file session_inlines.h.

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

◆ reverse_session_add_del_ip4()

static void reverse_session_add_del_ip4 ( acl_main_t am,
clib_bihash_kv_16_8_t pkv,
int  is_add 
)
inlinestatic

Definition at line 382 of file session_inlines.h.

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

◆ reverse_session_add_del_ip6()

static void reverse_session_add_del_ip6 ( acl_main_t am,
clib_bihash_kv_40_8_t pkv,
int  is_add 
)
inlinestatic

Definition at line 359 of file session_inlines.h.

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

Variable Documentation

◆ icmp4_invmap

const u8 icmp4_invmap[]
static
Initial value:
= {
[ICMP4_echo_request] = ICMP4_echo_reply + 1,
[ICMP4_timestamp_request] = ICMP4_timestamp_reply + 1,
[ICMP4_information_request] = ICMP4_information_reply + 1,
[ICMP4_address_mask_request] = ICMP4_address_mask_reply + 1
}

Definition at line 18 of file session_inlines.h.

◆ icmp4_valid_new

const u8 icmp4_valid_new[]
static
Initial value:
= {
[ICMP4_echo_request] = 1,
[ICMP4_timestamp_request] = 1,
[ICMP4_information_request] = 1,
[ICMP4_address_mask_request] = 1
}

Definition at line 26 of file session_inlines.h.

◆ icmp6_invmap

const u8 icmp6_invmap[]
static
Initial value:
= {
[ICMP6_echo_request - 128] = ICMP6_echo_reply + 1,
[ICMP6_node_information_request - 128] = ICMP6_node_information_response + 1
}

Definition at line 34 of file session_inlines.h.

◆ icmp6_valid_new

const u8 icmp6_valid_new[]
static
Initial value:
= {
[ICMP6_echo_request - 128] = 1,
[ICMP6_node_information_request - 128] = 1
}

Definition at line 40 of file session_inlines.h.

◆ icmp_protos

u8 icmp_protos[] = { IP_PROTOCOL_ICMP, IP_PROTOCOL_ICMP6 }
static

Definition at line 46 of file session_inlines.h.