DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3] Support i40e PMD on Windows
@ 2020-12-05  1:10 Pallavi Kadam
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 1/3] eal/windows: add some interrupt functions stub Pallavi Kadam
                   ` (3 more replies)
  0 siblings, 4 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-05  1:10 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo, pallavi.kadam

This patch-set enables building the Intel i40e PMD on Windows.
It also adds a compiler flag to ignore a few warnings generated
when compiling the code on Windows.


Pallavi Kadam (3):
  eal/windows: add some interrupt functions stub
  net/i40e: add changes to support i40e PMD on windows
  config/build: ignore enum forward reference warning

 config/meson.build                           |  3 +
 drivers/net/i40e/base/i40e_osdep.h           |  3 +
 drivers/net/i40e/i40e_ethdev_vf.c            |  3 +-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c        |  2 +
 drivers/net/i40e/i40e_tm.c                   |  2 +-
 drivers/net/meson.build                      |  9 ++-
 lib/librte_eal/common/meson.build            |  1 +
 lib/librte_eal/rte_eal_exports.def           | 11 +++
 lib/librte_eal/windows/eal_interrupts.c      | 70 ++++++++++++++++++++
 lib/librte_eal/windows/include/rte_windows.h |  5 ++
 10 files changed, 104 insertions(+), 5 deletions(-)

-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH 1/3] eal/windows: add some interrupt functions stub
  2020-12-05  1:10 [dpdk-dev] [PATCH 0/3] Support i40e PMD on Windows Pallavi Kadam
@ 2020-12-05  1:10 ` Pallavi Kadam
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows Pallavi Kadam
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-05  1:10 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo, pallavi.kadam

Adding some interrupt implementations on Windows to help compile
i40e PMD code.
Also added respective functions to export file.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 lib/librte_eal/rte_eal_exports.def      | 10 ++++
 lib/librte_eal/windows/eal_interrupts.c | 70 +++++++++++++++++++++++++
 2 files changed, 80 insertions(+)

diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
index 6a6be1cfa..89166acd7 100644
--- a/lib/librte_eal/rte_eal_exports.def
+++ b/lib/librte_eal/rte_eal_exports.def
@@ -63,6 +63,16 @@ EXPORTS
 	rte_get_tsc_hz
 	rte_hexdump
 	rte_hypervisor_get
+	rte_intr_ack
+	rte_intr_allow_others
+	rte_intr_callback_register
+	rte_intr_callback_unregister
+	rte_intr_cap_multiple
+	rte_intr_disable
+	rte_intr_dp_is_en
+	rte_intr_efd_disable
+	rte_intr_efd_enable
+	rte_intr_enable
 	rte_intr_rx_ctl
 	rte_lcore_count
 	rte_lcore_has_role
diff --git a/lib/librte_eal/windows/eal_interrupts.c b/lib/librte_eal/windows/eal_interrupts.c
index 6c64a48f3..f6c24787f 100644
--- a/lib/librte_eal/windows/eal_interrupts.c
+++ b/lib/librte_eal/windows/eal_interrupts.c
@@ -105,3 +105,73 @@ eal_intr_thread_schedule(void (*func)(void *arg), void *arg)
 
 	return 0;
 }
+
+int
+rte_intr_callback_register(
+	__rte_unused const struct rte_intr_handle *intr_handle,
+	__rte_unused rte_intr_callback_fn cb, __rte_unused void *cb_arg)
+{
+	return -ENOTSUP;
+}
+
+int
+rte_intr_callback_unregister(
+	__rte_unused const struct rte_intr_handle *intr_handle,
+	__rte_unused rte_intr_callback_fn cb_fn, __rte_unused void *cb_arg)
+{
+	return 0;
+}
+
+int
+rte_intr_enable(__rte_unused const struct rte_intr_handle *intr_handle)
+{
+	return -ENOTSUP;
+}
+
+int
+rte_intr_ack(__rte_unused const struct rte_intr_handle *intr_handle)
+{
+	return -ENOTSUP;
+}
+
+int
+rte_intr_disable(__rte_unused const struct rte_intr_handle *intr_handle)
+{
+	return -ENOTSUP;
+}
+
+int
+rte_intr_efd_enable(struct rte_intr_handle *intr_handle, uint32_t nb_efd)
+{
+	RTE_SET_USED(intr_handle);
+	RTE_SET_USED(nb_efd);
+
+	return 0;
+}
+
+void
+rte_intr_efd_disable(struct rte_intr_handle *intr_handle)
+{
+	RTE_SET_USED(intr_handle);
+}
+
+int
+rte_intr_dp_is_en(struct rte_intr_handle *intr_handle)
+{
+	RTE_SET_USED(intr_handle);
+	return 0;
+}
+
+int
+rte_intr_allow_others(struct rte_intr_handle *intr_handle)
+{
+	RTE_SET_USED(intr_handle);
+	return 1;
+}
+
+int
+rte_intr_cap_multiple(struct rte_intr_handle *intr_handle)
+{
+	RTE_SET_USED(intr_handle);
+	return 0;
+}
-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-05  1:10 [dpdk-dev] [PATCH 0/3] Support i40e PMD on Windows Pallavi Kadam
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 1/3] eal/windows: add some interrupt functions stub Pallavi Kadam
@ 2020-12-05  1:10 ` Pallavi Kadam
  2020-12-05 13:52   ` Dmitry Kozlyuk
  2020-12-06 15:49   ` Thomas Monjalon
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning Pallavi Kadam
  2020-12-17 22:59 ` [dpdk-dev] [PATCH v2 0/2] Support i40e PMD on Windows Pallavi Kadam
  3 siblings, 2 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-05  1:10 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo, pallavi.kadam

Adding build changes to compile i40e PMD on windows.
Disabling few warnings with Clang such as comparison of integers of
different signs and macro redefinitions.
Also, adding linking dependency source file rte_random.c file to
Windows.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 drivers/net/i40e/base/i40e_osdep.h           | 3 +++
 drivers/net/i40e/i40e_ethdev_vf.c            | 3 ++-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c        | 2 ++
 drivers/net/i40e/i40e_tm.c                   | 2 +-
 drivers/net/meson.build                      | 9 ++++++---
 lib/librte_eal/common/meson.build            | 1 +
 lib/librte_eal/rte_eal_exports.def           | 1 +
 lib/librte_eal/windows/include/rte_windows.h | 5 +++++
 8 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h
index 9b5033024..fa22df122 100644
--- a/drivers/net/i40e/base/i40e_osdep.h
+++ b/drivers/net/i40e/base/i40e_osdep.h
@@ -67,8 +67,11 @@ typedef enum i40e_status_code i40e_status;
 #define false           0
 #define true            1
 
+/* Avoid macro redifinition warning on Windows */
+#ifndef RTE_EXEC_ENV_WINDOWS
 #define min(a,b) RTE_MIN(a,b)
 #define max(a,b) RTE_MAX(a,b)
