From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,
Nick Connolly <nick.connolly@mayadata.io>
Cc: dev@dpdk.org, Tyler Retzlaff <roretzla@microsoft.com>,
Mike Wells <mike.wells@telchemy.com>,
Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>,
Dmitry Malloy <dmitrym@microsoft.com>,
Pallavi Kadam <pallavi.kadam@intel.com>,
Jie Zhou <jizh@linux.microsoft.com>
Subject: Re: [dpdk-dev] [PATCH v2 4/6] net/pcap: add libpcap wrappers
Date: Wed, 3 Mar 2021 16:47:24 +0000 [thread overview]
Message-ID: <e742d4a5-41c7-d78b-e6e2-d2be853c6e92@intel.com> (raw)
In-Reply-To: <20210303193240.2b83d9c9@sovereign>
On 3/3/2021 4:32 PM, Dmitry Kozlyuk wrote:
> 2021-03-02 11:22, Nick Connolly:
>>> Is posix_memalign() used more extensively in SPDK? In DPDK, it's 2 PMDs:
>> Yes, there are about 80 references. A lot are in ISA-L where they are
>> #defined to _aligned_malloc and can be ignored, but there still several
>> in the rest of the code.
>
> I think portable code should try sticking to C11 aligned_malloc().
> BTW, _aligned_malloc (with "_") only supports power-of-2 alignment.
>
> There's a related passage in MSVC blog:
>
> Due to the nature of the Windows heap, aligned_alloc support is
> missing. The alternative is to use _aligned_malloc.
>
> https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/
>
>>>> * Sockets are unfortunately specified as using close(). This is
>>>> probably easy to address by rte_ wrapping all socket calls.
>>> Which public DPDK APIs operate on sockets?
>>> I don't like the idea of wrapping APIs like sockets or files.
>> I'm not sure about use in public APIs - I'd hope none do. I was thinking
>> about 'internal' use.
>
> This is important (even more so for SPDK, I suspect), however, I'd like to
> focus on public API first.
>
>>> I drafted what I was talking about: adding address types and removing shims:
>>>
>>> * librte_net/rte_ip.h then includes <netinet/ip.h> or <ws2tcpip.h>
>>> conditionally for AF_xxx, IPPROTO_xxx, and a few other constants.
>>> That's probably OK, there are similar places for Linux/FreeBSD differences,
>>> e.g. in <rte_endian.h>.
>>>
>>> * Some IPPROTO_xxx constants are missing on Windows, so rte_ip.h has to
>>> provide them. I hope Mirosoft will add them to system headers one day.
>>>
>>> * It affects cmdline (mostly), ethdev, security, crypto/dpaax.
>> Sounds good - well done!
>
> ...or not :)
>
> If we can't help including <ws2tcpip.h>/<netinet/ip.h> from public headers,
> might as well use `struct in_addr`, just replace `#include <netinet/ip.h>`
> with `#include <rte_ip.h>` everywhere.
>
> The only remaining issue will be `s_addr` macro on Windows that conflicts with
> `struct rte_ether_addr` field `s_addr`. I don't know a better solution than
> renaming `s_addr` to `src_addr` in DPDK (OTOH, it will be consistent with
> `struct rte_ipvX_hdr` field naming).
>
> Ferruh, what do you think?
>
No problem on the chosen name, that will work fine, but the 'struct
rte_eth_addr' is public struct, we can't rename it without breaking the user
applications.
Still it is possible to rename public struct, but it is a long process, need to
send a deprecation notice and wait for next LTS, 21.11.
Ethernet header already has following, doesn't it help:
#undef s_addr /* Defined in winsock2.h included in windows.h. */
next prev parent reply other threads:[~2021-03-03 16:47 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-14 1:20 [dpdk-dev] [PATCH 0/6] net/pcap: build on Windows Dmitry Kozlyuk
2021-02-14 1:20 ` [dpdk-dev] [PATCH 1/6] eal: add internal API for current time Dmitry Kozlyuk
2021-03-01 22:31 ` Nick Connolly
2021-03-01 22:36 ` Nick Connolly
2021-02-14 1:20 ` [dpdk-dev] [PATCH 2/6] net/pcap: fix format string Dmitry Kozlyuk
2021-03-01 22:33 ` Nick Connolly
2021-02-14 1:20 ` [dpdk-dev] [PATCH 3/6] net/pcap: move OS-dependent code to separate files Dmitry Kozlyuk
2021-02-14 1:20 ` [dpdk-dev] [PATCH 4/6] net/pcap: add libpcap wrappers Dmitry Kozlyuk
2021-02-14 1:20 ` [dpdk-dev] [PATCH 5/6] config: discover libpcap on Windows Dmitry Kozlyuk
2021-02-14 1:20 ` [dpdk-dev] [PATCH 6/6] net/pcap: build " Dmitry Kozlyuk
2021-02-14 2:16 ` [dpdk-dev] [PATCH v2 0/6] " Dmitry Kozlyuk
2021-02-14 2:16 ` [dpdk-dev] [PATCH v2 1/6] eal: add internal API for current time Dmitry Kozlyuk
2021-03-01 22:39 ` Nick Connolly
2021-03-05 17:50 ` Jie Zhou
2021-03-16 9:18 ` Thomas Monjalon
2021-03-16 18:59 ` Stephen Hemminger
2021-03-16 20:07 ` Dmitry Kozlyuk
2021-03-17 9:50 ` Morten Brørup
2021-02-14 2:16 ` [dpdk-dev] [PATCH v2 2/6] net/pcap: fix format string Dmitry Kozlyuk
2021-02-25 14:45 ` Ferruh Yigit
2021-03-02 11:48 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2021-02-14 2:16 ` [dpdk-dev] [PATCH v2 3/6] net/pcap: move OS-dependent code to separate files Dmitry Kozlyuk
2021-02-25 14:51 ` Ferruh Yigit
2021-02-25 16:05 ` Dmitry Kozlyuk
2021-02-14 2:16 ` [dpdk-dev] [PATCH v2 4/6] net/pcap: add libpcap wrappers Dmitry Kozlyuk
2021-02-25 14:59 ` Ferruh Yigit
2021-02-25 19:04 ` Dmitry Kozlyuk
2021-02-25 20:31 ` Nick Connolly
2021-02-25 23:10 ` Dmitry Kozlyuk
2021-03-01 21:43 ` Nick Connolly
2021-03-01 23:05 ` Dmitry Kozlyuk
2021-03-01 23:23 ` Dmitry Kozlyuk
2021-03-02 11:22 ` Nick Connolly
2021-03-03 16:32 ` Dmitry Kozlyuk
2021-03-03 16:47 ` Ferruh Yigit [this message]
2021-03-03 18:19 ` Dmitry Kozlyuk
2021-03-03 19:30 ` Ferruh Yigit
2021-03-03 23:03 ` Dmitry Kozlyuk
2021-02-14 2:16 ` [dpdk-dev] [PATCH v2 5/6] config: discover libpcap on Windows Dmitry Kozlyuk
2021-02-25 15:02 ` Ferruh Yigit
2021-02-25 16:04 ` Dmitry Kozlyuk
2021-02-25 16:33 ` Bruce Richardson
2021-02-25 17:42 ` Dmitry Kozlyuk
2021-03-16 9:16 ` Thomas Monjalon
2021-03-16 9:37 ` Dmitry Kozlyuk
2021-02-14 2:16 ` [dpdk-dev] [PATCH v2 6/6] net/pcap: build " Dmitry Kozlyuk
2021-03-24 0:50 ` [dpdk-dev] [PATCH v3 0/3] " Dmitry Kozlyuk
2021-03-24 0:50 ` [dpdk-dev] [PATCH v3 1/3] eal/windows: add timespec_get shim for MinGW Dmitry Kozlyuk
2021-03-24 0:50 ` [dpdk-dev] [PATCH v3 2/3] net/pcap: move OS-dependent code to separate files Dmitry Kozlyuk
2021-03-24 0:50 ` [dpdk-dev] [PATCH v3 3/3] net/pcap: build on Windows Dmitry Kozlyuk
2021-04-09 10:51 ` [dpdk-dev] [PATCH v3 0/3] " Ferruh Yigit
2021-04-09 11:03 ` Dmitry Kozlyuk
2021-04-09 11:24 ` Ferruh Yigit
2021-04-15 22:10 ` [dpdk-dev] [PATCH v4 " Dmitry Kozlyuk
2021-04-15 22:10 ` [dpdk-dev] [PATCH v4 1/3] eal/windows: add timespec_get shim for MinGW Dmitry Kozlyuk
2021-04-15 22:10 ` [dpdk-dev] [PATCH v4 2/3] net/pcap: move OS-dependent code to separate files Dmitry Kozlyuk
2021-04-15 22:10 ` [dpdk-dev] [PATCH v4 3/3] net/pcap: build on Windows Dmitry Kozlyuk
2021-04-19 21:05 ` Tyler Retzlaff
2021-04-16 17:22 ` [dpdk-dev] [PATCH v4 0/3] " Ferruh Yigit
2021-04-20 22:20 ` Thomas Monjalon
2021-04-21 14:53 ` Dmitry Kozlyuk
2021-04-21 18:12 ` Thomas Monjalon
2021-04-21 19:33 ` [dpdk-dev] [PATCH v5 " Dmitry Kozlyuk
2021-04-21 19:33 ` [dpdk-dev] [PATCH v5 1/3] eal: add timespec_get shim Dmitry Kozlyuk
2021-04-21 19:33 ` [dpdk-dev] [PATCH v5 2/3] net/pcap: move OS-dependent code to separate files Dmitry Kozlyuk
2021-04-21 19:33 ` [dpdk-dev] [PATCH v5 3/3] net/pcap: build on Windows Dmitry Kozlyuk
2021-04-21 21:54 ` [dpdk-dev] [PATCH v5 0/3] " Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e742d4a5-41c7-d78b-e6e2-d2be853c6e92@intel.com \
--to=ferruh.yigit@intel.com \
--cc=dev@dpdk.org \
--cc=dmitry.kozliuk@gmail.com \
--cc=dmitrym@microsoft.com \
--cc=jizh@linux.microsoft.com \
--cc=mike.wells@telchemy.com \
--cc=navasile@linux.microsoft.com \
--cc=nick.connolly@mayadata.io \
--cc=pallavi.kadam@intel.com \
--cc=roretzla@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).