dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/iavf: enable on Windows
@ 2021-05-28 23:08 Pallavi Kadam
  2021-09-09 20:05 ` [dpdk-dev] [PATCH v2 0/3] Support iavf PMD " Pallavi Kadam
  0 siblings, 1 reply; 20+ messages in thread
From: Pallavi Kadam @ 2021-05-28 23:08 UTC (permalink / raw)
  To: dev, thomas
  Cc: ranjit.menon, navasile, jingjing.wu, beilei.xing, ferruh.yigit,
	pallavi.kadam

This patch enables building the iAVF PMD on Windows.
- Replace x86intrin.h with rte_vect.h to avoid __m_prefetchw conflicting
  types
- Fix for pointer and integer sign warnings using Clang compiler on
  Windows
- Add extra cflags '-fno-asynchronous-unwind-tables'
  to avoid MinGW build error:
  Error: invalid register for .seh_savexmm
- Update release notes

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 doc/guides/rel_notes/release_21_08.rst  |  4 ++++
 drivers/net/iavf/iavf.h                 |  3 ++-
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   |  2 +-
 drivers/net/iavf/iavf_rxtx_vec_avx512.c |  2 +-
 drivers/net/iavf/meson.build            | 10 ++++------
 5 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/doc/guides/rel_notes/release_21_08.rst b/doc/guides/rel_notes/release_21_08.rst
index a6ecfdf3c..931f5c322 100644
--- a/doc/guides/rel_notes/release_21_08.rst
+++ b/doc/guides/rel_notes/release_21_08.rst
@@ -55,6 +55,10 @@ New Features
      Also, make sure to start the actual text at the margin.
      =======================================================
 
+* **Updated Intel iavf driver.**
+
+  * Added Intel iavf support on Windows.
+
 
 Removed Items
 -------------
diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h
index 4f5811ae8..9b46608b6 100644
--- a/drivers/net/iavf/iavf.h
+++ b/drivers/net/iavf/iavf.h
@@ -286,7 +286,8 @@ _clear_cmd(struct iavf_info *vf)
 static inline int
 _atomic_set_cmd(struct iavf_info *vf, enum virtchnl_ops ops)
 {
-	int ret = rte_atomic32_cmpset(&vf->pend_cmd, VIRTCHNL_OP_UNKNOWN, ops);
+	int ret = rte_atomic32_cmpset((volatile uint32_t *)&vf->pend_cmd,
+		VIRTCHNL_OP_UNKNOWN, ops);
 
 	if (!ret)
 		PMD_DRV_LOG(ERR, "There is incomplete cmd %d", vf->pend_cmd);
diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
index f5646d645..60ff3e356 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
index d99de2a8b..8669a71ba 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx512.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/meson.build b/drivers/net/iavf/meson.build
index 6f222a9e8..a6baa77ce 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -1,12 +1,6 @@
 # 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')
@@ -24,6 +18,10 @@ sources = files(
 if arch_subdir == 'x86'
     sources += files('iavf_rxtx_vec_sse.c')
 
+    if is_windows and cc.get_id() != 'clang'
+        cflags += ['-fno-asynchronous-unwind-tables']
+    endif
+
     # compile AVX2 version if either:
     # a. we have AVX supported in minimum instruction set baseline
     # b. it's not minimum instruction set, but supported by compiler
-- 
2.18.0.windows.1


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

* [dpdk-dev] [PATCH v2 0/3] Support iavf PMD on Windows
  2021-05-28 23:08 [dpdk-dev] [PATCH] net/iavf: enable on Windows Pallavi Kadam
@ 2021-09-09 20:05 ` Pallavi Kadam
  2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 1/3] net/iavf: build " Pallavi Kadam
                     ` (3 more replies)
  0 siblings, 4 replies; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 20:05 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, -fady, dmitry.kozliuk, jingjing.wu,
	beilei.xing, ranjit.menon, shivanshu.shukla, pallavi.kadam

This patch-set enables building the iavf PMD on Windows.
Currently, it uses alarm functions so, depends on following series.

Depends-on: series-18447 ("net/iavf: enable interrupt polling")

v2 changes:
	- rebase for 21.11
	- Fix for 'random'

Pallavi Kadam (3):
  net/iavf: build on Windows
  lib/net: fix support of random
  doc: update iavf PMD and 21.11 release notes

 doc/guides/nics/intel_vf.rst            | 17 +++++++++++++++++
 doc/guides/rel_notes/release_21_11.rst  |  4 ++++
 drivers/net/iavf/iavf.h                 |  3 ++-
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   |  2 +-
 drivers/net/iavf/iavf_rxtx_vec_avx512.c |  2 +-
 drivers/net/iavf/iavf_tm.c              |  2 +-
 drivers/net/iavf/meson.build            |  9 ++++-----
 lib/net/rte_ether.c                     |  4 ----
 8 files changed, 30 insertions(+), 13 deletions(-)

-- 
2.31.1.windows.1


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

* [dpdk-dev] [PATCH v2 1/3] net/iavf: build on Windows
  2021-09-09 20:05 ` [dpdk-dev] [PATCH v2 0/3] Support iavf PMD " Pallavi Kadam
