Show a cover letter.

GET /api/covers/107912/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 107912,
    "url": "http://patches.dpdk.org/api/covers/107912/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20220221230240.2409665-1-akozyrev@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20220221230240.2409665-1-akozyrev@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220221230240.2409665-1-akozyrev@nvidia.com",
    "date": "2022-02-21T23:02:29",
    "name": "[v9,00/11] ethdev: datapath-focused flow rules management",
    "submitter": {
        "id": 1873,
        "url": "http://patches.dpdk.org/api/people/1873/?format=api",
        "name": "Alexander Kozyrev",
        "email": "akozyrev@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20220221230240.2409665-1-akozyrev@nvidia.com/mbox/",
    "series": [
        {
            "id": 21774,
            "url": "http://patches.dpdk.org/api/series/21774/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=21774",
            "date": "2022-02-21T23:02:29",
            "name": "ethdev: datapath-focused flow rules management",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/21774/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/107912/comments/",
    "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 D001DA034F;\n\tTue, 22 Feb 2022 00:03:03 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4C3F840DF4;\n\tTue, 22 Feb 2022 00:03:03 +0100 (CET)",
            "from NAM04-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam08on2089.outbound.protection.outlook.com [40.107.100.89])\n by mails.dpdk.org (Postfix) with ESMTP id D180F4068C\n for <dev@dpdk.org>; Tue, 22 Feb 2022 00:03:01 +0100 (CET)",
            "from DM6PR12MB4516.namprd12.prod.outlook.com (2603:10b6:5:2ac::20)\n by DM5PR1201MB0108.namprd12.prod.outlook.com (2603:10b6:4:58::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.19; Mon, 21 Feb\n 2022 23:03:00 +0000",
            "from BN6PR19CA0067.namprd19.prod.outlook.com (2603:10b6:404:e3::29)\n by DM6PR12MB4516.namprd12.prod.outlook.com (2603:10b6:5:2ac::20) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.22; Mon, 21 Feb\n 2022 23:02:59 +0000",
            "from BN8NAM11FT051.eop-nam11.prod.protection.outlook.com\n (2603:10b6:404:e3:cafe::ae) by BN6PR19CA0067.outlook.office365.com\n (2603:10b6:404:e3::29) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.19 via Frontend\n Transport; Mon, 21 Feb 2022 23:02:59 +0000",
            "from mail.nvidia.com (12.22.5.238) by\n BN8NAM11FT051.mail.protection.outlook.com (10.13.177.66) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4995.15 via Frontend Transport; Mon, 21 Feb 2022 23:02:59 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL105.nvidia.com\n (10.27.9.14) with Microsoft SMTP Server (TLS) id 15.0.1497.18;\n Mon, 21 Feb 2022 23:02:58 +0000",
            "from pegasus01.mtr.labs.mlnx (10.126.230.35) by\n rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.9;\n Mon, 21 Feb 2022 15:02:55 -0800"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=VSNS/DebRfgAJ5JkwH8bYOO6E/KuByRQtA3TDyrZ5vjM+Ei4fTXrWblens7eAnG+BPw+JecOwXZVO0Ec7a5ttTB/O7Ag98mfD90F06YH2whF8ODzLtRaKvkWAWds17nK9qQPMKHqdV6uxPLXdzlzbnUX56x2/+BCCpYS7xSmDmmQme3ArDseMBMko8exZmZO0+faa2V8mO/pDTexraGrT4Stk8HSJTSaXfDBUlmbjwlVODgeZz0ZcvNkA3v2f57cTtil3Ei4KTBN04FElra7B94bJJQGPfe/IJ/qU0onXbL5vX+XIvsL6BJSscPZuPyTBnPNK8DhiWIi6MfeYLGksg==",
        "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=xAxw+8Q8i/bPSQcD1QuxRJO3qZXP3fKTkvTxzPM8hLA=;\n b=m7MSmfOIh0D4F5WgIHs/i9S7loFcIn1WZWVUxY9YuWUjfVEMk+WH3QNnqM+Y1k66gmulDXCH3Cd8hbsBkp8gZuw1Doo2SCeZqlTcgzTUdl09+aKqQpTT08XVACK70tCjqdKKF2GgSDb9QIMl+azEUATLrOC8cUs+2bI/dIQPOxIGD/54nrQaa8vv2IEtNZIBhC4weh+sYFHuS8OnDOa+4PDbRWPEd8qbMXW0tpDEZW9A7TGr+nUjMFJUIDrGBg1WTfaadC/RT1xpGKsmaJcSG4SDgKtgu5nrZNDG0XniKYTWhwPdjYU4jCh2ZgXZzFh+FXbgPQkXD75dUsfzUspDVw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 12.22.5.238) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass\n (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none\n (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=xAxw+8Q8i/bPSQcD1QuxRJO3qZXP3fKTkvTxzPM8hLA=;\n b=o021I5vlyVpq2Zubflrd5U+HvTutHGr+SIUYUdJsqrQ9rsgt4n9hOWci5MrwwKm9//MIRkiDhjI7UAjcsEtnmioe88jda14ODi2f/NQX7SWGJnr5aaG8JV/P2Yz88DdJMYH8XiejAPSV8RA+8w49jkDSHfdDHcpFE1hLRAxQKS40VjiWH5iBfR4U8cjo8IDSxdD8KuaEBpjxJCPDKyYwlRNrdvy1YJ34Pu6ow4ul6p+A/kOoRf659V4wCFSm6AEdRR4Sc7N3Ff75JUrXJaACTsPxN5mxuCExmSl8YRAL+oOGjJSC00kXQ84zwatfNvDGCdQZoc5Lr/bFx9w7AYWgWQ==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 12.22.5.238)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 12.22.5.238 as permitted sender) receiver=protection.outlook.com;\n client-ip=12.22.5.238; helo=mail.nvidia.com;",
        "From": "Alexander Kozyrev <akozyrev@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<orika@nvidia.com>, <thomas@monjalon.net>, <ivan.malov@oktetlabs.ru>,\n <andrew.rybchenko@oktetlabs.ru>, <ferruh.yigit@intel.com>,\n <mohammad.abdul.awal@intel.com>, <qi.z.zhang@intel.com>,\n <jerinj@marvell.com>, <ajit.khaparde@broadcom.com>,\n <bruce.richardson@intel.com>",
        "Subject": "[PATCH v9 00/11] ethdev: datapath-focused flow rules management",
        "Date": "Tue, 22 Feb 2022 01:02:29 +0200",
        "Message-ID": "<20220221230240.2409665-1-akozyrev@nvidia.com>",
        "X-Mailer": "git-send-email 2.18.2",
        "In-Reply-To": "<20220220034409.2226860-1-akozyrev@nvidia.com>",
        "References": "<20220220034409.2226860-1-akozyrev@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.230.35]",
        "X-ClientProxiedBy": "rnnvmail203.nvidia.com (10.129.68.9) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "e0450d6d-df74-434d-162c-08d9f58e4e04",
        "X-MS-TrafficTypeDiagnostic": "DM6PR12MB4516:EE_|DM5PR1201MB0108:EE_",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "\n <DM6PR12MB4516D80D4C0D80D49BCA42E2AF3A9@DM6PR12MB4516.namprd12.prod.outlook.com>",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n /OjAsQoNJiEi/nDyU0ir7IyBfZ6j3jJeWLztMD6PETUv68M6+QEhlKpL2pvXxc9+Eypl+BywiLc6c9ITyc8cMl89M0A4SwbDbGlsbwzkwc2uZ7QNp+aqPedi9KWTj3QVgW2oF+UFoVZQQpMOOY8gADHLjtiEfXTok2V+YKfoeRFcy5swf72KMCpct8pbqDoqmWDoPcH56icYGPZ2HB6ZEf5BZlxA2Sh5D1R9PfQyWSs9jmxvSi1xuwaTvqx5VUyRnac9M8hbG7e26ibAfY2Gg3g4xIByh3Jvw9emHDtWY9wf+t1eBqL5RnI8xR8IAjx71ODbb9jtK8kc5oQze48LEkvLWh8lSrG3WqOVkBuZBlWARgHVS1kbQvkMjCTImwLLfrj/Iwcbv9G7z8Np5hSUuG0uYXqYk0fGYjgmyMFuy9DV05//X+1MnOP2jrhSJ5FkuPv8JZ1RY4MpqppYcewKEubEd0YST/q3PA7Ldf4MBb/q/rxSqlnIzyptwABGMQ5jg+zUNzp93ig1+Sg/0NsAWKTpC09GgcBs9j/NoxtLEUZAsd3mazJMRsrxc3yabSY2iJBxJ5Dsxk9jHzNcfuMDYnkAr+uLnvQ9ptx8+zJtrHM+3VpzW++ULglf6HOlxrvMUDcSRAT1ELQbJTdwTEGHp0gbGLKTbeR9l8GpN4DCo/wxgOpnrweaEHlWzJuOr863pfOv7X9d0C9YwDUFO57GgasxMsjnsbEmSJC70p7LaxySYjQP2SkTgA/kcuoth1lvkLotqDLBfAOS1MOPqlhbJvEU1PRA/QBDaDGjAX+7w4g=",
        "X-Forefront-Antispam-Report": "CIP:12.22.5.238; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE;\n SFS:(13230001)(4636009)(36840700001)(40470700004)(46966006)(2906002)(5660300002)(7416002)(36756003)(966005)(356005)(70586007)(508600001)(16526019)(81166007)(83380400001)(8936002)(2616005)(1076003)(40460700003)(426003)(54906003)(47076005)(86362001)(316002)(336012)(6666004)(26005)(186003)(6916009)(82310400004)(8676002)(4326008)(36860700001)(70206006)(36900700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Feb 2022 23:02:59.0812 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n e0450d6d-df74-434d-162c-08d9f58e4e04",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.238];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BN8NAM11FT051.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM5PR1201MB0108",
        "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": "Three major changes to a generic RTE Flow API were implemented in order\nto speed up flow rule insertion/destruction and adapt the API to the\nneeds of a datapath-focused flow rules management applications:\n\n1. Pre-configuration hints.\nApplication may give us some hints on what type of resources are needed.\nIntroduce the configuration routine to prepare all the needed resources\ninside a PMD/HW before any flow rules are created at the init stage.\n\n2. Flow grouping using templates.\nUse the knowledge about which flow rules are to be used in an application\nand prepare item and action templates for them in advance. Group flow rules\nwith common patterns and actions together for better resource management.\n\n3. Queue-based flow management.\nPerform flow rule insertion/destruction asynchronously to spare the datapath\nfrom blocking on RTE Flow API and allow it to continue with packet processing.\nEnqueue flow rules operations and poll for the results later.\n\ntestpmd examples are part of the patch series. PMD changes will follow.\n\nRFC: https://patchwork.dpdk.org/project/dpdk/cover/20211006044835.3936226-1-akozyrev@nvidia.com/\n\nSigned-off-by: Alexander Kozyrev <akozyrev@nvidia.com>\nAcked-by: Ori Kam <orika@nvidia.com>\nAcked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n\n---\nv9:\n- changed sanity checks order\n- added reconfiguration explanation\n- added remarks on mandatory direction\n- renamed operation attributes\n- removed all checks in async API\n- removed all errno descriptions\n\nv8: fixed documentation indentation\n\nv7:\n- added sanity checks and device state validation\n- added flow engine state validation\n- added ingress/egress/transfer attibutes to templates\n- moved user_data to a parameter list\n- renamed asynchronous functions from \"_q_\" to \"_async_\"\n- created a separate commit for indirect actions\n\nv6: addressed more review comments\n- fixed typos\n- rewrote code snippets\n- add a way to get queue size\n- renamed port/queue attibutes parameters\n\nv5: changed titles for testpmd commits\n\nv4: \n- removed structures versioning\n- introduced new rte_flow_port_info structure for rte_flow_info_get API\n- renamed rte_flow_table_create to rte_flow_template_table_create\n\nv3: addressed review comments and updated documentation\n- added API to get info about pre-configurable resources\n- renamed rte_flow_item_template to rte_flow_pattern_template\n- renamed drain operation attribute to postpone\n- renamed rte_flow_q_drain to rte_flow_q_push\n- renamed rte_flow_q_dequeue to rte_flow_q_pull\n\nv2: fixed patch series thread\n\nAlexander Kozyrev (11):\n  ethdev: introduce flow engine configuration\n  ethdev: add flow item/action templates\n  ethdev: bring in async queue-based flow rules operations\n  ethdev: bring in async indirect actions operations\n  app/testpmd: add flow engine configuration\n  app/testpmd: add flow template management\n  app/testpmd: add flow table management\n  app/testpmd: add async flow create/destroy operations\n  app/testpmd: add flow queue push operation\n  app/testpmd: add flow queue pull operation\n  app/testpmd: add async indirect actions operations\n\n app/test-pmd/cmdline_flow.c                   | 1726 ++++++++++++++++-\n app/test-pmd/config.c                         |  778 ++++++++\n app/test-pmd/testpmd.h                        |   67 +\n .../prog_guide/img/rte_flow_async_init.svg    |  205 ++\n .../prog_guide/img/rte_flow_async_usage.svg   |  354 ++++\n doc/guides/prog_guide/rte_flow.rst            |  345 ++++\n doc/guides/rel_notes/release_22_03.rst        |   26 +\n doc/guides/testpmd_app_ug/testpmd_funcs.rst   |  383 +++-\n lib/ethdev/ethdev_driver.h                    |    7 +-\n lib/ethdev/rte_flow.c                         |  460 +++++\n lib/ethdev/rte_flow.h                         |  741 +++++++\n lib/ethdev/rte_flow_driver.h                  |  108 ++\n lib/ethdev/version.map                        |   15 +\n 13 files changed, 5119 insertions(+), 96 deletions(-)\n create mode 100644 doc/guides/prog_guide/img/rte_flow_async_init.svg\n create mode 100644 doc/guides/prog_guide/img/rte_flow_async_usage.svg"
}