From: Kumar Amber <kumar.am...@intel.com> This commit adds a new command to allow the user to enable autovalidatior by default at build time thus allowing for runnig unit test by default.
$ ./configure --enable-mfex-default-autovalidator Signed-off-by: Kumar Amber <kumar.am...@intel.com> Co-authored-by: Harry van Haaren <harry.van.haa...@intel.com> Signed-off-by: Harry van Haaren <harry.van.haa...@intel.com> --- v9: - fix review comments Flavio v7: - fix review commens(Eelco, Flavio) v5: - fix review comments(Ian, Flavio, Eelco) --- --- Documentation/topics/dpdk/bridge.rst | 5 +++++ NEWS | 3 ++- acinclude.m4 | 16 ++++++++++++++++ configure.ac | 1 + lib/dpif-netdev-private-extract.c | 8 ++++++-- 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Documentation/topics/dpdk/bridge.rst b/Documentation/topics/dpdk/bridge.rst index 7c618cf1f..4db416ddd 100644 --- a/Documentation/topics/dpdk/bridge.rst +++ b/Documentation/topics/dpdk/bridge.rst @@ -307,3 +307,8 @@ implementations provide the same results. To set the Miniflow autovalidator, use this command :: $ ovs-appctl dpif-netdev/miniflow-parser-set autovalidator + +A compile time option is available in order to test it with the OVS unit +test suite. Use the following configure option :: + + $ ./configure --enable-mfex-default-autovalidator diff --git a/NEWS b/NEWS index 4a7b89409..581bff225 100644 --- a/NEWS +++ b/NEWS @@ -38,6 +38,8 @@ Post-v2.15.0 * Add study function to miniflow function table which studies packet and automatically chooses the best miniflow implementation for that traffic. + * Add build time configure command to enable auto-validatior as default + miniflow implementation at build time. - ovs-ctl: * New option '--no-record-hostname' to disable hostname configuration in ovsdb on startup. @@ -57,7 +59,6 @@ Post-v2.15.0 whether the SNAT with all-zero IP address is supported. See ovs-vswitchd.conf.db(5) for details. - v2.15.0 - 15 Feb 2021 --------------------- - OVSDB: diff --git a/acinclude.m4 b/acinclude.m4 index 343303447..5a48f0335 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -14,6 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +dnl Set OVS MFEX Autovalidator as default miniflow extract at compile time? +dnl This enables automatically running all unit tests with all MFEX +dnl implementations. +AC_DEFUN([OVS_CHECK_MFEX_AUTOVALIDATOR], [ + AC_ARG_ENABLE([mfex-default-autovalidator], + [AC_HELP_STRING([--enable-mfex-default-autovalidator], [Enable MFEX autovalidator as default miniflow_extract implementation.])], + [autovalidator=yes],[autovalidator=no]) + AC_MSG_CHECKING([whether MFEX Autovalidator is default implementation]) + if test "$autovalidator" != yes; then + AC_MSG_RESULT([no]) + else + OVS_CFLAGS="$OVS_CFLAGS -DMFEX_AUTOVALIDATOR_DEFAULT" + AC_MSG_RESULT([yes]) + fi +]) + dnl Set OVS DPCLS Autovalidator as default subtable search at compile time? dnl This enables automatically running all unit tests with all DPCLS dnl implementations. diff --git a/configure.ac b/configure.ac index e45685a6c..46c402892 100644 --- a/configure.ac +++ b/configure.ac @@ -186,6 +186,7 @@ OVS_ENABLE_SPARSE OVS_CTAGS_IDENTIFIERS OVS_CHECK_DPCLS_AUTOVALIDATOR OVS_CHECK_DPIF_AVX512_DEFAULT +OVS_CHECK_MFEX_AUTOVALIDATOR OVS_CHECK_BINUTILS_AVX512 AC_ARG_VAR(KARCH, [Kernel Architecture String]) diff --git a/lib/dpif-netdev-private-extract.c b/lib/dpif-netdev-private-extract.c index 4ea111f94..ad71f238e 100644 --- a/lib/dpif-netdev-private-extract.c +++ b/lib/dpif-netdev-private-extract.c @@ -77,20 +77,24 @@ dp_mfex_impl_get_default(void) { atomic_uintptr_t *mfex_func = (void *)&default_mfex_func; static bool default_mfex_func_set = false; +#ifdef MFEX_AUTOVALIDATOR_DEFAULT + int mfex_idx = MFEX_IMPL_AUTOVALIDATOR; +#else int mfex_idx = MFEX_IMPL_SCALAR; +#endif /* For the first call, this will be choosen based on the * compile time flag and if nor flag is set it is set to * default scalar. */ if (OVS_UNLIKELY(!default_mfex_func_set)) { - VLOG_INFO("Default MFEX implementation is %s.\n", + + VLOG_INFO("Default miniflow extract implementation%s.\n", mfex_impls[mfex_idx].name); atomic_store_relaxed(mfex_func, (uintptr_t) mfex_impls [mfex_idx].extract_func); default_mfex_func_set = true; } - return default_mfex_func; } -- 2.25.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev