FD.io VPP  v17.07.01-10-g3be13f0
Vector Packet Processing
hash_lookup.c File Reference
+ Include dependency graph for hash_lookup.c:

Go to the source code of this file.

Functions

static applied_hash_ace_entry_t ** get_applied_hash_aces (acl_main_t *am, int is_input, u32 sw_if_index)
 
static int match_portranges (acl_main_t *am, fa_5tuple_t *match, u32 index)
 
static u32 multi_acl_match_get_applied_ace_index (acl_main_t *am, fa_5tuple_t *match)
 
static void hashtable_add_del (acl_main_t *am, clib_bihash_kv_48_8_t *kv, int is_add)
 
static void fill_applied_hash_ace_kv (acl_main_t *am, applied_hash_ace_entry_t **applied_hash_aces, u32 sw_if_index, u8 is_input, u32 new_index, clib_bihash_kv_48_8_t *kv)
 
static void add_del_hashtable_entry (acl_main_t *am, u32 sw_if_index, u8 is_input, applied_hash_ace_entry_t **applied_hash_aces, u32 index, int is_add)
 
static void activate_applied_ace_hash_entry (acl_main_t *am, u32 sw_if_index, u8 is_input, applied_hash_ace_entry_t **applied_hash_aces, u32 new_index)
 
static void applied_hash_entries_analyze (acl_main_t *am, applied_hash_ace_entry_t **applied_hash_aces)
 
static void * hash_acl_set_heap (acl_main_t *am)
 
void acl_plugin_hash_acl_set_validate_heap (acl_main_t *am, int on)
 
void acl_plugin_hash_acl_set_trace_heap (acl_main_t *am, int on)
 
void hash_acl_apply (acl_main_t *am, u32 sw_if_index, u8 is_input, int acl_index)
 
static u32 find_head_applied_ace_index (applied_hash_ace_entry_t **applied_hash_aces, u32 curr_index)
 
static void move_applied_ace_hash_entry (acl_main_t *am, u32 sw_if_index, u8 is_input, applied_hash_ace_entry_t **applied_hash_aces, u32 old_index, u32 new_index)
 
static void deactivate_applied_ace_hash_entry (acl_main_t *am, u32 sw_if_index, u8 is_input, applied_hash_ace_entry_t **applied_hash_aces, u32 old_index)
 
static void hash_acl_build_applied_lookup_bitmap (acl_main_t *am, u32 sw_if_index, u8 is_input)
 
void hash_acl_unapply (acl_main_t *am, u32 sw_if_index, u8 is_input, int acl_index)
 
void hash_acl_reapply (acl_main_t *am, u32 sw_if_index, u8 is_input, int acl_index)
 
static void make_address_mask (ip46_address_t *addr, u8 is_ipv6, u8 prefix_len)
 
static u8 make_port_mask (u16 *portmask, u16 port_first, u16 port_last)
 
static void make_mask_and_match_from_rule (fa_5tuple_t *mask, acl_rule_t *r, hash_ace_info_t *hi, int match_nonfirst_fragment)
 
static u32 find_mask_type_index (acl_main_t *am, fa_5tuple_t *mask)
 
static u32 assign_mask_type_index (acl_main_t *am, fa_5tuple_t *mask)
 
static void release_mask_type_index (acl_main_t *am, u32 mask_type_index)
 
void hash_acl_add (acl_main_t *am, int acl_index)
 
void hash_acl_delete (acl_main_t *am, int acl_index)
 
u8 hash_multi_acl_match_5tuple (u32 sw_if_index, fa_5tuple_t *pkt_5tuple, int is_l2, int is_ip6, int is_input, u32 *acl_match_p, u32 *rule_match_p, u32 *trace_bitmap)
 
void show_hash_acl_hash (vlib_main_t *vm, acl_main_t *am, u32 verbose)
 

Function Documentation

void acl_plugin_hash_acl_set_trace_heap ( acl_main_t am,
int  on 
)

Definition at line 291 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void acl_plugin_hash_acl_set_validate_heap ( acl_main_t am,
int  on 
)

Definition at line 276 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void activate_applied_ace_hash_entry ( acl_main_t am,
u32  sw_if_index,
u8  is_input,
applied_hash_ace_entry_t **  applied_hash_aces,
u32  new_index 
)
static

Definition at line 204 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void add_del_hashtable_entry ( acl_main_t am,
u32  sw_if_index,
u8  is_input,
applied_hash_ace_entry_t **  applied_hash_aces,
u32  index,
int  is_add 
)
static

