From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id AFE80231C for ; Thu, 15 Oct 2015 13:08:43 +0200 (CEST) Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id E9144BAEC7; Thu, 15 Oct 2015 11:08:42 +0000 (UTC) Received: from work.redhat.com (vpn1-4-234.ams2.redhat.com [10.36.4.234]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9FB8epV015883; Thu, 15 Oct 2015 07:08:41 -0400 From: Marcel Apfelbaum To: dev@dpdk.org Date: Thu, 15 Oct 2015 14:08:39 +0300 Message-Id: <1444907319-26348-1-git-send-email-marcel@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 Cc: marcel@redhat.com, mst@redhat.com Subject: [dpdk-dev] [PATCH] vhost-user: enable virtio 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Oct 2015 11:08:43 -0000 Make vhost-user virtio 1.0 compatible by adding it to the supported features and keeping the header length the same as for mergeable RX buffers. Signed-off-by: Marcel Apfelbaum --- To be applied on top of: [dpdk-dev] [PATCH v6 00/13] vhost-user multiple queues enabling Thanks, Marcel lib/librte_vhost/virtio-net.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c index a51327d..ee4650e 100644 --- a/lib/librte_vhost/virtio-net.c +++ b/lib/librte_vhost/virtio-net.c @@ -75,6 +75,7 @@ static struct virtio_net_config_ll *ll_root; (1ULL << VIRTIO_NET_F_CTRL_VQ) | \ (1ULL << VIRTIO_NET_F_CTRL_RX) | \ (1ULL << VIRTIO_NET_F_MQ) | \ + (1ULL << VIRTIO_F_VERSION_1) | \ (1ULL << VHOST_F_LOG_ALL) | \ (1ULL << VHOST_USER_F_PROTOCOL_FEATURES)) static uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES; @@ -477,17 +478,17 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu) return -1; dev->features = *pu; - if (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) { - LOG_DEBUG(VHOST_CONFIG, - "(%"PRIu64") Mergeable RX buffers enabled\n", - dev->device_fh); + if (dev->features & + ((1 << VIRTIO_NET_F_MRG_RXBUF) | (1ULL << VIRTIO_F_VERSION_1))) { vhost_hlen = sizeof(struct virtio_net_hdr_mrg_rxbuf); } else { - LOG_DEBUG(VHOST_CONFIG, - "(%"PRIu64") Mergeable RX buffers disabled\n", - dev->device_fh); vhost_hlen = sizeof(struct virtio_net_hdr); } + LOG_DEBUG(VHOST_CONFIG, + "(%"PRIu64") Mergeable RX buffers %s, virtio 1 %s\n", + dev->device_fh, + (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) ? "on" : "off", + (dev->features & (1ULL << VIRTIO_F_VERSION_1)) ? "on" : "off"); for (i = 0; i < dev->virt_qp_nb; i++) { uint16_t base_idx = i * VIRTIO_QNUM; -- 2.1.0