From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id BA0A2A00C3;
	Thu, 12 May 2022 15:34:21 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 63D0C40E64;
	Thu, 12 May 2022 15:34:21 +0200 (CEST)
Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31])
 by mails.dpdk.org (Postfix) with ESMTP id 26B3B40DDD
 for <dev@dpdk.org>; Thu, 12 May 2022 15:34:17 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1652362459; x=1683898459;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=SEUxc0i4FZsgszYINc8WqFDRzv3DmNt0wFoTL3DhQHU=;
 b=cUnuUe4Ux5WAa/x+p5qWhkOC6FluZkcLAPZ7+4CIOB2qNWv+wIh11BzU
 AVXuwk4TrS4gk+hx0GtoZR3KkbjoJGjVzjQMTOscDvsvdEnBS8aeTCN4e
 MrVbAUsaupyNON6YcHOSA2mez9ch2rXOXOvKZBs9vW/AM8nZEzaAN/lbb
 gShvWnofEMBnHOmiefbm+QWLzgwG00VcXSfVFQkS08ZAqVtFjJDaHntRN
 7CkkOrIKBVJnoi3xf6vFW9WDIOWRlhReCVVlnG2H8BGU/LijSNns1acTe
 XuIqS7jQBiUVwk6tK83uAkt22DYGbHri/Bf9RgFHUehxWaHfUihUwR0uw Q==;
X-IronPort-AV: E=McAfee;i="6400,9594,10344"; a="330605351"
X-IronPort-AV: E=Sophos;i="5.91,219,1647327600"; d="scan'208";a="330605351"
Received: from orsmga002.jf.intel.com ([10.7.209.21])
 by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 May 2022 06:34:12 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.91,219,1647327600"; d="scan'208";a="553770329"
Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15])
 by orsmga002.jf.intel.com with ESMTP; 12 May 2022 06:34:12 -0700
Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by
 ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27; Thu, 12 May 2022 06:34:12 -0700
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27 via Frontend Transport; Thu, 12 May 2022 06:34:12 -0700
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2308.27; Thu, 12 May 2022 06:34:12 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YMvc4qlbUujTWvYJet0vHjw6mN1YVdX46spzbhFkBd1gq5+g1P93l4mvt++GUr6M5tjoCsweOa+dHM9Ikr2EYrwnh5thp0rsgjWSiLPCEf8PgqKuziKYUwt9Sylu71vOVDNEWXT8RvBairv6iApuw4MBuYfnGzp+yHRXA13EOcLTu7/Yc0ftTosEKJlTaZ8m+hUt5v13ZS8+imSsf0/M+e87iQLUxNO+dGPSKsA5vyT341o5DhuhyZGQbVd9dyeU79HgduXvtEcNr1hp6c8hpK0QhtP4FXx3+Wmzmn1TwJ+eG5iQujC6RKwDRJyTww3tDEWTgaPC83nubAs6qaDtqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=d4+qbDc0Or2RaBLRNW8tLqFqViIZRNPSUfTM4ZvDT0k=;
 b=KOZpe9wddZeYvKxdkj0vvjS6GyPljQCF8YB50uM2jA9Usf5xYfDXlbSNAdJY41pZAn5uo0E7iv3jii50xiYQdPEVWwO6Fmj+pSwfwhKFoREEg9V78WGQhFru0dmOhoOXwBdbGfpdFrq1ZE0le6xxmbk0/U20vlZ+HVE39gEho1fp9/FeRHT/uVZ7bTpT0/rR3hrmmGpjCwNPxic9W9V6vfqtP7lGCrntfmCNsD5siD1IXTNzmklFqeQDduEcLqyt3wP43ERUmdA+WqjRfTgSOTOdMy5MnHVG6SCjBwSJmC7B1v+zw5BNNiBQJJw60PVqwRzh4IuZzTsNR2lkRXWXmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17)
 by BN8PR11MB3780.namprd11.prod.outlook.com (2603:10b6:408:90::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.22; Thu, 12 May
 2022 13:34:06 +0000
Received: from SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::2c8f:42df:ed85:99e5]) by SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::2c8f:42df:ed85:99e5%4]) with mapi id 15.20.5227.023; Thu, 12 May 2022
 13:34:06 +0000
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: "Pei, Andy" <andy.pei@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>, "Cao, Gang"
 <gang.cao@intel.com>, "Liu, Changpeng" <changpeng.liu@intel.com>
