api: remove transport specific code from handlers
[vpp.git] / src / plugins / acl / hash_lookup_types.h
index 1848c5f..1fa197e 100644 (file)
@@ -38,6 +38,9 @@ typedef struct {
 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;
 
@@ -53,14 +56,18 @@ typedef struct {
    */
   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
    */
@@ -73,6 +80,8 @@ typedef struct {
     *                            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;