From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Tudor Cornea <tudor.cornea@gmail.com>, <stephen@networkplumber.org>
Cc: <linville@tuxdriver.com>, <andrew.rybchenko@oktetlabs.ru>,
<thomas@monjalon.net>, <jerinj@marvell.com>, <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v4] net/af_packet: reinsert the stripped vlan tag
Date: Thu, 30 Sep 2021 09:14:35 +0100 [thread overview]
Message-ID: <a89ee252-5f23-cb2d-d4f8-7ab9ef27f4ef@intel.com> (raw)
In-Reply-To: <1632924497-60394-1-git-send-email-tudor.cornea@gmail.com>
On 9/29/2021 3:08 PM, Tudor Cornea wrote:
> The af_packet pmd driver binds to a raw socket and allows
> sending and receiving of packets through the kernel.
>
> Since commit [1], the kernel strips the vlan tags early in
> __netif_receive_skb_core(), so we receive untagged packets while
> running with the af_packet pmd.
>
> Luckily for us, the skb vlan-related fields are still populated from the
> stripped vlan tags, so we end up having all the information
> that we need in the mbuf.
>
> Having the pmd driver support DEV_RX_OFFLOAD_VLAN_STRIP allows the
> application to control the desired vlan stripping behavior,
> until we have a way to describe offloads that can't be disabled by
> pmd drivers.
>
> This patch will cause a change in the default way that the af_packet
> pmd treats received vlan-tagged frames. While previously, the
> application was required to check the PKT_RX_VLAN_STRIPPED flag, after
> this patch, the pmd will re-insert the vlan tag transparently to the
> user, unless the DEV_RX_OFFLOAD_VLAN_STRIP is enabled in
> rxmode.offloads.
>
> I've attempted a preliminary benchmark to understand if the change could
> cause a sizable performance hit.
>
> Setup:
> Two virtual machines running on top of an ESXi hypervisor
>
> Tx: DPDK app (running on top of vmxnet3 PMD)
> Rx: af_packet (running on top of a kernel vmxnet3 interface)
> Packet size :68 (packet contains a vlan tag)
>
> Rates:
> Tx - 1.419 Mpps
> Rx (without vlan insertion) - 1227636 pps
> Rx (with vlan insertion) - 1220081 pps
>
> At a first glance, we don't seem to have a large degradation in terms
> of packet rate.
>
> [1] https://github.com/torvalds/linux/commit/bcc6d47903612c3861201cc3a866fb604f26b8b2
>
> Signed-off-by: Tudor Cornea <tudor.cornea@gmail.com>
>
> ---
> v4:
> * Updated the af_packet documentation
> v3:
> * Updated release note and documentation
> * Updated commit with performance measurements
> v2:
> * Added DEV_RX_OFFLOAD_VLAN_STRIP to rxmode->offloads
> ---
> doc/guides/nics/af_packet.rst | 5 +++++
> doc/guides/rel_notes/release_21_11.rst | 4 ++++
> drivers/net/af_packet/rte_eth_af_packet.c | 12 ++++++++++++
> 3 files changed, 21 insertions(+)
>
> diff --git a/doc/guides/nics/af_packet.rst b/doc/guides/nics/af_packet.rst
> index efd6f1c..c87310b 100644
> --- a/doc/guides/nics/af_packet.rst
> +++ b/doc/guides/nics/af_packet.rst
> @@ -65,3 +65,8 @@ framecnt=512):
> .. code-block:: console
>
> --vdev=eth_af_packet0,iface=tap0,blocksz=4096,framesz=2048,framecnt=512,qpairs=1,qdisc_bypass=0
> +
> +Features and Limitations of the af_packet PMD
> +---------------------------------------------
> +
> +Af_packet PMD now works with VLAN's on Linux
Thanks Tudor.
I see this is suggested by Stephen, but I think 'now' is confusing in the driver
guide. Also driver was already working with VLAN, the change is VLAN is not
force stripped anymore.
I think following part from your previous version is better, what do you think
something like following?
"
The PMD will re-insert the VLAN tag transparently to the packet
if the kernel strips it, as long as the ``DEV_RX_OFFLOAD_VLAN_STRIP`` is not
enabled by application.
"
> diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst
> index ad7c1af..095fd5b 100644
> --- a/doc/guides/rel_notes/release_21_11.rst
> +++ b/doc/guides/rel_notes/release_21_11.rst
> @@ -66,6 +66,10 @@ New Features
>
> * Added rte_flow support for dual VLAN insert and strip actions.
>
> +* **Updated af_packet ethdev driver.**
> +
> + * Added DEV_RX_OFFLOAD_VLAN_STRIP capability.
> +
I think change in the default behavior is more important in the release notes,
again what do you think to have your following update here:
"
Default VLAN strip behavior changed. If previously,
the vlan tag was stripped, if the application now requires the same behavior,
it will need to configure ``DEV_RX_OFFLOAD_VLAN_STRIP``.
"
next prev parent reply other threads:[~2021-09-30 8:14 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-20 12:46 [dpdk-dev] [PATCH] net/af_packet: try to reinsert the stripped vlan tag Tudor Cornea
2021-08-31 15:31 ` Ferruh Yigit
2021-09-01 19:07 ` Tudor Cornea
2021-09-01 21:34 ` Stephen Hemminger
2021-09-02 10:49 ` Ferruh Yigit
2021-09-03 9:45 ` Tudor Cornea
2021-09-08 8:59 ` [dpdk-dev] [PATCH v2] net/af_packet: " Tudor Cornea
2021-09-20 15:40 ` Ferruh Yigit
2021-09-21 20:59 ` Tudor Cornea
2021-09-24 11:44 ` [dpdk-dev] [PATCH v3] " Tudor Cornea
2021-09-24 15:10 ` Stephen Hemminger
2021-09-29 14:13 ` Tudor Cornea
2021-09-29 14:08 ` [dpdk-dev] [PATCH v4] " Tudor Cornea
2021-09-30 8:14 ` Ferruh Yigit [this message]
2021-10-01 8:49 ` Tudor Cornea
2021-10-01 8:35 ` [dpdk-dev] [PATCH v5] " Tudor Cornea
2021-10-01 15:02 ` Stephen Hemminger
2021-10-06 9:42 ` Ferruh Yigit
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=a89ee252-5f23-cb2d-d4f8-7ab9ef27f4ef@intel.com \
--to=ferruh.yigit@intel.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=linville@tuxdriver.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
--cc=tudor.cornea@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.