Subject: RE: [PATCH v7 09/18] examples/vdpa: add vDPA blk support in example
Thread-Topic: [PATCH v7 09/18] examples/vdpa: add vDPA blk support in example
Thread-Index: AQHYWheFciAJRm+xPEiEnk5kGsKxWa0bU0Ug
Date: Thu, 12 May 2022 13:34:06 +0000
Message-ID: <SN6PR11MB35045CAB26896DE5CD51956F9CCB9@SN6PR11MB3504.namprd11.prod.outlook.com>
References: <1643093258-47258-2-git-send-email-andy.pei@intel.com>
 <1651048206-282372-1-git-send-email-andy.pei@intel.com>
 <1651048206-282372-10-git-send-email-andy.pei@intel.com>
In-Reply-To: <1651048206-282372-10-git-send-email-andy.pei@intel.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3c0590fb-deb8-485f-4015-08da341c163b
x-ms-traffictypediagnostic: BN8PR11MB3780:EE_
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-microsoft-antispam-prvs: <BN8PR11MB378058074BBA404DF68EC6469CCB9@BN8PR11MB3780.namprd11.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: QmQXg+3/JxUxZUrXjugw14jtcIF4iXEbtO68uDoll7s/lqlavMCyo0VfKIBwZ2XI4iNHRTazxwKxNjDNwd8pcwBa2JjhDvwg9aD9C/zX3hUjvNWqiby5nEJVMPbS6NOqk75yB68deBJctE/EU51a3q95iqm9fpDLIUx+JYOwMRWEq1iLVKdknyKZoOAs9mDcN2C7Njz00YYq/KPsrRNWM003lyfYfH9EQpITeuHxQp2UoTelw338R+IRe1GkrjeYTT1/ycEH8BYxszVV8vZ1kF6Hh4uaW7ot28hlR5RT0z5roFG9xdhCxvCctd5XLgmTbQ/QAbNOnZy7o7AU2MCoJGp9Hyx46I4jtyp4ajuxiiz6Kb007RUJd30V7J9Pp0aDLfPLZn4qwXlM5WIqiEXe8NVdLu82i5hukwgroghiaJxQpZryEgR6ItDedfCh6uQfaOYOlnL6aAP8lx7nX3JMGREz8iFyl41U4R9d6MrDfI92809bhNxscnJhVNobulzInDn2Y3H/jYOfaPsBiGTH9GlCT3nGt9kcdEQ4OWBaKaUcYQ749h/9aomOwOHs/cm+IKgrXsNUHZNzz8r7+teLq/Kx76E4UgFMevlOcXWOBBN43+SLflxxFh43Cz4J760h1kfRXPui7gMEWNk9SpeNkEhLkCK+iazIqE/QRTvHF2e+EnzyVeVInsqvKtxChQ5mXsQnF3HTmXFSjSGXpvEvhg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230001)(366004)(38100700002)(71200400001)(66556008)(66446008)(66476007)(86362001)(82960400001)(122000001)(4326008)(66946007)(8676002)(76116006)(110136005)(64756008)(38070700005)(54906003)(316002)(508600001)(186003)(107886003)(7696005)(6506007)(53546011)(83380400001)(9686003)(5660300002)(26005)(52536014)(8936002)(2906002)(33656002)(55016003);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ni7LDAks1kCTQMFJY4TlMuTX4X+f5EbuHur2N+VI0tBddNNrPTlhnqTPRw5C?=
 =?us-ascii?Q?4JACXrvEdKhbeKHx7lI8868XPUlVOUGbCkA1lNivlaX+IwQ8VDMAuZXbOMBe?=
 =?us-ascii?Q?rRYxw7F7BJMK7YsjABXTQFjcQ/3BQpyxGrrCC8zqt2Jmou6gqtCPDmKdGpT5?=
 =?us-ascii?Q?+mLu4pP/cdogSVW+yB5d62NleIryovn2IFuWaVa9EgcgnIeNLtS0pGnPUQcv?=
 =?us-ascii?Q?Fiuo2WfmdJ3oJHRqp8InnVBzyikTdGF99r6tjbJm4iG3SLLv3XwvseJzPBfp?=
 =?us-ascii?Q?pKUX8CpUiTmuY/Y88iCw9GGTy0NCRVecsaI99OMO08DmYy9Hcb1XQfQ3BKNR?=
 =?us-ascii?Q?FfYBsUXfLg+NmJGEHQsYIUqlwBEWeXmvhz29fvcxjAIacxgAdz/fq+43nnnl?=
 =?us-ascii?Q?zPAWbfY22G5nuEdzZ9TA88tde9Om9mUHKW27nUnaK96mEo5fCl54YoWk0cC5?=
 =?us-ascii?Q?0DFJJkvNnlJX6DqFtCj63JwC8zD395t3WUF/Srr3erkUGrE3ouDkINBoY4BQ?=
 =?us-ascii?Q?1Zov7NJwxmYvMKaObzoBgxirT8RuG/yxepYcqOor/h2VrpdtAuA+r3e77Kah?=
 =?us-ascii?Q?7L0MPvNbTpFPmg31BMYczRzcmH+2lUt0bN0WrUDHSnbVD+vMhqX8sYBtWMWQ?=
 =?us-ascii?Q?nhKJ0wILVkPOjpySBQ+VY626HFjutSnaziviw0cD9SLojbbmcKSghpu1nR/O?=
 =?us-ascii?Q?x40juRDZgAPPF8Z61EnhXJ56UZTGmhmaRb5l0yXS9quGk7tyh6P6MoF0sTkx?=
 =?us-ascii?Q?jOs25YqXtUCAXocAdCE6YvyO4RZKSs1AO4M+GWoHgApHwjft7cbwszIEm7Ll?=
 =?us-ascii?Q?BUMKZW03wshMA7SFJXHIsBrq+ytB3me4sOx+kJuSRiBEkvrQgpeSzxIJ678k?=
 =?us-ascii?Q?yo+avAfyx6r4kD+xwOrlDuHT+6MYRSgZjKgcs1WNU/Ua3pNzumm+LyXp+k/9?=
 =?us-ascii?Q?R9QFiTxk2XqhS0jnyD5NHS0QLsjRJ0tac6jlXvtTQyeYVYsKij/GTX6W6Tf7?=
 =?us-ascii?Q?JFNm3cDJefR5cU44v5MmmIkT+8RhuiCk4MZ7/rfYzWKIEqbyLNy46STu9SjG?=
 =?us-ascii?Q?+abKWFxxdQs9OwVkiAxXH96uj4QjNsjmdza4M6gKP0m8KDRaZ7vwhCOw2i1V?=
 =?us-ascii?Q?Pfb7Ty0xExQKQWqUb8t4p/V5wqMEgoc1BqE+j5Ezx4RzD4dIv31zKLMmSbJ9?=
 =?us-ascii?Q?wNk2ZOfOSi4zFJfQIgK8/hiFiQ91iePYN7gRB8zwIV2nUsApG/8p5tGm590Z?=
 =?us-ascii?Q?H+LCF2KOkAFsZq+eK3WzCT9wSplrPoOq1+zjYygBvQuGOYtSqNgV69q+82+e?=
 =?us-ascii?Q?SKx/b0K9qIccGBDBHS4aSZKkqBq6dOvh1w1NFyd7A1+9Tcdh9DzknCnKTtLR?=
 =?us-ascii?Q?iGZYwgvv0C8iC1sg3jXWdKoz0STGnXbe003KEh6h2EcsXDylBIEAvytXy4Ea?=
 =?us-ascii?Q?s7gTA1G5A46WSlruLXkBp575LOuxx3UlPriX6b1Hm/TEdfMD6JCzXHSXtX7h?=
 =?us-ascii?Q?oXgyCsmTt7GZevhUxY/Hfbfuvsn9oK3ELEFbRAe/08X1QpoSxQlAXF1BM8Id?=
 =?us-ascii?Q?FRCPRo4kTLw9NXnpypdjA6r+VfLFVvY97ay3ChpUfoGQ2mcfiqkIbDbpO2tj?=
 =?us-ascii?Q?tURTMTGZWv2/I0Fpma6AIpQrEFSuLmSbwsmLFTDnTdjZGWUC+3BCXccgUFuD?=
 =?us-ascii?Q?yuv3GiQuUYjMmHIpV54L0xT77+CC9RDzyiG+BQe5HduDcpTVSUGNloEM6VZ7?=
 =?us-ascii?Q?pCYotMDzlw=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3504.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c0590fb-deb8-485f-4015-08da341c163b
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2022 13:34:06.2744 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UFOgoyZ1hSOlnIsmGX2NP6u6Xg/o/V58Z9gveaQmgBoV41r7Cp40n3u2eAZUp/U0tNRr+4DETkXnJEWhUIuFIA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3780
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

