All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Bin Meng <bmeng.cn@gmail.com>, Jason Wang <jasowang@redhat.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-devel@nongnu.org
Subject: Re: [PATCH v3 04/13] net: tap: Pad short frames to minimum size before send
Date: Tue, 16 Mar 2021 11:19:26 +0100	[thread overview]
Message-ID: <9c7cae15-bbe7-7146-e7b5-5739baec1830@redhat.com> (raw)
In-Reply-To: <20210316081254.72684-5-bmeng.cn@gmail.com>

On 3/16/21 9:12 AM, Bin Meng wrote:
> Do the same for tap backend as what we did for slirp.

You explained SLiRP/TAP in the previous patch. IMO these
changes could be squashed there directly (besides, same
maintainer entry).

> 
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> 
> ---
> 
> Changes in v3:
> - use the pad_short_frame() helper for tap
> 
>  net/tap-win32.c | 9 +++++++++
>  net/tap.c       | 9 +++++++++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/net/tap-win32.c b/net/tap-win32.c
> index 2b5dcda36e..e044a5ca35 100644
> --- a/net/tap-win32.c
> +++ b/net/tap-win32.c
> @@ -31,6 +31,7 @@
>  
>  #include "qemu-common.h"
>  #include "clients.h"            /* net_init_tap */
> +#include "net/eth.h"
>  #include "net/net.h"
>  #include "net/tap.h"            /* tap_has_ufo, ... */
>  #include "qemu/error-report.h"
> @@ -688,9 +689,17 @@ static void tap_win32_send(void *opaque)
>      uint8_t *buf;
>      int max_size = 4096;
>      int size;
> +    uint8_t min_pkt[ETH_ZLEN];
>  
>      size = tap_win32_read(s->handle, &buf, max_size);
>      if (size > 0) {
> +        if (!s->nc.peer->do_not_pad) {
> +            if (pad_short_frame(min_pkt, buf, size)) {
> +                buf = min_pkt;
> +                size = ETH_ZLEN;
> +            }
> +        }
> +
>          qemu_send_packet(&s->nc, buf, size);
>          tap_win32_free_buffer(s->handle, buf);
>      }
> diff --git a/net/tap.c b/net/tap.c
> index b7512853f4..aa69cf1c73 100644
> --- a/net/tap.c
> +++ b/net/tap.c
> @@ -32,6 +32,7 @@
>  #include <sys/socket.h>
>  #include <net/if.h>
>  
> +#include "net/eth.h"
>  #include "net/net.h"
>  #include "clients.h"
>  #include "monitor/monitor.h"
> @@ -189,6 +190,7 @@ static void tap_send(void *opaque)
>  
>      while (true) {
>          uint8_t *buf = s->buf;
> +        uint8_t min_pkt[ETH_ZLEN];
>  
>          size = tap_read_packet(s->fd, s->buf, sizeof(s->buf));
>          if (size <= 0) {
> @@ -200,6 +202,13 @@ static void tap_send(void *opaque)
>              size -= s->host_vnet_hdr_len;
>          }
>  
> +        if (!s->nc.peer->do_not_pad) {
> +            if (pad_short_frame(min_pkt, buf, size)) {
> +                buf = min_pkt;
> +                size = ETH_ZLEN;
> +            }
> +        }
> +
>          size = qemu_send_packet_async(&s->nc, buf, size, tap_send_completed);
>          if (size == 0) {
>              tap_read_poll(s, false);
> 



  reply	other threads:[~2021-03-16 10:23 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-16  8:12 [PATCH v3 00/13] net: Pad short frames for network backends Bin Meng
2021-03-16  8:12 ` [PATCH v3 01/13] net: eth: Add a helper to pad a short ethernet frame Bin Meng
2021-03-16  8:49   ` Philippe Mathieu-Daudé
2021-03-16  8:58     ` Bin Meng
2021-03-16  8:12 ` [PATCH v3 02/13] net: Add a 'do_not_pad" to NetClientState Bin Meng
2021-03-16  8:12 ` [PATCH v3 03/13] net: slirp: Pad short frames to minimum size before send Bin Meng
2021-03-16  8:12 ` [PATCH v3 04/13] net: tap: " Bin Meng
2021-03-16 10:19   ` Philippe Mathieu-Daudé [this message]
2021-03-16  8:12 ` [PATCH v3 05/13] hw/net: virtio-net: Initialize nc->do_not_pad to true Bin Meng
2021-03-16  8:12 ` [PATCH v3 06/13] hw/net: e1000: Remove the logic of padding short frames in the receive path Bin Meng
2021-03-16  8:12 ` [PATCH v3 07/13] hw/net: vmxnet3: " Bin Meng
2021-03-16  8:12 ` [PATCH v3 08/13] hw/net: i82596: " Bin Meng
2021-03-16  8:12 ` [PATCH v3 09/13] hw/net: ne2000: " Bin Meng
2021-03-16  8:12 ` [PATCH v3 10/13] hw/net: pcnet: " Bin Meng
2021-03-16  8:12 ` [PATCH v3 11/13] hw/net: rtl8139: " Bin Meng
2021-03-16  8:12 ` [PATCH v3 12/13] hw/net: sungem: " Bin Meng
2021-03-16  8:12 ` [PATCH v3 13/13] hw/net: sunhme: " Bin Meng

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=9c7cae15-bbe7-7146-e7b5-5739baec1830@redhat.com \
    --to=philmd@redhat.com \
    --cc=bmeng.cn@gmail.com \
    --cc=jasowang@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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.