} ace_mask_type_entry_t;
typedef struct {
+ /* mheap to hold all the ACL module related allocations, other than hash */
+ void *acl_mheap;
+
/* API message ID base */
u16 msg_id_base;
acl_list_t *acls; /* Pool of ACLs */
hash_acl_info_t *hash_acl_infos; /* corresponding hash matching housekeeping info */
clib_bihash_48_8_t acl_lookup_hash; /* ACL lookup hash table. */
+
+ /* mheap to hold all the miscellaneous allocations related to hash-based lookups */
+ void *hash_lookup_mheap;
int acl_lookup_hash_initialized;
applied_hash_ace_entry_t **input_hash_entry_vec_by_sw_if_index;
applied_hash_ace_entry_t **output_hash_entry_vec_by_sw_if_index;
u32 **input_sw_if_index_vec_by_acl;
u32 **output_sw_if_index_vec_by_acl;
+ /* Total count of interface+direction pairs enabled */
+ u32 fa_total_enabled_count;
+
/* Do we use hash-based ACL matching or linear */
int use_hash_acl_matching;
u32 fa_cleaner_node_index;
/* FA session timeouts, in seconds */
u32 session_timeout_sec[ACL_N_TIMEOUTS];
- /* session add/delete counters */
- u64 *fa_session_adds_by_sw_if_index;
- u64 *fa_session_dels_by_sw_if_index;
/* total session adds/dels */
u64 fa_session_total_adds;
u64 fa_session_total_dels;
u64 fa_current_cleaner_timer_wait_interval;
+ int fa_interrupt_generation;
+
/* per-worker data related t conn management */
acl_fa_per_worker_data_t *per_worker_data;