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 E2550A00BE;
	Mon, 25 Apr 2022 14:42:34 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 85B0841109;
	Mon, 25 Apr 2022 14:42:34 +0200 (CEST)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by mails.dpdk.org (Postfix) with ESMTP id 716DD40E78
 for <dev@dpdk.org>; Mon, 25 Apr 2022 14:42:33 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1650890553; x=1682426553;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=6IS6K5g7FlhVNVS+7Q75uS40+wMJNw0nZY+bnS9V0l0=;
 b=J4HZmtzsvCalgwVmmM6kTNIv2An7u4lTFH3hQLnhDmxFP+tJ319PI0k/
 4bPlMwbyEuv7whYmk99ZaB6XlACGwN0Bq3b5LebhQ494I/tfcAss7579b
 sGiVQ01I3EZi0cCEcPT01+tdQsPnZ9mqr6AMxMcgN0U761xMlEUU8zh2O
 LkI0LU5x36YFj4qjNFLhedX2MgBE7DeGwg5u3Hi414BYkZW1OQXEPQurN
 8rDhkb51nL0oHL6YG0UYH8W8eBYHNaokJ7W4i103FjDAkpb876+IQ+LLE
 R0/MfGSd2N07r6H+QpfwytrxRX20j2Ij0o+ygMyyhbvaJBDh2atzVCWvt Q==;
X-IronPort-AV: E=McAfee;i="6400,9594,10327"; a="290372998"
X-IronPort-AV: E=Sophos;i="5.90,288,1643702400"; d="scan'208";a="290372998"
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 25 Apr 2022 05:42:32 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.90,288,1643702400"; d="scan'208";a="660138810"
Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19])
 by fmsmga002.fm.intel.com with ESMTP; 25 Apr 2022 05:42:32 -0700
Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by
 ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27; Mon, 25 Apr 2022 05:42:31 -0700
Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by
 orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27 via Frontend Transport; Mon, 25 Apr 2022 05:42:31 -0700
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.40) by
 edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2308.27; Mon, 25 Apr 2022 05:42:31 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g0JgykMA7RsLGXcJSRVWtUziJMXXzyw/lgTXLthS7BIJMgYXYlvT/iPi8AMmF4kr6zz8thHje94oIxF2X0gjo5Yfhe5Xp+J1PgHTGuLXPIV10OChvqrROoaGUgW0Gi853UEuHZrV92+eGPRq6hXUOXdEj3HrzTSbcoD3QVxXyco1OT+r3q1eXUNoc6m/geuh36Ryf3GULSKiAhXNZR8pkaunP//mM3bG9F0bqnIN661zoBF0A2Bz1iXLLXuTKWihAnskLVvXleF/mIS8k7/rJ7fl7+v0POllnLClNTZqSA/aY/u1MOF+7E+OluI7+RWwgcDmti5Kk70vnNpquuVjBw==
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=RaH1NY/d2ABKyQ8NYv7mZaRqmyEQC18kcjttu+u+0Nc=;
 b=oLMswgDRNnZYx94bM56UkYoHzQWPnnhwYEAr9AIuzKwHqdWeDhybllkVLNIFjWzIq7ruS0180uOiNEUbftYLAJoXFKT2/r049OlualGKDNcqtLGMazYwysGWEqlJ60APiXL1kWxTOWJcuS7/AEH9J9QYbCygwkPdrvN3BZ00nZF385rdP4dnF1aEf7E+BvGGCbiMQ6TpdmJh1x5huOteFIImbMy8dZNBw0Hio4nAamUhpaNRx1hn3oXdkTrZZu9ElQHw/4aXdfYCCO7rEF53j0X2osGqLCDvbTcPWjZmLa1RopGAxqLGHAKmkNHKyR4bp6xg/+ywg969wepsTlre5w==
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 BN6PR11MB1348.namprd11.prod.outlook.com (2603:10b6:404:46::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.13; Mon, 25 Apr
 2022 12:42:29 +0000
Received: from SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::4d1d:6453:f00c:cf8a]) by SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::4d1d:6453:f00c:cf8a%6]) with mapi id 15.20.5186.020; Mon, 25 Apr 2022
 12:42:29 +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 v6 03/16] vhost: add vhost msg support
