Hi Jiayu,

On 11/28/2017 06:28 AM, Jiayu Hu wrote:
In virtio, Generic Segmentation Offload (GSO) is the feature for the
backend, which means the backend can receive packets with any GSO
type.

Virtio-net enables the GSO feature by default, and vhost-net supports it.
To make live migration from vhost-net to vhost-user possible, this patch
enables GSO for vhost-user.

Please note that the application relying on Vhost library may disable
some features, breaking the migration from vhost-net to vhost-user even
if all features are supported in the vhost-user lib.

For example, ovs-dpdk disables the following features:
    err = rte_vhost_driver_disable_features(dev->vhost_id,
                                1ULL << VIRTIO_NET_F_HOST_TSO4
                                | 1ULL << VIRTIO_NET_F_HOST_TSO6
                                | 1ULL << VIRTIO_NET_F_CSUM);


Signed-off-by: Jiayu Hu <jiayu...@intel.com>
---
  lib/librte_vhost/vhost.h | 1 +
  1 file changed, 1 insertion(+)

diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index 1cc81c1..04f54cb 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -204,6 +204,7 @@ struct vhost_msg {
                                (1ULL << VIRTIO_F_VERSION_1)   | \
                                (1ULL << VHOST_F_LOG_ALL)      | \
                                (1ULL << VHOST_USER_F_PROTOCOL_FEATURES) | \
+                               (1ULL << VIRTIO_NET_F_GSO) | \

This feature is also enabled by default in QEMU, and seems also to be
acked by default in the virtio-net kernel driver.

Does it have an impact on performance? Be it good or bad.

How to test it?

                                (1ULL << VIRTIO_NET_F_HOST_TSO4) | \
                                (1ULL << VIRTIO_NET_F_HOST_TSO6) | \
                                (1ULL << VIRTIO_NET_F_CSUM)    | \


Thanks,
Maxime

Reply via email to