From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Coquelin Subject: Re: [PATCH 06/17] vhost: introduce API to fetch negotiated features Date: Tue, 14 Mar 2017 12:02:59 +0100 Message-ID: References: <1488534682-3494-1-git-send-email-yuanhan.liu@linux.intel.com> <1488534682-3494-7-git-send-email-yuanhan.liu@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: Harris James R , Liu Changpeng To: Yuanhan Liu , dev@dpdk.org Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 5FB642C35 for ; Tue, 14 Mar 2017 12:03:05 +0100 (CET) In-Reply-To: <1488534682-3494-7-git-send-email-yuanhan.liu@linux.intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 03/03/2017 10:51 AM, Yuanhan Liu wrote: > Signed-off-by: Yuanhan Liu > --- > lib/librte_vhost/rte_vhost_version.map | 1 + > lib/librte_vhost/rte_virtio_net.h | 1 + > lib/librte_vhost/vhost.c | 12 ++++++++++++ > 3 files changed, 14 insertions(+) > > diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map > index b890da6..85a2796 100644 > --- a/lib/librte_vhost/rte_vhost_version.map > +++ b/lib/librte_vhost/rte_vhost_version.map > @@ -35,6 +35,7 @@ DPDK_17.05 { > rte_vhost_driver_enable_features; > rte_vhost_driver_get_features; > rte_vhost_driver_set_features; > + rte_vhost_get_negotiated_features > rte_vhost_get_vhost_memory; > > } DPDK_16.07; > diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h > index eddf0f4..e7b1599 100644 > --- a/lib/librte_vhost/rte_virtio_net.h > +++ b/lib/librte_vhost/rte_virtio_net.h > @@ -210,5 +210,6 @@ uint16_t rte_vhost_dequeue_burst(int vid, uint16_t queue_id, > struct rte_mempool *mbuf_pool, struct rte_mbuf **pkts, uint16_t count); > > int rte_vhost_get_vhost_memory(int vid, struct rte_vhost_memory **mem); > +uint64_t rte_vhost_get_negotiated_features(int vid); > > #endif /* _VIRTIO_NET_H_ */ > diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c > index eee229a..8046aef 100644 > --- a/lib/librte_vhost/vhost.c > +++ b/lib/librte_vhost/vhost.c > @@ -340,6 +340,18 @@ struct virtio_net * > return 0; > } > > +uint64_t > +rte_vhost_get_negotiated_features(int vid) > +{ > + struct virtio_net *dev; > + > + dev = get_device(vid); > + if (!dev) > + return -1; > + > + return dev->features; > +} Are we sure the negotiation is done when we can get the device? Maxime