[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2 V4] virtio-spec: dynamic network offloads co
From: |
Rusty Russell |
Subject: |
Re: [Qemu-devel] [PATCH 1/2 V4] virtio-spec: dynamic network offloads configuration |
Date: |
Wed, 22 May 2013 08:55:57 +0930 |
User-agent: |
Notmuch/0.15.2+81~gd2c8818 (http://notmuchmail.org) Emacs/23.4.1 (i686-pc-linux-gnu) |
"Michael S. Tsirkin" <address@hidden> writes:
> On Mon, May 20, 2013 at 03:43:51PM +0200, Paolo Bonzini wrote:
>> 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.