25 Jul, 2008

1 commit


11 Jun, 2008

1 commit


02 May, 2008

1 commit

  • So, we previously had a 'VIRTIO_NET_F_GSO' bit which meant that 'the
    host can handle csum offload, and any TSO (v4&v6 incl ECN) or UFO
    packets you might want to send. I thought this was good enough for
    Linux, but it actually isn't, since we don't do UFO in software.

    So, add separate feature bits for what the host can handle. Add
    equivalent ones for the guest to say what it can handle, because LRO
    is coming too (thanks Herbert!).

    Signed-off-by: Rusty Russell

    Rusty Russell
     

04 Feb, 2008

3 commits

  • 1) Turn GSO on virtio net into an all-or-nothing (keep checksumming
    separate). Having multiple bits is a pain: if you can't support something
    you should handle it in software, which is still a performance win.

    2) Make VIRTIO_NET_HDR_GSO_ECN a flag in the header, so it can apply to
    IPv6 or v4.

    3) Rename VIRTIO_NET_F_NO_CSUM to VIRTIO_NET_F_CSUM (ie. means we do
    checksumming).

    4) Add csum and gso params to virtio_net to allow more testing.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • It's far easier to deal with packets if we don't have to parse the
    packet to figure out the header length to know how much to pull into
    the skb data. Add the field to the virtio_net_hdr struct (and fix the
    spaces that somehow crept in there).

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Previously we used a type/len pair within the config space, but this
    seems overkill. We now simply define a structure which represents the
    layout in the config space: the config space can now only be extended
    at the end.

    The main driver-visible changes:
    1) We indicate what fields are present with an explicit feature bit.
    2) Virtqueues are explicitly numbered, and not in the config space.

    Signed-off-by: Rusty Russell

    Rusty Russell
     

23 Oct, 2007

1 commit

  • The network driver uses two virtqueues: one for input packets and one
    for output packets. This has nice locking properties (ie. we don't do
    any for recv vs send).

    TODO:
    1) Big packets.
    2) Multi-client devices (maybe separate driver?).
    3) Resolve freeing of old xmit skbs (Christian Borntraeger)

    Signed-off-by: Rusty Russell
    Cc: Christian Borntraeger
    Cc: Herbert Xu
    Cc: netdev@vger.kernel.org

    Rusty Russell