From 1d342b9c8f515eabfb20fe8856ba311769870711 Mon Sep 17 00:00:00 2001 From: Andrew Yourtchenko Date: Fri, 13 Aug 2021 13:59:50 +0000 Subject: acl: add API call for setting the toggle to select between linear and bihash-based lookups In some cases (ACL of a few lines long with a lot of different subnet masks), linear lookup may be more efficient than the hash-based lookup. Expose the API to allow the control plane to choose what lookup algorithm to use. Type: improvement Change-Id: I540dd1b4ce63c5106a556d550f911f3a578b33e0 Signed-off-by: Andrew Yourtchenko --- src/plugins/acl/acl.api | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'src/plugins/acl/acl.api') diff --git a/src/plugins/acl/acl.api b/src/plugins/acl/acl.api index a4706c3e529..404b512abed 100644 --- a/src/plugins/acl/acl.api +++ b/src/plugins/acl/acl.api @@ -19,7 +19,7 @@ used to control the ACL plugin */ -option version = "2.0.0"; +option version = "2.0.1"; import "plugins/acl/acl_types.api"; import "vnet/interface_types.api"; @@ -497,3 +497,43 @@ autoreply define acl_stats_intf_counters_enable bool enable; option vat_help = "[disable]"; }; + +/** \brief Enable hash-based ACL lookups (default) or disable them (use linear search) + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable - whether to enable or disable the usage of hash lookup algorithm +*/ + +autoreply define acl_plugin_use_hash_lookup_set +{ + option status="in_progress"; + u32 client_index; + u32 context; + bool enable; +}; + +/** \brief Get if the hash-based ACL lookups are enabled (default) or not (use linear search) + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ + + +define acl_plugin_use_hash_lookup_get +{ + option status="in_progress"; + u32 client_index; + u32 context; +}; + + +/** \brief Reply with the previous state of the hash lookup + @param context - returned sender context, to match reply w/ request + @param prev_enable - previous state of the hash lookup use +*/ + +define acl_plugin_use_hash_lookup_get_reply +{ + option status="in_progress"; + u32 context; + bool enable; +}; -- cgit 1.2.3-korg