> -----Original Message-----
> From: Pei, Andy <andy.pei@intel.com>
> Sent: Wednesday, April 27, 2022 4:30 PM
> To: dev@dpdk.org
> Cc: Xia, Chenbo <chenbo.xia@intel.com>; maxime.coquelin@redhat.com; Cao,
> Gang <gang.cao@intel.com>; Liu, Changpeng <changpeng.liu@intel.com>
> Subject: [PATCH v7 09/18] examples/vdpa: add vDPA blk support in example

Better be: examples/vdpa: add virtio blk support

>=20
> Add virtio blk device support to vDPA example.
>=20
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
>  examples/vdpa/main.c             | 57 ++++++++++++++++++++++++++++++++++=
+
>  examples/vdpa/vdpa_blk_compact.h | 65
> ++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 122 insertions(+)
>  create mode 100644 examples/vdpa/vdpa_blk_compact.h
>=20
> diff --git a/examples/vdpa/main.c b/examples/vdpa/main.c
> index 5ab0765..2544141 100644
> --- a/examples/vdpa/main.c
> +++ b/examples/vdpa/main.c
> @@ -20,6 +20,7 @@
>  #include <cmdline_parse_string.h>
>  #include <cmdline_parse_num.h>
>  #include <cmdline.h>
> +#include "vdpa_blk_compact.h"
>=20
>  #define MAX_PATH_LEN 128
>  #define MAX_VDPA_SAMPLE_PORTS 1024
> @@ -159,8 +160,54 @@ struct vdpa_port {
>  };
>=20
>  static int
> +vdpa_blk_device_set_features_and_protocol(const char *path)
> +{
> +	uint64_t protocol_features =3D 0;
> +	int ret;
> +
> +	ret =3D rte_vhost_driver_set_features(path, VHOST_BLK_FEATURES);
> +	if (ret !=3D 0) {
> +		RTE_LOG(ERR, VDPA,
> +			"rte_vhost_driver_set_features for %s failed.\n",
> +			path);
> +		goto out;
> +	}
> +
> +	ret =3D rte_vhost_driver_disable_features(path,
> +		VHOST_BLK_DISABLED_FEATURES);
> +	if (ret !=3D 0) {
> +		RTE_LOG(ERR, VDPA,
> +			"rte_vhost_driver_disable_features for %s failed.\n",
> +			path);
> +		goto out;
> +	}
> +
> +	ret =3D rte_vhost_driver_get_protocol_features(path,
> &protocol_features);
> +	if (ret !=3D 0) {
> +		RTE_LOG(ERR, VDPA,
> +			"rte_vhost_driver_get_protocol_features for %s
> failed.\n",
> +			path);
> +		goto out;
> +	}
> +
> +	protocol_features |=3D VHOST_BLK_PROTOCOL_FEATURES;
> +
> +	ret =3D rte_vhost_driver_set_protocol_features(path,
> protocol_features);
> +	if (ret !=3D 0) {
> +		RTE_LOG(ERR, VDPA,
> +			"rte_vhost_driver_set_protocol_features for %s
> failed.\n",
> +			path);
> +		goto out;

This goto is not needed.

> +	}
> +
> +out:
> +	return ret;
> +}
> +
> +static int
>  start_vdpa(struct vdpa_port *vport)
>  {
> +	uint32_t device_type =3D 0;
>  	int ret;
>  	char *socket_path =3D vport->ifname;
>=20
> @@ -192,6 +239,16 @@ struct vdpa_port {
>  			"attach vdpa device failed: %s\n",
>  			socket_path);
>=20
> +	ret =3D rte_vhost_driver_get_vdpa_dev_type(socket_path, &device_type);
> +	if (ret =3D=3D 0 && device_type =3D=3D VDPA_DEVICE_TYPE_BLK) {
> +		RTE_LOG(NOTICE, VDPA, "is a blk device\n");

Should add info of socket path

> +		ret =3D vdpa_blk_device_set_features_and_protocol(socket_path);
> +		if (ret !=3D 0)
> +			rte_exit(EXIT_FAILURE,
> +				"set vhost blk driver features and protocol
> features failed: %s\n",
> +				socket_path);
> +	}
> +
>  	if (rte_vhost_driver_start(socket_path) < 0)
>  		rte_exit(EXIT_FAILURE,
>  			"start vhost driver failed: %s\n",
> diff --git a/examples/vdpa/vdpa_blk_compact.h
> b/examples/vdpa/vdpa_blk_compact.h
> new file mode 100644
> index 0000000..136c3f6
> --- /dev/null
> +++ b/examples/vdpa/vdpa_blk_compact.h
> @@ -0,0 +1,65 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2022 Intel Corporation
> + */
> +
> +#ifndef _VDPA_BLK_COMPACT_H_
> +#define _VDPA_BLK_COMPACT_H_
> +
> +/**
> + * @file
> + *
> + * Device specific vhost lib
> + */
> +
> +#include <stdbool.h>
> +
> +#include <rte_pci.h>

above two headers are not used in this file?

> +#include <rte_vhost.h>
> +
> +/* Feature bits */
> +#define VIRTIO_BLK_F_SIZE_MAX     1    /* Indicates maximum segment size
> */
> +#define VIRTIO_BLK_F_SEG_MAX      2    /* Indicates maximum # of segment=
s
> */
> +#define VIRTIO_BLK_F_GEOMETRY     4    /* Legacy geometry available  */
> +#define VIRTIO_BLK_F_BLK_SIZE     6    /* Block size of disk is availabl=
e
> */
> +#define VIRTIO_BLK_F_TOPOLOGY     10   /* Topology information is
> available */
> +#define VIRTIO_BLK_F_MQ           12   /* support more than one vq */
> +
> +/* Legacy feature bits */
> +#ifndef VIRTIO_BLK_NO_LEGACY
> +#define VIRTIO_BLK_F_BARRIER      0    /* Does host support barriers? */
> +#define VIRTIO_BLK_F_SCSI         7    /* Supports scsi command passthru
> */
> +#define VIRTIO_BLK_F_CONFIG_WCE   11   /* Writeback mode available in
> config */
> +#endif /* !VIRTIO_BLK_NO_LEGACY */
> +
> +#ifndef VHOST_USER_F_PROTOCOL_FEATURES
> +#define VHOST_USER_F_PROTOCOL_FEATURES 30
> +#endif

It's already in rte_vhost.h, so no need to re-define.

Thanks,
Chenbo

> +
> +#define VHOST_BLK_FEATURES_BASE ((1ULL << VHOST_F_LOG_ALL) | \
> +	(1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) | \
> +	(1ULL << VIRTIO_RING_F_INDIRECT_DESC) | \
> +	(1ULL << VIRTIO_RING_F_EVENT_IDX) | \
> +	(1ULL << VHOST_USER_F_PROTOCOL_FEATURES) | \
> +	(1ULL << VIRTIO_F_VERSION_1))
> +
> +#define VHOST_BLK_DISABLED_FEATURES_BASE ((1ULL <<
> VIRTIO_F_NOTIFY_ON_EMPTY) | \
> +	(1ULL << VIRTIO_RING_F_EVENT_IDX))
> +
> +#define VHOST_BLK_FEATURES (VHOST_BLK_FEATURES_BASE | \
> +	(1ULL << VIRTIO_BLK_F_SIZE_MAX) | (1ULL << VIRTIO_BLK_F_SEG_MAX) | \
> +	(1ULL << VIRTIO_BLK_F_GEOMETRY) | (1ULL << VIRTIO_BLK_F_BLK_SIZE) |
> \
> +	(1ULL << VIRTIO_BLK_F_TOPOLOGY) | (1ULL << VIRTIO_BLK_F_BARRIER)  |
> \
> +	(1ULL << VIRTIO_BLK_F_SCSI)     | (1ULL << VIRTIO_BLK_F_CONFIG_WCE)
> | \
> +	(1ULL << VIRTIO_BLK_F_MQ))
> +
> +/* Not supported features */
> +#define VHOST_BLK_DISABLED_FEATURES (VHOST_BLK_DISABLED_FEATURES_BASE | =
\
> +	(1ULL << VIRTIO_BLK_F_GEOMETRY) | (1ULL << VIRTIO_BLK_F_BARRIER) | \
> +	(1ULL << VIRTIO_BLK_F_SCSI)  | (1ULL << VIRTIO_BLK_F_CONFIG_WCE))
> +
> +/* Vhost-blk support protocol features */
> +#define VHOST_BLK_PROTOCOL_FEATURES \
> +	((1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD) | \
> +	(1ULL << VHOST_USER_PROTOCOL_F_CONFIG))
> +
> +#endif /* _VDPA_BLK_COMPACT_H_ */
> --
> 1.8.3.1