net/e1000: build on Windows
Subsystems (2)
PATCH 1/1 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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.
---
Example when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver: net_e1000_em (8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
Warning! port-topology=paired and odd forward ports number, the last port will p air with itself.
Configuring Port 0 (socket 0)
Port 0: 00:50:56:3A:4D:A6
Checking link statuses...
Done
No commandline core given, start packet forwarding
allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=256 - RX free threshold=0
TX desc=256 - TX free threshold=32
TX offloads=0x0 - TX RS bit threshold=32
Press enter to exit
Telling cores to stop...
Waiting for lcores to finish...
---------------------- Forward statistics for port 0 ------------------
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616
------------------------------------------------------------------------
+++++++++++++++ Accumulated forward statistics for all ports+++++++++++
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
--- drivers/net/e1000/base/e1000_osdep.h | 2 ++ drivers/net/e1000/e1000_ethdev.h | 1 + drivers/net/e1000/meson.build | 6 ------ 3 files changed, 3 insertions(+), 6 deletions(-)
drivers/net/e1000/base/e1000_osdep.h +2 -0
@@ -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)
drivers/net/e1000/e1000_ethdev.h +1 -0
@@ -6,6 +6,7 @@#define _E1000_ETHDEV_H_#include <stdint.h> +#include <sys/queue.h> #include <rte_flow.h> #include <rte_time.h>
drivers/net/e1000/meson.build +0 -6
@@ -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]
Signature · 1 line
2.30.2
Quoted 8 lines · William Tu
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.Signed-off-by William Tu <[email protected]>
Please, Cc: driver maintainers when touching one.
You can pass --to-cmd or --cc-cmd ./devtools/get-maintainer.sh when calling git send-email as suggested in the contributing howto.
https://doc.dpdk.org/guides/contributing/patches.html#sending-patches
Quoted 9 lines
---
Example when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver:net_e1000_em(8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
Odd to read this, and still see testpmd getting one port afterwards.
Could you enable debug logs?
It will be verbose but let's try with --log-level=*:debug.
Quoted 22 lines
testpmd: create a new mbuf pool <
mb_pool_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected:ring_mp_mcWarning! port-topology=paired and odd forward ports number, the last port will p air with itself.
Configuring Port 0 (socket 0)
Port 0: 00:50:56:3A:4D:A6
Checking link statuses...
Done
No commandline core given, start packet forwarding
allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=256 - RX free threshold=0
TX desc=256 - TX free threshold=32
TX offloads=0x0 - TX RS bit threshold=32
Signature · 1 line
David Marchand
Quoted 9 lines · David Marchand
Quoted 7 lines · William Tu
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.
Quoted 3 lines
Quoted 1 line
Signed-off-by William Tu <[email protected]>Please, Cc: driver maintainers when touching one.
And I pressed Send before adding Haiyue... fixed.
Signature · 1 line
David Marchand
Quoted 9 lines · David Marchand
Quoted 7 lines · William Tu
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.
Quoted 6 lines
Quoted 1 line
Signed-off-by William Tu <[email protected]>Please, Cc: driver maintainers when touching one.
You can pass --to-cmd or --cc-cmd./devtools/get-maintainer.shwhen calling git send-email as suggested in the contributing howto.
https://doc.dpdk.org/guides/contributing/patches.html#sending-patches
Got it, thanks.
Quoted 12 lines
Quoted 11 lines
---
Example when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver:net_e1000_em(8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
Quoted 1 line
Odd to read this, and still see testpmd getting one port afterwards.
This is expected. Because I only enable 1 dpdk port (0000:03:00.0) The 0000:1b:00.0 is still running kernel driver. I will mention it in next version.
Thanks
William
Quoted 9 lines · William Tu
Quoted 9 lines
Quoted 8 lines
Example when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver:net_e1000_em(8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
Quoted 4 lines
Quoted 1 line
Odd to read this, and still see testpmd getting one port afterwards.
This is expected. Because I only enable 1 dpdk port (0000:03:00.0) The 0000:1b:00.0 is still running kernel driver. I will mention it in next version.
Ok sorry, I did not notice.
No need to mention, simply start testpmd with -a 0000:03:00.0.
Signature · 1 line
David Marchand
PATCH v2 1/1 net/e1000: build on Windows
In reply to William TuThis 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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.
---
A short demo:
https://youtu.be/UZ9hm2jQa2Y
Example when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver: net_e1000_em (8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
Warning! port-topology=paired and odd forward ports number, the last port will p air with itself.
Configuring Port 0 (socket 0)
Port 0: 00:50:56:3A:4D:A6
Checking link statuses...
Done
No commandline core given, start packet forwarding
allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=256 - RX free threshold=0
TX desc=256 - TX free threshold=32
TX offloads=0x0 - TX RS bit threshold=32
Press enter to exit
Telling cores to stop...
Waiting for lcores to finish...
---------------------- Forward statistics for port 0 ------------------
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616
------------------------------------------------------------------------
+++++++++++++++ Accumulated forward statistics for all ports+++++++++++
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--- doc/guides/nics/e1000em.rst | 13 +++++++++++++ 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 ------ 6 files changed, 21 insertions(+), 6 deletions(-)
doc/guides/nics/e1000em.rst +13 -0
@@ -1,6 +1,8 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2010-2014 Intel Corporation. +.. include:: <isonum.txt> + Driver for VM Emulated Devices ==============================
@@ -153,3 +155,14 @@ The following are known limitations: #. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive. #. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up. + +Windows Configuration +--------------------- + +- Follow the :doc:`guide for Windows <../windows_gsg/run_apps>` + to setup the basic DPDK environment. + +- Identify the Intel\ |reg| Ethernet adapter. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
doc/guides/nics/features/e1000.ini +1 -0
@@ -27,6 +27,7 @@ Tx descriptor status = Y Basic stats = Y FreeBSD = Y Linux = Y +Windows = Y x86-32 = Y x86-64 = Y
doc/guides/rel_notes/release_21_11.rst +4 -0
@@ -73,6 +73,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.
drivers/net/e1000/base/e1000_osdep.h +2 -0
@@ -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)
drivers/net/e1000/e1000_ethdev.h +1 -0
@@ -6,6 +6,7 @@#define _E1000_ETHDEV_H_#include <stdint.h> +#include <sys/queue.h> #include <rte_flow.h> #include <rte_time.h>
drivers/net/e1000/meson.build +0 -6
@@ -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]
Signature · 1 line
2.33.0.windows.2
Quoted 65 lines
-----Original Message-----
From: William Tu <[email protected]>
Sent: Friday, October 8, 2021 21:54
To: [email protected]
Cc: Kadam, Pallavi <[email protected]>; [email protected]; Wang, Haiyue <[email protected]>
Subject: [PATCH v2] net/e1000: build on WindowsThis 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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.Signed-off-by William Tu <[email protected]>Cc Haiyue Wang <[email protected]>---
A short demo:
https://youtu.be/UZ9hm2jQa2YExample when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver:net_e1000_em(8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected:ring_mp_mcWarning! port-topology=paired and odd forward ports number, the last port will p air with itself.
Configuring Port 0 (socket 0)
Port 0: 00:50:56:3A:4D:A6
Checking link statuses...
Done
No commandline core given, start packet forwarding
allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=256 - RX free threshold=0
TX desc=256 - TX free threshold=32
TX offloads=0x0 - TX RS bit threshold=32
Press enter to exitTelling cores to stop...
Waiting for lcores to finish...---------------------- Forward statistics for port 0 ------------------
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616------------------------------------------------------------------------
+++++++++++++++ Accumulated forward statistics for all ports+++++++++++
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Quoted 9 lines
--- doc/guides/nics/e1000em.rst | 13 +++++++++++++ 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 ------ 6 files changed, 21 insertions(+), 6 deletions(-)
LGTM, thanks!
Hi @ Pallavi, What do you think about the patch ?
Your one more ACK will be nice. ;-)
Quoted 3 lines
--
2.33.0.windows.2
Quoted 74 lines · Haiyue
Quoted 65 lines
-----Original Message-----
From: William Tu <[email protected]>
Sent: Friday, October 8, 2021 21:54
To: [email protected]
Cc: Kadam, Pallavi <[email protected]>; [email protected]; Wang, Haiyue <[email protected]>
Subject: [PATCH v2] net/e1000: build on WindowsThis 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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.Signed-off-by William Tu <[email protected]>Cc Haiyue Wang <[email protected]>---
A short demo:
https://youtu.be/UZ9hm2jQa2YExample when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver:net_e1000_em(8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected:ring_mp_mcWarning! port-topology=paired and odd forward ports number, the last port will p air with itself.
Configuring Port 0 (socket 0)
Port 0: 00:50:56:3A:4D:A6
Checking link statuses...
Done
No commandline core given, start packet forwarding
allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=256 - RX free threshold=0
TX desc=256 - TX free threshold=32
TX offloads=0x0 - TX RS bit threshold=32
Press enter to exitTelling cores to stop...
Waiting for lcores to finish...---------------------- Forward statistics for port 0 ------------------
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616------------------------------------------------------------------------
+++++++++++++++ Accumulated forward statistics for all ports+++++++++++
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Quoted 9 lines
--- doc/guides/nics/e1000em.rst | 13 +++++++++++++ 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 ------ 6 files changed, 21 insertions(+), 6 deletions(-)
Quoted 6 lines
LGTM, thanks!
Acked-by Haiyue Wang <[email protected]>Hi @ Pallavi, What do you think about the patch ?
Your one more ACK will be nice. ;-)
Yes, code looks good to me. I actually don't have the exact same 1GbE device William is using.
We are trying to figure out some issues with the current 1GbE device that is installed.
So, will acknowledge as soon as we test it on Windows. Thanks,
Quoted 3 lines
Quoted 3 lines
--
2.33.0.windows.2
2021-10-08 06:53 (UTC-0700), William Tu:
Quoted 8 lines
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.Signed-off-by William Tu <[email protected]>Cc Haiyue Wang <[email protected]>
Will there be an accompanying kmods patch to add the device ID to .inf?
With device ID added to netuio, in QEMU with -device e1000e,
Quoted 18 lines
doc/guides/nics/e1000em.rst +3
-0@@ -1,6 +1,8 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2010-2014 Intel Corporation. +.. include:: <isonum.txt> + Driver for VM Emulated Devices ==============================@@ -153,3 +155,14 @@ The following are known limitations: #. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive. #. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up. +
doc/guides/nics/e1000em.rst The following are known limitations: · line 168
Quoted 10 lines
doc/guides/nics/e1000em.rst +10
-0+Windows Configuration +--------------------- + +- Follow the :doc:`guide for Windows <../windows_gsg/run_apps>` + to setup the basic DPDK environment. + +- Identify the Intel\ |reg| Ethernet adapter. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
There is nothing special about setting up this device on Windows. I think we don't need this part.
Quoted 32 lines · Dmitry Kozlyuk
2021-10-08 06:53 (UTC-0700), William Tu:
Quoted 8 lines
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.Signed-off-by William Tu <[email protected]>Cc Haiyue Wang <[email protected]>Will there be an accompanying kmods patch to add the device ID to .inf?
With device ID added to netuio, in QEMU with -device e1000e,
Tested-by Dmitry Kozlyuk <[email protected]>Quoted 16 lines
doc/guides/nics/e1000em.rst +2
-0@@ -1,6 +1,8 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2010-2014 Intel Corporation. +.. include:: <isonum.txt> + Driver for VM Emulated Devices ==============================@@ -153,3 +155,14 @@ The following are known limitations: #. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive.
Quoted 15 lines
doc/guides/nics/e1000em.rst The following are known limitations: · line 168
Quoted 12 lines
doc/guides/nics/e1000em.rst +11
-0#. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up. + +Windows Configuration +--------------------- + +- Follow the :doc:`guide for Windows <../windows_gsg/run_apps>` + to setup the basic DPDK environment. + +- Identify the Intel\ |reg| Ethernet adapter. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.There is nothing special about setting up this device on Windows. I think we don't need this part.
Thank you. I will add the Device ID to netuio.inf file and remove the above part.
Will wait for Pallavi's test and resend the patch.
Thanks
William
Quoted 5 lines
Quoted 5 lines
doc/guides/nics/e1000em.rst +5
-0+Windows Configuration +--------------------- + +- Follow the :doc:`guide for Windows <../windows_gsg/run_apps>` + to setup the basic DPDK environment.
Quoted 8 lines
doc/guides/nics/e1000em.rst The following are known limitations: · line 168
Quoted 5 lines
doc/guides/nics/e1000em.rst +5
-0+ +- Identify the Intel\ |reg| Ethernet adapter. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.There is nothing special about setting up this device on Windows. I think we don't need this part.
Hi Dmitry,
I keep this part in my v3 patch.
However, I think we should move or copy the netuio configuration guide to DPDK repo
https://doc.dpdk.org/guides/windows_gsg/run_apps.html
maybe
4.2: Load the virt2phys driver
4.3: Load the NetUIO driver
4.4: Run helloworld example
Thanks
William
Quoted 9 lines · William Tu
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.Signed-off-by William Tu <[email protected]>Cc Haiyue Wang <[email protected]>---
Quoted 9 lines · Pallavi
Quoted 6 lines · William Tu
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.
Quoted 7 lines
Quoted 3 lines
Signed-off-by William Tu <[email protected]>Cc Haiyue Wang <[email protected]>---
Tested-by Pallavi Kadam <[email protected]>Acked-by Pallavi Kadam <[email protected]>
Thanks!
I'm curious, what device ID are you testing so I can also add it to the netuio.inf.
William
Quoted 12 lines · William Tu
Quoted 11 lines · Pallavi
Quoted 9 lines · William Tu
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, verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.Signed-off-by William Tu <[email protected]>Cc Haiyue Wang <[email protected]>---
Quoted 7 lines
Quoted 3 lines
Tested-by Pallavi Kadam <[email protected]>Acked-by Pallavi Kadam <[email protected]>Thanks!
I'm curious, what device ID are you testing so I can also add it to the netuio.inf.
William
The Device ID is: 1521
Used the following string:
Intel.E1521NC.Description = "Intel(R) I350 Gigabit Network Connection"
Thanks,
Pallavi
PATCH v3 1/1 net/e1000: build on Windows
In reply to William TuThis 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.
---
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
Example when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver: net_e1000_em (8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
Warning! port-topology=paired and odd forward ports number, the last port will p air with itself.
Configuring Port 0 (socket 0)
Port 0: 00:50:56:3A:4D:A6
Checking link statuses...
Done
No commandline core given, start packet forwarding
allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=256 - RX free threshold=0
TX desc=256 - TX free threshold=32
TX offloads=0x0 - TX RS bit threshold=32
Press enter to exit
Telling cores to stop...
Waiting for lcores to finish...
---------------------- Forward statistics for port 0 ------------------
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616
------------------------------------------------------------------------
+++++++++++++++ Accumulated forward statistics for all ports+++++++++++
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
--- doc/guides/nics/e1000em.rst | 13 +++++++++++++ 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 ------ 6 files changed, 21 insertions(+), 6 deletions(-)
doc/guides/nics/e1000em.rst +13 -0
@@ -1,6 +1,8 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2010-2014 Intel Corporation. +.. include:: <isonum.txt> + Driver for VM Emulated Devices ==============================
@@ -153,3 +155,14 @@ The following are known limitations: #. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive. #. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up. + +Windows Configuration +--------------------- + +- Follow the :doc:`guide for Windows <../windows_gsg/run_apps>` + to setup the basic DPDK environment. + +- Identify the Intel\ |reg| Ethernet adapter. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
doc/guides/nics/features/e1000.ini +1 -0
@@ -27,6 +27,7 @@ Tx descriptor status = Y Basic stats = Y FreeBSD = Y Linux = Y +Windows = Y x86-32 = Y x86-64 = Y
doc/guides/rel_notes/release_21_11.rst +4 -0
@@ -73,6 +73,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.
drivers/net/e1000/base/e1000_osdep.h +2 -0
@@ -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)
drivers/net/e1000/e1000_ethdev.h +1 -0
@@ -6,6 +6,7 @@#define _E1000_ETHDEV_H_#include <stdint.h> +#include <sys/queue.h> #include <rte_flow.h> #include <rte_time.h>
drivers/net/e1000/meson.build +0 -6
@@ -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]
Signature · 1 line
2.33.0.windows.2
2021-10-09 09:31 (UTC-0700), William Tu:
Quoted 3 lines
[...]
* @Dmitry: I think it's better keep the doc for
people to reference NetUIO setup.
I won't insist, especially since Intel is OK with this. I've sent a patch to put the link in Windows GSG so that we won't need to repeat it for each PMD:
http://inbox.dpdk.org/dev/[email protected]/T/#u
Quoted 8 lines
-----Original Message-----
From: Dmitry Kozlyuk <[email protected]>
Sent: Sunday, October 10, 2021 01:28
To: William Tu <[email protected]>
Cc: [email protected]; Wang, Haiyue <[email protected]>; Kadam, Pallavi <[email protected]>
Subject: Re: [PATCH v3] net/e1000: build on Windows2021-10-09 09:31 (UTC-0700), William Tu:
Quoted 8 lines
Quoted 3 lines
[...]
* @Dmitry: I think it's better keep the doc for
people to reference NetUIO setup.I won't insist, especially since Intel is OK with this. I've sent a patch to put the link in Windows GSG so that we won't need to repeat it for each PMD:
http://inbox.dpdk.org/dev/[email protected]/T/#u
+1, This is better.
For PMD itself, it just need to set 'Windows = Y' in *ini if it supports Windows.
Hi Thomas,
Can we apply this patch?
Thanks
William
Quoted 178 lines · William Tu
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 <[email protected]>Acked-by Haiyue Wang <[email protected]>Acked-by Pallavi Kadam <[email protected]>Tested-by Dmitry Kozlyuk <[email protected]>Tested-by Pallavi Kadam <[email protected]>---
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-kmodsA short demo:
https://youtu.be/UZ9hm2jQa2Y
Example when running:
PS C:\dpdk> .\build\app\dpdk-testpmd.exe
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Multi-process support is requested, but not available.
EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate.
EAL: Probe PCI driver:net_e1000_em(8086:10d3) device: 0000:03:00.0 (socket 0)
EAL: Requested device 0000:1b:00.0 cannot be used
testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected:ring_mp_mcWarning! port-topology=paired and odd forward ports number, the last port will p air with itself.
Configuring Port 0 (socket 0)
Port 0: 00:50:56:3A:4D:A6
Checking link statuses...
Done
No commandline core given, start packet forwarding
allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00io packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x0
RX queue: 0
RX desc=256 - RX free threshold=0
TX desc=256 - TX free threshold=32
TX offloads=0x0 - TX RS bit threshold=32
Press enter to exitTelling cores to stop...
Waiting for lcores to finish...---------------------- Forward statistics for port 0 ------------------
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616------------------------------------------------------------------------
+++++++++++++++ Accumulated forward statistics for all ports+++++++++++
RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
--- doc/guides/nics/e1000em.rst | 13 +++++++++++++ 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 ------ 6 files changed, 21 insertions(+), 6 deletions(-)doc/guides/nics/e1000em.rst +13
-0@@ -1,6 +1,8 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2010-2014 Intel Corporation. +.. include:: <isonum.txt> + Driver for VM Emulated Devices ==============================@@ -153,3 +155,14 @@ The following are known limitations: #. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive. #. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up. + +Windows Configuration +--------------------- + +- Follow the :doc:`guide for Windows <../windows_gsg/run_apps>` + to setup the basic DPDK environment. + +- Identify the Intel\ |reg| Ethernet adapter. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.doc/guides/nics/features/e1000.ini +1
-0@@ -27,6 +27,7 @@ Tx descriptor status = Y Basic stats = Y FreeBSD = Y Linux = Y +Windows = Y x86-32 = Y x86-64 = Ydoc/guides/rel_notes/release_21_11.rst +4
-0@@ -73,6 +73,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.drivers/net/e1000/base/e1000_osdep.h +2
-0@@ -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)drivers/net/e1000/e1000_ethdev.h +1
-0@@ -6,6 +6,7 @@#define _E1000_ETHDEV_H_#include <stdint.h> +#include <sys/queue.h> #include <rte_flow.h> #include <rte_time.h> drivers/net/e1000/meson.build +0
-7@@ -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] --2.33.0.windows.2
19/10/2021 21:05, William Tu:
Quoted 2 lines
Hi Thomas,
Can we apply this patch?
The net driver patches are managed in next-net by Ferruh.
Quoted 12 lines · William Tu
Quoted 11 lines
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 <[email protected]>Acked-by Haiyue Wang <[email protected]>Acked-by Pallavi Kadam <[email protected]>Tested-by Dmitry Kozlyuk <[email protected]>Tested-by Pallavi Kadam <[email protected]>
PATCH v4 1/1 net/e1000: build on Windows
In reply to William TuThis 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.
---
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(-)
doc/guides/nics/features/e1000.ini +1 -0
@@ -27,6 +27,7 @@ Tx descriptor status = Y Basic stats = Y FreeBSD = Y Linux = Y +Windows = Y x86-32 = Y x86-64 = Y
doc/guides/rel_notes/release_21_11.rst +4 -0
@@ -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.
drivers/net/e1000/base/e1000_osdep.h +2 -0
@@ -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)
drivers/net/e1000/e1000_ethdev.h +1 -0
@@ -6,6 +6,7 @@#define _E1000_ETHDEV_H_#include <stdint.h> +#include <sys/queue.h> #include <rte_flow.h> #include <rte_time.h>
drivers/net/e1000/meson.build +0 -6
@@ -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]
Signature · 1 line
2.33.0.windows.2
Zhang, Qi Z
AppliedQuoted 15 lines
-----Original Message-----
From: dev <[email protected]> On Behalf Of William Tu
Sent: Wednesday, October 20, 2021 11:48 AM
To: [email protected]
Cc: Wang, Haiyue <[email protected]>; Kadam, Pallavi <[email protected]>; Dmitry Kozlyuk <[email protected]>
Subject: [dpdk-dev] [PATCH v4] net/e1000: build on WindowsThis 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 ID0x10D3(8274L), verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode.
Quoted 5 lines
Signed-off-by William Tu <[email protected]>Acked-by Haiyue Wang <[email protected]>Acked-by Pallavi Kadam <[email protected]>Tested-by Dmitry Kozlyuk <[email protected]>Tested-by Pallavi Kadam <[email protected]>
Applied to dpdk-next-net-intel.
Thanks
Qi