Thread-Topic: [PATCH v6 03/16] vhost: add vhost msg support
Thread-Index: AQHYVWDy88W0O072QUyKZnxo+HEb/q0Alh8A
Date: Mon, 25 Apr 2022 12:42:29 +0000
Message-ID: <SN6PR11MB35046DE1337F031A22E806E29CF89@SN6PR11MB3504.namprd11.prod.outlook.com>
References: <1643093258-47258-2-git-send-email-andy.pei@intel.com>
 <1650530034-59744-1-git-send-email-andy.pei@intel.com>
 <1650530034-59744-4-git-send-email-andy.pei@intel.com>
In-Reply-To: <1650530034-59744-4-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: ce37efba-f493-4934-9f63-08da26b90f52
x-ms-traffictypediagnostic: BN6PR11MB1348:EE_
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-microsoft-antispam-prvs: <BN6PR11MB13485918F3BD4902750D2F6B9CF89@BN6PR11MB1348.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: kQIKTyXgPWMvvAEA5+sGssWdWjXCfXCWoObAr0LH6GUTC7P9vAfuq/g0kBRk8oDw/3foKDl45YuV8oku6oqbbdxO8MFzs2IjEo9epRWfKM9laAHjQzc2Z/XiH30RrL3pEWgmx+GU51FZgfww94yTlJrTzWFNPG+8U3IRhp/X8JiNEaXk0xFSTd/9ZRSrVKUb9fs2PnCFtEilnYIR4vqA+8RW/zXQQAUCddCoaL6UeHwp46cCyRGvc+c8QcnreYPM/w/75leelTBDtPIWiCXR+gKkGYQJdT6HHb2QGRUvj7+LH6nw/bLfMPVraYjK3NZyDTmFNJChIAKFfs8HBOBJPBbdmbMxJ0hUH0bkGotpfr2n0TLgWioV5XasB6y1QfmSGh15yB+AEMQeJpqiDd3X6g2ZDtT/72W4/PPducq5/dHeuemym0yj464QSB5iXqfNTDHJsKSGvAOvCqowdNSd14z4d5T5DBggpEcdwfuBuOpRdkfOjQt6Jfh4/sno2BKsPnDJPFnppMwhN8YMFDz7nj5H73ffJVDXqYAgf58cBDM4K2VMBW7cQhCutFCP6QY4vkLV4sVVMS1giwJs+mCj6Sbocw2SZ+51c3Oy5HOX6Yd0/9ZQzmOrX4tLeXjtaNuryNbodW8elWgccLVKI/rEgCOohrR30LZ7fCFT0y6hAYSyYxpqVg93oyMmGlLtJj9xT0L4tU3n7V/fsd8NClyfAg==
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)(508600001)(4326008)(76116006)(186003)(107886003)(66946007)(66556008)(66446008)(8676002)(66476007)(122000001)(64756008)(54906003)(71200400001)(6506007)(26005)(53546011)(7696005)(33656002)(316002)(110136005)(9686003)(82960400001)(55016003)(2906002)(86362001)(8936002)(52536014)(5660300002)(83380400001)(38100700002)(38070700005);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?rWpvFgbKR+UQ/lWu2BgmtGYPky9rn5ZwGL7yZUW/uduEMMVJNhtN9RncOT50?=
 =?us-ascii?Q?wYaCUTsEbpQvw9zPmnFkHcIAlL6HEP7LnWJb9tzbA/Fg9EB3xFnwdHs1Tchj?=
 =?us-ascii?Q?bWGuIMpgJ/tD3Mu9boc7Gk1iuMSEfg/Q+kyDOWJ4L4v7zFCHbTFS7OmSC7PR?=
 =?us-ascii?Q?YoPFlVRpqskC7ZWYFhe25E4IrMzLdUvtOiCJ5EafpSNpZ37xdYR3O8WXx+dE?=
 =?us-ascii?Q?kGkHGeK7IxOB90iWGHY/KDp8QwWdFffIGQ9lvPninIo2O8SET26veEJw9/ZC?=
 =?us-ascii?Q?jkEq/Rgz/P7OzTG9qIHOzLFj6oUKzI4+qYQBaSqSsIbuCzQ07eNgIczXVkSN?=
 =?us-ascii?Q?3vSV6P+SIjF/vMscC7yMhXgoxtnwdJJ6U6/r8sRNFwf9z/FcVTC65ZNp2O0v?=
 =?us-ascii?Q?m4rfoukxd9iLPGWjn1Z4QGEJFVQOnhKhIk0hPyTA0HWVO9AZtvUGrocSqITo?=
 =?us-ascii?Q?8xtQ3B4sTxRb9KFnmdUwAbANv0ajyhbP1hIKqYC/bZpKH2srF8bh2ztkOJsX?=
 =?us-ascii?Q?ZohnS4bsWbVN6bYkGqjU4z1m8MRBZeyd8NTwFnY9HXLCyJh99xgd3N+bmBhG?=
 =?us-ascii?Q?RAC912mdA7ICd3RXJ+toeISTDkWKDHyO29Gjd10chZ93TvmM+bi1VA6A4Kyr?=
 =?us-ascii?Q?/Sg54fD/+mwvSZeco8fqTq/IOY/iSovfCnH3XBOXrZHBTbjQREuVyJ6pqPVe?=
 =?us-ascii?Q?hQ25BUI4VTXxIfnruvSGnEu5hxvsv3/OkUwxu9/CN1vCjS9XPQo/iHwT1j4a?=
 =?us-ascii?Q?uf6ACeUj13JYkKBHimpY+ocPsRImfL+St5ee9wReY+gjoJxW25OZrvCkNKnL?=
 =?us-ascii?Q?KUUCl6NIzvoDU+AMggPk/k1MmfYVpSYTDUoawpPKnHLcp6dne4GoZRmxVmUu?=
 =?us-ascii?Q?cLz4tbIBYNBC5Ocy5eMdl+dhUqsCV8drC/VIZ0NEZtj0LpE9o//2BpZutmRn?=
 =?us-ascii?Q?6yGSlH1qbQaW1k2fzObdDPnAYqyVRgjfPYYF8NGygtfwYQ3UJ8Gz8vgWgCSl?=
 =?us-ascii?Q?BD99YzWwR6rWJklAxIM8/HQvOKA+uXNe4m+H9IvrFEKvk9QBfjA+6fE2AZk7?=
 =?us-ascii?Q?5Z4Nrw1NtE4mhrMZff59mjWs+wV8dsaDiFKPtJAg+Y9ROyyhpvFMrNfUw16G?=
 =?us-ascii?Q?vRag/sEHFNj5zIKNCY6c8Tk+QGA5xjygiZgyC9iE6UQNi1x8gpoP9z75yHaF?=
 =?us-ascii?Q?Xx5RDCclyv8J9Z7cILD8CcxQvvB5HrOXISe3S7Dm3hCVYNo9n/kScYRTYGuW?=
 =?us-ascii?Q?p6WgGZ5p7/wpXHubSPN9mtS6tuqMzhbH36884p8WvLyRbqaV08ak5s/A9/A+?=
 =?us-ascii?Q?fWxhg9T2+Wjuid0EThS2Od449/eD2MAdOvSO4Dst7g0b5dsXWfP4FDFuKnk8?=
 =?us-ascii?Q?AphpfkztTH5aVviLWD9pHW/8FKmMJMIgYFgtFuQpRRdEnBbWo/2ughXwV3Kk?=
 =?us-ascii?Q?uae0GnW3lsdKnlx8KAvzG/FimRqVNXKhk+fhbU+cf2zqRcy12sQAkUHbZDGu?=
 =?us-ascii?Q?RiQ1MNh+tfHPHR/Ce1BEz9PXB8Om32hhGT3EqF2mecM+DykX+3KUWnX25l0Y?=
 =?us-ascii?Q?5zKYpLQQQZHHqfSIF3yN1slzHzvPT5W9uaIvvIQRrO5NmRHgkxGuIMGCc6Ky?=
 =?us-ascii?Q?wV5WwU1cjNEJIOTnct/j3xjwn1A9OJmYXEAGyZ5IT6eO9zyZpDdiEvtkzozy?=
 =?us-ascii?Q?hx0ZIL1iHrgs2gS2LbTDU+lRhaRW+112UxXhzWACH+axvnqxiN3COzS03LwI?=
 =?us-ascii?Q?iWZcrcabUg=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: ce37efba-f493-4934-9f63-08da26b90f52
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Apr 2022 12:42:29.3599 (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: VFLacUL2mafQI+1l7Vzb1k0AiYRaz9Med2tnEQn7PbpNJFRjkcQCFY7Fm9VCZowXOM2OAVi0kx8/9gdsH36u4A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1348
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

Hi Andy,

> -----Original Message-----
> From: Pei, Andy <andy.pei@intel.com>
> Sent: Thursday, April 21, 2022 4:34 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 v6 03/16] vhost: add vhost msg support
>=20
> Add support for VHOST_USER_GET_CONFIG and VHOST_USER_SET_CONFIG.
> VHOST_USER_GET_CONFIG and VHOST_USER_SET_CONFIG message is only
> supported by virtio blk VDPA device.
>=20
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
>  lib/vhost/vhost_user.c | 69
> ++++++++++++++++++++++++++++++++++++++++++++++++++
>  lib/vhost/vhost_user.h | 13 ++++++++++
>  2 files changed, 82 insertions(+)
>=20
> diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c
> index 1d39067..3780804 100644
> --- a/lib/vhost/vhost_user.c
> +++ b/lib/vhost/vhost_user.c
> @@ -80,6 +80,8 @@
>  	[VHOST_USER_NET_SET_MTU]  =3D "VHOST_USER_NET_SET_MTU",
>  	[VHOST_USER_SET_SLAVE_REQ_FD]  =3D "VHOST_USER_SET_SLAVE_REQ_FD",
>  	[VHOST_USER_IOTLB_MSG]  =3D "VHOST_USER_IOTLB_MSG",
> +	[VHOST_USER_GET_CONFIG]  =3D "VHOST_USER_GET_CONFIG",
> +	[VHOST_USER_SET_CONFIG]  =3D "VHOST_USER_SET_CONFIG",
>  	[VHOST_USER_CRYPTO_CREATE_SESS] =3D "VHOST_USER_CRYPTO_CREATE_SESS",
>  	[VHOST_USER_CRYPTO_CLOSE_SESS] =3D "VHOST_USER_CRYPTO_CLOSE_SESS",
>  	[VHOST_USER_POSTCOPY_ADVISE]  =3D "VHOST_USER_POSTCOPY_ADVISE",
> @@ -2542,6 +2544,71 @@ static int is_vring_iotlb(struct virtio_net *dev,
>  }
>=20
>  static int
> +vhost_user_get_config(struct virtio_net **pdev,
> +			struct vhu_msg_context *ctx,
> +			int main_fd __rte_unused)
> +{
> +	struct virtio_net *dev =3D *pdev;
> +	struct rte_vdpa_device *vdpa_dev =3D dev->vdpa_dev;
> +	int ret =3D 0;
> +
> +	if (vdpa_dev->ops->get_config) {
> +		ret =3D vdpa_dev->ops->get_config(dev->vid,
> +					   ctx->msg.payload.cfg.region,
> +					   ctx->msg.payload.cfg.size);
> +		if (ret !=3D 0) {
> +			ctx->msg.size =3D 0;
> +			VHOST_LOG_CONFIG(ERR,
> +					 "(%s) get_config() return error!\n",
> +					 dev->ifname);
> +		}
> +	} else {
> +		VHOST_LOG_CONFIG(ERR, "(%s) get_config() not supportted!\n",

Supported=20

> +				 dev->ifname);
> +	}
> +
> +	return RTE_VHOST_MSG_RESULT_REPLY;
> +}
> +
> +static int
> +vhost_user_set_config(struct virtio_net **pdev,
> +			struct vhu_msg_context *ctx,
> +			int main_fd __rte_unused)
> +{
> +	struct virtio_net *dev =3D *pdev;
> +	struct rte_vdpa_device *vdpa_dev =3D dev->vdpa_dev;
> +	int ret =3D 0;
> +
> +	if (ctx->msg.size !=3D sizeof(struct vhost_user_config)) {

I think you should do sanity check on payload.cfg.size and make sure it's s=
maller
than VHOST_USER_MAX_CONFIG_SIZE

and same check for offset

> +		VHOST_LOG_CONFIG(ERR,
> +			"(%s) invalid set config msg size: %"PRId32" !=3D %d\n",
> +			dev->ifname, ctx->msg.size,

Based on you will change the log too, payload.cfg.size is uint32_t,
so PRId32 -> PRIu32

> +			(int)sizeof(struct vhost_user_config));

So this can be %u

> +		goto OUT;
> +	}
> +
> +	if (vdpa_dev->ops->set_config) {
> +		ret =3D vdpa_dev->ops->set_config(dev->vid,
> +			ctx->msg.payload.cfg.region,
> +			ctx->msg.payload.cfg.offset,
> +			ctx->msg.payload.cfg.size,
> +			ctx->msg.payload.cfg.flags);
> +		if (ret)
> +			VHOST_LOG_CONFIG(ERR,
> +					 "(%s) set_config() return error!\n",
> +					 dev->ifname);
> +	} else {
> +		VHOST_LOG_CONFIG(ERR, "(%s) set_config() not supportted!\n",

Supported

> +				 dev->ifname);
> +	}
> +
> +	return RTE_VHOST_MSG_RESULT_OK;
> +
> +OUT:

Lower case looks better

> +	return RTE_VHOST_MSG_RESULT_ERR;
> +}