@ 2021-09-09 20:05   ` Pallavi Kadam
  2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 2/3] lib/net: fix support of random Pallavi Kadam
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 20:05 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, -fady, dmitry.kozliuk, jingjing.wu,
	beilei.xing, ranjit.menon, shivanshu.shukla, pallavi.kadam

- Enable IAVF PMD build on Windows
- Replace x86intrin.h with rte_vect.h to avoid __m_prefetchw conflicting
  types
- Fix for pointer and integer sign warnings using Clang compiler on
  Windows
- Add extra cflags '-fno-asynchronous-unwind-tables'
  to avoid MinGW build error:
  Error: invalid register for .seh_savexmm

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 drivers/net/iavf/iavf.h                 | 3 ++-
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   | 2 +-
 drivers/net/iavf/iavf_rxtx_vec_avx512.c | 2 +-
 drivers/net/iavf/iavf_tm.c              | 2 +-
 drivers/net/iavf/meson.build            | 9 ++++-----
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h
index b3bd078111..55b20a80af 100644
--- a/drivers/net/iavf/iavf.h
+++ b/drivers/net/iavf/iavf.h
@@ -335,7 +335,8 @@ _clear_cmd(struct iavf_info *vf)
 static inline int
 _atomic_set_cmd(struct iavf_info *vf, enum virtchnl_ops ops)
 {
-	int ret = rte_atomic32_cmpset(&vf->pend_cmd, VIRTCHNL_OP_UNKNOWN, ops);
+	int ret = rte_atomic32_cmpset((volatile uint32_t *)&vf->pend_cmd,
+		VIRTCHNL_OP_UNKNOWN, ops);
 
 	if (!ret)
 		PMD_DRV_LOG(ERR, "There is incomplete cmd %d", vf->pend_cmd);
diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
index 475070e036..96c05d9319 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
index 571161c0cd..cb0b057b0f 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx512.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/iavf_tm.c b/drivers/net/iavf/iavf_tm.c
index 3c80276ff3..8d92062c7f 100644
--- a/drivers/net/iavf/iavf_tm.c
+++ b/drivers/net/iavf/iavf_tm.c
@@ -321,7 +321,7 @@ iavf_tm_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 f2010a8337..36a82e3faa 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -1,11 +1,6 @@
 # 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']
 
@@ -25,6 +20,10 @@ sources = files(
 if arch_subdir == 'x86'
     sources += files('iavf_rxtx_vec_sse.c')
 
+    if is_windows and cc.get_id() != 'clang'
+        cflags += ['-fno-asynchronous-unwind-tables']
+    endif
+
     # compile AVX2 version if either:
     # a. we have AVX supported in minimum instruction set baseline
     # b. it's not minimum instruction set, but supported by compiler
-- 
2.31.1.windows.1


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

* [dpdk-dev] [PATCH v2 2/3] lib/net: fix support of random
  2021-09-09 20:05 ` [dpdk-dev] [PATCH v2 0/3] Support iavf PMD " Pallavi Kadam
  2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 1/3] net/iavf: build " Pallavi Kadam
@ 2021-09-09 20:05   ` Pallavi Kadam
  2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
  3 siblings, 0 replies; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 20:05 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, -fady, dmitry.kozliuk, jingjing.wu,
	beilei.xing, ranjit.menon, shivanshu.shukla, pallavi.kadam

IAVF PMD needs to generate a random MAC address if it is not configured
by host.
'random' is now supported on Windows.

Fixes: 16f0d03098cb ("net: build on Windows")
Cc: fady@mellanox.com
Cc: stable@dpdk.org

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 lib/net/rte_ether.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/lib/net/rte_ether.c b/lib/net/rte_ether.c
index 34605838b5..ced65ed9f3 100644
--- a/lib/net/rte_ether.c
+++ b/lib/net/rte_ether.c
@@ -10,16 +10,12 @@
 void
 rte_eth_random_addr(uint8_t *addr)
 {
-#ifdef RTE_EXEC_ENV_WINDOWS /* FIXME: random is not supported */
-	RTE_SET_USED(addr);
-#else
 	uint64_t rand = rte_rand();
 	uint8_t *p = (uint8_t *)&rand;
 
 	rte_memcpy(addr, p, RTE_ETHER_ADDR_LEN);
 	addr[0] &= (uint8_t)~RTE_ETHER_GROUP_ADDR;	/* clear multicast bit */
 	addr[0] |= RTE_ETHER_LOCAL_ADMIN_ADDR;	/* set local assignment bit */
-#endif
 }
 
 void
-- 
2.31.1.windows.1


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

* [dpdk-dev] [PATCH v2 3/3] doc: update iavf PMD and 21.11 release notes
  2021-09-09 20:05 ` [dpdk-dev] [PATCH v2 0/3] Support iavf PMD " Pallavi Kadam
  2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 1/3] net/iavf: build " Pallavi Kadam
  2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 2/3] lib/net: fix support of random Pallavi Kadam
@ 2021-09-09 20:05   ` Pallavi Kadam
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
  3 siblings, 0 replies; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 20:05 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, -fady, dmitry.kozliuk, jingjing.wu,
	beilei.xing, ranjit.menon, shivanshu.shukla, pallavi.kadam

Add documentation to support iavf PMD on Windows.
Update the release notes for the same.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 doc/guides/nics/intel_vf.rst           | 17 +++++++++++++++++
 doc/guides/rel_notes/release_21_11.rst |  4 ++++
 2 files changed, 21 insertions(+)

diff --git a/doc/guides/nics/intel_vf.rst b/doc/guides/nics/intel_vf.rst
index fcea8151bf..27f8b5093e 100644
--- a/doc/guides/nics/intel_vf.rst
+++ b/doc/guides/nics/intel_vf.rst
@@ -616,3 +616,20 @@ which belongs to the destination VF on the VM.
 .. figure:: img/inter_vm_comms.*
 
    Inter-VM Communication
+
+
+Windows Support
+---------------
+
+*   IAVF PMD currently is supported only inside Windows guest created on Linux host.
+
+*   Physical PCI resources are exposed as virtual functions into Windows VM using SR-IOV pass through feature.
+
+*   Create a Windows guest on Linux host using KVM hypervisor. Refer to the steps mentioned in the above section "Setting Up a KVM Virtual Machine monitor"
+
+*   In the Host machine, download and install the kernel Ethernet driver from: `https://www.intel.com/content/www/us/en/download-center/home.html?agr=Y&amp;DwnldID=14687`.
+
+*   For Windows guest, install NetUIO driver in place of existing built-in(inbox) Virtual Function driver.
+
+*   To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository
+  <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst
index 675b573834..f5ae66a0ef 100644
--- a/doc/guides/rel_notes/release_21_11.rst
+++ b/doc/guides/rel_notes/release_21_11.rst
@@ -62,6 +62,10 @@ New Features
   * Added bus-level parsing of the devargs syntax.
   * Kept compatibility with the legacy syntax as parsing fallback.
 
