[v2] update Microsoft roadmap for 23.11

Message ID 1692224633-7896-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive)
State New
Series [v2] update Microsoft roadmap for 23.11 |

Commit Message

Tyler Retzlaff Aug. 16, 2023, 10:23 p.m. UTC
  Originally announced in dpdk-dev mailing list:

Details revised technical board meeting 2023/02/22

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
 content/roadmap/windows.md | 86 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)


diff --git a/content/roadmap/windows.md b/content/roadmap/windows.md
index 0a4c38a..dd3d06f 100644
--- a/content/roadmap/windows.md
+++ b/content/roadmap/windows.md
@@ -38,12 +38,98 @@  This list is obviously neither complete nor guaranteed.
 {{% /notice %}}
+#### Bringing support for Microsoft Visual Studio on Windows
+Starting with release 23.11 integration will begin to formally support
+the Microsoft Visual Studio toolset. Patches will be introduced that
+incrementally phase in full support of the core DPDK libraries, the DPDK
+unit tests and drivers.
+The following is a draft plan of work targeting the 23.11 release. The
+plan is subject to change depending on delays and discussions from the
+review process. Contributions toward this plan from the community are
+1. meson.build Changes
+Meson does not fully abstract away command line arguments to toolchains
+so an initial series is available that unblocks the use of MSVC. This
+change is pre-requisite to undertake subsequent steps.
+2. MSVC CI Pipeline Prerequisite
+Enablement of the DPDK CI pipeline is fundamental to efficiently
+progressing porting work for the MSVC toolset. A minimal patch series
+will be supplied to build the kvargs and telemetry libraries only.
+3. MSVC CI Pipeline Bootstrap
+With (2) complete work will be done to onboard CI pipeline for the MSVC
+toolset. Initially the pipeline will only guarantee compilation but as
+additional libraries and tests are ported will also allow execution of
+the DPDK unit tests.
+4. MSVC EAL porting
+EAL is pre-requisite for porting all other libraries, drivers and unit
+tests. Porting of EAL will be broken down into multiple-patch series to
+address & decouple from the toolchain intrinsics topic.
+Beginning with the DPDK 23.11 release a new option enable_stdatomic will
+be introduced to allow DPDK toolchain platform combinations to be built
+with or without C11 stdatomic.h. The use of either the standard atomics
+or traditional builtin intrinsics will be placed behind a thin macro
+based abstraction in the rte_ namespace.
+5. Unit Test Library Porting
+In addition to EAL there are several libraries required for the basic
+DPDK unit test harness. Multiple series will be submitted to port the
+appropriate libraries to allow the harness to be invoked.
+6. Unit Test Enablement
+Fundamental unit tests (typically those testing EAL functionality) will
+be ported to MSVC. For tests that depend only on EAL this is not expected
+to require code change but is just re-enabling compilation of the tests
+allowing them to be built and run.
+7. MSVC CI Pipeline Test Enablement
+With initial DPDK unit tests building & passing the CI pipeline will be
+updated to run the unit tests.
+8. Driver Porting
+Candidate drivers will be selected from the set currently built with
+clang. Multiple series will be submitted (probably per-driver) with
+changes to port to MSVC.
+Nearing the 23.11 release timeframe the plan will be reviewed to
+understand and schedule porting work beyond the 23.11 release.
+#### Kernel Mode Drivers
+Concurrent work is in progress by Microsoft to provide functionality
+by the netuio driver for use by DPDK PMDs in the next release of
+Partners and providers of hardware & PMDs will be able to use the
+WHQL certification process to sign driver packages containing PMDs
+that utilize netuio functionality. For more information visit the
+following links.
 #### General Availability
 * Ability to install and consume user-space static build
     - [Meson 0.58+ issue](https://github.com/mesonbuild/meson/issues/8981)
     - [pkg-config file for Npcap](https://github.com/nmap/npcap/issues/299)
 * [Working user-space shared build (DLL)][dll]
+    - Will be addressed as a part of Microsoft Visual Studio compiler support
 * Process, pipeline, and download area for signed builds of kernel-mode drivers
     - virt2phys security hardening