Thread (6 messages) 6 messages, 4 authors, 2013-05-21

Re: [PATCH 1/2 V4] virtio-spec: dynamic network offloads configuration

From: Rusty Russell <hidden>
Date: 2013-05-21 23:31:20
Also in: qemu-devel

"Michael S. Tsirkin" [off-list ref] writes:
On Mon, May 20, 2013 at 03:43:51PM +0200, Paolo Bonzini wrote:
quoted
Is there a story behind skipping virtio-net feature bits 2..4?

Paolo
Bits 3-4 now :)
I'm curious too.
Not a good one :)

The year is 2007.  virtio_net was the posterchild of free expression and
crazy experimentation.  We were all so very young...

The original host TSO bits in virtio_net were like so:

 #define VIRTIO_NET_F_TSO4      1
 #define VIRTIO_NET_F_UFO       2
 #define VIRTIO_NET_F_TSO4_ECN  3
 #define VIRTIO_NET_F_TSO6      4

But I decided we might as well offer all or nothing, and if you couldn't
handle one, you could just do it in software:

 #define VIRTIO_NET_F_GSO       6

Reading the git commits, it seems Linux didn't do UFO in software (at
the time, at least), so the bits were split out again, with the explicit
_HOST_ in the names:

 #define VIRTIO_NET_F_HOST_TSO4 11      /* Host can handle TSOv4 in. */
 #define VIRTIO_NET_F_HOST_TSO6 12      /* Host can handle TSOv6 in. */
 #define VIRTIO_NET_F_HOST_ECN  13      /* Host can handle TSO[6] w/ ECN in. */
 #define VIRTIO_NET_F_HOST_UFO  14      /* Host can handle UFO in. */

This was all before there was a host implementation, so we were playing.

ie. the bits are perfectly fine for reuse.

Cheers,
Rusty.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help