From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 25B994CBB for ; Mon, 5 Mar 2018 10:20:22 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2018 01:20:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,426,1515484800"; d="scan'208";a="35531729" Received: from unknown (HELO dpdk99.sh.intel.com) ([10.67.110.156]) by fmsmga001.fm.intel.com with ESMTP; 05 Mar 2018 01:20:20 -0800 From: Zhihong Wang To: dev@dpdk.org Cc: jianfeng.tan@intel.com, tiwei.bie@intel.com, maxime.coquelin@redhat.com, yliu@fridaylinux.org, cunming.liang@intel.com, xiao.w.wang@intel.com, dan.daly@intel.com, Zhihong Wang Message-Id: <20180213092106.57996-2-zhihong.wang@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180213092106.57996-1-zhihong.wang@intel.com> References: <1517614137-62926-1-git-send-email-zhihong.wang@intel.com> <20180213092106.57996-1-zhihong.wang@intel.com> Subject: [dpdk-dev] [PATCH v2 1/6] vhost: export vhost feature definitions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Mon, 05 Mar 2018 09:20:22 -0000 X-Original-Date: Tue, 13 Feb 2018 17:21:01 +0800 X-List-Received-Date: Mon, 05 Mar 2018 09:20:22 -0000 This patch exports vhost-user protocol features to support device driver development. Signed-off-by: Zhihong Wang --- lib/librte_vhost/rte_vhost.h | 8 ++++++++ lib/librte_vhost/vhost.h | 4 +--- lib/librte_vhost/vhost_user.c | 9 +++++---- lib/librte_vhost/vhost_user.h | 20 +++++++------------- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/lib/librte_vhost/rte_vhost.h b/lib/librte_vhost/rte_vhost.h index d33206997..b05162366 100644 --- a/lib/librte_vhost/rte_vhost.h +++ b/lib/librte_vhost/rte_vhost.h @@ -29,6 +29,14 @@ extern "C" { #define RTE_VHOST_USER_DEQUEUE_ZERO_COPY (1ULL << 2) #define RTE_VHOST_USER_IOMMU_SUPPORT (1ULL << 3) +#define RTE_VHOST_USER_PROTOCOL_F_MQ 0 +#define RTE_VHOST_USER_PROTOCOL_F_LOG_SHMFD 1 +#define RTE_VHOST_USER_PROTOCOL_F_RARP 2 +#define RTE_VHOST_USER_PROTOCOL_F_REPLY_ACK 3 +#define RTE_VHOST_USER_PROTOCOL_F_NET_MTU 4 +#define RTE_VHOST_USER_PROTOCOL_F_SLAVE_REQ 5 +#define RTE_VHOST_USER_F_PROTOCOL_FEATURES 30 + /** * Information relating to memory regions including offsets to * addresses in QEMUs memory file. diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h index 58aec2e0d..a0b0520e2 100644 --- a/lib/librte_vhost/vhost.h +++ b/lib/librte_vhost/vhost.h @@ -174,8 +174,6 @@ struct vhost_msg { #define VIRTIO_F_VERSION_1 32 #endif -#define VHOST_USER_F_PROTOCOL_FEATURES 30 - /* Features supported by this builtin vhost-user net driver. */ #define VIRTIO_NET_SUPPORTED_FEATURES ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | \ (1ULL << VIRTIO_F_ANY_LAYOUT) | \ @@ -185,7 +183,7 @@ struct vhost_msg { (1ULL << VIRTIO_NET_F_MQ) | \ (1ULL << VIRTIO_F_VERSION_1) | \ (1ULL << VHOST_F_LOG_ALL) | \ - (1ULL << VHOST_USER_F_PROTOCOL_FEATURES) | \ + (1ULL << RTE_VHOST_USER_F_PROTOCOL_FEATURES) | \ (1ULL << VIRTIO_NET_F_GSO) | \ (1ULL << VIRTIO_NET_F_HOST_TSO4) | \ (1ULL << VIRTIO_NET_F_HOST_TSO6) | \ diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c index 5c5361066..c93e48e4d 100644 --- a/lib/librte_vhost/vhost_user.c +++ b/lib/librte_vhost/vhost_user.c @@ -527,7 +527,7 @@ vhost_user_set_vring_addr(struct virtio_net **pdev, VhostUserMsg *msg) vring_invalidate(dev, vq); if (vq->enabled && (dev->features & - (1ULL << VHOST_USER_F_PROTOCOL_FEATURES))) { + (1ULL << RTE_VHOST_USER_F_PROTOCOL_FEATURES))) { dev = translate_ring_addresses(dev, msg->payload.addr.index); if (!dev) return -1; @@ -897,11 +897,11 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *pmsg) vq = dev->virtqueue[file.index]; /* - * When VHOST_USER_F_PROTOCOL_FEATURES is not negotiated, + * When RTE_VHOST_USER_F_PROTOCOL_FEATURES is not negotiated, * the ring starts already enabled. Otherwise, it is enabled via * the SET_VRING_ENABLE message. */ - if (!(dev->features & (1ULL << VHOST_USER_F_PROTOCOL_FEATURES))) + if (!(dev->features & (1ULL << RTE_VHOST_USER_F_PROTOCOL_FEATURES))) vq->enabled = 1; if (vq->kickfd >= 0) @@ -1012,7 +1012,8 @@ vhost_user_get_protocol_features(struct virtio_net *dev, * Qemu versions (from v2.7.0 to v2.9.0). */ if (!(features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))) - protocol_features &= ~(1ULL << VHOST_USER_PROTOCOL_F_REPLY_ACK); + protocol_features &= + ~(1ULL << RTE_VHOST_USER_PROTOCOL_F_REPLY_ACK); msg->payload.u64 = protocol_features; msg->size = sizeof(msg->payload.u64); diff --git a/lib/librte_vhost/vhost_user.h b/lib/librte_vhost/vhost_user.h index 0fafbe6e0..066e772dd 100644 --- a/lib/librte_vhost/vhost_user.h +++ b/lib/librte_vhost/vhost_user.h @@ -14,19 +14,13 @@ #define VHOST_MEMORY_MAX_NREGIONS 8 -#define VHOST_USER_PROTOCOL_F_MQ 0 -#define VHOST_USER_PROTOCOL_F_LOG_SHMFD 1 -#define VHOST_USER_PROTOCOL_F_RARP 2 -#define VHOST_USER_PROTOCOL_F_REPLY_ACK 3 -#define VHOST_USER_PROTOCOL_F_NET_MTU 4 -#define VHOST_USER_PROTOCOL_F_SLAVE_REQ 5 - -#define VHOST_USER_PROTOCOL_FEATURES ((1ULL << VHOST_USER_PROTOCOL_F_MQ) | \ - (1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD) |\ - (1ULL << VHOST_USER_PROTOCOL_F_RARP) | \ - (1ULL << VHOST_USER_PROTOCOL_F_REPLY_ACK) | \ - (1ULL << VHOST_USER_PROTOCOL_F_NET_MTU) | \ - (1ULL << VHOST_USER_PROTOCOL_F_SLAVE_REQ)) +#define VHOST_USER_PROTOCOL_FEATURES \ + ((1ULL << RTE_VHOST_USER_PROTOCOL_F_MQ) | \ + (1ULL << RTE_VHOST_USER_PROTOCOL_F_LOG_SHMFD) |\ + (1ULL << RTE_VHOST_USER_PROTOCOL_F_RARP) | \ + (1ULL << RTE_VHOST_USER_PROTOCOL_F_REPLY_ACK) | \ + (1ULL << RTE_VHOST_USER_PROTOCOL_F_NET_MTU) | \ + (1ULL << RTE_VHOST_USER_PROTOCOL_F_SLAVE_REQ)) typedef enum VhostUserRequest { VHOST_USER_NONE = 0, -- 2.13.6