Show a cover letter.

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

{
    "id": 115471,
    "url": "http://patchwork.dpdk.org/api/covers/115471/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20220826112127.1580044-1-cristian.dumitrescu@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20220826112127.1580044-1-cristian.dumitrescu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220826112127.1580044-1-cristian.dumitrescu@intel.com",
    "date": "2022-08-26T11:21:20",
    "name": "[V2,0/7] pipeline: support direct registers and meters",
    "submitter": {
        "id": 19,
        "url": "http://patchwork.dpdk.org/api/people/19/?format=api",
        "name": "Cristian Dumitrescu",
        "email": "cristian.dumitrescu@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/20220826112127.1580044-1-cristian.dumitrescu@intel.com/mbox/",
    "series": [
        {
            "id": 24427,
            "url": "http://patchwork.dpdk.org/api/series/24427/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=24427",
            "date": "2022-08-26T11:21:20",
            "name": "pipeline: support direct registers and meters",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/24427/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/115471/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 D85A4A0555;\n\tFri, 26 Aug 2022 13:21:31 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B78FF40156;\n\tFri, 26 Aug 2022 13:21:31 +0200 (CEST)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n by mails.dpdk.org (Postfix) with ESMTP id 41A1940143\n for <dev@dpdk.org>; Fri, 26 Aug 2022 13:21:30 +0200 (CEST)",
            "from fmsmga004.fm.intel.com ([10.253.24.48])\n by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 Aug 2022 04:21:29 -0700",
            "from silpixa00400573.ir.intel.com (HELO\n silpixa00400573.ger.corp.intel.com.) ([10.237.223.157])\n by fmsmga004.fm.intel.com with ESMTP; 26 Aug 2022 04:21:28 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1661512890; x=1693048890;\n h=from:to:subject:date:message-id:in-reply-to:references:\n mime-version:content-transfer-encoding;\n bh=BRWHo80NI+hMcvP85VAruQBPSUZ+rOoYAbigFG4nYmY=;\n b=Z9sV1DYbDoysXA5NoqycPkgTxXDQnbD9NdEcfVrVd8wXo1iNpJDuorpl\n XoZqXCszEipsT/vnGz/t2otH/5MEh7ZLphBaz4xf5oJc4U6WDqeY0k662\n gHu0Qvm9BLHzSZTccmDiLAezVty4mmS8Yd1k7uKUrh3zsbLwKS5PAow3/\n 3fXJUp+2ArKhJVMZtB5RuYxounMtnoglX6TOtY+9yJ01ETQNZ82UmsNKn\n ExfxV9U9ubUm2az7Nju5YBX1TgRVGKpcPHpmoDNT1Fst46oapVSBdUDqW\n MuQTOAvJw14RVFYHD96PPBI1dPrTIeb75OwWHOz6bdEiHZM8zzM0qYvMX A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10450\"; a=\"295264070\"",
            "E=Sophos;i=\"5.93,265,1654585200\"; d=\"scan'208\";a=\"295264070\"",
            "E=Sophos;i=\"5.93,265,1654585200\"; d=\"scan'208\";a=\"678834789\""
        ],
        "X-ExtLoop1": "1",
        "From": "Cristian Dumitrescu <cristian.dumitrescu@intel.com>",
        "To": "dev@dpdk.org",
        "Subject": "[PATCH V2 0/7] pipeline: support direct registers and meters",
        "Date": "Fri, 26 Aug 2022 11:21:20 +0000",
        "Message-Id": "<20220826112127.1580044-1-cristian.dumitrescu@intel.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20220826103605.1579589-1-cristian.dumitrescu@intel.com>",
        "References": "<20220826103605.1579589-1-cristian.dumitrescu@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "This patch introduces support for direct registers and meters. The\ndifference between indirect (indexed) and direct registers and meters\nis explained below [1][2][3].\n\n1. Indirect (indexed) registers and meters.\n\nThe index into an array of registers or meters used on the data path\nis typically read from the action data identified by a table lookup\noperation.\n\nThis means that the control plane manages the mapping of the mapping\nof array entries to table entries and sets up this index explicitly\ninto the table entry action data.\n\nThese are called indirect or indexed registers and meters, and they\nallow multiple table entries to share the same register/meter, as well\nas a 1:1 mapping of table entries to register/meter array entries.\n\n2. Direct registers and meters.\nIn the case of 1:1 mapping of table entries to register/meter array\nelements, it is sometimes desired to avoid the explicit allocation of\nregister/meter array index to each table entry by the control plane.\n\nOne way this can be done is by implementing a mechanism to associate\na unique ID to each table entry, including the default table entry as\nwell; once the entry ID is retrieved as result of the table lookup\noperation, it is saved by the pipeline and used later on as the\nindex into the register/meter array.\n\nThese are called direct registers and meters, and have the advantage\nthat the index is auto-generated, which simplifies the controller\nimplementation; the disadvantage is that they do not allow multiple\ntable entries to share the same register or meter.\n\nReferences:\n\n[1] Indirect and direct counters:\nhttps://p4.org/p4-spec/docs/PSA.html#sec-counters\n\n[2] Indirect and direct registers:\nhttps://p4.org/p4-spec/docs/PSA.html#sec-registers\n\n[3] Indirect and direct meters:\nhttps://p4.org/p4-spec/docs/PSA.html#sec-meters\n\nDepends-on: series-24366 (\"pipeline: make the hash function configurable per table\")\n\nChange log:\n\nV2:\n-Fixed minor style issues flagged by CI/CD\n\nCristian Dumitrescu (7):\n  table: add entry ID for regular tables\n  table: add entry ID for learner tables\n  pipeline: add table entry ID read instruction\n  pipeline: support direct registers on the control path\n  pipeline: support direct meters on the control path\n  examples/pipeline: add CLI commands for direct registers\n  examples/pipeline: add CLI commands for direct meters\n\n examples/pipeline/cli.c                  | 642 ++++++++++++++++++-----\n examples/pipeline/examples/meter.cli     |   2 +-\n lib/pipeline/rte_swx_ctl.h               | 133 +++++\n lib/pipeline/rte_swx_pipeline.c          | 349 ++++++++++++\n lib/pipeline/rte_swx_pipeline_internal.h |  21 +\n lib/pipeline/version.map                 |   5 +\n lib/table/rte_swx_table.h                |  13 +\n lib/table/rte_swx_table_em.c             |   5 +\n lib/table/rte_swx_table_learner.c        |  13 +-\n lib/table/rte_swx_table_learner.h        |  12 +\n lib/table/rte_swx_table_wm.c             |   2 +\n 11 files changed, 1053 insertions(+), 144 deletions(-)"
}