From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 5329CA0579;
	Fri,  9 Apr 2021 12:51:59 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id CE56C4069F;
	Fri,  9 Apr 2021 12:51:58 +0200 (CEST)
Received: from mga18.intel.com (mga18.intel.com [134.134.136.126])
 by mails.dpdk.org (Postfix) with ESMTP id 193114014D
 for <dev@dpdk.org>; Fri,  9 Apr 2021 12:51:56 +0200 (CEST)
IronPort-SDR: 7CpvfALi6GB8jdaGA+0166VCDgtj+sw+vPGjOGE3C+0KNksdST5vkeSLoHr5InDQ7fdNkFrjp0
 iTWxyZhkVzlQ==
X-IronPort-AV: E=McAfee;i="6000,8403,9948"; a="181270362"
X-IronPort-AV: E=Sophos;i="5.82,209,1613462400"; d="scan'208";a="181270362"
Received: from orsmga001.jf.intel.com ([10.7.209.18])
 by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Apr 2021 03:51:55 -0700
IronPort-SDR: ejUUQo4ywjN0QkNeNT9HEKZqNC560R84r2M8VUIH9rwI0uSMQwxGxK4Xs0l7CSX11WLJYDOfoY
 u7iiwbl7WwiQ==
X-IronPort-AV: E=Sophos;i="5.82,209,1613462400"; d="scan'208";a="459193306"
Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.203.45])
 ([10.213.203.45])
 by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Apr 2021 03:51:53 -0700
To: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>, dev@dpdk.org
Cc: Nick Connolly <nick.connolly@mayadata.io>,
 Mike Wells <mike.wells@telchemy.com>,
 Tyler Retzlaff <roretzla@linux.microsoft.com>
References: <20210214021616.26970-1-dmitry.kozliuk@gmail.com>
 <20210324005008.24705-1-dmitry.kozliuk@gmail.com>
From: Ferruh Yigit <ferruh.yigit@intel.com>
X-User: ferruhy
Message-ID: <a43b8d5d-e1f0-6afe-eaf0-24397821f278@intel.com>
Date: Fri, 9 Apr 2021 11:51:50 +0100
MIME-Version: 1.0
In-Reply-To: <20210324005008.24705-1-dmitry.kozliuk@gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Subject: Re: [dpdk-dev] [PATCH v3 0/3] net/pcap: build on Windows
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

On 3/24/2021 12:50 AM, Dmitry Kozlyuk wrote:
> NOTE: dependency patches are requirements, CI may fail.
> 
> Most modern and actively maintained distribution of libpcap for Windows
> is Npcap [1]. It currently doesn't provide a pkg-config file [2].
> By default it is installed to C:\Program Files\Npcap and can be located
> using standard environment variables [3]:
> 
>      $env:C_INCLUDE_PATH += ";C:\Program Files\Npcap"
>      $env:LIBRARY_PATH += ";C:\Program Files\Npcap\Lib\x64"     # MinGW
>      $env:LINK += ' /LIBPATH:"C:\Program Files\Npcap\Lib\x64"'  # Clang
> 
> The following libpcap.pc also works if placed in PKG_CONFIG_PATH:
> 
>      prefix="C:/Program Files/Npcap"
>      Name: libpcap
>      Version: 1.10
>      Description: Platform-independent network traffic capture library
>      Cflags: -I${prefix}/Include
>      Libs: -L${prefix}/Lib/x64 -lwpcap
> 
> Example of collecting packets from an interface to a file:
> 
>      .\build\examples\dpdk-skeleton.exe `
>          --vdev "eth_pcap0,iface=\Device\NPF_{DDD48985-A77C-4FC9-AF48-61E547C8797E}" `
>          --vdev "eth_pcap1,tx_pcap=capture.pcap"
> 
> Interface name can be obtained as follows, with Wireshark installed:
> 
>      & "C:\Program Files\Wireshark\tshark.exe" -D
> 
> Implementation in "pcap_osdep_windows.c" does some guesswork to convert
> between variants of an interface name. Microsoft experts and interested
> users, please take a look and/or give it a try in your environment.
> 
> [1]: https://nmap.org/npcap
> [2]: https://github.com/nmap/npcap/issues/299
> [3]: https://mesonbuild.com/Reference-manual.html#compiler-object
> 
> Depends-on: series-15801 ("eal/windows: do not expose POSIX symbols")
> Depends-on: patch-89639 ("[v2,3/3] meson: remove unnecessary explicit link to libpcap")
> 

Hi Dmitry,

What is the status of the dependent patches, are they merged?

> v3:
>      * Use environment and pkg-config to locate libpcap (Bruce).
>      * Use C11 timespec_get() instead of EAL wrapper.
>      * Drop libpcap wrappers in net/pcap (Ferruh).
> 
> Dmitry Kozlyuk (3):
>    eal/windows: add timespec_get shim for MinGW
>    net/pcap: move OS-dependent code to separate files
>    net/pcap: build on Windows
> 
>   config/meson.build                            |   3 +-
>   doc/guides/rel_notes/release_21_05.rst        |   4 +
>   drivers/net/pcap/meson.build                  |  16 +--
>   .../pcap/{rte_eth_pcap.c => pcap_ethdev.c}    | 109 +++-------------
>   drivers/net/pcap/pcap_osdep.h                 |  18 +++
>   drivers/net/pcap/pcap_osdep_freebsd.c         |  59 +++++++++
>   drivers/net/pcap/pcap_osdep_linux.c           |  42 +++++++
>   drivers/net/pcap/pcap_osdep_windows.c         | 118 ++++++++++++++++++
>   .../windows/include/rte_os_internal.h         |  32 +++++
>   9 files changed, 303 insertions(+), 98 deletions(-)
>   rename drivers/net/pcap/{rte_eth_pcap.c => pcap_ethdev.c} (95%)
>   create mode 100644 drivers/net/pcap/pcap_osdep.h
>   create mode 100644 drivers/net/pcap/pcap_osdep_freebsd.c
>   create mode 100644 drivers/net/pcap/pcap_osdep_linux.c
>   create mode 100644 drivers/net/pcap/pcap_osdep_windows.c
>