mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 06:15:47 +00:00
dpif-netdev: implement subtable lookup validation.
This commit refactors the existing dpif subtable function pointer infrastructure, and implements an autovalidator component. The refactoring of the existing dpcls subtable lookup function handling, making it more generic, and cleaning up how to enable more implementations in future. In order to ensure all implementations provide identical results, the autovalidator is added. The autovalidator itself implements the subtable lookup function prototype, but internally iterates over all other available implementations. The end result is that testing of each implementation becomes automatic, when the auto- validator implementation is selected. Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: William Tu <u9012063@gmail.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
This commit is contained in:
committed by
Ian Stokes
parent
fa31efd211
commit
e90e115a01
@@ -60,21 +60,6 @@ uint32_t (*dpcls_subtable_lookup_func)(struct dpcls_subtable *subtable,
|
||||
const struct netdev_flow_key *keys[],
|
||||
struct dpcls_rule **rules);
|
||||
|
||||
/* Prototype for generic lookup func, using generic scalar code path. */
|
||||
uint32_t
|
||||
dpcls_subtable_lookup_generic(struct dpcls_subtable *subtable,
|
||||
uint32_t keys_map,
|
||||
const struct netdev_flow_key *keys[],
|
||||
struct dpcls_rule **rules);
|
||||
|
||||
/* Probe function to select a specialized version of the generic lookup
|
||||
* implementation. This provides performance benefit due to compile-time
|
||||
* optimizations such as loop-unrolling. These are enabled by the compile-time
|
||||
* constants in the specific function implementations.
|
||||
*/
|
||||
dpcls_subtable_lookup_func
|
||||
dpcls_subtable_generic_probe(uint32_t u0_bit_count, uint32_t u1_bit_count);
|
||||
|
||||
/* A set of rules that all have the same fields wildcarded. */
|
||||
struct dpcls_subtable {
|
||||
/* The fields are only used by writers. */
|
||||
|
Reference in New Issue
Block a user