From: "Michael S. Tsirkin" <mst@redhat.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: lkml <linux-kernel@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH 3/5] virtio: Don't expose legacy net features when VIRTIO_NET_NO_LEGACY defined.
Date: Mon, 16 Feb 2015 06:14:35 +0100 [thread overview]
Message-ID: <20150216051435.GA14616@redhat.com> (raw)
In-Reply-To: <87twytb9by.fsf@rustcorp.com.au>
> struct virtio_net_hdr hdr;
> __virtio16 num_buffers; /* Number of merged rx buffers */
> };
> +#else /* ... VIRTIO_NET_NO_LEGACY */
> +/*
> + * This header comes first in the scatter-gather list. If you don't
> + * specify GSO or CSUM features, you can simply ignore the header.
> + *
> + * This is bitwise-equivalent to the legacy struct virtio_net_hdr_mrg_rxbuf.
I would add "but with all fields squashed into the main structure".
> + */
> +struct virtio_net_hdr_v1 {
> +#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */
> +#define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */
> + __u8 flags;
> +#define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */
> +#define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
> +#define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */
> +#define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */
> +#define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */
> + __u8 gso_type;
> + __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
> + __virtio16 gso_size; /* Bytes to append to hdr_len per frame */
> + __virtio16 csum_start; /* Position to start checksumming from */
> + __virtio16 csum_offset; /* Offset after that to place checksum */
> + __virtio16 num_buffers; /* Number of merged rx buffers */
> +};
> +#endif /* ...VIRTIO_NET_NO_LEGACY */
I note that this way host code can't be structured like this:
struct virtio_net_hdr_v1 modern;
/* handle modern guests */
....
#ifndef VIRTIO_NET_NO_LEGACY
struct virtio_net_hdr_mrg_rxbuf mrg;
/* handle legacy guests */
#endif
Define virtio_net_hdr_v1 unconditionally?
> /*
> * Control virtqueue data structures
next prev parent reply other threads:[~2015-02-16 5:14 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-06 5:06 [PATCH 0/5] virtio 1.0 cleanups and one fix Rusty Russell
2015-02-06 5:06 ` [PATCH 1/5] virtio: define VIRTIO_PCI_CAP_PCI_CFG in header Rusty Russell
2015-02-08 11:00 ` Michael S. Tsirkin
2015-02-06 5:06 ` [PATCH 2/5] virtio: Don't expose legacy block features when VIRTIO_BLK_NO_LEGACY defined Rusty Russell
2015-02-08 11:01 ` Michael S. Tsirkin
2015-02-06 5:06 ` [PATCH 3/5] virtio: Don't expose legacy net features when VIRTIO_NET_NO_LEGACY defined Rusty Russell
2015-02-08 10:59 ` Michael S. Tsirkin
2015-02-08 23:50 ` Rusty Russell
2015-02-11 0:06 ` Rusty Russell
2015-02-16 5:14 ` Michael S. Tsirkin [this message]
2015-02-16 6:09 ` Rusty Russell
2015-02-14 20:43 ` Michael S. Tsirkin
2015-02-16 3:29 ` Rusty Russell
2015-02-06 5:06 ` [PATCH 4/5] virtio: Don't expose legacy config features when VIRTIO_CONFIG_NO_LEGACY defined Rusty Russell
2015-02-08 11:03 ` Michael S. Tsirkin
2015-02-06 5:06 ` [PATCH 5/5] virtio: don't require a config space on the console device Rusty Russell
2015-02-08 11:03 ` Michael S. Tsirkin
2015-02-08 23:56 ` Rusty Russell
2015-02-11 11:16 ` Amit Shah
2015-02-08 9:52 ` [PATCH 0/5] virtio 1.0 cleanups and one fix Michael S. Tsirkin
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=20150216051435.GA14616@redhat.com \
--to=mst@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
/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.