get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/139693/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 139693,
    "url": "https://patches.dpdk.org/api/patches/139693/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20240426074831.1729792-6-chaoyong.he@corigine.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20240426074831.1729792-6-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240426074831.1729792-6-chaoyong.he@corigine.com",
    "date": "2024-04-26T07:48:26",
    "name": "[05/10] vdpa/nfp: add the live migration logic",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "281f4bfa516935adf10631dfc48de393412cf6db",
    "submitter": {
        "id": 2554,
        "url": "https://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 2642,
        "url": "https://patches.dpdk.org/api/users/2642/?format=api",
        "username": "mcoquelin",
        "first_name": "Maxime",
        "last_name": "Coquelin",
        "email": "maxime.coquelin@redhat.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20240426074831.1729792-6-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 31827,
            "url": "https://patches.dpdk.org/api/series/31827/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=31827",
            "date": "2024-04-26T07:48:21",
            "name": "support software live migration",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/31827/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/139693/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/139693/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D37F543F12;\n\tFri, 26 Apr 2024 09:49:36 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 45A0943C81;\n\tFri, 26 Apr 2024 09:49:05 +0200 (CEST)",
            "from NAM10-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam10on2118.outbound.protection.outlook.com [40.107.94.118])\n by mails.dpdk.org (Postfix) with ESMTP id C5DD143C84\n for <dev@dpdk.org>; Fri, 26 Apr 2024 09:49:03 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by SN4PR13MB5279.namprd13.prod.outlook.com (2603:10b6:806:206::7)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.22; Fri, 26 Apr\n 2024 07:49:02 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e%5]) with mapi id 15.20.7544.010; Fri, 26 Apr 2024\n 07:49:02 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=elKZAEic1Tm/at1O1SgMtX1nTTRmLD1L6GegK7VO/lCSdzqkPYiUm/fgUv3lVQgvYdIQrcQCMzrppfHCsDOvnfr9OwjRfVCXRpAeMnYDdsP6pbis3T0NAe/w26yuMjQmMeJDj31+6Xxi19eyZ49lrB7C5j3u6pwde0BrlNPh7Nmt/cyU8VoX2rIGxSkCyLyCGTb9pFJuzSUxharaNt3N2CkdzJeazHV+8q5utsNCkOuSuVeP94wfC5A70HqVCLO3CuBmXScXxQzVRhE5fAJ9ze6USqNwx0IhTYSjS3Qtu5TdlerxlbOsDD48SB6JooDYXKQbjHKd80P/p0XUm8lcJA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n 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;\n bh=IxrO70/0MoJrzhVMhVhlAI0hBVXUPvSYpeqWnz4+MZU=;\n b=dc3GqIMJDSBBLmy0C/0/mSbQfMprqpR3TxlDHXOjx4/7VWlgOfZjyAddvBEq9Q5uaw0aDFn8iMt0mUJ/WjnGOF+7Raa0xIEGMWNaBlJAkpoODByECe2YZttLP/J4l1cyW0ukgoSex4AGiweKxx8/ffqh/iSkLjhoP7pI2rSNzEzz8l2cghHzMCTZO4hbvTN1S+qGwWM72IU4bTixrX0gGDQxSdIkC3kiS3pphTicgicMhe5SClBPP13k3xkEs3RMN4gEiF1nFW/x2Q/vSAi0wVBcMtUnnb0I4TTKxzQfeSetLUxMx2eThL4fINwFCDkGEdyoEYzZNpno9z4qjB7CXA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=IxrO70/0MoJrzhVMhVhlAI0hBVXUPvSYpeqWnz4+MZU=;\n b=Hlpl7+cs/kda8rj7/6MnLNy/4L7yqtqS8s447U9jjWXWOdfLOYJqhn16NM0qmMg0ux1eXtbqKu5SRivXtjNCfO5Dx1pZrUY+6aSTpxRVQG/AQSEsiOzGExVGxEXsDedLRvmrang8vxINnZY1WUFG/RKs++XO9sqvjLH/VY1swg4=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Chaoyong He <chaoyong.he@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "oss-drivers@corigine.com, Xinying Yu <xinying.yu@corigine.com>,\n Chaoyong He <chaoyong.he@corigine.com>, Long Wu <long.wu@corigine.com>,\n Peng Zhang <peng.zhang@corigine.com>",
        "Subject": "[PATCH 05/10] vdpa/nfp: add the live migration logic",
        "Date": "Fri, 26 Apr 2024 15:48:26 +0800",
        "Message-Id": "<20240426074831.1729792-6-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20240426074831.1729792-1-chaoyong.he@corigine.com>",
        "References": "<20240426074831.1729792-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "BYAPR02CA0007.namprd02.prod.outlook.com\n (2603:10b6:a02:ee::20) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|SN4PR13MB5279:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "d7b1d3ef-48b3-4c55-50d4-08dc65c556d7",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230031|52116005|1800799015|366007|376005|38350700005;",
        "X-Microsoft-Antispam-Message-Info": "\n ZlWmSuhGU1hU8EUFFJ2JPbwC28OdSDdU49h00+d37REjfN9dpsbpTS+Nnf2LpVVuU2fBFq3JVIemmGmyx9Lch2fDQjz84rXl7xuXjixqAmlBE3UYHZ8cB6Xv9Qac5SI5Nd4Lauf0kV2K/KtZEBO/paYNwU0PmDsI+22FYQRRw49MTAfS+jhEmxLVwBPXb20PJ0M1E23hHo0tZG/QDcNgrqm589NmX/GBYsYHQu+qR1vvr3R2kroxN6Pn8Cx1UsARPi2e9qw6kO5Z7yuN8U07Sm38zg15gMPHnuz/DPJU1lsAW2Yz/77Jfzs/ZWFxvhCYyIpe8xubcOzL0HF6z+UGHmbyLVvhQ0s8qB5vWmvuKCR8g90fM2X+IEed9N34cNyKvbKs70Xubu0YmzKimloirzfFAfWJNCjvqdkhnF+0aahz7vU5vvzHfxmIAl6ux40hZJ/OtRAsjrjZhPWltkgutSME5GwkPZgUbhUFlIFQNhh9o/OQVYgFEaDFWEE98FcAhxPJEeNcBjfJ3RfxxcR9hkuWtAsz1yrjpn0A+3FyZAM1aJNIpB7e6V2vT1J8Hk4PzTbj3rsKpSomv78dhZqdRFS6L7+PVnYmTofxr7wTSu45FxvtglFDbnGwjSC0yGvnezoYonMAXrHo3w1zdRsI4Uq1d9ABRy+vUSJ9XWtLgPmQR7cDsStE9ACVmayCQ5BIdddf8dNxoDo/1ebqPU3wfRY2CLfHVBJ+iTzR5hYSCIooEsFGi/6PMaVE7NXWYXQZNQ0pQ/GaRtjmu2lTN/dFriM8EvpXkuEdVa2icrfGptYgMxb4kJ07Uqdqq6JEvRRbXq5RfVKWhLXqHf3wbR+Oiir4i0IDFdKE4u+eLvmWv/zZOmYUKuKhX4r/C1Aq8fAL4jI1eSA13hRQe80vq7xDgHSGLUDqpvMNYK+/AvRslTcqYLNMeubNhp5tB6UFVhLsZCv2oYT1ESgg3bF5B07s10YqXfc//7Z5eMlKe+NJ/MhJo3DnJ3rpaZTWqgyJ0oJpQbOnPrvx9sy3+AuVE86gsZfgW8nat22X1L1TdmeMBP5rX8ZcP3ROGaUayJaKUGEB7eYGqA1o3Wxfd1ln/9h3K2i7oUFHYneEO332yC/dWRSq8DLCF0ZQ2+GEPmynEv53v/7bEQRvRqZsLn+pJh1FqU+/M/GGtCas/77KCazHy7fbPO6JYFrxt2PA9DEiuqD3xtJOYpORf8rWoX0yDtFv90lsQacY/+v4wNAa9FHZg+mGls51kPTC3hnjwP4RLGCT+J3BvKeYN8HKL2ZN6gnNTJvPXJcHtrEiwiLg5cQFhZ5WXm3uByGbj9vkGv8Ec6PoGBpgKLoAv4B+q6jrM1Dc2A==",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(52116005)(1800799015)(366007)(376005)(38350700005); DIR:OUT;\n SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n f5VVqHVNJzxyLqNKEiQ79/6ZlpW2KfwxB9jJusE/MxKuNEmU5tyjRANseQykdU4/cPH5Sub74h7apR0mIfuU+o4orfbciq+fcTrDtpGlFamC/l4cqXqMX844RaH9+7lnmfCnjyFMaOppXPW43Dl6SAwMuMch7LiWd1IKR96u8NcwWa2jpnbGHPfZCkw6/BnxB4tiv/8pd2docQ4+XpSorgveRHRX2LezTY658EPWQA8TXHM/EfPV8n1pllflndadMGBdaZYQAGmgH/NcV5lwbmXynUuJDodjHZxpphbbL0L1zlHkzZGJ5nA474WlRPl+uyCnX7g+ge1WVSlP2kSTlbLFojYxrEzEoZlf7emDXq4SGZFC5H6smxW8Tuug7wE3wnXlc2Uw4lQp5c5SOMlgUtjTStr/fFLEYg9hjBULR5QP2SuF6gYuW6cgXLq/IR0K35d83lfJ74ATWx4Kv8qhAr9oFO2lpn797uQ/zUKVQAY8BkG+udl376LwN/Ezb3p3a4+rrw/BJN5avFR41immI2dmPOEmecx4941To413howY6QI05l0uxH+hphZBZ5y6W4agMjBi++VDlYv6SvDwEX36HCgiwZcdLZFvsMIVlATcqYX4cTraZ2hHZkXnRDJq/ciSgK83rdWejx5yy89ehTq9A72hZNqWwciGTs6jrckX93XQNtwz/4rs/xG4h00l34n7zQObQJnMntVWhJ8zomfccDx1XghzkKRAzw42KmjIFzZDCd9p9+GTgSAWqEhCSk7Vc/bdtxqRYOxe95IH2/jUTQgXncighPKJ8FbUBX8akL8xzXFXsehz9q4lmsh1GtlHTxThOhLpk35fRrQizmX1KhMKcNvSeTVccqrbdrYOXE9dtfCU2xnfhTfqMOI4Y2pY2aw4VYjrLQH8CCUtj0mdnwqoLkP7Bj0iEF1OEJHUuEgjokCsfcNDMvnSRQTtNj6iycAp3RINhUbZTao4j/X4MAsAeeKVzsM0ZxKcr1X7ceqxk724b/7EWPwv3ltwd7m1CiLRExLVHiXm5efw57V3E7HF991TBgZxp5d9stXcIm9HuR0rd6WAksewvu8hE6zKhnKTZ7sbPR0XLxapaaYh1/L46t3edK9ylh+Jq/eElABIMA55BS1PizU/H5rix1F0W8E2sZA8pBk2f3EyCXPSyxP1lkv1GiNKK278/ecwmM8yMx7gbULY8Ltjbrgw+axPOXYJ+bjWyeFDvbOAJDR888f4yFoxseX0BoBxrd6t0/BV4MVXGAReCplZB2ALp7tN2+qs6bHUMYRIAGcjd7fteqo33bXSkXZA8iAQ0ykVdEXNWR8OsAVnHVDBOve6/Ewvl5HlUc/Sx1GqkLaQxc07KosQYeI2FqrxwCCN+8VrciG5o/vMS8oAu21vr+S6PF+m5BOmGIGi/nEvwB75hFlp97fpmbRv5v3T8x4aegJ9RrwfHmoaWIpUYfLMmnCXV8qJWff9W81T5qrVkZsCc7uAWkwyH9R5AqK42240jnZul5KcIUqyIWG6EB4XBc8yI/f4GPQO1GqQJp59d8vcih7Y6HxPk1Q96fkdjs/kD/WIRnhbk2oQNbdo8Z99/6Z6seeBEB6CBen++/DUbso7lg==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n d7b1d3ef-48b3-4c55-50d4-08dc65c556d7",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "26 Apr 2024 07:49:02.2261 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "fe128f2c-073b-4c20-818e-7246a585940c",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n oJ2ohAS33ogk056j2ifG4uOqfsOkJe7k7Rso5boEO6duMLWrocn/unSMRNcS9yXGOGS/6O7kCDSaj3bVPE7cq9wlHBXn65RUqztInqRfi94=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SN4PR13MB5279",
        "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>,\n <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>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "From: Xinying Yu <xinying.yu@corigine.com>\n\nAdd the basic logic of software live migration.\n\nUnset the ring notify area to stop the direct IO datapath if the\ndevice support, then we can setup the vring relay to help the\nlive migration.\n\nSigned-off-by: Xinying Yu <xinying.yu@corigine.com>\nReviewed-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\nReviewed-by: Peng Zhang <peng.zhang@corigine.com>\n---\n drivers/vdpa/nfp/nfp_vdpa.c      | 66 +++++++++++++++++++++++++++++++-\n drivers/vdpa/nfp/nfp_vdpa_core.c |  3 ++\n drivers/vdpa/nfp/nfp_vdpa_core.h |  4 ++\n 3 files changed, 71 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/drivers/vdpa/nfp/nfp_vdpa.c b/drivers/vdpa/nfp/nfp_vdpa.c\nindex cef80b5476..45092cb0af 100644\n--- a/drivers/vdpa/nfp/nfp_vdpa.c\n+++ b/drivers/vdpa/nfp/nfp_vdpa.c\n@@ -603,6 +603,30 @@ update_datapath(struct nfp_vdpa_dev *device)\n \treturn ret;\n }\n \n+static int\n+nfp_vdpa_sw_fallback(struct nfp_vdpa_dev *device)\n+{\n+\tint ret;\n+\tint vid = device->vid;\n+\n+\t/* Stop the direct IO data path */\n+\tnfp_vdpa_unset_notify_relay(device);\n+\tnfp_vdpa_disable_vfio_intr(device);\n+\n+\tret = rte_vhost_host_notifier_ctrl(vid, RTE_VHOST_QUEUE_ALL, false);\n+\tif ((ret != 0) && (ret != -ENOTSUP)) {\n+\t\tDRV_VDPA_LOG(ERR, \"Unset the host notifier failed.\");\n+\t\tgoto error;\n+\t}\n+\n+\tdevice->hw.sw_fallback_running = true;\n+\n+\treturn 0;\n+\n+error:\n+\treturn ret;\n+}\n+\n static int\n nfp_vdpa_dev_config(int vid)\n {\n@@ -646,8 +670,18 @@ nfp_vdpa_dev_close(int vid)\n \t}\n \n \tdevice = node->device;\n-\trte_atomic_store_explicit(&device->dev_attached, 0, rte_memory_order_relaxed);\n-\tupdate_datapath(device);\n+\tif (device->hw.sw_fallback_running) {\n+\t\tdevice->hw.sw_fallback_running = false;\n+\n+\t\trte_atomic_store_explicit(&device->dev_attached, 0,\n+\t\t\t\trte_memory_order_relaxed);\n+\t\trte_atomic_store_explicit(&device->running, 0,\n+\t\t\t\trte_memory_order_relaxed);\n+\t} else {\n+\t\trte_atomic_store_explicit(&device->dev_attached, 0,\n+\t\t\t\trte_memory_order_relaxed);\n+\t\tupdate_datapath(device);\n+\t}\n \n \treturn 0;\n }\n@@ -770,7 +804,35 @@ nfp_vdpa_get_protocol_features(struct rte_vdpa_device *vdev __rte_unused,\n static int\n nfp_vdpa_set_features(int32_t vid)\n {\n+\tint ret;\n+\tuint64_t features = 0;\n+\tstruct nfp_vdpa_dev *device;\n+\tstruct rte_vdpa_device *vdev;\n+\tstruct nfp_vdpa_dev_node *node;\n+\n \tDRV_VDPA_LOG(DEBUG, \"Start vid=%d\", vid);\n+\n+\tvdev = rte_vhost_get_vdpa_device(vid);\n+\tnode = nfp_vdpa_find_node_by_vdev(vdev);\n+\tif (node == NULL) {\n+\t\tDRV_VDPA_LOG(ERR, \"Invalid vDPA device: %p\", vdev);\n+\t\treturn -ENODEV;\n+\t}\n+\n+\trte_vhost_get_negotiated_features(vid, &features);\n+\n+\tif (RTE_VHOST_NEED_LOG(features) == 0)\n+\t\treturn 0;\n+\n+\tdevice = node->device;\n+\tif (device->hw.sw_lm) {\n+\t\tret = nfp_vdpa_sw_fallback(device);\n+\t\tif (ret != 0) {\n+\t\t\tDRV_VDPA_LOG(ERR, \"Software fallback start failed\");\n+\t\t\treturn -1;\n+\t\t}\n+\t}\n+\n \treturn 0;\n }\n \ndiff --git a/drivers/vdpa/nfp/nfp_vdpa_core.c b/drivers/vdpa/nfp/nfp_vdpa_core.c\nindex 79ecd2b4fc..82a323a6d0 100644\n--- a/drivers/vdpa/nfp/nfp_vdpa_core.c\n+++ b/drivers/vdpa/nfp/nfp_vdpa_core.c\n@@ -91,8 +91,11 @@ nfp_vdpa_hw_init(struct nfp_vdpa_hw *vdpa_hw,\n \ttx_bar = (uint8_t *)pci_dev->mem_resource[2].addr + tx_bar_off;\n \thw->qcp_cfg = tx_bar + NFP_QCP_QUEUE_ADDR_SZ;\n \n+\tvdpa_hw->sw_lm = true;\n+\n \tvdpa_hw->features = (1ULL << VIRTIO_F_VERSION_1) |\n \t\t\t(1ULL << VIRTIO_F_IN_ORDER) |\n+\t\t\t(1ULL << VHOST_F_LOG_ALL) |\n \t\t\t(1ULL << VHOST_USER_F_PROTOCOL_FEATURES);\n \n \treturn 0;\ndiff --git a/drivers/vdpa/nfp/nfp_vdpa_core.h b/drivers/vdpa/nfp/nfp_vdpa_core.h\nindex a8e0d6dd70..0f880fc0c6 100644\n--- a/drivers/vdpa/nfp/nfp_vdpa_core.h\n+++ b/drivers/vdpa/nfp/nfp_vdpa_core.h\n@@ -36,6 +36,10 @@ struct nfp_vdpa_hw {\n \tuint8_t mac_addr[RTE_ETHER_ADDR_LEN];\n \tuint8_t notify_region;\n \tuint8_t nr_vring;\n+\n+\t/** Software Live Migration */\n+\tbool sw_lm;\n+\tbool sw_fallback_running;\n };\n \n int nfp_vdpa_hw_init(struct nfp_vdpa_hw *vdpa_hw, struct rte_pci_device *dev);\n",
    "prefixes": [
        "05/10"
    ]
}