This patchset is to enable testpmd on windows. It mainly includes: - Enable building libraries on Windows that testpmd depends on - Add necessary macros required by testpmd on Windows in rte_os_shim.h - Add device event stubs for Windows - Resolve name collisions with Windows types - Add clock_gettime_monotic in testpmd on Windows - Fix parse_fec_mode to return fec_capa instead of mode - Replace POSIX specific codes - Disable unsupported Apps build on Windows - Enable testpmd build on Windows
Future work: - Some issues discovered at validation need further investigations * Perf inconsistency: TPUT fluctuated significantly from runs * After traffic stop, port stats shows pps being 0 while bps not * mempool allocation only succeed with native. Other methods failed at rte_mem_lock/VirtualLock. - Hot-plug on Windows not supported yet - Support mempool allocation native mode only for now --- V4 changes: - Split previous patch into more granular patches - Remove the bypass of rte_eal_cleanup at exit - Move all added macros into rte_os_shim.h - Remove redundant headers after the rte_os_shim patch merge - Revert the mman APIs replacement to leave relevant part UNIX only - Keep Windows library list the same structure and order as the Unix library list in lib meson.build --- V3 changes: - Split one patch into patchset - Replace mman APIs with rte_mem_xxx APIs - Use OS independant rte_rand - Add device event stubs for Windows - Disable unsupported Apps --- V2 changes: - Fix commit message log long line issue - Fix coding style issues of pointer location - Fix indentation issue - Fix FreeBSD2101 compilation issue of AF_INET undeclared --- Jie Zhou (9): lib: build libraries that testpmd depends on eal/windows: add necessary macros eal/windows: add device event stubs app/testpmd: resolve name collisions app/testpmd: add clock_gettime_monotonic app/testpmd: fix parse_fec_mode return type app/testpmd: replace POSIX specific code app/testpmd: fix headers inclusion app/testpmd: enable building testpmd on Windows app/meson.build | 4 - app/pdump/meson.build | 6 + app/proc-info/meson.build | 6 + app/test-acl/meson.build | 6 + app/test-bbdev/meson.build | 6 + app/test-cmdline/meson.build | 6 + app/test-compress-perf/meson.build | 6 + app/test-crypto-perf/meson.build | 6 + app/test-eventdev/meson.build | 6 + app/test-fib/meson.build | 6 + app/test-flow-perf/meson.build | 6 + app/test-pipeline/meson.build | 6 + app/test-pmd/cmdline.c | 12 +- app/test-pmd/cmdline_flow.c | 496 +++++++++---------- app/test-pmd/config.c | 37 +- app/test-pmd/csumonly.c | 2 +- app/test-pmd/icmpecho.c | 4 +- app/test-pmd/ieee1588fwd.c | 8 +- app/test-pmd/parameters.c | 11 +- app/test-pmd/testpmd.c | 21 +- app/test-pmd/testpmd.h | 5 +- app/test-regex/meson.build | 6 + app/test-sad/meson.build | 6 + app/test/meson.build | 6 + lib/librte_eal/windows/eal_dev.c | 33 ++ lib/librte_eal/windows/include/rte_os_shim.h | 9 + lib/librte_eal/windows/meson.build | 1 + lib/meson.build | 7 +- 28 files changed, 455 insertions(+), 279 deletions(-) create mode 100644 lib/librte_eal/windows/eal_dev.c -- 2.30.0.vfs.0.2