acl: remove custom ACL-plugin heap
[vpp.git] / src / plugins / acl / hash_lookup.c
index 07701b7..e885074 100644 (file)
@@ -586,45 +586,6 @@ activate_applied_ace_hash_entry(acl_main_t *am,
 }
 
 
-static void *
-hash_acl_set_heap(acl_main_t *am)
-{
-  if (0 == am->hash_lookup_mheap) {
-    am->hash_lookup_mheap = mheap_alloc_with_lock (0 /* use VM */ ,
-                                                   am->hash_lookup_mheap_size,
-                                                   1 /* locked */);
-    if (0 == am->hash_lookup_mheap) {
-        clib_error("ACL plugin failed to allocate lookup heap of %U bytes",
-                   format_memory_size, am->hash_lookup_mheap_size);
-    }
-    /*
-     * DLMALLOC is being "helpful" in that it ignores the heap size parameter
-     * by default and tries to allocate the larger amount of memory.
-     *
-     * Pin the heap so this does not happen and if we run out of memory
-     * in this heap, we will bail out with "out of memory", rather than
-     * an obscure error sometime later.
-     */
-    mspace_disable_expand(am->hash_lookup_mheap);
-  }
-  void *oldheap = clib_mem_set_heap(am->hash_lookup_mheap);
-  return oldheap;
-}
-
-void
-acl_plugin_hash_acl_set_validate_heap(int on)
-{
-  acl_main_t *am = &acl_main;
-  clib_mem_set_heap(hash_acl_set_heap(am));
-}
-
-void
-acl_plugin_hash_acl_set_trace_heap(int on)
-{
-  acl_main_t *am = &acl_main;
-  clib_mem_set_heap(hash_acl_set_heap(am));
-}
-
 static void
 assign_mask_type_index_to_pae(acl_main_t *am, u32 lc_index, int is_ip6, applied_hash_ace_entry_t *pae)
 {
@@ -672,7 +633,6 @@ hash_acl_apply(acl_main_t *am, u32 lc_index, int acl_index, u32 acl_position)
     am->acl_lookup_hash_initialized = 1;
   }
 
-  void *oldheap = hash_acl_set_heap(am);
   vec_validate(am->hash_entry_vec_by_lc_index, lc_index);
   vec_validate(am->hash_acl_infos, acl_index);
   applied_hash_ace_entry_t **applied_hash_aces = get_applied_hash_aces(am, lc_index);
@@ -693,14 +653,16 @@ hash_acl_apply(acl_main_t *am, u32 lc_index, int acl_index, u32 acl_position)
   if (index != ~0) {
     clib_warning("BUG: trying to apply twice acl_index %d on lc_index %d, according to lc",
                  acl_index, lc_index);
-    goto done;
+    ASSERT(0);
+    return;
   }
   vec_add1(pal->applied_acls, acl_index);
   u32 index2 = vec_search((*hash_acl_applied_lc_index), lc_index);
   if (index2 != ~0) {
     clib_warning("BUG: trying to apply twice acl_index %d on lc_index %d, according to hash h-acl info",
                  acl_index, lc_index);
-    goto done;
+    ASSERT(0);
+    return;
   }
   vec_add1((*hash_acl_applied_lc_index), lc_index);
 
@@ -751,8 +713,6 @@ hash_acl_apply(acl_main_t *am, u32 lc_index, int acl_index, u32 acl_position)
       check_collision_count_and_maybe_split(am, lc_index, is_ip6, first_index);
   }
   remake_hash_applied_mask_info_vec(am, applied_hash_aces, lc_index);
-done:
-  clib_mem_set_heap (oldheap);
 }
 
 static u32
@@ -928,7 +888,6 @@ hash_acl_unapply(acl_main_t *am, u32 lc_index, int acl_index)
     return;
   }
 
-  void *oldheap = hash_acl_set_heap(am);
   int base_offset = i;
   int tail_offset = base_offset + vec_len(ha->rules);
   int tail_len = vec_len((*applied_hash_aces)) - tail_offset;
@@ -952,8 +911,6 @@ hash_acl_unapply(acl_main_t *am, u32 lc_index, int acl_index)
   if (vec_len((*applied_hash_aces)) == 0) {
     vec_free((*applied_hash_aces));
   }
-
-  clib_mem_set_heap (oldheap);
 }
 
 /*
@@ -1105,7 +1062,6 @@ int hash_acl_exists(acl_main_t *am, int acl_index)
 
 void hash_acl_add(acl_main_t *am, int acl_index)
 {
-  void *oldheap = hash_acl_set_heap(am);
   DBG("HASH ACL add : %d", acl_index);
   int i;
   acl_rule_t *acl_rules = am->acls[acl_index].rules;
@@ -1148,12 +1104,10 @@ void hash_acl_add(acl_main_t *am, int acl_index)
       hash_acl_reapply(am, *lc_index, acl_index);
     }
   }
-  clib_mem_set_heap (oldheap);
 }
 
 void hash_acl_delete(acl_main_t *am, int acl_index)
 {
-  void *oldheap = hash_acl_set_heap(am);
   DBG0("HASH ACL delete : %d", acl_index);
   /*
    * If the ACL is applied somewhere, remove the references of it (call hash_acl_unapply)
@@ -1188,7 +1142,6 @@ void hash_acl_delete(acl_main_t *am, int acl_index)
   }
   ha->hash_acl_exists = 0;
   vec_free(ha->rules);
-  clib_mem_set_heap (oldheap);
 }