+#endif
 
 #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
 
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index c26b036b8..daf4a3f99 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1495,7 +1495,8 @@ i40evf_handle_aq_msg(struct rte_eth_dev *dev)
 						       info.msg_len);
 			else {
 				/* read message and it's expected one */
-				if (msg_opc == vf->pend_cmd) {
+				if ((volatile uint32_t)msg_opc ==
+				    vf->pend_cmd) {
 					vf->cmd_retval = msg_ret;
 					/* prevent compiler reordering */
 					rte_compiler_barrier();
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
index 7a558fc73..cf2dc88c5 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
@@ -12,7 +12,9 @@
 #include "i40e_rxtx.h"
 #include "i40e_rxtx_vec_common.h"
 
+#ifndef RTE_EXEC_ENV_WINDOWS
 #include <x86intrin.h>
+#endif
 
 #ifndef __INTEL_COMPILER
 #pragma GCC diagnostic ignored "-Wcast-qual"
diff --git a/drivers/net/i40e/i40e_tm.c b/drivers/net/i40e/i40e_tm.c
index 5d722f92c..cab296e1a 100644
--- a/drivers/net/i40e/i40e_tm.c
+++ b/drivers/net/i40e/i40e_tm.c
@@ -554,7 +554,7 @@ i40e_node_add(struct rte_eth_dev *dev, uint32_t node_id,
 	}
 	/* check level */
 	if (level_id != RTE_TM_NODE_LEVEL_ID_ANY &&
-	    level_id != parent_node_type + 1) {
+	    level_id != (uint32_t)parent_node_type + 1) {
 		error->type = RTE_TM_ERROR_TYPE_NODE_PARAMS;
 		error->message = "Wrong level";
 		return -EINVAL;
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 29f477750..b3bc0277e 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -1,9 +1,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-if is_windows
-	subdir_done()
-endif
 
 drivers = ['af_packet',
 	'af_xdp',
@@ -56,6 +53,12 @@ drivers = ['af_packet',
 	'virtio',
 	'vmxnet3',
 ]
+
+if is_windows
+	drivers = ['i40e',
+	]
+endif
+
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index 39abf7a0a..98e8fffd4 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -33,6 +33,7 @@ if is_windows
 		'malloc_heap.c',
 		'rte_malloc.c',
 		'eal_common_timer.c',
+		'rte_random.c',
 		'rte_service.c',
 	)
 	subdir_done()
diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
index 89166acd7..428201872 100644
--- a/lib/librte_eal/rte_eal_exports.def
+++ b/lib/librte_eal/rte_eal_exports.def
@@ -124,6 +124,7 @@ EXPORTS
 	rte_memzone_reserve_bounded
 	rte_memzone_walk
 	rte_openlog_stream
+	rte_rand
 	rte_realloc
 	rte_rtm_supported
 	rte_service_attr_get
diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h
index b82af34f6..822922c11 100644
--- a/lib/librte_eal/windows/include/rte_windows.h
+++ b/lib/librte_eal/windows/include/rte_windows.h
@@ -18,6 +18,11 @@
 #define WIN32_LEAN_AND_MEAN
 #endif
 
+#ifdef __clang__
+#undef _m_prefetchw
+#define _m_prefetchw __m_prefetchw
+#endif
+
 /* Must come first. */
 #include <windows.h>
 
-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning
  2020-12-05  1:10 [dpdk-dev] [PATCH 0/3] Support i40e PMD on Windows Pallavi Kadam
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 1/3] eal/windows: add some interrupt functions stub Pallavi Kadam
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows Pallavi Kadam
@ 2020-12-05  1:10 ` Pallavi Kadam
  2020-12-05 13:51   ` Dmitry Kozlyuk
  2020-12-10  0:53   ` Narcisa Ana Maria Vasile
  2020-12-17 22:59 ` [dpdk-dev] [PATCH v2 0/2] Support i40e PMD on Windows Pallavi Kadam
  3 siblings, 2 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-05  1:10 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo, pallavi.kadam

Warning generated using Clang compiler:
..\drivers\net\i40e\base/i40e_osdep.h:34:14: warning: forward references
to 'enum' types are a Microsoft extension
[-Wmicrosoft-enum-forward-reference]
typedef enum i40e_status_code i40e_status;
             ^

Adding -Wmicrosoft-enum-forward-reference compiler flag to disable
the warning on Windows Clang.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 config/meson.build | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/config/meson.build b/config/meson.build
index c02802c18..6736023fa 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -212,6 +212,9 @@ warning_flags = [
 	'-Wno-packed-not-aligned',
 	'-Wno-missing-field-initializers'
 ]
+if is_windows
+	warning_flags += '-Wno-microsoft-enum-forward-reference'
+endif
 if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0')
 # FIXME: Bugzilla 396
 	warning_flags += '-Wno-zero-length-bounds'
-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning Pallavi Kadam
@ 2020-12-05 13:51   ` Dmitry Kozlyuk
  2020-12-10  0:53   ` Narcisa Ana Maria Vasile
  1 sibling, 0 replies; 32+ messages in thread
From: Dmitry Kozlyuk @ 2020-12-05 13:51 UTC (permalink / raw)
  To: Pallavi Kadam, beilei.xing, jia.guo
  Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, talshn, ferruh.yigit

On Fri,  4 Dec 2020 17:10:20 -0800, Pallavi Kadam wrote:
> Warning generated using Clang compiler:
> ..\drivers\net\i40e\base/i40e_osdep.h:34:14: warning: forward references
> to 'enum' types are a Microsoft extension
> [-Wmicrosoft-enum-forward-reference]
> typedef enum i40e_status_code i40e_status;
>              ^
> 
> Adding -Wmicrosoft-enum-forward-reference compiler flag to disable
> the warning on Windows Clang.

@i40e maintainers,
Is this typedef necessary? Disabling a warning is usually the last resort.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows Pallavi Kadam
@ 2020-12-05 13:52   ` Dmitry Kozlyuk
  2020-12-09  0:09     ` Kadam, Pallavi
  2020-12-06 15:49   ` Thomas Monjalon
  1 sibling, 1 reply; 32+ messages in thread
From: Dmitry Kozlyuk @ 2020-12-05 13:52 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, talshn, ferruh.yigit,
	beilei.xing, jia.guo

On Fri,  4 Dec 2020 17:10:19 -0800, Pallavi Kadam wrote:

You could drop "add changes" and "i40e PMD" from subject line, as any commit
changes something and topic is "net/i40e" already.

> Adding build changes to compile i40e PMD on windows.

This is redundant given the commit subject.
Please use present simple tense for changes description (this applies to
sibling patches).

> Disabling few warnings with Clang such as comparison of integers of
> different signs and macro redefinitions.
> Also, adding linking dependency source file rte_random.c file to
> Windows.
> 
> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
> ---
>  drivers/net/i40e/base/i40e_osdep.h           | 3 +++
>  drivers/net/i40e/i40e_ethdev_vf.c            | 3 ++-
>  drivers/net/i40e/i40e_rxtx_vec_avx2.c        | 2 ++
>  drivers/net/i40e/i40e_tm.c                   | 2 +-
>  drivers/net/meson.build                      | 9 ++++++---
>  lib/librte_eal/common/meson.build            | 1 +
>  lib/librte_eal/rte_eal_exports.def           | 1 +
>  lib/librte_eal/windows/include/rte_windows.h | 5 +++++
>  8 files changed, 21 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h
> index 9b5033024..fa22df122 100644
> --- a/drivers/net/i40e/base/i40e_osdep.h
> +++ b/drivers/net/i40e/base/i40e_osdep.h
> @@ -67,8 +67,11 @@ typedef enum i40e_status_code i40e_status;
>  #define false           0
>  #define true            1
>  
> +/* Avoid macro redifinition warning on Windows */
> +#ifndef RTE_EXEC_ENV_WINDOWS
>  #define min(a,b) RTE_MIN(a,b)
>  #define max(a,b) RTE_MAX(a,b)
> +#endif

Windows min() and max() macros evaluate arguments twice [1], which can be
unacceptable in driver code if used with MMIO. Better #undef min and max
first, then let PMD define them.

It seems we'll have to do that for many PMDs, because rte_os.h must not erase
platform-specific macros, and rte_windows.h is not for generic PMDs.

[1]: https://docs.microsoft.com/en-us/windows/win32/multimedia/max

> diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
> index 7a558fc73..cf2dc88c5 100644
> --- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
> +++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
> @@ -12,7 +12,9 @@
>  #include "i40e_rxtx.h"
>  #include "i40e_rxtx_vec_common.h"
>  
> +#ifndef RTE_EXEC_ENV_WINDOWS
>  #include <x86intrin.h>
> +#endif

Just #include <rte_vect.h>, it takes care of x86intrin.h for Windows.

> diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h
> index b82af34f6..822922c11 100644
> --- a/lib/librte_eal/windows/include/rte_windows.h
> +++ b/lib/librte_eal/windows/include/rte_windows.h
> @@ -18,6 +18,11 @@
>  #define WIN32_LEAN_AND_MEAN
>  #endif
>  
> +#ifdef __clang__
> +#undef _m_prefetchw
> +#define _m_prefetchw __m_prefetchw
> +#endif
> +

Please explain in the commit message which problem this solves.
Can't x86intrin.h be replaced by rte_vect.h in rte_random.c?
If it's still necessary, __clang__ should be RTE_TOOLCHAIN_CLANG.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows Pallavi Kadam
  2020-12-05 13:52   ` Dmitry Kozlyuk
@ 2020-12-06 15:49   ` Thomas Monjalon
  2020-12-07  9:14     ` Bruce Richardson
  2020-12-09  0:21     ` Kadam, Pallavi
  1 sibling, 2 replies; 32+ messages in thread
From: Thomas Monjalon @ 2020-12-06 15:49 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo, talshn

05/12/2020 02:10, Pallavi Kadam:
> --- a/drivers/net/meson.build
> +++ b/drivers/net/meson.build
> @@ -1,9 +1,6 @@
>  # SPDX-License-Identifier: BSD-3-Clause
>  # Copyright(c) 2017 Intel Corporation
>  
> -if is_windows
> -	subdir_done()
> -endif
>  
>  drivers = ['af_packet',
>  	'af_xdp',
> @@ -56,6 +53,12 @@ drivers = ['af_packet',
>  	'virtio',
>  	'vmxnet3',
>  ]
> +
> +if is_windows
> +	drivers = ['i40e',
> +	]
> +endif

Let's not add an alternative list please.
I prefer disabling compilation in other drivers.


> --- a/lib/librte_eal/common/meson.build
> +++ b/lib/librte_eal/common/meson.build
> @@ -33,6 +33,7 @@ if is_windows
>  		'malloc_heap.c',
>  		'rte_malloc.c',
>  		'eal_common_timer.c',
> +		'rte_random.c',
>  		'rte_service.c',
>  	)
>  	subdir_done()
> diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
> index 89166acd7..428201872 100644
> --- a/lib/librte_eal/rte_eal_exports.def
> +++ b/lib/librte_eal/rte_eal_exports.def
> @@ -124,6 +124,7 @@ EXPORTS
>  	rte_memzone_reserve_bounded
>  	rte_memzone_walk
>  	rte_openlog_stream
> +	rte_rand
>  	rte_realloc
>  	rte_rtm_supported
>  	rte_service_attr_get
> diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h
> index b82af34f6..822922c11 100644
> --- a/lib/librte_eal/windows/include/rte_windows.h
> +++ b/lib/librte_eal/windows/include/rte_windows.h
> @@ -18,6 +18,11 @@
>  #define WIN32_LEAN_AND_MEAN
>  #endif
>  
> +#ifdef __clang__
> +#undef _m_prefetchw
> +#define _m_prefetchw __m_prefetchw
> +#endif


These changes are not specific to i40e, please separate.



^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-06 15:49   ` Thomas Monjalon
@ 2020-12-07  9:14     ` Bruce Richardson
  2020-12-09  0:14       ` Kadam, Pallavi
  2020-12-09  0:21     ` Kadam, Pallavi
  1 sibling, 1 reply; 32+ messages in thread
From: Bruce Richardson @ 2020-12-07  9:14 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Pallavi Kadam, dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile,
	talshn, ferruh.yigit, beilei.xing, jia.guo

On Sun, Dec 06, 2020 at 04:49:40PM +0100, Thomas Monjalon wrote:
> 05/12/2020 02:10, Pallavi Kadam:
> > --- a/drivers/net/meson.build
> > +++ b/drivers/net/meson.build
> > @@ -1,9 +1,6 @@
> >  # SPDX-License-Identifier: BSD-3-Clause
> >  # Copyright(c) 2017 Intel Corporation
> >  
> > -if is_windows
> > -	subdir_done()
> > -endif
> >  
> >  drivers = ['af_packet',
> >  	'af_xdp',
> > @@ -56,6 +53,12 @@ drivers = ['af_packet',
> >  	'virtio',
> >  	'vmxnet3',
> >  ]
> > +
> > +if is_windows
> > +	drivers = ['i40e',
> > +	]
> > +endif
> 
> Let's not add an alternative list please.
> I prefer disabling compilation in other drivers.
> 
+1 for this. It's more work, but it keeps the existing style where all info
about whether a driver should be built, and how it's built in a single file
for each driver.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-05 13:52   ` Dmitry Kozlyuk
@ 2020-12-09  0:09     ` Kadam, Pallavi
  0 siblings, 0 replies; 32+ messages in thread
From: Kadam, Pallavi @ 2020-12-09  0:09 UTC (permalink / raw)
  To: Dmitry Kozlyuk
  Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, talshn, ferruh.yigit,
	beilei.xing, jia.guo


On 12/5/2020 5:52 AM, Dmitry Kozlyuk wrote:
> On Fri,  4 Dec 2020 17:10:19 -0800, Pallavi Kadam wrote:
>
> You could drop "add changes" and "i40e PMD" from subject line, as any commit
> changes something and topic is "net/i40e" already.
>
>> Adding build changes to compile i40e PMD on windows.
> This is redundant given the commit subject.
> Please use present simple tense for changes description (this applies to
> sibling patches).

Ok, I'll update the title and description in v2.

>
>> Disabling few warnings with Clang such as comparison of integers of
>> different signs and macro redefinitions.
>> Also, adding linking dependency source file rte_random.c file to
>> Windows.
>>
>> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
>> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
>> ---
>>   drivers/net/i40e/base/i40e_osdep.h           | 3 +++
>>   drivers/net/i40e/i40e_ethdev_vf.c            | 3 ++-
>>   drivers/net/i40e/i40e_rxtx_vec_avx2.c        | 2 ++
>>   drivers/net/i40e/i40e_tm.c                   | 2 +-
>>   drivers/net/meson.build                      | 9 ++++++---
>>   lib/librte_eal/common/meson.build            | 1 +
>>   lib/librte_eal/rte_eal_exports.def           | 1 +
>>   lib/librte_eal/windows/include/rte_windows.h | 5 +++++
>>   8 files changed, 21 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h
>> index 9b5033024..fa22df122 100644
>> --- a/drivers/net/i40e/base/i40e_osdep.h
>> +++ b/drivers/net/i40e/base/i40e_osdep.h
>> @@ -67,8 +67,11 @@ typedef enum i40e_status_code i40e_status;
>>   #define false           0
>>   #define true            1
>>   
>> +/* Avoid macro redifinition warning on Windows */
>> +#ifndef RTE_EXEC_ENV_WINDOWS
>>   #define min(a,b) RTE_MIN(a,b)
>>   #define max(a,b) RTE_MAX(a,b)
>> +#endif
> Windows min() and max() macros evaluate arguments twice [1], which can be
> unacceptable in driver code if used with MMIO. Better #undef min and max
> first, then let PMD define them.
>
> It seems we'll have to do that for many PMDs, because rte_os.h must not erase
> platform-specific macros, and rte_windows.h is not for generic PMDs.
>
> [1]: https://docs.microsoft.com/en-us/windows/win32/multimedia/max

Thanks for the suggestion. Will first #undef min and max in the same file in v2.

>
>> diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
>> index 7a558fc73..cf2dc88c5 100644
>> --- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
>> +++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
>> @@ -12,7 +12,9 @@
>>   #include "i40e_rxtx.h"
>>   #include "i40e_rxtx_vec_common.h"
>>   
>> +#ifndef RTE_EXEC_ENV_WINDOWS
>>   #include <x86intrin.h>
>> +#endif
> Just #include <rte_vect.h>, it takes care of x86intrin.h for Windows.

Ok, will  #include <rte_vect.h> instead.

>
>> diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h
>> index b82af34f6..822922c11 100644
>> --- a/lib/librte_eal/windows/include/rte_windows.h
>> +++ b/lib/librte_eal/windows/include/rte_windows.h
>> @@ -18,6 +18,11 @@
>>   #define WIN32_LEAN_AND_MEAN
>>   #endif
>>   
>> +#ifdef __clang__
>> +#undef _m_prefetchw
>> +#define _m_prefetchw __m_prefetchw
>> +#endif
>> +
> Please explain in the commit message which problem this solves.

Sure, will explain it in v2.

> Can't x86intrin.h be replaced by rte_vect.h in rte_random.c?
Please correct if I am wrong. Here, cause of an error is indirectly due 
to rte_windows.h
and not because of #include <x86intrin.h>

Please see below error:

FAILED: lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj
clang @lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj.rsp
In file included from ../lib/librte_eal/common/rte_random.c:13:
In file included from ..\lib/librte_eal/include\rte_eal.h:20:
In file included from ..\lib/librte_eal/include\rte_per_lcore.h:25:
In file included from ..\lib/librte_eal/windows/include\pthread.h:21:
In file included from ..\lib/librte_eal/windows/include\rte_windows.h:27:
In file included from C:\Program Files (x86)\Windows 
Kits\10\include\10.0.18362.0\um\windows.h:171:
In file included from C:\Program Files (x86)\Windows 
Kits\10\include\10.0.18362.0\shared\windef.h:24:
In file included from C:\Program Files (x86)\Windows 
Kits\10\include\10.0.18362.0\shared\minwindef.h:182:
C:\Program Files (x86)\Windows 
Kits\10\include\10.0.18362.0\um\winnt.h:3324:1: error: conflicting types 
for '_m_prefetchw'
_m_prefetchw (
^
C:\Program Files\LLVM\lib\clang\10.0.0\include\prfchwintrin.h:50:1: 
note: previous definition is here
_m_prefetchw(void *__P)
^
1 error generated.


> If it's still necessary, __clang__ should be RTE_TOOLCHAIN_CLANG.

will update this in v2. Thank you.


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-07  9:14     ` Bruce Richardson
@ 2020-12-09  0:14       ` Kadam, Pallavi
  0 siblings, 0 replies; 32+ messages in thread
From: Kadam, Pallavi @ 2020-12-09  0:14 UTC (permalink / raw)
  To: Bruce Richardson, Thomas Monjalon
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo


On 12/7/2020 1:14 AM, Bruce Richardson wrote:
> On Sun, Dec 06, 2020 at 04:49:40PM +0100, Thomas Monjalon wrote:
>> 05/12/2020 02:10, Pallavi Kadam:
>>> --- a/drivers/net/meson.build
>>> +++ b/drivers/net/meson.build
>>> @@ -1,9 +1,6 @@
>>>   # SPDX-License-Identifier: BSD-3-Clause
>>>   # Copyright(c) 2017 Intel Corporation
>>>   
>>> -if is_windows
>>> -	subdir_done()
>>> -endif
>>>   
>>>   drivers = ['af_packet',
>>>   	'af_xdp',
>>> @@ -56,6 +53,12 @@ drivers = ['af_packet',
>>>   	'virtio',
>>>   	'vmxnet3',
>>>   ]
>>> +
>>> +if is_windows
>>> +	drivers = ['i40e',
>>> +	]
>>> +endif
>> Let's not add an alternative list please.
>> I prefer disabling compilation in other drivers.
>>
> +1 for this. It's more work, but it keeps the existing style where all info
> about whether a driver should be built, and how it's built in a single file
> for each driver.

Thanks Thomas and Bruce.

Will incorporate this change in v2.


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-06 15:49   ` Thomas Monjalon
  2020-12-07  9:14     ` Bruce Richardson
@ 2020-12-09  0:21     ` Kadam, Pallavi
  2020-12-09  8:59       ` Thomas Monjalon
  1 sibling, 1 reply; 32+ messages in thread
From: Kadam, Pallavi @ 2020-12-09  0:21 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo


On 12/6/2020 7:49 AM, Thomas Monjalon wrote:
> 05/12/2020 02:10, Pallavi Kadam:
>> --- a/drivers/net/meson.build
>> +++ b/drivers/net/meson.build
>> @@ -1,9 +1,6 @@
>>   # SPDX-License-Identifier: BSD-3-Clause
>>   # Copyright(c) 2017 Intel Corporation
>>   
>> -if is_windows
>> -	subdir_done()
>> -endif
>>   
>>   drivers = ['af_packet',
>>   	'af_xdp',
>> @@ -56,6 +53,12 @@ drivers = ['af_packet',
>>   	'virtio',
>>   	'vmxnet3',
>>   ]
>> +
>> +if is_windows
>> +	drivers = ['i40e',
>> +	]
>> +endif
> Let's not add an alternative list please.
> I prefer disabling compilation in other drivers.
>
>
>> --- a/lib/librte_eal/common/meson.build
>> +++ b/lib/librte_eal/common/meson.build
>> @@ -33,6 +33,7 @@ if is_windows
>>   		'malloc_heap.c',
>>   		'rte_malloc.c',
>>   		'eal_common_timer.c',
>> +		'rte_random.c',
>>   		'rte_service.c',
>>   	)
>>   	subdir_done()
>> diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
>> index 89166acd7..428201872 100644
>> --- a/lib/librte_eal/rte_eal_exports.def
>> +++ b/lib/librte_eal/rte_eal_exports.def
>> @@ -124,6 +124,7 @@ EXPORTS
>>   	rte_memzone_reserve_bounded
>>   	rte_memzone_walk
>>   	rte_openlog_stream
>> +	rte_rand
>>   	rte_realloc
>>   	rte_rtm_supported
>>   	rte_service_attr_get
>> diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h
>> index b82af34f6..822922c11 100644
>> --- a/lib/librte_eal/windows/include/rte_windows.h
>> +++ b/lib/librte_eal/windows/include/rte_windows.h
>> @@ -18,6 +18,11 @@
>>   #define WIN32_LEAN_AND_MEAN
>>   #endif
>>   
>> +#ifdef __clang__
>> +#undef _m_prefetchw
>> +#define _m_prefetchw __m_prefetchw
>> +#endif
>
> These changes are not specific to i40e, please separate.
Ok, will create a separate patch in v2.
This change is required once we add rte_random.c file on windows.
So, may be addition of rte_random.c file and this change should go together?
Please suggest. Thanks,
>
>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-09  0:21     ` Kadam, Pallavi
@ 2020-12-09  8:59       ` Thomas Monjalon
  2020-12-17 23:17         ` Kadam, Pallavi
  0 siblings, 1 reply; 32+ messages in thread
From: Thomas Monjalon @ 2020-12-09  8:59 UTC (permalink / raw)
  To: Kadam, Pallavi
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo

09/12/2020 01:21, Kadam, Pallavi:
> On 12/6/2020 7:49 AM, Thomas Monjalon wrote:
> > 05/12/2020 02:10, Pallavi Kadam:
> >> --- a/lib/librte_eal/windows/include/rte_windows.h
> >> +++ b/lib/librte_eal/windows/include/rte_windows.h
> >> @@ -18,6 +18,11 @@
> >>   #define WIN32_LEAN_AND_MEAN
> >>   #endif
> >>   
> >> +#ifdef __clang__
> >> +#undef _m_prefetchw
> >> +#define _m_prefetchw __m_prefetchw
> >> +#endif
> >
> > These changes are not specific to i40e, please separate.
> Ok, will create a separate patch in v2.
> This change is required once we add rte_random.c file on windows.
> So, may be addition of rte_random.c file and this change should go together?
> Please suggest. Thanks,

Yes absolutely, addition of random feature should be atomic in a patch.



^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning Pallavi Kadam
  2020-12-05 13:51   ` Dmitry Kozlyuk
@ 2020-12-10  0:53   ` Narcisa Ana Maria Vasile
  2020-12-17 23:15     ` Kadam, Pallavi
  1 sibling, 1 reply; 32+ messages in thread
From: Narcisa Ana Maria Vasile @ 2020-12-10  0:53 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, thomas, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile,
	talshn, ferruh.yigit, beilei.xing, jia.guo

On Fri, Dec 04, 2020 at 05:10:20PM -0800, Pallavi Kadam wrote:
> Warning generated using Clang compiler:
> ..\drivers\net\i40e\base/i40e_osdep.h:34:14: warning: forward references
> to 'enum' types are a Microsoft extension
> [-Wmicrosoft-enum-forward-reference]
> typedef enum i40e_status_code i40e_status;
>              ^
> 
> Adding -Wmicrosoft-enum-forward-reference compiler flag to disable
> the warning on Windows Clang.
> 
> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
> ---

Why not including the "i40e_status.h" header that contains the definition of the enum
in this file?

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH v2 0/2] Support i40e PMD on Windows
  2020-12-05  1:10 [dpdk-dev] [PATCH 0/3] Support i40e PMD on Windows Pallavi Kadam
                   ` (2 preceding siblings ...)
  2020-12-05  1:10 ` [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning Pallavi Kadam
@ 2020-12-17 22:59 ` Pallavi Kadam
  2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows Pallavi Kadam
                     ` (2 more replies)
  3 siblings, 3 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-17 22:59 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, bruce.richardson, beilei.xing, jia.guo,
	pallavi.kadam

This patch-set enables building the Intel i40e PMD on Windows.


Depends-on: series-14296 ("eal/windows: add interrupt functions stub")

v2 changes:
	- Updated commit message (Dmitry Kozlyuk)
	- Replaced x86intrin.h with rte_vect.h (Dmitry Kozlyuk)
	- Disable all drivers that do not support on Windows and enable
          as required (Thomas and Bruce)
	- added #include "i40e_status.h" for enum definition to avoid
	  forward references warning (Naty)


Pallavi Kadam (2):
  eal: add rte_random.c file on windows
  build: i40e PMD on Windows

 drivers/net/af_xdp/meson.build               |  6 ++++++
 drivers/net/ark/meson.build                  |  6 ++++++
 drivers/net/atlantic/meson.build             |  6 ++++++
 drivers/net/bnx2x/meson.build                |  6 ++++++
 drivers/net/bnxt/meson.build                 |  6 ++++++
 drivers/net/bonding/meson.build              |  6 ++++++
 drivers/net/cxgbe/meson.build                |  6 ++++++
 drivers/net/e1000/meson.build                |  6 ++++++
 drivers/net/ena/meson.build                  |  6 ++++++
 drivers/net/enic/meson.build                 |  6 ++++++
 drivers/net/failsafe/meson.build             |  6 ++++++
 drivers/net/fm10k/meson.build                |  6 ++++++
 drivers/net/hinic/meson.build                |  6 ++++++
 drivers/net/i40e/base/i40e_osdep.h           | 10 ++++++++++
 drivers/net/i40e/i40e_ethdev_vf.c            |  3 ++-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c        |  2 +-
 drivers/net/i40e/i40e_tm.c                   |  2 +-
 drivers/net/iavf/meson.build                 |  6 ++++++
 drivers/net/ice/meson.build                  |  6 ++++++
 drivers/net/igc/meson.build                  |  6 ++++++
 drivers/net/ionic/meson.build                |  6 ++++++
 drivers/net/ipn3ke/meson.build               |  6 ++++++
 drivers/net/ixgbe/meson.build                |  6 ++++++
 drivers/net/kni/meson.build                  |  6 ++++++
 drivers/net/liquidio/meson.build             |  6 ++++++
 drivers/net/meson.build                      |  3 ---
 drivers/net/mlx5/windows/meson.build         |  0
 drivers/net/mvneta/meson.build               |  6 ++++++
 drivers/net/mvpp2/meson.build                |  6 ++++++
 drivers/net/netvsc/meson.build               |  6 ++++++
 drivers/net/nfb/meson.build                  |  6 ++++++
 drivers/net/null/meson.build                 |  6 ++++++
 drivers/net/octeontx/meson.build             |  6 ++++++
 drivers/net/octeontx2/meson.build            |  6 ++++++
 drivers/net/pcap/meson.build                 |  6 ++++++
 drivers/net/qede/meson.build                 |  6 ++++++
 drivers/net/ring/meson.build                 |  6 ++++++
 drivers/net/sfc/meson.build                  |  6 ++++++
 drivers/net/szedata2/meson.build             |  6 ++++++
 drivers/net/thunderx/meson.build             |  6 ++++++
 drivers/net/txgbe/meson.build                |  6 ++++++
 drivers/net/vhost/meson.build                |  6 ++++++
 drivers/net/virtio/meson.build               |  6 ++++++
 drivers/net/vmxnet3/meson.build              |  6 ++++++
 lib/librte_eal/common/meson.build            |  1 +
 lib/librte_eal/rte_eal_exports.def           |  1 +
 lib/librte_eal/windows/include/rte_windows.h |  5 +++++
 47 files changed, 249 insertions(+), 6 deletions(-)
 create mode 100644 drivers/net/mlx5/windows/meson.build

-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows
  2020-12-17 22:59 ` [dpdk-dev] [PATCH v2 0/2] Support i40e PMD on Windows Pallavi Kadam
@ 2020-12-17 22:59   ` Pallavi Kadam
  2020-12-18 11:29     ` Thomas Monjalon
  2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 2/2] build: i40e PMD on Windows Pallavi Kadam
  2020-12-22  0:45   ` [dpdk-dev] [PATCH v3 0/2] Support " Pallavi Kadam
  2 siblings, 1 reply; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-17 22:59 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, bruce.richardson, beilei.xing, jia.guo,
	pallavi.kadam

This file is required to compile and build i40e PMD on Windows.
Add rte_rand variable to export file.

Redefine _m_prefetchw for Clang toolchain due to following error
with respect to conflicting types:

FAILED: lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj
clang @lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj.rsp
In file included from ../lib/librte_eal/common/rte_random.c:13:
In file included from ..\lib/librte_eal/include\rte_eal.h:20:
In file included from ..\lib/librte_eal/include\rte_per_lcore.h:25:
In file included from ..\lib/librte_eal/windows/include\pthread.h:21:
In file included from ..\lib/librte_eal/windows/include\rte_windows.h:27:
In file included from C:\Program Files (x86)\Windows Kits\10\include\
10.0.18362.0\um\windows.h:171:
In file included from C:\Program Files (x86)\Windows Kits\10\include\
10.0.18362.0\shared\windef.h:24:
In file included from C:\Program Files (x86)\Windows Kits\10\include\
10.0.18362.0\shared\minwindef.h:182:
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\
winnt.h:3324:1: error: conflicting types for '_m_prefetchw'
_m_prefetchw (
^
C:\Program Files\LLVM\lib\clang\10.0.0\include\prfchwintrin.h:50:1:
note: previous definition is here
_m_prefetchw(void *__P)
^
1 error generated.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 lib/librte_eal/common/meson.build            | 1 +
 lib/librte_eal/rte_eal_exports.def           | 1 +
 lib/librte_eal/windows/include/rte_windows.h | 5 +++++
 3 files changed, 7 insertions(+)

diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index 39abf7a0a..98e8fffd4 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -33,6 +33,7 @@ if is_windows
 		'malloc_heap.c',
 		'rte_malloc.c',
 		'eal_common_timer.c',
+		'rte_random.c',
 		'rte_service.c',
 	)
 	subdir_done()
diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
index 6a6be1cfa..a2ad4d633 100644
--- a/lib/librte_eal/rte_eal_exports.def
+++ b/lib/librte_eal/rte_eal_exports.def
@@ -114,6 +114,7 @@ EXPORTS
 	rte_memzone_reserve_bounded
 	rte_memzone_walk
 	rte_openlog_stream
+	rte_rand
 	rte_realloc
 	rte_rtm_supported
 	rte_service_attr_get
diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h
index b82af34f6..ee065204d 100644
--- a/lib/librte_eal/windows/include/rte_windows.h
+++ b/lib/librte_eal/windows/include/rte_windows.h
@@ -18,6 +18,11 @@
 #define WIN32_LEAN_AND_MEAN
 #endif
 
+#ifdef RTE_TOOLCHAIN_CLANG
+#undef _m_prefetchw
+#define _m_prefetchw __m_prefetchw
+#endif
+
 /* Must come first. */
 #include <windows.h>
 
-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH v2 2/2] build: i40e PMD on Windows
  2020-12-17 22:59 ` [dpdk-dev] [PATCH v2 0/2] Support i40e PMD on Windows Pallavi Kadam
  2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows Pallavi Kadam
@ 2020-12-17 22:59   ` Pallavi Kadam
  2020-12-18 11:27     ` Thomas Monjalon
  2020-12-22  0:45   ` [dpdk-dev] [PATCH v3 0/2] Support " Pallavi Kadam
  2 siblings, 1 reply; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-17 22:59 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, bruce.richardson, beilei.xing, jia.guo,
	pallavi.kadam

Allows i40e PMD to compile on Windows and disable other drivers.
Disable few warnings with Clang such as comparison of integers of
different signs and macro redefinitions.

Adds temp folder mlx5/windows as it is required to build this patch
without any build error. This folder will be removed once mlx5 PMD
patches are merged.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 drivers/net/af_xdp/meson.build        |  6 ++++++
 drivers/net/ark/meson.build           |  6 ++++++
 drivers/net/atlantic/meson.build      |  6 ++++++
 drivers/net/bnx2x/meson.build         |  6 ++++++
 drivers/net/bnxt/meson.build          |  6 ++++++
 drivers/net/bonding/meson.build       |  6 ++++++
 drivers/net/cxgbe/meson.build         |  6 ++++++
 drivers/net/e1000/meson.build         |  6 ++++++
 drivers/net/ena/meson.build           |  6 ++++++
 drivers/net/enic/meson.build          |  6 ++++++
 drivers/net/failsafe/meson.build      |  6 ++++++
 drivers/net/fm10k/meson.build         |  6 ++++++
 drivers/net/hinic/meson.build         |  6 ++++++
 drivers/net/i40e/base/i40e_osdep.h    | 10 ++++++++++
 drivers/net/i40e/i40e_ethdev_vf.c     |  3 ++-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c |  2 +-
 drivers/net/i40e/i40e_tm.c            |  2 +-
 drivers/net/iavf/meson.build          |  6 ++++++
 drivers/net/ice/meson.build           |  6 ++++++
 drivers/net/igc/meson.build           |  6 ++++++
 drivers/net/ionic/meson.build         |  6 ++++++
 drivers/net/ipn3ke/meson.build        |  6 ++++++
 drivers/net/ixgbe/meson.build         |  6 ++++++
 drivers/net/kni/meson.build           |  6 ++++++
 drivers/net/liquidio/meson.build      |  6 ++++++
 drivers/net/meson.build               |  3 ---
 drivers/net/mlx5/windows/meson.build  |  0
 drivers/net/mvneta/meson.build        |  6 ++++++
 drivers/net/mvpp2/meson.build         |  6 ++++++
 drivers/net/netvsc/meson.build        |  6 ++++++
 drivers/net/nfb/meson.build           |  6 ++++++
 drivers/net/null/meson.build          |  6 ++++++
 drivers/net/octeontx/meson.build      |  6 ++++++
 drivers/net/octeontx2/meson.build     |  6 ++++++
 drivers/net/pcap/meson.build          |  6 ++++++
 drivers/net/qede/meson.build          |  6 ++++++
 drivers/net/ring/meson.build          |  6 ++++++
 drivers/net/sfc/meson.build           |  6 ++++++
 drivers/net/szedata2/meson.build      |  6 ++++++
 drivers/net/thunderx/meson.build      |  6 ++++++
 drivers/net/txgbe/meson.build         |  6 ++++++
 drivers/net/vhost/meson.build         |  6 ++++++
 drivers/net/virtio/meson.build        |  6 ++++++
 drivers/net/vmxnet3/meson.build       |  6 ++++++
 44 files changed, 242 insertions(+), 6 deletions(-)
 create mode 100644 drivers/net/mlx5/windows/meson.build

diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
index fead8dd99..5c50d3f41 100644
--- a/drivers/net/af_xdp/meson.build
+++ b/drivers/net/af_xdp/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('rte_eth_af_xdp.c')
 
 bpf_dep = dependency('libbpf', required: false)
diff --git a/drivers/net/ark/meson.build b/drivers/net/ark/meson.build
index 80bce94e1..cbc7d6166 100644
--- a/drivers/net/ark/meson.build
+++ b/drivers/net/ark/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 headers = files('rte_pmd_ark.h')
 
 sources = files('ark_ddm.c',
diff --git a/drivers/net/atlantic/meson.build b/drivers/net/atlantic/meson.build
index 60b84684e..a386dd2ec 100644
--- a/drivers/net/atlantic/meson.build
+++ b/drivers/net/atlantic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Aquantia Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files(
 	'atl_rxtx.c',
 	'atl_ethdev.c',
diff --git a/drivers/net/bnx2x/meson.build b/drivers/net/bnx2x/meson.build
index 4892bb234..4e9ea6995 100644
--- a/drivers/net/bnx2x/meson.build
+++ b/drivers/net/bnx2x/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 dep = dependency('zlib', required: false)
 build = dep.found()
 reason = 'missing dependency, "zlib"'
diff --git a/drivers/net/bnxt/meson.build b/drivers/net/bnxt/meson.build
index 2896337b5..24e594e19 100644
--- a/drivers/net/bnxt/meson.build
+++ b/drivers/net/bnxt/meson.build
@@ -2,6 +2,12 @@
 # Copyright(c) 2018 Intel Corporation
 # Copyright(c) 2020 Broadcom
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 headers = files('rte_pmd_bnxt.h')
 
 includes += include_directories('tf_ulp')
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index adf64626e..3ff155bcb 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 name = 'bond' #, james bond :-)
 sources = files('rte_eth_bond_api.c', 'rte_eth_bond_pmd.c', 'rte_eth_bond_flow.c',
 	'rte_eth_bond_args.c', 'rte_eth_bond_8023ad.c', 'rte_eth_bond_alb.c')
diff --git a/drivers/net/cxgbe/meson.build b/drivers/net/cxgbe/meson.build
index 3992aba44..52b59d1bd 100644
--- a/drivers/net/cxgbe/meson.build
+++ b/drivers/net/cxgbe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('cxgbe_ethdev.c',
 	'cxgbe_main.c',
 	'cxgbevf_ethdev.c',
diff --git a/drivers/net/e1000/meson.build b/drivers/net/e1000/meson.build
index cf456995c..a517f86fc 100644
--- a/drivers/net/e1000/meson.build
+++ b/drivers/net/e1000/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ena/meson.build b/drivers/net/ena/meson.build
index 189903b90..150f10c33 100644
--- a/drivers/net/ena/meson.build
+++ b/drivers/net/ena/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('ena_ethdev.c',
 	'base/ena_com.c',
 	'base/ena_eth_com.c')
diff --git a/drivers/net/enic/meson.build b/drivers/net/enic/meson.build
index 86ef2a8a2..345000e5d 100644
--- a/drivers/net/enic/meson.build
+++ b/drivers/net/enic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Cisco Systems, Inc.
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files(
 	'base/vnic_cq.c',
 	'base/vnic_dev.c',
diff --git a/drivers/net/failsafe/meson.build b/drivers/net/failsafe/meson.build
index 56010e212..4e9d15bec 100644
--- a/drivers/net/failsafe/meson.build
+++ b/drivers/net/failsafe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 cflags += '-std=gnu99'
 cflags += '-D_DEFAULT_SOURCE'
 cflags += '-D_XOPEN_SOURCE=700'
diff --git a/drivers/net/fm10k/meson.build b/drivers/net/fm10k/meson.build
index 2772ea4df..336b100cc 100644
--- a/drivers/net/fm10k/meson.build
+++ b/drivers/net/fm10k/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/hinic/meson.build b/drivers/net/hinic/meson.build
index bc7e24639..0298c0769 100644
--- a/drivers/net/hinic/meson.build
+++ b/drivers/net/hinic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Huawei Technologies Co., Ltd
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h
index 9b5033024..5085d6510 100644
--- a/drivers/net/i40e/base/i40e_osdep.h
+++ b/drivers/net/i40e/base/i40e_osdep.h
@@ -20,6 +20,7 @@
 #include <rte_io.h>
 
 #include "../i40e_logs.h"
+#include "i40e_status.h"
 
 #define INLINE inline
 #define STATIC static
@@ -67,6 +68,15 @@ typedef enum i40e_status_code i40e_status;
 #define false           0
 #define true            1
 
+/* Avoid macro redefinition warning on Windows */
+#ifdef RTE_EXEC_ENV_WINDOWS
+#ifdef min
+#undef min
+#endif
+#ifdef max
+#undef max
+#endif
+#endif
 #define min(a,b) RTE_MIN(a,b)
 #define max(a,b) RTE_MAX(a,b)
 
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index c26b036b8..daf4a3f99 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1495,7 +1495,8 @@ i40evf_handle_aq_msg(struct rte_eth_dev *dev)
 						       info.msg_len);
 			else {
 				/* read message and it's expected one */
-				if (msg_opc == vf->pend_cmd) {
+				if ((volatile uint32_t)msg_opc ==
+				    vf->pend_cmd) {
 					vf->cmd_retval = msg_ret;
 					/* prevent compiler reordering */
 					rte_compiler_barrier();
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
index 7a558fc73..e5f0e90cb 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
@@ -12,7 +12,7 @@
 #include "i40e_rxtx.h"
 #include "i40e_rxtx_vec_common.h"
 
-#include <x86intrin.h>
+#include <rte_vect.h>
 
 #ifndef __INTEL_COMPILER
 #pragma GCC diagnostic ignored "-Wcast-qual"
diff --git a/drivers/net/i40e/i40e_tm.c b/drivers/net/i40e/i40e_tm.c
index 5d722f92c..cab296e1a 100644
--- a/drivers/net/i40e/i40e_tm.c
+++ b/drivers/net/i40e/i40e_tm.c
@@ -554,7 +554,7 @@ i40e_node_add(struct rte_eth_dev *dev, uint32_t node_id,
 	}
 	/* check level */
 	if (level_id != RTE_TM_NODE_LEVEL_ID_ANY &&
-	    level_id != parent_node_type + 1) {
+	    level_id != (uint32_t)parent_node_type + 1) {
 		error->type = RTE_TM_ERROR_TYPE_NODE_PARAMS;
 		error->message = "Wrong level";
 		return -EINVAL;
diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
index 26c02c440..a7b4a7adb 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 cflags += ['-Wno-strict-aliasing']
 
 includes += include_directories('../../common/iavf')
diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index 7b291269d..9866b78c6 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/igc/meson.build b/drivers/net/igc/meson.build
index fba119c98..90c05ef81 100644
--- a/drivers/net/igc/meson.build
+++ b/drivers/net/igc/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019-2020 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ionic/meson.build b/drivers/net/ionic/meson.build
index 1c6362d27..99aaae3e9 100644
--- a/drivers/net/ionic/meson.build
+++ b/drivers/net/ionic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
 # Copyright(c) 2019 Pensando
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files(
 	'ionic_mac_api.c',
 	'ionic_rx_filter.c',
diff --git a/drivers/net/ipn3ke/meson.build b/drivers/net/ipn3ke/meson.build
index d5000d807..c2d6fd238 100644
--- a/drivers/net/ipn3ke/meson.build
+++ b/drivers/net/ipn3ke/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 #
 # Add the experimenatal APIs called from this PMD
 #  rte_eth_switch_domain_alloc()
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index f10437891..0b7d0257b 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
 
 subdir('base')
diff --git a/drivers/net/kni/meson.build b/drivers/net/kni/meson.build
index d9fa898d1..337508c28 100644
--- a/drivers/net/kni/meson.build
+++ b/drivers/net/kni/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 # this driver can be built if-and-only-if KNI library is buildable
 build = dpdk_conf.has('RTE_LIB_KNI')
 reason = 'missing dependency, DPDK KNI library'
diff --git a/drivers/net/liquidio/meson.build b/drivers/net/liquidio/meson.build
index 9ae48e213..12834e4b0 100644
--- a/drivers/net/liquidio/meson.build
+++ b/drivers/net/liquidio/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('base/lio_23xx_vf.c',
 	'base/lio_mbox.c',
 	'lio_ethdev.c',
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 29f477750..b489088f1 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -1,9 +1,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-if is_windows
-	subdir_done()
-endif
 
 drivers = ['af_packet',
 	'af_xdp',
diff --git a/drivers/net/mlx5/windows/meson.build b/drivers/net/mlx5/windows/meson.build
new file mode 100644
index 000000000..e69de29bb
diff --git a/drivers/net/mvneta/meson.build b/drivers/net/mvneta/meson.build
index 8d7202788..7ef71b243 100644
--- a/drivers/net/mvneta/meson.build
+++ b/drivers/net/mvneta/meson.build
@@ -3,6 +3,12 @@
 # Copyright(c) 2018 Semihalf.
 # All rights reserved.
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 path = get_option('lib_musdk_dir')
 lib_dir = path + '/lib'
 inc_dir = path + '/include'
diff --git a/drivers/net/mvpp2/meson.build b/drivers/net/mvpp2/meson.build
index e06eddaac..fff909877 100644
--- a/drivers/net/mvpp2/meson.build
+++ b/drivers/net/mvpp2/meson.build
@@ -3,6 +3,12 @@
 # Copyright(c) 2018 Semihalf.
 # All rights reserved.
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 path = get_option('lib_musdk_dir')
 lib_dir = path + '/lib'
 inc_dir = path + '/include'
diff --git a/drivers/net/netvsc/meson.build b/drivers/net/netvsc/meson.build
index f3f52f732..6c0f86991 100644
--- a/drivers/net/netvsc/meson.build
+++ b/drivers/net/netvsc/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Microsoft Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 build = dpdk_conf.has('RTE_BUS_VMBUS')
 reason = 'missing dependency, DPDK VMBus driver'
 sources = files('hn_ethdev.c', 'hn_rxtx.c', 'hn_rndis.c', 'hn_nvs.c', 'hn_vf.c')
diff --git a/drivers/net/nfb/meson.build b/drivers/net/nfb/meson.build
index d53e8eca7..7bcc4e08f 100644
--- a/drivers/net/nfb/meson.build
+++ b/drivers/net/nfb/meson.build
@@ -3,6 +3,12 @@
 # Copyright(c) 2019 Netcope Technologies, a.s. <info@netcope.com>
 # All rights reserved.
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 dep = dependency('netcope-common', required: false)
 reason = 'missing dependency, "libnfb"'
 build = dep.found()
diff --git a/drivers/net/null/meson.build b/drivers/net/null/meson.build
index 68ac0d2ae..69edb9e24 100644
--- a/drivers/net/null/meson.build
+++ b/drivers/net/null/meson.build
@@ -1,4 +1,10 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('rte_eth_null.c')
diff --git a/drivers/net/octeontx/meson.build b/drivers/net/octeontx/meson.build
index e8d3ff4a3..cc93f5d4f 100644
--- a/drivers/net/octeontx/meson.build
+++ b/drivers/net/octeontx/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/octeontx2/meson.build b/drivers/net/octeontx2/meson.build
index 638c04a2f..bf15e52b4 100644
--- a/drivers/net/octeontx2/meson.build
+++ b/drivers/net/octeontx2/meson.build
@@ -2,6 +2,12 @@
 # Copyright(C) 2019 Marvell International Ltd.
 #
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 if not dpdk_conf.get('RTE_ARCH_64')
 	build = false
 	reason = 'only supported on 64-bit'
diff --git a/drivers/net/pcap/meson.build b/drivers/net/pcap/meson.build
index b680710aa..31dae19f5 100644
--- a/drivers/net/pcap/meson.build
+++ b/drivers/net/pcap/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 if not dpdk_conf.has('RTE_PORT_PCAP')
 	build = false
 	reason = 'missing dependency, "libpcap"'
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
index ff0ac0b03..f6b093319 100644
--- a/drivers/net/qede/meson.build
+++ b/drivers/net/qede/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ring/meson.build b/drivers/net/ring/meson.build
index 26a324eeb..2ceea4a9c 100644
--- a/drivers/net/ring/meson.build
+++ b/drivers/net/ring/meson.build
@@ -1,5 +1,11 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('rte_eth_ring.c')
 headers = files('rte_eth_ring.h')
diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
index be888bd87..b10c2ef52 100644
--- a/drivers/net/sfc/meson.build
+++ b/drivers/net/sfc/meson.build
@@ -6,6 +6,12 @@
 # This software was jointly developed between OKTET Labs (under contract
 # for Solarflare) and Solarflare Communications, Inc.
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 if (arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')) and (arch_subdir != 'arm' or not host_machine.cpu_family().startswith('aarch64'))
 	build = false
 	reason = 'only supported on x86_64 and aarch64'
diff --git a/drivers/net/szedata2/meson.build b/drivers/net/szedata2/meson.build
index b53fcbc59..a846b2770 100644
--- a/drivers/net/szedata2/meson.build
+++ b/drivers/net/szedata2/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 dep = dependency('libsze2', required: false)
 build = dep.found()
 reason = 'missing dependency, "libsze2"'
diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
index 69819a97f..a9a326b06 100644
--- a/drivers/net/thunderx/meson.build
+++ b/drivers/net/thunderx/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/txgbe/meson.build b/drivers/net/txgbe/meson.build
index 345dffaf6..2e79e72dc 100644
--- a/drivers/net/txgbe/meson.build
+++ b/drivers/net/txgbe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2015-2020
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/vhost/meson.build b/drivers/net/vhost/meson.build
index 1ae4854b8..a8fd3325a 100644
--- a/drivers/net/vhost/meson.build
+++ b/drivers/net/vhost/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 build = dpdk_conf.has('RTE_LIB_VHOST')
 reason = 'missing dependency, DPDK vhost library'
 sources = files('rte_eth_vhost.c')
diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build
index eaed46373..c812d085e 100644
--- a/drivers/net/virtio/meson.build
+++ b/drivers/net/virtio/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources += files('virtio_ethdev.c',
 	'virtio_pci.c',
 	'virtio_rxtx.c',
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
index 0641f776f..b817bbb29 100644
--- a/drivers/net/vmxnet3/meson.build
+++ b/drivers/net/vmxnet3/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+if is_windows
+	build = false
+	reason = 'Not supported on Windows'
+	subdir_done()
+endif
+
 sources += files(
 	'vmxnet3_ethdev.c',
 	'vmxnet3_rxtx.c',
-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning
  2020-12-10  0:53   ` Narcisa Ana Maria Vasile
@ 2020-12-17 23:15     ` Kadam, Pallavi
  0 siblings, 0 replies; 32+ messages in thread
From: Kadam, Pallavi @ 2020-12-17 23:15 UTC (permalink / raw)
  To: Narcisa Ana Maria Vasile
  Cc: dev, thomas, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile,
	talshn, ferruh.yigit, beilei.xing, jia.guo


On 12/9/2020 4:53 PM, Narcisa Ana Maria Vasile wrote:
> On Fri, Dec 04, 2020 at 05:10:20PM -0800, Pallavi Kadam wrote:
>> Warning generated using Clang compiler:
>> ..\drivers\net\i40e\base/i40e_osdep.h:34:14: warning: forward references
>> to 'enum' types are a Microsoft extension
>> [-Wmicrosoft-enum-forward-reference]
>> typedef enum i40e_status_code i40e_status;
>>               ^
>>
>> Adding -Wmicrosoft-enum-forward-reference compiler flag to disable
>> the warning on Windows Clang.
>>
>> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
>> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
>> ---
> Why not including the "i40e_status.h" header that contains the definition of the enum
> in this file?
Thanks, Naty. Added this header file in v2.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows
  2020-12-09  8:59       ` Thomas Monjalon
@ 2020-12-17 23:17         ` Kadam, Pallavi
  0 siblings, 0 replies; 32+ messages in thread
From: Kadam, Pallavi @ 2020-12-17 23:17 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, beilei.xing, jia.guo


On 12/9/2020 12:59 AM, Thomas Monjalon wrote:
> 09/12/2020 01:21, Kadam, Pallavi:
>> On 12/6/2020 7:49 AM, Thomas Monjalon wrote:
>>> 05/12/2020 02:10, Pallavi Kadam:
>>>> --- a/lib/librte_eal/windows/include/rte_windows.h
>>>> +++ b/lib/librte_eal/windows/include/rte_windows.h
>>>> @@ -18,6 +18,11 @@
>>>>    #define WIN32_LEAN_AND_MEAN
>>>>    #endif
>>>>    
>>>> +#ifdef __clang__
>>>> +#undef _m_prefetchw
>>>> +#define _m_prefetchw __m_prefetchw
>>>> +#endif
>>> These changes are not specific to i40e, please separate.
>> Ok, will create a separate patch in v2.
>> This change is required once we add rte_random.c file on windows.
>> So, may be addition of rte_random.c file and this change should go together?
>> Please suggest. Thanks,
> Yes absolutely, addition of random feature should be atomic in a patch.
Ok. Created a separate patch in v2. Thanks!
>
>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/2] build: i40e PMD on Windows
  2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 2/2] build: i40e PMD on Windows Pallavi Kadam
@ 2020-12-18 11:27     ` Thomas Monjalon
  2020-12-18 18:42       ` Kadam, Pallavi
  0 siblings, 1 reply; 32+ messages in thread
From: Thomas Monjalon @ 2020-12-18 11:27 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, bruce.richardson, beilei.xing, jia.guo

17/12/2020 23:59, Pallavi Kadam:
> Adds temp folder mlx5/windows as it is required to build this patch
> without any build error. This folder will be removed once mlx5 PMD
> patches are merged.

Why is it required?

> +if is_windows
> +	build = false
> +	reason = 'Not supported on Windows'
> +	subdir_done()
> +endif

As you can see in other files, the reason starts always with a lowercase letter.
Please replace the first capital letter.



^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows
  2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows Pallavi Kadam
@ 2020-12-18 11:29     ` Thomas Monjalon
  2020-12-18 18:49       ` Kadam, Pallavi
  0 siblings, 1 reply; 32+ messages in thread
From: Thomas Monjalon @ 2020-12-18 11:29 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, bruce.richardson, beilei.xing, jia.guo

17/12/2020 23:59, Pallavi Kadam:
> This file is required to compile and build i40e PMD on Windows.
> Add rte_rand variable to export file.
> 
> Redefine _m_prefetchw for Clang toolchain due to following error
> with respect to conflicting types:
> 
> FAILED: lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj
> clang @lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj.rsp
> In file included from ../lib/librte_eal/common/rte_random.c:13:
> In file included from ..\lib/librte_eal/include\rte_eal.h:20:
> In file included from ..\lib/librte_eal/include\rte_per_lcore.h:25:
> In file included from ..\lib/librte_eal/windows/include\pthread.h:21:
> In file included from ..\lib/librte_eal/windows/include\rte_windows.h:27:
> In file included from C:\Program Files (x86)\Windows Kits\10\include\
> 10.0.18362.0\um\windows.h:171:
> In file included from C:\Program Files (x86)\Windows Kits\10\include\
> 10.0.18362.0\shared\windef.h:24:
> In file included from C:\Program Files (x86)\Windows Kits\10\include\
> 10.0.18362.0\shared\minwindef.h:182:
> C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\
> winnt.h:3324:1: error: conflicting types for '_m_prefetchw'
> _m_prefetchw (
> ^
> C:\Program Files\LLVM\lib\clang\10.0.0\include\prfchwintrin.h:50:1:
> note: previous definition is here
> _m_prefetchw(void *__P)
> ^
> 1 error generated.
> 
> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
> ---
> +#ifdef RTE_TOOLCHAIN_CLANG
> +#undef _m_prefetchw
> +#define _m_prefetchw __m_prefetchw
> +#endif

It deserves a comment explaining why __m_prefetchw is required.




^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/2] build: i40e PMD on Windows
  2020-12-18 11:27     ` Thomas Monjalon
@ 2020-12-18 18:42       ` Kadam, Pallavi
  0 siblings, 0 replies; 32+ messages in thread
From: Kadam, Pallavi @ 2020-12-18 18:42 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, bruce.richardson, beilei.xing, jia.guo

Hi Thomas,

On 12/18/2020 3:27 AM, Thomas Monjalon wrote:
> 17/12/2020 23:59, Pallavi Kadam:
>> Adds temp folder mlx5/windows as it is required to build this patch
>> without any build error. This folder will be removed once mlx5 PMD
>> patches are merged.
> Why is it required?

The patch [1] already supports Windows build for mlx5 PMD.

However, there is no Windows folder in the current main branch
and this gives following error when building with meson
after entire "net" dir is enabled:

drivers\net\mlx5\meson.build:56:0:
ERROR: Non-existent build file 'drivers\\net/mlx5\\windows\\meson.build'

  

[1]http://patches.dpdk.org/patch/70839/  <http://patches.dpdk.org/patch/70839/>

>
>> +if is_windows
>> +	build = false
>> +	reason = 'Not supported on Windows'
>> +	subdir_done()
>> +endif
> As you can see in other files, the reason starts always with a lowercase letter.
> Please replace the first capital letter.

Ok. I'll replace first capital letter in v3. Thanks!

>
>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows
  2020-12-18 11:29     ` Thomas Monjalon
@ 2020-12-18 18:49       ` Kadam, Pallavi
  0 siblings, 0 replies; 32+ messages in thread
From: Kadam, Pallavi @ 2020-12-18 18:49 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, talshn,
	ferruh.yigit, bruce.richardson, beilei.xing, jia.guo


On 12/18/2020 3:29 AM, Thomas Monjalon wrote:
> 17/12/2020 23:59, Pallavi Kadam:
>> This file is required to compile and build i40e PMD on Windows.
>> Add rte_rand variable to export file.
>>
>> Redefine _m_prefetchw for Clang toolchain due to following error
>> with respect to conflicting types:
>>
>> FAILED: lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj
>> clang @lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj.rsp
>> In file included from ../lib/librte_eal/common/rte_random.c:13:
>> In file included from ..\lib/librte_eal/include\rte_eal.h:20:
>> In file included from ..\lib/librte_eal/include\rte_per_lcore.h:25:
>> In file included from ..\lib/librte_eal/windows/include\pthread.h:21:
>> In file included from ..\lib/librte_eal/windows/include\rte_windows.h:27:
>> In file included from C:\Program Files (x86)\Windows Kits\10\include\
>> 10.0.18362.0\um\windows.h:171:
>> In file included from C:\Program Files (x86)\Windows Kits\10\include\
>> 10.0.18362.0\shared\windef.h:24:
>> In file included from C:\Program Files (x86)\Windows Kits\10\include\
>> 10.0.18362.0\shared\minwindef.h:182:
>> C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\
>> winnt.h:3324:1: error: conflicting types for '_m_prefetchw'
>> _m_prefetchw (
>> ^
>> C:\Program Files\LLVM\lib\clang\10.0.0\include\prfchwintrin.h:50:1:
>> note: previous definition is here
>> _m_prefetchw(void *__P)
>> ^
>> 1 error generated.
>>
>> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
>> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
>> ---
>> +#ifdef RTE_TOOLCHAIN_CLANG
>> +#undef _m_prefetchw
>> +#define _m_prefetchw __m_prefetchw
>> +#endif
> It deserves a comment explaining why __m_prefetchw is required.
Will add a comment in v3. Thanks!
>
>
>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH v3 0/2] Support i40e PMD on Windows
  2020-12-17 22:59 ` [dpdk-dev] [PATCH v2 0/2] Support i40e PMD on Windows Pallavi Kadam
  2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows Pallavi Kadam
  2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 2/2] build: i40e PMD on Windows Pallavi Kadam
@ 2020-12-22  0:45   ` Pallavi Kadam
  2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 1/2] eal: add rte_random.c file on windows Pallavi Kadam
                       ` (2 more replies)
  2 siblings, 3 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-22  0:45 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, bruce.richardson, ferruh.yigit,
	beilei.xing, jia.guo, Narcisa.Vasile, talshn, pallavi.kadam

This patch-set enables building the Intel i40e PMD on Windows.


Depends-on: series-14296 ("eal/windows: add interrupt functions stub")

v3 changes:
	- Added a comment for __m_prefetchw (Thomas)
	- Replaced the letter from the reason to lowercase (Thomas)

v2 changes:
	- Updated commit message (Dmitry Kozlyuk)
	- Replaced x86intrin.h with rte_vect.h (Dmitry Kozlyuk)
	- Disable all drivers that do not support on Windows and enable
          as required (Thomas and Bruce)
	- added #include "i40e_status.h" for enum definition to avoid
	  forward references warning (Naty)

Pallavi Kadam (2):
  eal: add rte_random.c file on windows
  build: i40e PMD on Windows

 drivers/net/af_xdp/meson.build               |  6 ++++++
 drivers/net/ark/meson.build                  |  6 ++++++
 drivers/net/atlantic/meson.build             |  6 ++++++
 drivers/net/bnx2x/meson.build                |  6 ++++++
 drivers/net/bnxt/meson.build                 |  6 ++++++
 drivers/net/bonding/meson.build              |  6 ++++++
 drivers/net/cxgbe/meson.build                |  6 ++++++
 drivers/net/e1000/meson.build                |  6 ++++++
 drivers/net/ena/meson.build                  |  6 ++++++
 drivers/net/enic/meson.build                 |  6 ++++++
 drivers/net/failsafe/meson.build             |  6 ++++++
 drivers/net/fm10k/meson.build                |  6 ++++++
 drivers/net/hinic/meson.build                |  6 ++++++
 drivers/net/i40e/base/i40e_osdep.h           | 10 ++++++++++
 drivers/net/i40e/i40e_ethdev_vf.c            |  3 ++-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c        |  2 +-
 drivers/net/i40e/i40e_tm.c                   |  2 +-
 drivers/net/iavf/meson.build                 |  6 ++++++
 drivers/net/ice/meson.build                  |  6 ++++++
 drivers/net/igc/meson.build                  |  6 ++++++
 drivers/net/ionic/meson.build                |  6 ++++++
 drivers/net/ipn3ke/meson.build               |  6 ++++++
 drivers/net/ixgbe/meson.build                |  6 ++++++
 drivers/net/kni/meson.build                  |  6 ++++++
 drivers/net/liquidio/meson.build             |  6 ++++++
 drivers/net/meson.build                      |  3 ---
 drivers/net/mlx5/windows/meson.build         |  0
 drivers/net/mvneta/meson.build               |  6 ++++++
 drivers/net/mvpp2/meson.build                |  6 ++++++
 drivers/net/netvsc/meson.build               |  6 ++++++
 drivers/net/nfb/meson.build                  |  6 ++++++
 drivers/net/null/meson.build                 |  6 ++++++
 drivers/net/octeontx/meson.build             |  6 ++++++
 drivers/net/octeontx2/meson.build            |  6 ++++++
 drivers/net/pcap/meson.build                 |  6 ++++++
 drivers/net/qede/meson.build                 |  6 ++++++
 drivers/net/ring/meson.build                 |  6 ++++++
 drivers/net/sfc/meson.build                  |  6 ++++++
 drivers/net/szedata2/meson.build             |  6 ++++++
 drivers/net/thunderx/meson.build             |  6 ++++++
 drivers/net/txgbe/meson.build                |  6 ++++++
 drivers/net/vhost/meson.build                |  6 ++++++
 drivers/net/virtio/meson.build               |  6 ++++++
 drivers/net/vmxnet3/meson.build              |  6 ++++++
 lib/librte_eal/common/meson.build            |  1 +
 lib/librte_eal/rte_eal_exports.def           |  1 +
 lib/librte_eal/windows/include/rte_windows.h |  6 ++++++
 47 files changed, 250 insertions(+), 6 deletions(-)
 create mode 100644 drivers/net/mlx5/windows/meson.build

-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH v3 1/2] eal: add rte_random.c file on windows
  2020-12-22  0:45   ` [dpdk-dev] [PATCH v3 0/2] Support " Pallavi Kadam
@ 2020-12-22  0:45     ` Pallavi Kadam
  2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows Pallavi Kadam
  2021-01-14 22:55     ` [dpdk-dev] [PATCH v3 0/2] Support " Thomas Monjalon
  2 siblings, 0 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-22  0:45 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, bruce.richardson, ferruh.yigit,
	beilei.xing, jia.guo, Narcisa.Vasile, talshn, pallavi.kadam

This file is required to compile and build i40e PMD on Windows.
Add rte_rand variable to export file.

Redefine _m_prefetchw for Clang toolchain due to following error
with respect to conflicting types:

FAILED: lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj
clang @lib/76b5a35@@rte_eal@sta/librte_eal_common_rte_random.c.obj.rsp
In file included from ../lib/librte_eal/common/rte_random.c:13:
In file included from ..\lib/librte_eal/include\rte_eal.h:20:
In file included from ..\lib/librte_eal/include\rte_per_lcore.h:25:
In file included from ..\lib/librte_eal/windows/include\pthread.h:21:
In file included from ..\lib/librte_eal/windows/include\rte_windows.h:27:
In file included from C:\Program Files (x86)\Windows Kits\10\include\
10.0.18362.0\um\windows.h:171:
In file included from C:\Program Files (x86)\Windows Kits\10\include\
10.0.18362.0\shared\windef.h:24:
In file included from C:\Program Files (x86)\Windows Kits\10\include\
10.0.18362.0\shared\minwindef.h:182:
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\
winnt.h:3324:1: error: conflicting types for '_m_prefetchw'
_m_prefetchw (
^
C:\Program Files\LLVM\lib\clang\10.0.0\include\prfchwintrin.h:50:1:
note: previous definition is here
_m_prefetchw(void *__P)
^
1 error generated.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 lib/librte_eal/common/meson.build            | 1 +
 lib/librte_eal/rte_eal_exports.def           | 1 +
 lib/librte_eal/windows/include/rte_windows.h | 6 ++++++
 3 files changed, 8 insertions(+)

diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index 39abf7a0a..98e8fffd4 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -33,6 +33,7 @@ if is_windows
 		'malloc_heap.c',
 		'rte_malloc.c',
 		'eal_common_timer.c',
+		'rte_random.c',
 		'rte_service.c',
 	)
 	subdir_done()
diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
index 6a6be1cfa..a2ad4d633 100644
--- a/lib/librte_eal/rte_eal_exports.def
+++ b/lib/librte_eal/rte_eal_exports.def
@@ -114,6 +114,7 @@ EXPORTS
 	rte_memzone_reserve_bounded
 	rte_memzone_walk
 	rte_openlog_stream
+	rte_rand
 	rte_realloc
 	rte_rtm_supported
 	rte_service_attr_get
diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h
index b82af34f6..0063b5d78 100644
--- a/lib/librte_eal/windows/include/rte_windows.h
+++ b/lib/librte_eal/windows/include/rte_windows.h
@@ -18,6 +18,12 @@
 #define WIN32_LEAN_AND_MEAN
 #endif
 
+/* Override Windows SDK definition of _m_prefetchw to avoid conflicting types */
+#ifdef RTE_TOOLCHAIN_CLANG
+#undef _m_prefetchw
+#define _m_prefetchw __m_prefetchw
+#endif
+
 /* Must come first. */
 #include <windows.h>
 
-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows
  2020-12-22  0:45   ` [dpdk-dev] [PATCH v3 0/2] Support " Pallavi Kadam
  2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 1/2] eal: add rte_random.c file on windows Pallavi Kadam
