From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuanhan Liu Subject: Re: [PATCH] vhost-user: enable virtio 1.0 Date: Fri, 16 Oct 2015 14:39:27 +0800 Message-ID: <20151016063927.GJ3115@yliu-dev.sh.intel.com> References: <1444907319-26348-1-git-send-email-marcel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org, mst@redhat.com To: Marcel Apfelbaum Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 61132FE5 for ; Fri, 16 Oct 2015 08:38:10 +0200 (CEST) Content-Disposition: inline In-Reply-To: <1444907319-26348-1-git-send-email-marcel@redhat.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Reviewed-by: Yuanhan Liu And thanks for the work. --yliu On Thu, Oct 15, 2015 at 02:08:39PM +0300, Marcel Apfelbaum wrote: > 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