Vincenzo,
I'm using a tap interface and in the guest virtual device i see all
offloading features are disabled, even though they are enabled in the
physical device.
Perhaps you can help? See below related information:

Bridge to the physical interface in the host:
---------------------------------------------------------------------------
brctl addbr br0
brctl  addif br0 eth3
---------------------------------------------------------------------------

/etc/qemu-ifup:
---------------------------------------------------------------------------
#!/bin/sh
set -x

switch=br0

if [ -n "$1" ];then
        /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1
        /usr/bin/sudo /sbin/ip link set $1 up
        sleep 0.5s
        /usr/bin/sudo /sbin/brctl addif $switch $1
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi
---------------------------------------------------------------------------

Activation command:
---------------------------------------------------------------------------
qemu-system-arm -enable-kvm  -M vexpress-a15  -serial /dev/ttyS1 -append
'root=/dev/vda rw console=ttyAMA0 rootwait earlyprintk' -nographic -kernel
/guest/zImage_vexpress -dtb /guest/vexpress-v2p-ca15_a7.dtb -drive
if=none,file=/guest/arm-wheezy.img,id=foo -device
virtio-blk-device,drive=foo -device
virtio-net-device,netdev=net0,mac=DE:AD:BE:EF:F4:E5 -netdev tap,id=net0
---------------------------------------------------------------------------

Physical interface features (ethtool -k eth3):
---------------------------------------------------------------------------
Features for eth3:
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: on
tx-checksum-ip-generic: off [fixed]
tx-checksum-ipv6: on
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: on
tx-tcp6-segmentation: on
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: off [fixed]
ntuple-filters: on
receive-hashing: on
highdma: on
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: on
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
---------------------------------------------------------------------------

Virtual device features in the guest (ethtool -k eth0):
---------------------------------------------------------------------------
Features for eth0:

rx-checksumming: off [fixed]

tx-checksumming: off

        tx-checksum-ipv4: off [fixed]

        tx-checksum-ip-generic: off [fixed]

        tx-checksum-ipv6: off [fixed]

        tx-checksum-fcoe-crc: off [fixed]

        tx-checksum-sctp: off [fixed]

scatter-gather: off

        tx-scatter-gather: off [fixed]

        tx-scatter-gather-fraglist: off [fixed]

tcp-segmentation-offload: off

        tx-tcp-segmentation: off [fixed]

        tx-tcp-ecn-segmentation: off [fixed]

        tx-tcp6-segmentation: off [fixed]

udp-fragmentation-offload: off [fixed]

generic-segmentation-offload: off [requested on]

generic-receive-offload: on

large-receive-offload: off [fixed]

rx-vlan-offload: off [fixed]

tx-vlan-offload: off [fixed]

ntuple-filters: off [fixed]

receive-hashing: off [fixed]

highdma: on [fixed]

rx-vlan-filter: off [fixed]

vlan-challenged: off [fixed]

tx-lockless: off [fixed]

netns-local: off [fixed]

tx-gso-robust: off [fixed]

tx-fcoe-segmentation: off [fixed]

tx-gre-segmentation: off [fixed]

tx-ipip-segmentation: off [fixed]

tx-sit-segmentation: off [fixed]

tx-udp_tnl-segmentation: off [fixed]

tx-mpls-segmentation: off [fixed]

fcoe-mtu: off [fixed]

tx-nocache-copy: off

loopback: off [fixed]

rx-fcs: off [fixed]

rx-all: off [fixed]

tx-vlan-stag-hw-insert: off [fixed]

rx-vlan-stag-hw-parse: off [fixed]

rx-vlan-stag-filter: off [fixed]

l2-fwd-offload: off [fixed]

---------------------------------------------------------------------------

Regards,
Barak



On Tue, Jan 14, 2014 at 12:59 PM, Vincenzo Maffione <v.maffi...@gmail.com>wrote:

> The purpose of this patch series is to add offloadings support
> (TSO/UFO/CSUM) to the netmap network backend, and make it possible
> for the paravirtual network frontends (virtio-net and vmxnet3) to
> use it.
> In order to achieve this, these patches extend the existing
> net.h interface to add abstract operations through which a network
> frontend can manipulate backend offloading features, instead of
> directly calling TAP-specific functions.
>
> Guest-to-guest performance before this patches for virtio-net + netmap:
>
>     TCP_STREAM                  5.0 Gbps
>     TCP_RR                      12.7 Gbps
>     UDP_STREAM (64-bytes)       790 Kpps
>
> Guest-to-guest performance after this patches for virtio-net + netmap:
>
>     TCP_STREAM                  21.4 Gbps
>     TCP_RR                      12.7 Gbps
>     UDP_STREAM (64-bytes)       790 Kpps
>
> Experiment details:
>     - Processor: Intel i7-3770K CPU @ 3.50GHz (8 cores)
>     - Memory @ 1333 MHz
>     - Host O.S.: Archlinux with Linux 3.11
>     - Guest O.S.: Archlinux with Linux 3.11
>
>     - QEMU command line:
>         qemu-system-x86_64 archdisk.qcow -snapshot -enable-kvm -device
> virtio-net-pci,ioeventfd=on,mac=00:AA:BB:CC:DD:01,netdev=mynet -netdev
> netmap,ifname=vale0:01,id=mynet -smp 2 -vga std -m 3G
>
>
> ******** Changes against the previous version ***********
> (1) The first two commits were not included into the previous version. They
>     are used to clean the TAP interface before the offloadings manipulation
>     API is introduced.
>
> (2) The fifth commit merges two commits from the previous version: 3/5
> "virtio-net and
>     vmxnet3 use offloading API" and 5/5 "virtio-net and vmxnet3 can use
> netmap offloadings".
>     This because of (3).
>
> (3) There is actually an important problem. In the previous patch version,
> TCP/UDP traffic was
>     supported between two guests attached to a VALE switch if and only if
> both guests use (or
>     don't) the same offloadings: e.g. two virtio-net guests or two e1000
> guests. This is why
>     in this version I put the commit which adds the support for netmap as
> the last one and
>     I temporarily disable the offloading feature (e.g.
> netmap_has_vnet_hdr() returns false).
>     We are working at adding proper support also in the general case in
> which there is
>     a mismatch between the NIC offloadings capabilities. As soon as we
> have proper support,
>     we can enable it in net/netmap.c.
>     What do you think about that? What's the best way to manage this
> temporary lack of
>     support?
>
>
> Vincenzo Maffione (6):
>   net: change vnet-hdr TAP prototypes
>   net: removing tap_using_vnet_hdr() function
>   net: extend NetClientInfo for offloading manipulations
>   net: TAP uses NetClientInfo offloading callbacks
>   net: virtio-net and vmxnet3 use offloading API
>   net: add offloadings support to netmap backend
>
>  hw/net/virtio-net.c | 18 +++++-----------
>  hw/net/vmxnet3.c    | 12 ++++-------
>  include/net/net.h   | 17 +++++++++++++++
>  include/net/tap.h   |  5 ++---
>  net/net.c           | 46 +++++++++++++++++++++++++++++++++++++++++
>  net/netmap.c        | 59
> ++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  net/tap-win32.c     | 12 ++++-------
>  net/tap.c           | 22 ++++++++------------
>  8 files changed, 145 insertions(+), 46 deletions(-)
>
> --
> 1.8.5.2
>
>
>

Reply via email to