@ 2020-12-22  0:45     ` Pallavi Kadam
  2021-01-08 22:58       ` Jie Zhou
  2021-01-13 22:52       ` Thomas Monjalon
  2021-01-14 22:55     ` [dpdk-dev] [PATCH v3 0/2] Support " Thomas Monjalon
  2 siblings, 2 replies; 32+ messages in thread
From: Pallavi Kadam @ 2020-12-22  0:45 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, dmitry.kozliuk, bruce.richardson, ferruh.yigit,
	beilei.xing, jia.guo, Narcisa.Vasile, talshn, pallavi.kadam

Allows i40e PMD to compile on Windows and disable other drivers.
Disable few warnings with Clang such as comparison of integers of
different signs and macro redefinitions.

Adds temp folder mlx5/windows as it is required to build this patch
without any build error. This folder will be removed once mlx5 PMD
patches are merged.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 drivers/net/af_xdp/meson.build        |  6 ++++++
 drivers/net/ark/meson.build           |  6 ++++++
 drivers/net/atlantic/meson.build      |  6 ++++++
 drivers/net/bnx2x/meson.build         |  6 ++++++
 drivers/net/bnxt/meson.build          |  6 ++++++
 drivers/net/bonding/meson.build       |  6 ++++++
 drivers/net/cxgbe/meson.build         |  6 ++++++
 drivers/net/e1000/meson.build         |  6 ++++++
 drivers/net/ena/meson.build           |  6 ++++++
 drivers/net/enic/meson.build          |  6 ++++++
 drivers/net/failsafe/meson.build      |  6 ++++++
 drivers/net/fm10k/meson.build         |  6 ++++++
 drivers/net/hinic/meson.build         |  6 ++++++
 drivers/net/i40e/base/i40e_osdep.h    | 10 ++++++++++
 drivers/net/i40e/i40e_ethdev_vf.c     |  3 ++-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c |  2 +-
 drivers/net/i40e/i40e_tm.c            |  2 +-
 drivers/net/iavf/meson.build          |  6 ++++++
 drivers/net/ice/meson.build           |  6 ++++++
 drivers/net/igc/meson.build           |  6 ++++++
 drivers/net/ionic/meson.build         |  6 ++++++
 drivers/net/ipn3ke/meson.build        |  6 ++++++
 drivers/net/ixgbe/meson.build         |  6 ++++++
 drivers/net/kni/meson.build           |  6 ++++++
 drivers/net/liquidio/meson.build      |  6 ++++++
 drivers/net/meson.build               |  3 ---
 drivers/net/mlx5/windows/meson.build  |  0
 drivers/net/mvneta/meson.build        |  6 ++++++
 drivers/net/mvpp2/meson.build         |  6 ++++++
 drivers/net/netvsc/meson.build        |  6 ++++++
 drivers/net/nfb/meson.build           |  6 ++++++
 drivers/net/null/meson.build          |  6 ++++++
 drivers/net/octeontx/meson.build      |  6 ++++++
 drivers/net/octeontx2/meson.build     |  6 ++++++
 drivers/net/pcap/meson.build          |  6 ++++++
 drivers/net/qede/meson.build          |  6 ++++++
 drivers/net/ring/meson.build          |  6 ++++++
 drivers/net/sfc/meson.build           |  6 ++++++
 drivers/net/szedata2/meson.build      |  6 ++++++
 drivers/net/thunderx/meson.build      |  6 ++++++
 drivers/net/txgbe/meson.build         |  6 ++++++
 drivers/net/vhost/meson.build         |  6 ++++++
 drivers/net/virtio/meson.build        |  6 ++++++
 drivers/net/vmxnet3/meson.build       |  6 ++++++
 44 files changed, 242 insertions(+), 6 deletions(-)
 create mode 100644 drivers/net/mlx5/windows/meson.build

diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
index fead8dd99..dce123036 100644
--- a/drivers/net/af_xdp/meson.build
+++ b/drivers/net/af_xdp/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('rte_eth_af_xdp.c')
 
 bpf_dep = dependency('libbpf', required: false)
diff --git a/drivers/net/ark/meson.build b/drivers/net/ark/meson.build
index 80bce94e1..aea3ba493 100644
--- a/drivers/net/ark/meson.build
+++ b/drivers/net/ark/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 headers = files('rte_pmd_ark.h')
 
 sources = files('ark_ddm.c',
diff --git a/drivers/net/atlantic/meson.build b/drivers/net/atlantic/meson.build
index 60b84684e..01373f868 100644
--- a/drivers/net/atlantic/meson.build
+++ b/drivers/net/atlantic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Aquantia Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files(
 	'atl_rxtx.c',
 	'atl_ethdev.c',
diff --git a/drivers/net/bnx2x/meson.build b/drivers/net/bnx2x/meson.build
index 4892bb234..8837ef424 100644
--- a/drivers/net/bnx2x/meson.build
+++ b/drivers/net/bnx2x/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 dep = dependency('zlib', required: false)
 build = dep.found()
 reason = 'missing dependency, "zlib"'
diff --git a/drivers/net/bnxt/meson.build b/drivers/net/bnxt/meson.build
index 2896337b5..092655697 100644
--- a/drivers/net/bnxt/meson.build
+++ b/drivers/net/bnxt/meson.build
@@ -2,6 +2,12 @@
 # Copyright(c) 2018 Intel Corporation
 # Copyright(c) 2020 Broadcom
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 headers = files('rte_pmd_bnxt.h')
 
 includes += include_directories('tf_ulp')
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index adf64626e..4682903a6 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 name = 'bond' #, james bond :-)
 sources = files('rte_eth_bond_api.c', 'rte_eth_bond_pmd.c', 'rte_eth_bond_flow.c',
 	'rte_eth_bond_args.c', 'rte_eth_bond_8023ad.c', 'rte_eth_bond_alb.c')
diff --git a/drivers/net/cxgbe/meson.build b/drivers/net/cxgbe/meson.build
index 3992aba44..52896ea85 100644
--- a/drivers/net/cxgbe/meson.build
+++ b/drivers/net/cxgbe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('cxgbe_ethdev.c',
 	'cxgbe_main.c',
 	'cxgbevf_ethdev.c',
diff --git a/drivers/net/e1000/meson.build b/drivers/net/e1000/meson.build
index cf456995c..43ad52cbc 100644
--- a/drivers/net/e1000/meson.build
+++ b/drivers/net/e1000/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ena/meson.build b/drivers/net/ena/meson.build
index 189903b90..772fbfc88 100644
--- a/drivers/net/ena/meson.build
+++ b/drivers/net/ena/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('ena_ethdev.c',
 	'base/ena_com.c',
 	'base/ena_eth_com.c')
diff --git a/drivers/net/enic/meson.build b/drivers/net/enic/meson.build
index 86ef2a8a2..ed699bb37 100644
--- a/drivers/net/enic/meson.build
+++ b/drivers/net/enic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Cisco Systems, Inc.
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files(
 	'base/vnic_cq.c',
 	'base/vnic_dev.c',
diff --git a/drivers/net/failsafe/meson.build b/drivers/net/failsafe/meson.build
index 56010e212..d8343be63 100644
--- a/drivers/net/failsafe/meson.build
+++ b/drivers/net/failsafe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 cflags += '-std=gnu99'
 cflags += '-D_DEFAULT_SOURCE'
 cflags += '-D_XOPEN_SOURCE=700'
diff --git a/drivers/net/fm10k/meson.build b/drivers/net/fm10k/meson.build
index 2772ea4df..fa264f489 100644
--- a/drivers/net/fm10k/meson.build
+++ b/drivers/net/fm10k/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/hinic/meson.build b/drivers/net/hinic/meson.build
index bc7e24639..61ea3954c 100644
--- a/drivers/net/hinic/meson.build
+++ b/drivers/net/hinic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Huawei Technologies Co., Ltd
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h
index 9b5033024..5085d6510 100644
--- a/drivers/net/i40e/base/i40e_osdep.h
+++ b/drivers/net/i40e/base/i40e_osdep.h
@@ -20,6 +20,7 @@
 #include <rte_io.h>
 
 #include "../i40e_logs.h"
+#include "i40e_status.h"
 
 #define INLINE inline
 #define STATIC static
@@ -67,6 +68,15 @@ typedef enum i40e_status_code i40e_status;
 #define false           0
 #define true            1
 
+/* Avoid macro redefinition warning on Windows */
+#ifdef RTE_EXEC_ENV_WINDOWS
+#ifdef min
+#undef min
+#endif
+#ifdef max
+#undef max
+#endif
+#endif
 #define min(a,b) RTE_MIN(a,b)
 #define max(a,b) RTE_MAX(a,b)
 
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index c26b036b8..daf4a3f99 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1495,7 +1495,8 @@ i40evf_handle_aq_msg(struct rte_eth_dev *dev)
 						       info.msg_len);
 			else {
 				/* read message and it's expected one */
-				if (msg_opc == vf->pend_cmd) {
+				if ((volatile uint32_t)msg_opc ==
+				    vf->pend_cmd) {
 					vf->cmd_retval = msg_ret;
 					/* prevent compiler reordering */
 					rte_compiler_barrier();
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
index 7a558fc73..e5f0e90cb 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
@@ -12,7 +12,7 @@
 #include "i40e_rxtx.h"
 #include "i40e_rxtx_vec_common.h"
 
-#include <x86intrin.h>
+#include <rte_vect.h>
 
 #ifndef __INTEL_COMPILER
 #pragma GCC diagnostic ignored "-Wcast-qual"
diff --git a/drivers/net/i40e/i40e_tm.c b/drivers/net/i40e/i40e_tm.c
index 5d722f92c..cab296e1a 100644
--- a/drivers/net/i40e/i40e_tm.c
+++ b/drivers/net/i40e/i40e_tm.c
@@ -554,7 +554,7 @@ i40e_node_add(struct rte_eth_dev *dev, uint32_t node_id,
 	}
 	/* check level */
 	if (level_id != RTE_TM_NODE_LEVEL_ID_ANY &&
-	    level_id != parent_node_type + 1) {
+	    level_id != (uint32_t)parent_node_type + 1) {
 		error->type = RTE_TM_ERROR_TYPE_NODE_PARAMS;
 		error->message = "Wrong level";
 		return -EINVAL;
diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
index 26c02c440..ac2af81f7 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 cflags += ['-Wno-strict-aliasing']
 
 includes += include_directories('../../common/iavf')
diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index 7b291269d..9aab0249a 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/igc/meson.build b/drivers/net/igc/meson.build
index fba119c98..b971e6f8c 100644
--- a/drivers/net/igc/meson.build
+++ b/drivers/net/igc/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019-2020 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ionic/meson.build b/drivers/net/ionic/meson.build
index 1c6362d27..631ea27f5 100644
--- a/drivers/net/ionic/meson.build
+++ b/drivers/net/ionic/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
 # Copyright(c) 2019 Pensando
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files(
 	'ionic_mac_api.c',
 	'ionic_rx_filter.c',
diff --git a/drivers/net/ipn3ke/meson.build b/drivers/net/ipn3ke/meson.build
index d5000d807..65de9d517 100644
--- a/drivers/net/ipn3ke/meson.build
+++ b/drivers/net/ipn3ke/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 #
 # Add the experimenatal APIs called from this PMD
 #  rte_eth_switch_domain_alloc()
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index f10437891..76cbfb830 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
 
 subdir('base')
diff --git a/drivers/net/kni/meson.build b/drivers/net/kni/meson.build
index d9fa898d1..4d5e5fe36 100644
--- a/drivers/net/kni/meson.build
+++ b/drivers/net/kni/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 # this driver can be built if-and-only-if KNI library is buildable
 build = dpdk_conf.has('RTE_LIB_KNI')
 reason = 'missing dependency, DPDK KNI library'
diff --git a/drivers/net/liquidio/meson.build b/drivers/net/liquidio/meson.build
index 9ae48e213..4965ebe85 100644
--- a/drivers/net/liquidio/meson.build
+++ b/drivers/net/liquidio/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('base/lio_23xx_vf.c',
 	'base/lio_mbox.c',
 	'lio_ethdev.c',
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 29f477750..b489088f1 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -1,9 +1,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-if is_windows
-	subdir_done()
-endif
 
 drivers = ['af_packet',
 	'af_xdp',
diff --git a/drivers/net/mlx5/windows/meson.build b/drivers/net/mlx5/windows/meson.build
new file mode 100644
index 000000000..e69de29bb
diff --git a/drivers/net/mvneta/meson.build b/drivers/net/mvneta/meson.build
index 8d7202788..c10d2f789 100644
--- a/drivers/net/mvneta/meson.build
+++ b/drivers/net/mvneta/meson.build
@@ -3,6 +3,12 @@
 # Copyright(c) 2018 Semihalf.
 # All rights reserved.
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 path = get_option('lib_musdk_dir')
 lib_dir = path + '/lib'
 inc_dir = path + '/include'
diff --git a/drivers/net/mvpp2/meson.build b/drivers/net/mvpp2/meson.build
index e06eddaac..4ed392374 100644
--- a/drivers/net/mvpp2/meson.build
+++ b/drivers/net/mvpp2/meson.build
@@ -3,6 +3,12 @@
 # Copyright(c) 2018 Semihalf.
 # All rights reserved.
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 path = get_option('lib_musdk_dir')
 lib_dir = path + '/lib'
 inc_dir = path + '/include'
diff --git a/drivers/net/netvsc/meson.build b/drivers/net/netvsc/meson.build
index f3f52f732..c190124db 100644
--- a/drivers/net/netvsc/meson.build
+++ b/drivers/net/netvsc/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Microsoft Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 build = dpdk_conf.has('RTE_BUS_VMBUS')
 reason = 'missing dependency, DPDK VMBus driver'
 sources = files('hn_ethdev.c', 'hn_rxtx.c', 'hn_rndis.c', 'hn_nvs.c', 'hn_vf.c')
diff --git a/drivers/net/nfb/meson.build b/drivers/net/nfb/meson.build
index d53e8eca7..42f7921dc 100644
--- a/drivers/net/nfb/meson.build
+++ b/drivers/net/nfb/meson.build
@@ -3,6 +3,12 @@
 # Copyright(c) 2019 Netcope Technologies, a.s. <info@netcope.com>
 # All rights reserved.
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 dep = dependency('netcope-common', required: false)
 reason = 'missing dependency, "libnfb"'
 build = dep.found()
diff --git a/drivers/net/null/meson.build b/drivers/net/null/meson.build
index 68ac0d2ae..d9fb88fd7 100644
--- a/drivers/net/null/meson.build
+++ b/drivers/net/null/meson.build
@@ -1,4 +1,10 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('rte_eth_null.c')
diff --git a/drivers/net/octeontx/meson.build b/drivers/net/octeontx/meson.build
index e8d3ff4a3..4e784b948 100644
--- a/drivers/net/octeontx/meson.build
+++ b/drivers/net/octeontx/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/octeontx2/meson.build b/drivers/net/octeontx2/meson.build
index 638c04a2f..e2c139a8b 100644
--- a/drivers/net/octeontx2/meson.build
+++ b/drivers/net/octeontx2/meson.build
@@ -2,6 +2,12 @@
 # Copyright(C) 2019 Marvell International Ltd.
 #
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 if not dpdk_conf.get('RTE_ARCH_64')
 	build = false
 	reason = 'only supported on 64-bit'
diff --git a/drivers/net/pcap/meson.build b/drivers/net/pcap/meson.build
index b680710aa..b65d91e70 100644
--- a/drivers/net/pcap/meson.build
+++ b/drivers/net/pcap/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 if not dpdk_conf.has('RTE_PORT_PCAP')
 	build = false
 	reason = 'missing dependency, "libpcap"'
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
index ff0ac0b03..05ce69560 100644
--- a/drivers/net/qede/meson.build
+++ b/drivers/net/qede/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ring/meson.build b/drivers/net/ring/meson.build
index 26a324eeb..fb6a5f7d6 100644
--- a/drivers/net/ring/meson.build
+++ b/drivers/net/ring/meson.build
@@ -1,5 +1,11 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources = files('rte_eth_ring.c')
 headers = files('rte_eth_ring.h')
diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
index be888bd87..c3ecdbe19 100644
--- a/drivers/net/sfc/meson.build
+++ b/drivers/net/sfc/meson.build
@@ -6,6 +6,12 @@
 # This software was jointly developed between OKTET Labs (under contract
 # for Solarflare) and Solarflare Communications, Inc.
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 if (arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')) and (arch_subdir != 'arm' or not host_machine.cpu_family().startswith('aarch64'))
 	build = false
 	reason = 'only supported on x86_64 and aarch64'
diff --git a/drivers/net/szedata2/meson.build b/drivers/net/szedata2/meson.build
index b53fcbc59..4c02830b0 100644
--- a/drivers/net/szedata2/meson.build
+++ b/drivers/net/szedata2/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 dep = dependency('libsze2', required: false)
 build = dep.found()
 reason = 'missing dependency, "libsze2"'
diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
index 69819a97f..dad5c5924 100644
--- a/drivers/net/thunderx/meson.build
+++ b/drivers/net/thunderx/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/txgbe/meson.build b/drivers/net/txgbe/meson.build
index 345dffaf6..a18660078 100644
--- a/drivers/net/txgbe/meson.build
+++ b/drivers/net/txgbe/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2015-2020
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/vhost/meson.build b/drivers/net/vhost/meson.build
index 1ae4854b8..804b7a1dd 100644
--- a/drivers/net/vhost/meson.build
+++ b/drivers/net/vhost/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 build = dpdk_conf.has('RTE_LIB_VHOST')
 reason = 'missing dependency, DPDK vhost library'
 sources = files('rte_eth_vhost.c')
diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build
index eaed46373..a06b9dde7 100644
--- a/drivers/net/virtio/meson.build
+++ b/drivers/net/virtio/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources += files('virtio_ethdev.c',
 	'virtio_pci.c',
 	'virtio_rxtx.c',
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
index 0641f776f..124238666 100644
--- a/drivers/net/vmxnet3/meson.build
+++ b/drivers/net/vmxnet3/meson.build
@@ -1,6 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+if is_windows
+	build = false
+	reason = 'not supported on Windows'
+	subdir_done()
+endif
+
 sources += files(
 	'vmxnet3_ethdev.c',
 	'vmxnet3_rxtx.c',
-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows
  2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows Pallavi Kadam
@ 2021-01-08 22:58       ` Jie Zhou
  2021-01-13 22:52       ` Thomas Monjalon
  1 sibling, 0 replies; 32+ messages in thread
From: Jie Zhou @ 2021-01-08 22:58 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, thomas, ranjit.menon, dmitry.kozliuk, bruce.richardson,
	ferruh.yigit, beilei.xing, jia.guo, Narcisa.Vasile, talshn

On Mon, Dec 21, 2020 at 04:45:11PM -0800, Pallavi Kadam wrote:
> Allows i40e PMD to compile on Windows and disable other drivers.
> Disable few warnings with Clang such as comparison of integers of
> different signs and macro redefinitions.
> 
> Adds temp folder mlx5/windows as it is required to build this patch
> without any build error. This folder will be removed once mlx5 PMD
> patches are merged.
> 
> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
> Acked-by: Jie Zhou <jizh@linux.microsoft.com>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows
  2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows Pallavi Kadam
  2021-01-08 22:58       ` Jie Zhou
@ 2021-01-13 22:52       ` Thomas Monjalon
  2021-01-13 22:55         ` Ranjit Menon
  1 sibling, 1 reply; 32+ messages in thread
From: Thomas Monjalon @ 2021-01-13 22:52 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, ranjit.menon, dmitry.kozliuk, bruce.richardson,
	ferruh.yigit, beilei.xing, jia.guo, Narcisa.Vasile, talshn

22/12/2020 01:45, Pallavi Kadam:
> Allows i40e PMD to compile on Windows and disable other drivers.
> Disable few warnings with Clang such as comparison of integers of
> different signs and macro redefinitions.
> 
> Adds temp folder mlx5/windows as it is required to build this patch
> without any build error. This folder will be removed once mlx5 PMD
> patches are merged.

The mlx5 patches are merged, so this empty folder is not required anymore.
In reality this patch will enable both i40e and mlx5 PMDs.
I will change the title accordingly if you agree:
	drivers/net: build i40e and mlx5 on Windows




^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows
  2021-01-13 22:52       ` Thomas Monjalon
@ 2021-01-13 22:55         ` Ranjit Menon
  2021-01-13 23:10           ` Thomas Monjalon
  0 siblings, 1 reply; 32+ messages in thread
From: Ranjit Menon @ 2021-01-13 22:55 UTC (permalink / raw)
  To: Thomas Monjalon, Pallavi Kadam
  Cc: dev, dmitry.kozliuk, bruce.richardson, ferruh.yigit, beilei.xing,
	jia.guo, Narcisa.Vasile, talshn

On 1/13/2021 2:52 PM, Thomas Monjalon wrote:
> 22/12/2020 01:45, Pallavi Kadam:
>> Allows i40e PMD to compile on Windows and disable other drivers.
>> Disable few warnings with Clang such as comparison of integers of
>> different signs and macro redefinitions.
>>
>> Adds temp folder mlx5/windows as it is required to build this patch
>> without any build error. This folder will be removed once mlx5 PMD
>> patches are merged.
> The mlx5 patches are merged, so this empty folder is not required anymore.
> In reality this patch will enable both i40e and mlx5 PMDs.
> I will change the title accordingly if you agree:
> 	drivers/net: build i40e and mlx5 on Windows
>
>
Yes. That should be fine. Thanks, Thomas. (Pallavi is out on vacation)

ranjit m.


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows
  2021-01-13 22:55         ` Ranjit Menon
@ 2021-01-13 23:10           ` Thomas Monjalon
  2021-01-14  1:51             ` Tal Shnaiderman
  0 siblings, 1 reply; 32+ messages in thread
From: Thomas Monjalon @ 2021-01-13 23:10 UTC (permalink / raw)
  To: Pallavi Kadam, Ranjit Menon
  Cc: dev, dmitry.kozliuk, bruce.richardson, ferruh.yigit, beilei.xing,
	jia.guo, Narcisa.Vasile, talshn

13/01/2021 23:55, Ranjit Menon:
> On 1/13/2021 2:52 PM, Thomas Monjalon wrote:
> > 22/12/2020 01:45, Pallavi Kadam:
> >> Allows i40e PMD to compile on Windows and disable other drivers.
> >> Disable few warnings with Clang such as comparison of integers of
> >> different signs and macro redefinitions.
> >>
> >> Adds temp folder mlx5/windows as it is required to build this patch
> >> without any build error. This folder will be removed once mlx5 PMD
> >> patches are merged.
> > The mlx5 patches are merged, so this empty folder is not required anymore.
> > In reality this patch will enable both i40e and mlx5 PMDs.
> > I will change the title accordingly if you agree:
> > 	drivers/net: build i40e and mlx5 on Windows
> >
> >
> Yes. That should be fine. Thanks, Thomas. (Pallavi is out on vacation)

OK
You may want to add another patch for doc
(i40e guide, release notes and features table).



^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows
  2021-01-13 23:10           ` Thomas Monjalon
@ 2021-01-14  1:51             ` Tal Shnaiderman
  0 siblings, 0 replies; 32+ messages in thread
From: Tal Shnaiderman @ 2021-01-14  1:51 UTC (permalink / raw)
  To: NBU-Contact-Thomas Monjalon, Pallavi Kadam, Ranjit Menon
  Cc: dev, dmitry.kozliuk, bruce.richardson, ferruh.yigit, beilei.xing,
	jia.guo, Narcisa.Vasile

> Subject: Re: [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows
> 
> External email: Use caution opening links or attachments
> 
> 
> 13/01/2021 23:55, Ranjit Menon:
> > On 1/13/2021 2:52 PM, Thomas Monjalon wrote:
> > > 22/12/2020 01:45, Pallavi Kadam:
> > >> Allows i40e PMD to compile on Windows and disable other drivers.
> > >> Disable few warnings with Clang such as comparison of integers of
> > >> different signs and macro redefinitions.
> > >>
> > >> Adds temp folder mlx5/windows as it is required to build this patch
> > >> without any build error. This folder will be removed once mlx5 PMD
> > >> patches are merged.
> > > The mlx5 patches are merged, so this empty folder is not required
> anymore.
> > > In reality this patch will enable both i40e and mlx5 PMDs.
> > > I will change the title accordingly if you agree:
> > >     drivers/net: build i40e and mlx5 on Windows
> > >
> > >
> > Yes. That should be fine. Thanks, Thomas. (Pallavi is out on vacation)
> 
> OK
> You may want to add another patch for doc (i40e guide, release notes and
> features table).
> 
Acked-by: Tal Shnaiderman <talshn@nvidia.com>

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v3 0/2] Support i40e PMD on Windows
  2020-12-22  0:45   ` [dpdk-dev] [PATCH v3 0/2] Support " Pallavi Kadam
  2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 1/2] eal: add rte_random.c file on windows Pallavi Kadam
  2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows Pallavi Kadam
@ 2021-01-14 22:55     ` Thomas Monjalon
  2021-01-14 23:06       ` Ranjit Menon
  2 siblings, 1 reply; 32+ messages in thread
From: Thomas Monjalon @ 2021-01-14 22:55 UTC (permalink / raw)
  To: pallavi.kadam
  Cc: dev, ranjit.menon, dmitry.kozliuk, bruce.richardson,
	ferruh.yigit, beilei.xing, jia.guo, Narcisa.Vasile, talshn

22/12/2020 01:45, Pallavi Kadam:
> Pallavi Kadam (2):
>   eal: add rte_random.c file on windows
>   build: i40e PMD on Windows

Applied, thanks

For info, I've fixed an additional warning in i40e compilation on Windows:
	drivers/net/i40e/i40e_hash.c:357:22: warning:
	comparison of integers of different signs:
	'enum rte_flow_item_type' and 'unsigned long long'

--- a/drivers/net/i40e/i40e_hash.c
+++ b/drivers/net/i40e/i40e_hash.c
@@ -354,9 +354,10 @@ i40e_hash_get_pattern_type(const struct rte_flow_item pattern[],
                }
 
                /* Check the previous item allows this sub-item. */
-               if (prev_item_type >= RTE_DIM(pattern_next_allow_items) ||
+               if (prev_item_type >= (enum rte_flow_item_type)
+                               RTE_DIM(pattern_next_allow_items) ||
                    !(pattern_next_allow_items[prev_item_type] &
-                   BIT_ULL(pattern->type)))
+                               BIT_ULL(pattern->type)))
                        goto not_sup;
 
                /* For VLAN item, it does no matter about to pattern type
@@ -372,7 +373,8 @@ i40e_hash_get_pattern_type(const struct rte_flow_item pattern[],
                }
 
                prev_item_type = last_item_type;
-               assert(last_item_type < RTE_DIM(pattern_item_header));
+               assert(last_item_type < (enum rte_flow_item_type)
+                               RTE_DIM(pattern_item_header));
                item_hdr = pattern_item_header[last_item_type];
                assert(item_hdr);




^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [dpdk-dev] [PATCH v3 0/2] Support i40e PMD on Windows
  2021-01-14 22:55     ` [dpdk-dev] [PATCH v3 0/2] Support " Thomas Monjalon
@ 2021-01-14 23:06       ` Ranjit Menon
  0 siblings, 0 replies; 32+ messages in thread
From: Ranjit Menon @ 2021-01-14 23:06 UTC (permalink / raw)
  To: Thomas Monjalon, pallavi.kadam
  Cc: dev, dmitry.kozliuk, bruce.richardson, ferruh.yigit, beilei.xing,
	jia.guo, Narcisa.Vasile, talshn


On 1/14/2021 2:55 PM, Thomas Monjalon wrote:
> 22/12/2020 01:45, Pallavi Kadam:
>> Pallavi Kadam (2):
>>    eal: add rte_random.c file on windows
>>    build: i40e PMD on Windows
> Applied, thanks
>
> For info, I've fixed an additional warning in i40e compilation on Windows:
> 	drivers/net/i40e/i40e_hash.c:357:22: warning:
> 	comparison of integers of different signs:
> 	'enum rte_flow_item_type' and 'unsigned long long'

Thanks, Thomas. Oddly, we never saw this warning when we submitted the 
patch.

I'll check with Pallavi when she's back.

ranjit m.


^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2021-01-14 23:07 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-05  1:10 [dpdk-dev] [PATCH 0/3] Support i40e PMD on Windows Pallavi Kadam
2020-12-05  1:10 ` [dpdk-dev] [PATCH 1/3] eal/windows: add some interrupt functions stub Pallavi Kadam
2020-12-05  1:10 ` [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows Pallavi Kadam
2020-12-05 13:52   ` Dmitry Kozlyuk
2020-12-09  0:09     ` Kadam, Pallavi
2020-12-06 15:49   ` Thomas Monjalon
2020-12-07  9:14     ` Bruce Richardson
2020-12-09  0:14       ` Kadam, Pallavi
2020-12-09  0:21     ` Kadam, Pallavi
2020-12-09  8:59       ` Thomas Monjalon
2020-12-17 23:17         ` Kadam, Pallavi
2020-12-05  1:10 ` [dpdk-dev] [PATCH 3/3] config/build: ignore enum forward reference warning Pallavi Kadam
2020-12-05 13:51   ` Dmitry Kozlyuk
2020-12-10  0:53   ` Narcisa Ana Maria Vasile
2020-12-17 23:15     ` Kadam, Pallavi
2020-12-17 22:59 ` [dpdk-dev] [PATCH v2 0/2] Support i40e PMD on Windows Pallavi Kadam
2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 1/2] eal: add rte_random.c file on windows Pallavi Kadam
2020-12-18 11:29     ` Thomas Monjalon
2020-12-18 18:49       ` Kadam, Pallavi
2020-12-17 22:59   ` [dpdk-dev] [PATCH v2 2/2] build: i40e PMD on Windows Pallavi Kadam
2020-12-18 11:27     ` Thomas Monjalon
2020-12-18 18:42       ` Kadam, Pallavi
2020-12-22  0:45   ` [dpdk-dev] [PATCH v3 0/2] Support " Pallavi Kadam
2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 1/2] eal: add rte_random.c file on windows Pallavi Kadam
2020-12-22  0:45     ` [dpdk-dev] [PATCH v3 2/2] build: i40e PMD on Windows Pallavi Kadam
2021-01-08 22:58       ` Jie Zhou
2021-01-13 22:52       ` Thomas Monjalon
2021-01-13 22:55         ` Ranjit Menon
2021-01-13 23:10           ` Thomas Monjalon
2021-01-14  1:51             ` Tal Shnaiderman
2021-01-14 22:55     ` [dpdk-dev] [PATCH v3 0/2] Support " Thomas Monjalon
2021-01-14 23:06       ` Ranjit Menon

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ http://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git