Almost all handlers need check on expected fd num (this case is 0), so the =
above new
handlers should also do that. Please refer to validate_msg_fds in other han=
dlers.

BTW, you can wait for review for other patches and send new versions later.

Thanks,
Chenbo

> +
> +static int
>  vhost_user_iotlb_msg(struct virtio_net **pdev,
>  			struct vhu_msg_context *ctx,
>  			int main_fd __rte_unused)
> @@ -2782,6 +2849,8 @@ typedef int (*vhost_message_handler_t)(struct
> virtio_net **pdev,
>  	[VHOST_USER_NET_SET_MTU] =3D vhost_user_net_set_mtu,
>  	[VHOST_USER_SET_SLAVE_REQ_FD] =3D vhost_user_set_req_fd,
>  	[VHOST_USER_IOTLB_MSG] =3D vhost_user_iotlb_msg,
> +	[VHOST_USER_GET_CONFIG] =3D vhost_user_get_config,
> +	[VHOST_USER_SET_CONFIG] =3D vhost_user_set_config,
>  	[VHOST_USER_POSTCOPY_ADVISE] =3D vhost_user_set_postcopy_advise,
>  	[VHOST_USER_POSTCOPY_LISTEN] =3D vhost_user_set_postcopy_listen,
>  	[VHOST_USER_POSTCOPY_END] =3D vhost_user_postcopy_end,
> diff --git a/lib/vhost/vhost_user.h b/lib/vhost/vhost_user.h
> index c946cc2..97cfb2f 100644
> --- a/lib/vhost/vhost_user.h
> +++ b/lib/vhost/vhost_user.h
> @@ -50,6 +50,8 @@
>  	VHOST_USER_NET_SET_MTU =3D 20,
>  	VHOST_USER_SET_SLAVE_REQ_FD =3D 21,
>  	VHOST_USER_IOTLB_MSG =3D 22,
> +	VHOST_USER_GET_CONFIG =3D 24,
> +	VHOST_USER_SET_CONFIG =3D 25,
>  	VHOST_USER_CRYPTO_CREATE_SESS =3D 26,
>  	VHOST_USER_CRYPTO_CLOSE_SESS =3D 27,
>  	VHOST_USER_POSTCOPY_ADVISE =3D 28,
> @@ -125,6 +127,16 @@
>  	uint16_t queue_size;
>  } VhostUserInflight;
>=20
> +#define VHOST_USER_MAX_CONFIG_SIZE		256
> +
> +/** Get/set config msg payload */
> +struct vhost_user_config {
> +	uint32_t offset;
> +	uint32_t size;
> +	uint32_t flags;
> +	uint8_t region[VHOST_USER_MAX_CONFIG_SIZE];
> +};
> +
>  typedef struct VhostUserMsg {
>  	union {
>  		uint32_t master; /* a VhostUserRequest value */
> @@ -148,6 +160,7 @@
>  		VhostUserCryptoSessionParam crypto_session;
>  		VhostUserVringArea area;
>  		VhostUserInflight inflight;
> +		struct vhost_user_config cfg;
>  	} payload;
>  	/* Nothing should be added after the payload */
>  } __rte_packed VhostUserMsg;
> --
> 1.8.3.1