typedef struct {
/* The mask types present in this ACL */
uword *mask_type_index_bitmap;
+ /* hash ACL applied on these interfaces */
+ u32 *inbound_sw_if_index_list;
+ u32 *outbound_sw_if_index_list;
hash_ace_info_t *rules;
} hash_acl_info_t;
*/
u32 next_applied_entry_index;
/*
- * previous entry in the ring list of the chained ones.
+ * previous entry in the list of the chained ones,
+ * if ~0 then this is entry in the hash.
*/
u32 prev_applied_entry_index;
/*
- * 1 if it is the very first entry in the list,
- * referenced from the hash.
+ * chain tail, if this is the first entry
*/
- u8 is_first_entry;
+ u32 tail_applied_entry_index;
+ /*
+ * number of hits on this entry
+ */
+ u64 hitcount;
/*
* Action of this applied ACE
*/
* hash_ace_info_t=>mask_type_index bits set
*/
uword *mask_type_index_bitmap;
+ /* applied ACLs so we can track them independently from main ACL module */
+ u32 *applied_acls;
} applied_hash_acl_info_t;