+* **Updated Intel iavf driver.**
+
+  * Added Intel iavf support on Windows.
+
 
 Removed Items
 -------------
-- 
2.31.1.windows.1


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

* [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows
  2021-09-09 20:05 ` [dpdk-dev] [PATCH v2 0/3] Support iavf PMD " Pallavi Kadam
                     ` (2 preceding siblings ...)
  2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
@ 2021-09-09 23:23   ` Pallavi Kadam
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 1/3] net/iavf: build " Pallavi Kadam
                       ` (6 more replies)
  3 siblings, 7 replies; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 23:23 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla, pallavi.kadam

This patch-set enables building the iavf PMD on Windows.
Currently, it uses alarm functions so, depends on following series.

Depends-on: series-18447 ("net/iavf: enable interrupt polling")

v3 changes:
	- Fix doc build warning
v2 changes:
	- Rebase for 21.11
	- Fix for 'random'

Pallavi Kadam (3):
  net/iavf: build on Windows
  lib/net: fix support of random
  doc: update iavf PMD and 21.11 release notes

 doc/guides/nics/intel_vf.rst            | 18 ++++++++++++++++++
 doc/guides/rel_notes/release_21_11.rst  |  4 ++++
 drivers/net/iavf/iavf.h                 |  3 ++-
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   |  2 +-
 drivers/net/iavf/iavf_rxtx_vec_avx512.c |  2 +-
 drivers/net/iavf/iavf_tm.c              |  2 +-
 drivers/net/iavf/meson.build            |  9 ++++-----
 lib/net/rte_ether.c                     |  4 ----
 8 files changed, 31 insertions(+), 13 deletions(-)

-- 
2.31.1.windows.1


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

* [dpdk-dev] [PATCH v3 1/3] net/iavf: build on Windows
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
@ 2021-09-09 23:23     ` Pallavi Kadam
  2021-09-22 20:58       ` Shukla, Shivanshu
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random Pallavi Kadam
                       ` (5 subsequent siblings)
  6 siblings, 1 reply; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 23:23 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla, pallavi.kadam

- Enable IAVF PMD build on Windows
- Replace x86intrin.h with rte_vect.h to avoid __m_prefetchw conflicting
  types
- Fix for pointer and integer sign warnings using Clang compiler on
  Windows
- Add extra cflags '-fno-asynchronous-unwind-tables'
  to avoid MinGW build error:
  Error: invalid register for .seh_savexmm

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 drivers/net/iavf/iavf.h                 | 3 ++-
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   | 2 +-
 drivers/net/iavf/iavf_rxtx_vec_avx512.c | 2 +-
 drivers/net/iavf/iavf_tm.c              | 2 +-
 drivers/net/iavf/meson.build            | 9 ++++-----
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h
index b3bd078111..55b20a80af 100644
--- a/drivers/net/iavf/iavf.h
+++ b/drivers/net/iavf/iavf.h
@@ -335,7 +335,8 @@ _clear_cmd(struct iavf_info *vf)
 static inline int
 _atomic_set_cmd(struct iavf_info *vf, enum virtchnl_ops ops)
 {
-	int ret = rte_atomic32_cmpset(&vf->pend_cmd, VIRTCHNL_OP_UNKNOWN, ops);
+	int ret = rte_atomic32_cmpset((volatile uint32_t *)&vf->pend_cmd,
+		VIRTCHNL_OP_UNKNOWN, ops);
 
 	if (!ret)
 		PMD_DRV_LOG(ERR, "There is incomplete cmd %d", vf->pend_cmd);
diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
index 475070e036..96c05d9319 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
index 571161c0cd..cb0b057b0f 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx512.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/iavf_tm.c b/drivers/net/iavf/iavf_tm.c
index 3c80276ff3..8d92062c7f 100644
--- a/drivers/net/iavf/iavf_tm.c
+++ b/drivers/net/iavf/iavf_tm.c
@@ -321,7 +321,7 @@ iavf_tm_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 f2010a8337..36a82e3faa 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -1,11 +1,6 @@
 # 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']
 
@@ -25,6 +20,10 @@ sources = files(
 if arch_subdir == 'x86'
     sources += files('iavf_rxtx_vec_sse.c')
 
+    if is_windows and cc.get_id() != 'clang'
+        cflags += ['-fno-asynchronous-unwind-tables']
+    endif
+
     # compile AVX2 version if either:
     # a. we have AVX supported in minimum instruction set baseline
     # b. it's not minimum instruction set, but supported by compiler
-- 
2.31.1.windows.1


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

* [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 1/3] net/iavf: build " Pallavi Kadam
@ 2021-09-09 23:23     ` Pallavi Kadam
  2021-09-22 21:00       ` Shukla, Shivanshu
  2021-09-30 16:46       ` Thomas Monjalon
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
                       ` (4 subsequent siblings)
  6 siblings, 2 replies; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 23:23 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla, pallavi.kadam

IAVF PMD needs to generate a random MAC address if it is not configured
by host.
'random' is now supported on Windows.

Fixes: 16f0d03098cb ("net: build on Windows")
Cc: fady@mellanox.com
Cc: stable@dpdk.org

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 lib/net/rte_ether.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/lib/net/rte_ether.c b/lib/net/rte_ether.c
index 34605838b5..ced65ed9f3 100644
--- a/lib/net/rte_ether.c
+++ b/lib/net/rte_ether.c
@@ -10,16 +10,12 @@
 void
 rte_eth_random_addr(uint8_t *addr)
 {
-#ifdef RTE_EXEC_ENV_WINDOWS /* FIXME: random is not supported */
-	RTE_SET_USED(addr);
-#else
 	uint64_t rand = rte_rand();
 	uint8_t *p = (uint8_t *)&rand;
 
 	rte_memcpy(addr, p, RTE_ETHER_ADDR_LEN);
 	addr[0] &= (uint8_t)~RTE_ETHER_GROUP_ADDR;	/* clear multicast bit */
 	addr[0] |= RTE_ETHER_LOCAL_ADMIN_ADDR;	/* set local assignment bit */
-#endif
 }
 
 void
-- 
2.31.1.windows.1


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

* [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 1/3] net/iavf: build " Pallavi Kadam
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random Pallavi Kadam
@ 2021-09-09 23:23     ` Pallavi Kadam
  2021-09-22 21:01       ` Shukla, Shivanshu
                         ` (2 more replies)
  2021-09-22 20:56     ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Shukla, Shivanshu
                       ` (3 subsequent siblings)
  6 siblings, 3 replies; 20+ messages in thread
From: Pallavi Kadam @ 2021-09-09 23:23 UTC (permalink / raw)
  To: dev
  Cc: thomas, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla, pallavi.kadam

Add documentation to support iavf PMD on Windows.
Update the release notes for the same.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 doc/guides/nics/intel_vf.rst           | 18 ++++++++++++++++++
 doc/guides/rel_notes/release_21_11.rst |  4 ++++
 2 files changed, 22 insertions(+)

diff --git a/doc/guides/nics/intel_vf.rst b/doc/guides/nics/intel_vf.rst
index fcea8151bf..20b89431a4 100644
--- a/doc/guides/nics/intel_vf.rst
+++ b/doc/guides/nics/intel_vf.rst
@@ -616,3 +616,21 @@ which belongs to the destination VF on the VM.
 .. figure:: img/inter_vm_comms.*
 
    Inter-VM Communication
+
+
+Windows Support
+---------------
+
+*   IAVF PMD currently is supported only inside Windows guest created on Linux host.
+
+*   Physical PCI resources are exposed as virtual functions into Windows VM using SR-IOV pass through feature.
+
+*   Create a Windows guest on Linux host using KVM hypervisor. Refer to the steps mentioned in the above section "Setting Up a KVM Virtual Machine monitor"
+
+*   In the Host machine, download and install the kernel Ethernet driver from:
+    `http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=14687 <http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=14687>`_
+
+*   For Windows guest, install NetUIO driver in place of existing built-in(inbox) Virtual Function driver.
+
+*   To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository
+    <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst
index 675b573834..f5ae66a0ef 100644
--- a/doc/guides/rel_notes/release_21_11.rst
+++ b/doc/guides/rel_notes/release_21_11.rst
@@ -62,6 +62,10 @@ New Features
   * Added bus-level parsing of the devargs syntax.
   * Kept compatibility with the legacy syntax as parsing fallback.
 
+* **Updated Intel iavf driver.**
+
+  * Added Intel iavf support on Windows.
+
 
 Removed Items
 -------------
-- 
2.31.1.windows.1


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

* Re: [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
                       ` (2 preceding siblings ...)
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
@ 2021-09-22 20:56     ` Shukla, Shivanshu
  2021-09-22 20:58     ` Shukla, Shivanshu
                       ` (2 subsequent siblings)
  6 siblings, 0 replies; 20+ messages in thread
From: Shukla, Shivanshu @ 2021-09-22 20:56 UTC (permalink / raw)
  To: Pallavi Kadam, dev
  Cc: thomas, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon

Ack-by: shivanshu.shukla@intel.com

On 9/9/2021 4:23 PM, Pallavi Kadam wrote:
> This patch-set enables building the iavf PMD on Windows.
> Currently, it uses alarm functions so, depends on following series.
>
> Depends-on: series-18447 ("net/iavf: enable interrupt polling")
>
> v3 changes:
> 	- Fix doc build warning
> v2 changes:
> 	- Rebase for 21.11
> 	- Fix for 'random'
>
> Pallavi Kadam (3):
>    net/iavf: build on Windows
>    lib/net: fix support of random
>    doc: update iavf PMD and 21.11 release notes
>
>   doc/guides/nics/intel_vf.rst            | 18 ++++++++++++++++++
>   doc/guides/rel_notes/release_21_11.rst  |  4 ++++
>   drivers/net/iavf/iavf.h                 |  3 ++-
>   drivers/net/iavf/iavf_rxtx_vec_avx2.c   |  2 +-
>   drivers/net/iavf/iavf_rxtx_vec_avx512.c |  2 +-
>   drivers/net/iavf/iavf_tm.c              |  2 +-
>   drivers/net/iavf/meson.build            |  9 ++++-----
>   lib/net/rte_ether.c                     |  4 ----
>   8 files changed, 31 insertions(+), 13 deletions(-)
>

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

* Re: [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
                       ` (3 preceding siblings ...)
  2021-09-22 20:56     ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Shukla, Shivanshu
@ 2021-09-22 20:58     ` Shukla, Shivanshu
  2021-09-27 21:33     ` Shukla, Shivanshu
  2021-09-30 20:15     ` Thomas Monjalon
  6 siblings, 0 replies; 20+ messages in thread
From: Shukla, Shivanshu @ 2021-09-22 20:58 UTC (permalink / raw)
  To: Kadam, Pallavi, dev
  Cc: thomas, Zhang, Qi Z, fady, Narcisa.Vasile, dmitry.kozliuk, Yigit,
	Ferruh, Wu, Jingjing, Xing, Beilei, Menon, Ranjit

Ack-by: Shivanshu Shukla <Shivanshu.shukla@intel.com>

-----Original Message-----
From: Kadam, Pallavi <pallavi.kadam@intel.com> 
Sent: Thursday, September 9, 2021 4:23 PM
To: dev@dpdk.org
Cc: thomas@monjalon.net; Zhang, Qi Z <qi.z.zhang@intel.com>; fady@mellanox.com; Narcisa.Vasile@microsoft.com; dmitry.kozliuk@gmail.com; Yigit, Ferruh <ferruh.yigit@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Menon, Ranjit <ranjit.menon@intel.com>; Shukla, Shivanshu <shivanshu.shukla@intel.com>; Kadam, Pallavi <pallavi.kadam@intel.com>
Subject: [PATCH v3 0/3] Support iavf PMD on Windows

This patch-set enables building the iavf PMD on Windows.
Currently, it uses alarm functions so, depends on following series.

Depends-on: series-18447 ("net/iavf: enable interrupt polling")

v3 changes:
	- Fix doc build warning
v2 changes:
	- Rebase for 21.11
	- Fix for 'random'

Pallavi Kadam (3):
  net/iavf: build on Windows
  lib/net: fix support of random
  doc: update iavf PMD and 21.11 release notes

 doc/guides/nics/intel_vf.rst            | 18 ++++++++++++++++++
 doc/guides/rel_notes/release_21_11.rst  |  4 ++++
 drivers/net/iavf/iavf.h                 |  3 ++-
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   |  2 +-
 drivers/net/iavf/iavf_rxtx_vec_avx512.c |  2 +-
 drivers/net/iavf/iavf_tm.c              |  2 +-
 drivers/net/iavf/meson.build            |  9 ++++-----
 lib/net/rte_ether.c                     |  4 ----
 8 files changed, 31 insertions(+), 13 deletions(-)

-- 
2.31.1.windows.1


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

* Re: [dpdk-dev] [PATCH v3 1/3] net/iavf: build on Windows
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 1/3] net/iavf: build " Pallavi Kadam
@ 2021-09-22 20:58       ` Shukla, Shivanshu
  0 siblings, 0 replies; 20+ messages in thread
From: Shukla, Shivanshu @ 2021-09-22 20:58 UTC (permalink / raw)
  To: Kadam, Pallavi, dev
  Cc: thomas, Zhang, Qi Z, fady, Narcisa.Vasile, dmitry.kozliuk, Yigit,
	Ferruh, Wu, Jingjing, Xing, Beilei, Menon, Ranjit

Ack-by:Shivanshu Shukla <Shivanshu.shukla@intel.com>

-----Original Message-----
From: Kadam, Pallavi <pallavi.kadam@intel.com> 
Sent: Thursday, September 9, 2021 4:23 PM
To: dev@dpdk.org
Cc: thomas@monjalon.net; Zhang, Qi Z <qi.z.zhang@intel.com>; fady@mellanox.com; Narcisa.Vasile@microsoft.com; dmitry.kozliuk@gmail.com; Yigit, Ferruh <ferruh.yigit@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Menon, Ranjit <ranjit.menon@intel.com>; Shukla, Shivanshu <shivanshu.shukla@intel.com>; Kadam, Pallavi <pallavi.kadam@intel.com>
Subject: [PATCH v3 1/3] net/iavf: build on Windows

- Enable IAVF PMD build on Windows
- Replace x86intrin.h with rte_vect.h to avoid __m_prefetchw conflicting
  types
- Fix for pointer and integer sign warnings using Clang compiler on
  Windows
- Add extra cflags '-fno-asynchronous-unwind-tables'
  to avoid MinGW build error:
  Error: invalid register for .seh_savexmm

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 drivers/net/iavf/iavf.h                 | 3 ++-
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   | 2 +-
 drivers/net/iavf/iavf_rxtx_vec_avx512.c | 2 +-
 drivers/net/iavf/iavf_tm.c              | 2 +-
 drivers/net/iavf/meson.build            | 9 ++++-----
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h index b3bd078111..55b20a80af 100644
--- a/drivers/net/iavf/iavf.h
+++ b/drivers/net/iavf/iavf.h
@@ -335,7 +335,8 @@ _clear_cmd(struct iavf_info *vf)  static inline int  _atomic_set_cmd(struct iavf_info *vf, enum virtchnl_ops ops)  {
-	int ret = rte_atomic32_cmpset(&vf->pend_cmd, VIRTCHNL_OP_UNKNOWN, ops);
+	int ret = rte_atomic32_cmpset((volatile uint32_t *)&vf->pend_cmd,
+		VIRTCHNL_OP_UNKNOWN, ops);
 
 	if (!ret)
 		PMD_DRV_LOG(ERR, "There is incomplete cmd %d", vf->pend_cmd); diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
index 475070e036..96c05d9319 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
index 571161c0cd..cb0b057b0f 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx512.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
@@ -4,7 +4,7 @@
 
 #include "iavf_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/iavf/iavf_tm.c b/drivers/net/iavf/iavf_tm.c index 3c80276ff3..8d92062c7f 100644
--- a/drivers/net/iavf/iavf_tm.c
+++ b/drivers/net/iavf/iavf_tm.c
@@ -321,7 +321,7 @@ iavf_tm_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 f2010a8337..36a82e3faa 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -1,11 +1,6 @@
 # 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']
 
@@ -25,6 +20,10 @@ sources = files(
 if arch_subdir == 'x86'
     sources += files('iavf_rxtx_vec_sse.c')
 
+    if is_windows and cc.get_id() != 'clang'
+        cflags += ['-fno-asynchronous-unwind-tables']
+    endif
+
     # compile AVX2 version if either:
     # a. we have AVX supported in minimum instruction set baseline
     # b. it's not minimum instruction set, but supported by compiler
--
2.31.1.windows.1


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

* Re: [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random Pallavi Kadam
@ 2021-09-22 21:00       ` Shukla, Shivanshu
  2021-09-30 16:46       ` Thomas Monjalon
  1 sibling, 0 replies; 20+ messages in thread
From: Shukla, Shivanshu @ 2021-09-22 21:00 UTC (permalink / raw)
  To: Kadam, Pallavi, dev
  Cc: thomas, Zhang, Qi Z, fady, Narcisa.Vasile, dmitry.kozliuk, Yigit,
	Ferruh, Wu, Jingjing, Xing, Beilei, Menon, Ranjit

Ack-by: Shivanshu Shukla <shivanshu.shukla@intel.com>

-----Original Message-----
From: Kadam, Pallavi <pallavi.kadam@intel.com> 
Sent: Thursday, September 9, 2021 4:23 PM
To: dev@dpdk.org
Cc: thomas@monjalon.net; Zhang, Qi Z <qi.z.zhang@intel.com>; fady@mellanox.com; Narcisa.Vasile@microsoft.com; dmitry.kozliuk@gmail.com; Yigit, Ferruh <ferruh.yigit@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Menon, Ranjit <ranjit.menon@intel.com>; Shukla, Shivanshu <shivanshu.shukla@intel.com>; Kadam, Pallavi <pallavi.kadam@intel.com>
Subject: [PATCH v3 2/3] lib/net: fix support of random

IAVF PMD needs to generate a random MAC address if it is not configured by host.
'random' is now supported on Windows.

Fixes: 16f0d03098cb ("net: build on Windows")
Cc: fady@mellanox.com
Cc: stable@dpdk.org

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
 lib/net/rte_ether.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/lib/net/rte_ether.c b/lib/net/rte_ether.c index 34605838b5..ced65ed9f3 100644
--- a/lib/net/rte_ether.c
+++ b/lib/net/rte_ether.c
@@ -10,16 +10,12 @@
 void
 rte_eth_random_addr(uint8_t *addr)
 {
-#ifdef RTE_EXEC_ENV_WINDOWS /* FIXME: random is not supported */
-	RTE_SET_USED(addr);
-#else
 	uint64_t rand = rte_rand();
 	uint8_t *p = (uint8_t *)&rand;
 
 	rte_memcpy(addr, p, RTE_ETHER_ADDR_LEN);
 	addr[0] &= (uint8_t)~RTE_ETHER_GROUP_ADDR;	/* clear multicast bit */
 	addr[0] |= RTE_ETHER_LOCAL_ADMIN_ADDR;	/* set local assignment bit */
-#endif
 }
 
 void
--
2.31.1.windows.1


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

* Re: [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
@ 2021-09-22 21:01       ` Shukla, Shivanshu
  2021-09-30 16:49       ` Thomas Monjalon
  2021-09-30 19:07       ` Thomas Monjalon
  2 siblings, 0 replies; 20+ messages in thread
From: Shukla, Shivanshu @ 2021-09-22 21:01 UTC (permalink / raw)
  To: Kadam, Pallavi, dev
  Cc: thomas, Zhang, Qi Z, fady, Narcisa.Vasile, dmitry.kozliuk, Yigit,
	Ferruh, Wu, Jingjing, Xing, Beilei, Menon, Ranjit

-----Original Message-----
From: Kadam, Pallavi <pallavi.kadam@intel.com> 
Sent: Thursday, September 9, 2021 4:23 PM
To: dev@dpdk.org
Cc: thomas@monjalon.net; Zhang, Qi Z <qi.z.zhang@intel.com>; fady@mellanox.com; Narcisa.Vasile@microsoft.com; dmitry.kozliuk@gmail.com; Yigit, Ferruh <ferruh.yigit@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Menon, Ranjit <ranjit.menon@intel.com>; Shukla, Shivanshu <shivanshu.shukla@intel.com>; Kadam, Pallavi <pallavi.kadam@intel.com>
Subject: [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes

Add documentation to support iavf PMD on Windows.
Update the release notes for the same.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
Ack-by: Shivanshu Shukla <shivanshu.shukla@intel.com>
---
 doc/guides/nics/intel_vf.rst           | 18 ++++++++++++++++++
 doc/guides/rel_notes/release_21_11.rst |  4 ++++
 2 files changed, 22 insertions(+)

diff --git a/doc/guides/nics/intel_vf.rst b/doc/guides/nics/intel_vf.rst index fcea8151bf..20b89431a4 100644
--- a/doc/guides/nics/intel_vf.rst
+++ b/doc/guides/nics/intel_vf.rst
@@ -616,3 +616,21 @@ which belongs to the destination VF on the VM.
 .. figure:: img/inter_vm_comms.*
 
    Inter-VM Communication
+
+
+Windows Support
+---------------
+
+*   IAVF PMD currently is supported only inside Windows guest created on Linux host.
+
+*   Physical PCI resources are exposed as virtual functions into Windows VM using SR-IOV pass through feature.
+
+*   Create a Windows guest on Linux host using KVM hypervisor. Refer to the steps mentioned in the above section "Setting Up a KVM Virtual Machine monitor"
+
+*   In the Host machine, download and install the kernel Ethernet driver from:
+    
+`http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=146
+87 
+<http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=146
+87>`_
+
+*   For Windows guest, install NetUIO driver in place of existing built-in(inbox) Virtual Function driver.
+
+*   To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository
+    <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst
index 675b573834..f5ae66a0ef 100644
--- a/doc/guides/rel_notes/release_21_11.rst
+++ b/doc/guides/rel_notes/release_21_11.rst
@@ -62,6 +62,10 @@ New Features
   * Added bus-level parsing of the devargs syntax.
   * Kept compatibility with the legacy syntax as parsing fallback.
 
+* **Updated Intel iavf driver.**
+
+  * Added Intel iavf support on Windows.
+
 
 Removed Items
 -------------
--
2.31.1.windows.1


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

* Re: [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
                       ` (4 preceding siblings ...)
  2021-09-22 20:58     ` Shukla, Shivanshu
@ 2021-09-27 21:33     ` Shukla, Shivanshu
  2021-09-30 20:15     ` Thomas Monjalon
  6 siblings, 0 replies; 20+ messages in thread
From: Shukla, Shivanshu @ 2021-09-27 21:33 UTC (permalink / raw)
  To: Kadam, Pallavi, dev
  Cc: thomas, Zhang, Qi Z, fady, Narcisa.Vasile, dmitry.kozliuk, Yigit,
	Ferruh, Wu, Jingjing, Xing, Beilei, Menon, Ranjit


On 9/9/2021 4:23 PM, Kadam, Pallavi wrote:
> This patch-set enables building the iavf PMD on Windows.
> Currently, it uses alarm functions so, depends on following series.
>
> Depends-on: series-18447 ("net/iavf: enable interrupt polling")
>
> v3 changes:
>          - Fix doc build warning
> v2 changes:
>          - Rebase for 21.11
>          - Fix for 'random'
>
> Pallavi Kadam (3):
>    net/iavf: build on Windows
>    lib/net: fix support of random
>    doc: update iavf PMD and 21.11 release notes
>
>   doc/guides/nics/intel_vf.rst            | 18 ++++++++++++++++++
>   doc/guides/rel_notes/release_21_11.rst  |  4 ++++
>   drivers/net/iavf/iavf.h                 |  3 ++-
>   drivers/net/iavf/iavf_rxtx_vec_avx2.c   |  2 +-
>   drivers/net/iavf/iavf_rxtx_vec_avx512.c |  2 +-
>   drivers/net/iavf/iavf_tm.c              |  2 +-
>   drivers/net/iavf/meson.build            |  9 ++++-----
>   lib/net/rte_ether.c                     |  4 ----
>   8 files changed, 31 insertions(+), 13 deletions(-)
>
> --
Acked-by: Shivanshu Shukla <shivanshu.shukla@intel.com>

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

* Re: [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random Pallavi Kadam
  2021-09-22 21:00       ` Shukla, Shivanshu
@ 2021-09-30 16:46       ` Thomas Monjalon
  2021-09-30 22:36         ` Kadam, Pallavi
  1 sibling, 1 reply; 20+ messages in thread
From: Thomas Monjalon @ 2021-09-30 16:46 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla

10/09/2021 01:23, Pallavi Kadam:
> IAVF PMD needs to generate a random MAC address if it is not configured
> by host.
> 'random' is now supported on Windows.

This patch can be the first of this series
to respect the dependency order.

> Fixes: 16f0d03098cb ("net: build on Windows")
> Cc: fady@mellanox.com
> Cc: stable@dpdk.org

This commit log does not explain why it was disabled before,
and what makes it possible now, but for sure,
there is no need to backport.
I will remove above lines.

> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
> ---
>  rte_eth_random_addr(uint8_t *addr)
>  {
> -#ifdef RTE_EXEC_ENV_WINDOWS /* FIXME: random is not supported */
> -	RTE_SET_USED(addr);
> -#else
>  	uint64_t rand = rte_rand();
>  	uint8_t *p = (uint8_t *)&rand;
>  
>  	rte_memcpy(addr, p, RTE_ETHER_ADDR_LEN);
>  	addr[0] &= (uint8_t)~RTE_ETHER_GROUP_ADDR;	/* clear multicast bit */
>  	addr[0] |= RTE_ETHER_LOCAL_ADMIN_ADDR;	/* set local assignment bit */
> -#endif
>  }




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

* Re: [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
  2021-09-22 21:01       ` Shukla, Shivanshu
@ 2021-09-30 16:49       ` Thomas Monjalon
  2021-09-30 19:07       ` Thomas Monjalon
  2 siblings, 0 replies; 20+ messages in thread
From: Thomas Monjalon @ 2021-09-30 16:49 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla

10/09/2021 01:23, Pallavi Kadam:
> Add documentation to support iavf PMD on Windows.
> Update the release notes for the same.
> 
> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
> ---
>  doc/guides/nics/intel_vf.rst           | 18 ++++++++++++++++++
>  doc/guides/rel_notes/release_21_11.rst |  4 ++++
>  2 files changed, 22 insertions(+)

It should be squashed with the patch enabling IAVF on Windows.
In general, doc should not be updated separately.



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

* Re: [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes
  2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
  2021-09-22 21:01       ` Shukla, Shivanshu
  2021-09-30 16:49       ` Thomas Monjalon
@ 2021-09-30 19:07       ` Thomas Monjalon
  2 siblings, 0 replies; 20+ messages in thread
From: Thomas Monjalon @ 2021-09-30 19:07 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla

10/09/2021 01:23, Pallavi Kadam:
> Add documentation to support iavf PMD on Windows.
> Update the release notes for the same.
> 
> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
> ---
> --- a/doc/guides/nics/intel_vf.rst
> +++ b/doc/guides/nics/intel_vf.rst
> +Windows Support
> +---------------
> +
> +*   IAVF PMD currently is supported only inside Windows guest created on Linux host.
> +
> +*   Physical PCI resources are exposed as virtual functions into Windows VM using SR-IOV pass through feature.
> +
> +*   Create a Windows guest on Linux host using KVM hypervisor. Refer to the steps mentioned in the above section "Setting Up a KVM Virtual Machine monitor"

It should be an internal hyperlink.

> +
> +*   In the Host machine, download and install the kernel Ethernet driver from:
> +    `http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=14687 <http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=14687>`_

No need to print the full URL as hyperlink.

> +
> +*   For Windows guest, install NetUIO driver in place of existing built-in(inbox) Virtual Function driver.
> +
> +*   To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository
> +    <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.




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

* Re: [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows
  2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
                       ` (5 preceding siblings ...)
  2021-09-27 21:33     ` Shukla, Shivanshu
@ 2021-09-30 20:15     ` Thomas Monjalon
  6 siblings, 0 replies; 20+ messages in thread
From: Thomas Monjalon @ 2021-09-30 20:15 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: dev, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla

> Pallavi Kadam (3):
>   net/iavf: build on Windows
>   lib/net: fix support of random
>   doc: update iavf PMD and 21.11 release notes

Applied with improvements and intel.com links fixed.



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

* Re: [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random
  2021-09-30 16:46       ` Thomas Monjalon
@ 2021-09-30 22:36         ` Kadam, Pallavi
  0 siblings, 0 replies; 20+ messages in thread
From: Kadam, Pallavi @ 2021-09-30 22:36 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, qi.z.zhang, fady, Narcisa.Vasile, dmitry.kozliuk,
	ferruh.yigit, jingjing.wu, beilei.xing, ranjit.menon,
	shivanshu.shukla


On 9/30/2021 9:46 AM, Thomas Monjalon wrote:
> 10/09/2021 01:23, Pallavi Kadam:
>> IAVF PMD needs to generate a random MAC address if it is not configured
>> by host.
>> 'random' is now supported on Windows.
> This patch can be the first of this series
> to respect the dependency order.
>
>> Fixes: 16f0d03098cb ("net: build on Windows")
>> Cc: fady@mellanox.com
>> Cc: stable@dpdk.org
> This commit log does not explain why it was disabled before,
> and what makes it possible now, but for sure,

At the time rte_rand was not exported to Windows.

We were adding the files to eal/common as and when required in the 
Windows build.

So, rte_random.c was added in 21.02 release after Fady's patch was 
already merged.

> there is no need to backport.
ok
> I will remove above lines.
Thank you!
>
>> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
>> Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
>> ---
>>   rte_eth_random_addr(uint8_t *addr)
>>   {
>> -#ifdef RTE_EXEC_ENV_WINDOWS /* FIXME: random is not supported */
>> -	RTE_SET_USED(addr);
>> -#else
>>   	uint64_t rand = rte_rand();
>>   	uint8_t *p = (uint8_t *)&rand;
>>   
>>   	rte_memcpy(addr, p, RTE_ETHER_ADDR_LEN);
>>   	addr[0] &= (uint8_t)~RTE_ETHER_GROUP_ADDR;	/* clear multicast bit */
>>   	addr[0] |= RTE_ETHER_LOCAL_ADMIN_ADDR;	/* set local assignment bit */
>> -#endif
>>   }
>
>

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

end of thread, other threads:[~2021-09-30 22:36 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-28 23:08 [dpdk-dev] [PATCH] net/iavf: enable on Windows Pallavi Kadam
2021-09-09 20:05 ` [dpdk-dev] [PATCH v2 0/3] Support iavf PMD " Pallavi Kadam
2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 1/3] net/iavf: build " Pallavi Kadam
2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 2/3] lib/net: fix support of random Pallavi Kadam
2021-09-09 20:05   ` [dpdk-dev] [PATCH v2 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
2021-09-09 23:23   ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Pallavi Kadam
2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 1/3] net/iavf: build " Pallavi Kadam
2021-09-22 20:58       ` Shukla, Shivanshu
2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 2/3] lib/net: fix support of random Pallavi Kadam
2021-09-22 21:00       ` Shukla, Shivanshu
2021-09-30 16:46       ` Thomas Monjalon
2021-09-30 22:36         ` Kadam, Pallavi
2021-09-09 23:23     ` [dpdk-dev] [PATCH v3 3/3] doc: update iavf PMD and 21.11 release notes Pallavi Kadam
2021-09-22 21:01       ` Shukla, Shivanshu
2021-09-30 16:49       ` Thomas Monjalon
2021-09-30 19:07       ` Thomas Monjalon
2021-09-22 20:56     ` [dpdk-dev] [PATCH v3 0/3] Support iavf PMD on Windows Shukla, Shivanshu
2021-09-22 20:58     ` Shukla, Shivanshu
2021-09-27 21:33     ` Shukla, Shivanshu
2021-09-30 20:15     ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).