Definition at line 190 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void applied_hash_entries_analyze ( acl_main_t am,
applied_hash_ace_entry_t **  applied_hash_aces 
)
static

Definition at line 249 of file hash_lookup.c.

+ Here is the caller graph for this function:

static u32 assign_mask_type_index ( acl_main_t am,
fa_5tuple_t mask 
)
static

Definition at line 737 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void deactivate_applied_ace_hash_entry ( acl_main_t am,
u32  sw_if_index,
u8  is_input,
applied_hash_ace_entry_t **  applied_hash_aces,
u32  old_index 
)
static

Definition at line 450 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void fill_applied_hash_ace_kv ( acl_main_t am,
applied_hash_ace_entry_t **  applied_hash_aces,
u32  sw_if_index,
u8  is_input,
u32  new_index,
clib_bihash_kv_48_8_t kv 
)
static

Definition at line 167 of file hash_lookup.c.

+ Here is the caller graph for this function:

static u32 find_head_applied_ace_index ( applied_hash_ace_entry_t **  applied_hash_aces,
u32  curr_index 
)
static

Definition at line 387 of file hash_lookup.c.

+ Here is the caller graph for this function:

static u32 find_mask_type_index ( acl_main_t am,
fa_5tuple_t mask 
)
static

Definition at line 723 of file hash_lookup.c.

+ Here is the caller graph for this function:

static applied_hash_ace_entry_t** get_applied_hash_aces ( acl_main_t am,
int  is_input,
u32  sw_if_index 
)
inlinestatic

Definition at line 37 of file hash_lookup.c.

+ Here is the caller graph for this function:

void hash_acl_add ( acl_main_t am,
int  acl_index 
)

Definition at line 769 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void hash_acl_apply ( acl_main_t am,
u32  sw_if_index,
u8  is_input,
int  acl_index 
)

Definition at line 303 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void hash_acl_build_applied_lookup_bitmap ( acl_main_t am,
u32  sw_if_index,
u8  is_input 
)
static

Definition at line 502 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void hash_acl_delete ( acl_main_t am,
int  acl_index 
)

Definition at line 826 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void hash_acl_reapply ( acl_main_t am,
u32  sw_if_index,
u8  is_input,
int  acl_index 
)

Definition at line 603 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void* hash_acl_set_heap ( acl_main_t am)
static

Definition at line 264 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void hash_acl_unapply ( acl_main_t am,
u32  sw_if_index,
u8  is_input,
int  acl_index 
)

Definition at line 523 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 hash_multi_acl_match_5tuple ( u32  sw_if_index,
fa_5tuple_t pkt_5tuple,
int  is_l2,
int  is_ip6,
int  is_input,
u32 acl_match_p,
u32 rule_match_p,
u32 trace_bitmap 
)

Definition at line 870 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void hashtable_add_del ( acl_main_t am,
clib_bihash_kv_48_8_t kv,
int  is_add 
)
static

Definition at line 158 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void make_address_mask ( ip46_address_t *  addr,
u8  is_ipv6,
u8  prefix_len 
)
static

Definition at line 625 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void make_mask_and_match_from_rule ( fa_5tuple_t mask,
acl_rule_t r,
hash_ace_info_t hi,
int  match_nonfirst_fragment 
)
static

Definition at line 664 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 make_port_mask ( u16 portmask,
u16  port_first,
u16  port_last 
)
static

Definition at line 637 of file hash_lookup.c.

+ Here is the caller graph for this function:

static int match_portranges ( acl_main_t am,
fa_5tuple_t match,
u32  index 
)
static

Definition at line 52 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void move_applied_ace_hash_entry ( acl_main_t am,
u32  sw_if_index,
u8  is_input,
applied_hash_ace_entry_t **  applied_hash_aces,
u32  old_index,
u32  new_index 
)
static

Definition at line 405 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 multi_acl_match_get_applied_ace_index ( acl_main_t am,
fa_5tuple_t match 
)
static

Definition at line 68 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void release_mask_type_index ( acl_main_t am,
u32  mask_type_index 
)
static

Definition at line 759 of file hash_lookup.c.

+ Here is the caller graph for this function:

void show_hash_acl_hash ( vlib_main_t vm,
acl_main_t am,
u32  verbose 
)

Definition at line 888 of file hash_lookup.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: