get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 110576,
    "url": "https://patches.dpdk.org/api/patches/110576/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220502200216.4099929-1-akozyrev@nvidia.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": "<20220502200216.4099929-1-akozyrev@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220502200216.4099929-1-akozyrev@nvidia.com",
    "date": "2022-05-02T20:02:13",
    "name": "[v2,0/3] ethdev: datapath-focused meter actions",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 1873,
        "url": "https://patches.dpdk.org/api/people/1873/?format=api",
        "name": "Alexander Kozyrev",
        "email": "akozyrev@nvidia.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220502200216.4099929-1-akozyrev@nvidia.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/110576/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/110576/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 AB7BEA034C;\n\tMon,  2 May 2022 22:02:56 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5326040C35;\n\tMon,  2 May 2022 22:02:56 +0200 (CEST)",
            "from NAM10-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam10on2041.outbound.protection.outlook.com [40.107.94.41])\n by mails.dpdk.org (Postfix) with ESMTP id 4D81C4069D\n for <dev@dpdk.org>; Mon,  2 May 2022 22:02:55 +0200 (CEST)",
            "from MW4PR04CA0151.namprd04.prod.outlook.com (2603:10b6:303:85::6)\n by BN6PR1201MB0001.namprd12.prod.outlook.com (2603:10b6:404:a7::23) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Mon, 2 May\n 2022 20:02:52 +0000",
            "from CO1NAM11FT064.eop-nam11.prod.protection.outlook.com\n (2603:10b6:303:85:cafe::f5) by MW4PR04CA0151.outlook.office365.com\n (2603:10b6:303:85::6) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24 via Frontend\n Transport; Mon, 2 May 2022 20:02:52 +0000",
            "from mail.nvidia.com (12.22.5.235) by\n CO1NAM11FT064.mail.protection.outlook.com (10.13.175.77) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.5206.12 via Frontend Transport; Mon, 2 May 2022 20:02:52 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL107.nvidia.com\n (10.27.9.16) with Microsoft SMTP Server (TLS) id 15.0.1497.32;\n Mon, 2 May 2022 20:02:51 +0000",
            "from pegasus01.mtr.labs.mlnx (10.126.231.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\n 15.2.986.22; Mon, 2 May 2022 13:02:48 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Q8QzKic9u5FAGT+UfqogBRmoYU2axKmL/wyvo1Vvo90vzp1vJStint4mIQzEsHwxNcY3QI3nvUGnOhOmue/Gr8TrbtnzZhmuRvX/nZbu3TtnbdjTyH31PNsjTaxGCWeX/wgMWL+7THwiubs1j2gk57Mzgsgn8tdCk/V6gaUjaCfoxwdnvqPOEFEq0QFsDMRH694+lpxQoLSDPkcC639pVaZEBtK97R13p+NuLLZFFXK7mT8cmjeo4leAClZZCq5J9EQOuhfaIKBWisYLk49OrHxsk6TjC2Z8zIgSd9Z7DPKJK4HiW2Cj8F4qKZY1CVZr1IGSNpLNhx8WYtHAIWC2EA==",
        "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=74FzPNw1mWadAGMhFSSm6QmhU7R4utHiy12sjxP9mxw=;\n b=HSxXGalEvkTBoXYKPYB0uyHLSUI3WWcv4KZ6DSCYrrEsMfn9Vw5LoUPiZeXVMLTimxpJ0wxFQ4DXteC1IQWxEYN6BSZKl0UGIN0r3yncxrvbSIFBwKTFI02cSWnIqNAKp7DBc2wU5ku+JaSn84hGb4F2WXgKcWsgRZE3YN1sKugYpl3+wbJHjHvxWxlj+ylPw1IrBS5qiM3O8HJPIPjcxqzxt83kC/VkNpbBatiZ2qwA3B/ZOk96HlvpHmaXIg2A0o3uJ8MRqDFBj4CUxfDupA7fnqPygTudkUVQVNcOhgAaB0F92PBjc7QHlKxMKn/zrtvR7HAJr0O0kk2huUDosg==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 12.22.5.235) 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=74FzPNw1mWadAGMhFSSm6QmhU7R4utHiy12sjxP9mxw=;\n b=HieIwjm7ELrLqcoObeSuXVPLdKOQPN6ZUgaXRHCvgEv9I1g7lNT0vHYhbr2aEUEnk79Yr0js92ZoKdG3dlhLgda5nzHBGntpyq7rWPn6kjJWaC5KV+UFRVGoW+lBxE3DKd0SJsO9fDqfPF84y4iUnxuT7ftndA7+xLWwxsRUPUA3low501hv0MQocx0Jm5A0sckZ0BrPcP7DRBtSQXQ8PC+F0YNcBwmGC7tbYb8AAfHX7RbvLiW7Iu+giRpH/TPojEXJasJbFSfPFatwge2M6BzhpmfRyFIbb5dEw7B1ZxWSkuV4PtozGpfpoDFjS4b5OCDNp3bsV0VZI2HMusLaNQ==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 12.22.5.235)\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.235 as permitted sender) receiver=protection.outlook.com;\n client-ip=12.22.5.235; helo=mail.nvidia.com;",
        "From": "Alexander Kozyrev <akozyrev@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<cristian.dumitrescu@intel.com>, <jerinjacobk@gmail.com>,\n <orika@nvidia.com>, <thomas@monjalon.net>, <van.malov@oktetlabs.ru>,\n <andrew.rybchenko@oktetlabs.ru>, <ferruh.yigit@xilinx.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 v2 0/3] ethdev: datapath-focused meter actions",
        "Date": "Mon, 2 May 2022 23:02:13 +0300",
        "Message-ID": "<20220502200216.4099929-1-akozyrev@nvidia.com>",
        "X-Mailer": "git-send-email 2.18.2",
        "In-Reply-To": "<20220408024658.2004918-1-akozyrev@nvidia.com>",
        "References": "<20220408024658.2004918-1-akozyrev@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.231.35]",
        "X-ClientProxiedBy": "rnnvmail202.nvidia.com (10.129.68.7) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "acfc4441-d57e-4eb2-268a-08da2c76bd85",
        "X-MS-TrafficTypeDiagnostic": "BN6PR1201MB0001:EE_",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "\n <BN6PR1201MB0001A4F35A9EDE54D9FDBDE7AFC19@BN6PR1201MB0001.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 27lK/hHcudwS//HFsmWyFHcjyaxHkxRSmHUaxerU0D6gXaxDbSMg2Xlb8JEAhxmU8t5yCj8Mv3YIZfseMlwTkBiHEaWGomhoqrd4YM6u6hFMJQuf/808ZX9R2I0DADukcmEgnC6AL4yy7U2OiZFUWqp+U7G38WfvSSQwKmCPBWUv0l2Gli50f3zqrpo0cSQDI78/7L83Xf6aUxXMw7UQQo0NndFdauntICh4IV7ltxT3hVG1Zgv9E8jQqQwG8oTpCa813BriE+ztQa58wm9BKK60hftGVU6pb1xvExyVZS875Cs02GQPtpTmQU61xJFolD0lCrSzDX/34mAyqbbnu/pi9tpEHg57NDo6U/1lcyOkLo28emBKLs4tiQZ4dQTiAk8MMX2RmUfbKTp5fe7bOeJDE/AmyffVqiH2kGEMOEYtedNm/QUnBXKifwF5BJniwKZhYdkpqiDrVh2FsxiZqzJNCyOooOXB0CcBHJJ7+0DxOcaDQzf7BOJiwoDJu30lET2msgF/qd+zT0cSxhILEur8xYuQ4KV/q/AVOSprHHVoQSW/nH8eGzzrAr2HZJ+T/hf/33OR9KbZKUSUD1OGv+KKLFv466SPDjC0J217X0ReRNz11qbxQHhumY5ZxxFYSrEQsg/Kr5CfU77OGVGMHlqLzTDVXzSRQSZy+/A8Buppx/0mLk4jNq3oPDC9Ywunj8WC7M71DCUeUA550Xhr8Q==",
        "X-Forefront-Antispam-Report": "CIP:12.22.5.235; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE;\n SFS:(13230001)(4636009)(46966006)(36840700001)(40470700004)(2906002)(86362001)(26005)(508600001)(82310400005)(8936002)(356005)(6666004)(36756003)(5660300002)(8676002)(81166007)(7416002)(4326008)(70206006)(70586007)(83380400001)(40460700003)(336012)(426003)(47076005)(1076003)(316002)(186003)(16526019)(54906003)(6916009)(2616005)(36860700001)(36900700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "02 May 2022 20:02:52.2635 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n acfc4441-d57e-4eb2-268a-08da2c76bd85",
        "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.235];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT064.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN6PR1201MB0001",
        "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": "The introduction of asynchronous flow rules operations allowed users\nto create/destroy flow rules as part of the datapath without blocking\non Flow API and slowing the packet processing down.\n\nThat applies to every possible action that has no preparation steps.\nUnfortunately, one notable exception is the meter action.\nThere is a separate API to prepare a meter profile and a meter policy\nbefore any meter object can be used as a flow rule action.\n\nThe application logic is the following:\n1. rte_mtr_meter_profile_add() is called to create the meter profile\nfirst to define how to classify incoming packets and to assign an\nappropriate color to them.\n2. rte_mtr_meter_policy_add() is invoked to define the fate of a packet,\nbased on its color (practically creating flow rules, matching colors).\n3. rte_mtr_create() is then needed to search (with locks) for previously\ncreated profile and policy in order to create the meter object.\n4. rte_flow_create() is now finally can be used to specify the created\nmeter as an action.\n\nThis approach doesn't fit into the asynchronous rule creation model\nand can be improved with the following proposal:\n1. Creating a policy may be replaced with the creation of a group with\nup to 3 different rules for every color using asynchronous Flow API.\nThat requires the introduction of a new pattern item - meter color.\nThen creation a flow rule with the meter means a simple jump to a group:\nrte_flow_async_create(group=1, pattern=color, actions=...);\nrte_flow_async_create(group=0, pattern=5-tuple,\n\t\t      actions=meter,jump group 1);\nThis allows to classify packets and act upon their color classifications.\nThe Meter action assigns a color to a packet and an appropriate action\nis selected based on the Meter color in group 1.\n\n2. Preparing a meter object should be the part of flow rule creation\nand use the same flow queue to benefit from asynchronous operations:\nrte_flow_async_create(group=0, pattern=5-tuple,\n\t\t      actions=meter id 1 profile rfc2697, jump group 1);\nCreation of the meter object takes time and flow creation must wait\nuntil it is ready before inserting the rule. Using the same queue allows\nensuring that. There is no need to create a meter object outside of the\nFlow API, but this approach won't affect the old Meter API in any way.\n\n3. Another point of optimization is to prepare all the resources needed\nin advance in rte_flow_configure(). All the policy rules can be created\nduring the initialization stage easily and put into several groups.\nThese groups can be used by many meter objects by simple jump action to\nan appropriate group. Meter objects can be preallocated as well and\nconfigured with required profile parameters later at the flow rule\ncreation stage. The number of pre-allocated profiles/policies is\nspecified in the Flow engine resources settings.\n\nThese optimizations alongside already existing pattern/actions templates\ncan improve the insertion rate significantly and allow meter usage as\npart of the datapath. The introduction of the new API is intended to be\nused with the asynchronous Flow API. Deprecation of the old Meter API\nis not planned at this point.\n\nSigned-off-by: Alexander Kozyrev <akozyrev@nvidia.com>\n\nAlexander Kozyrev (3):\n  ethdev: add meter color matching to Flow API\n  ethdev: allow meter color modification\n  ethdev: add extended meter action to Flow API\n\n lib/ethdev/rte_flow.h | 49 +++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 49 insertions(+)",
    "diff": null,
    "prefixes": [
        "v2",
        "0/3"
    ]
}