[v4] net/e1000: build on Windows

Message ID 20211020034749.1285-1-u9012063@gmail.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series [v4] net/e1000: build on Windows |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-spell-check-testing warning Testing issues
ci/iol-broadcom-Functional success Functional Testing PASS
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS

Commit Message

William Tu Oct. 20, 2021, 3:47 a.m. UTC
  This patch enables building the e1000 driver for Windows.
I tested using two Windows VM on top of VMware Fusion,
creating two e1000 devices with device ID 0x10D3 (8274L),
verifying rx/tx works correctly using dpdk-testpmd.exe
rxonly and txonly mode.

Signed-off-by: William Tu <u9012063@gmail.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Pallavi Kadam <pallavi.kadam@intel.com>
Tested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Tested-by: Pallavi Kadam <pallavi.kadam@intel.com>
---
v4:
* remove the documentation about Windows setup.
  this is already mention in doc/windows_gsg
v3:
* Add acked and tested by tags
* @Dmitry: I think it's better keep the doc for
  people to reference NetUIO setup.
* I will send corresponding netuio device id patch
  to dpdk-kmods
* A short demo:
  https://youtu.be/UZ9hm2jQa2Y

---
 doc/guides/nics/features/e1000.ini     | 1 +
 doc/guides/rel_notes/release_21_11.rst | 4 ++++
 drivers/net/e1000/base/e1000_osdep.h   | 2 ++
 drivers/net/e1000/e1000_ethdev.h       | 1 +
 drivers/net/e1000/meson.build          | 6 ------
 5 files changed, 8 insertions(+), 6 deletions(-)
  

Comments

Qi Zhang Oct. 21, 2021, 2:56 a.m. UTC | #1
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of William Tu
> Sent: Wednesday, October 20, 2021 11:48 AM
> To: dev@dpdk.org
> Cc: Wang, Haiyue <haiyue.wang@intel.com>; Kadam, Pallavi
> <pallavi.kadam@intel.com>; Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> Subject: [dpdk-dev] [PATCH v4] net/e1000: build on Windows
> 
> This patch enables building the e1000 driver for Windows.
> I tested using two Windows VM on top of VMware Fusion, creating two e1000
> devices with device ID 0x10D3 (8274L), verifying rx/tx works correctly using
> dpdk-testpmd.exe rxonly and txonly mode.
> 
> Signed-off-by: William Tu <u9012063@gmail.com>
> Acked-by: Haiyue Wang <haiyue.wang@intel.com>
> Acked-by: Pallavi Kadam <pallavi.kadam@intel.com>
> Tested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> Tested-by: Pallavi Kadam <pallavi.kadam@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  

Patch

diff --git a/doc/guides/nics/features/e1000.ini b/doc/guides/nics/features/e1000.ini
index 5af6040e375b..b33f5a86e2e9 100644
--- a/doc/guides/nics/features/e1000.ini
+++ b/doc/guides/nics/features/e1000.ini
@@ -27,6 +27,7 @@  Tx descriptor status = Y
 Basic stats          = Y
 FreeBSD              = Y
 Linux                = Y
+Windows              = Y
 x86-32               = Y
 x86-64               = Y
 
diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst
index 3362c52a738c..876b5f1886bb 100644
--- a/doc/guides/rel_notes/release_21_11.rst
+++ b/doc/guides/rel_notes/release_21_11.rst
@@ -91,6 +91,10 @@  New Features
   * Implement support for tunnel offload.
   * Updated HWRM API to version 1.10.2.44
 
+* **Updated Intel e1000 emulated driver.**
+
+  * Added Intel e1000 support on Windows.
+
 * **Updated Intel iavf driver.**
 
   * Added Intel iavf support on Windows.
diff --git a/drivers/net/e1000/base/e1000_osdep.h b/drivers/net/e1000/base/e1000_osdep.h
index 94a49f340446..cd90228cef59 100644
--- a/drivers/net/e1000/base/e1000_osdep.h
+++ b/drivers/net/e1000/base/e1000_osdep.h
@@ -34,7 +34,9 @@ 
 #define DEBUGOUT6(S, args...)   DEBUGOUT(S, ##args)
 #define DEBUGOUT7(S, args...)   DEBUGOUT(S, ##args)
 
+#ifndef UNREFERENCED_PARAMETER
 #define UNREFERENCED_PARAMETER(_p)
+#endif
 #define UNREFERENCED_1PARAMETER(_p)
 #define UNREFERENCED_2PARAMETER(_p, _q)
 #define UNREFERENCED_3PARAMETER(_p, _q, _r)
diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
index 8e10e2777e64..bf0e902991a7 100644
--- a/drivers/net/e1000/e1000_ethdev.h
+++ b/drivers/net/e1000/e1000_ethdev.h
@@ -6,6 +6,7 @@ 
 #define _E1000_ETHDEV_H_
 
 #include <stdint.h>
+#include <sys/queue.h>
 
 #include <rte_flow.h>
 #include <rte_time.h>
diff --git a/drivers/net/e1000/meson.build b/drivers/net/e1000/meson.build
index c5e48c6bc7fc..296ec25f2ce7 100644
--- a/drivers/net/e1000/meson.build
+++ b/drivers/net/e1000/meson.build
@@ -1,12 +1,6 @@ 
 # 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]