Show a cover letter.

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

{
    "id": 115656,
    "url": "http://patchwork.dpdk.org/api/covers/115656/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20220830185811.1843109-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": "<20220830185811.1843109-1-cristian.dumitrescu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220830185811.1843109-1-cristian.dumitrescu@intel.com",
    "date": "2022-08-30T18:58:04",
    "name": "[V3,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/20220830185811.1843109-1-cristian.dumitrescu@intel.com/mbox/",
    "series": [
        {
            "id": 24469,
            "url": "http://patchwork.dpdk.org/api/series/24469/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=24469",
            "date": "2022-08-30T18:58:04",
            "name": "pipeline: support direct registers and meters",
            "version": 3,
            "mbox": "http://patchwork.dpdk.org/series/24469/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/115656/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 59FCBA00C5;\n\tTue, 30 Aug 2022 20:58:26 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D6916410EE;\n\tTue, 30 Aug 2022 20:58:25 +0200 (CEST)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by mails.dpdk.org (Postfix) with ESMTP id 3871940F17\n for <dev@dpdk.org>; Tue, 30 Aug 2022 20:58:24 +0200 (CEST)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 30 Aug 2022 11:58:13 -0700",
            "from silpixa00400573.ir.intel.com (HELO\n silpixa00400573.ger.corp.intel.com.) ([10.237.223.157])\n by orsmga003.jf.intel.com with ESMTP; 30 Aug 2022 11:58:12 -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=1661885904; x=1693421904;\n h=from:to:subject:date:message-id:in-reply-to:references:\n mime-version:content-transfer-encoding;\n bh=gpwOvPvozzSOXyjK49EuBcHPF7dRJZ8ugHoiilXRA40=;\n b=X4dZrZfHLxUzxIWaG2HztnGFBcl6uKZGYCxsiJvZJgPsp79xLSI9cecH\n 20pboNMXIVhZiaHFDOd6+wE8lpgM12UrBy5+ng0kpaWXuhkp1pN8CPan6\n EW8AYq5ixpPacvdgxuGdHiFAd1VQcuN1oj2poqbKm1FKacHGDn7E0hR5E\n WfE/G/c0pleTKac2jUa8i6yabmVM4Lx9S/57yWlSlsGDd4mN43ctgh97o\n NOBUaB9rfajMxYxXzjq43Diol24/87/IYsIj9EQrxHaFUAleKXBmii2d2\n PEw2U1sz7yaltZhhR/yKojq60c2ya1zeGpWzPiNJ/c92Nrv7qZjn1FADT g==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10455\"; a=\"296554008\"",
            "E=Sophos;i=\"5.93,275,1654585200\"; d=\"scan'208\";a=\"296554008\"",
            "E=Sophos;i=\"5.93,275,1654585200\"; d=\"scan'208\";a=\"562770835\""
        ],
        "X-ExtLoop1": "1",
        "From": "Cristian Dumitrescu <cristian.dumitrescu@intel.com>",
        "To": "dev@dpdk.org",
        "Subject": "[PATCH V3 0/7] pipeline: support direct registers and meters",
        "Date": "Tue, 30 Aug 2022 18:58:04 +0000",
        "Message-Id": "<20220830185811.1843109-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\nV3:\n-Fixed issues related to CLI parsing\n-Fixed issue related to the key offset\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                  | 654 +++++++++++++++++------\n examples/pipeline/examples/meter.cli     |   2 +-\n lib/pipeline/rte_swx_ctl.h               | 133 +++++\n lib/pipeline/rte_swx_pipeline.c          | 390 ++++++++++++++\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, 1097 insertions(+), 153 deletions(-)"
}