Show a cover letter.

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

{
    "id": 115296,
    "url": "http://patchwork.dpdk.org/api/covers/115296/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20220819195225.1483020-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": "<20220819195225.1483020-1-cristian.dumitrescu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220819195225.1483020-1-cristian.dumitrescu@intel.com",
    "date": "2022-08-19T19:52:19",
    "name": "[V2,0/6] pipeline: make the hash function configurable per table",
    "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/20220819195225.1483020-1-cristian.dumitrescu@intel.com/mbox/",
    "series": [
        {
            "id": 24366,
            "url": "http://patchwork.dpdk.org/api/series/24366/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=24366",
            "date": "2022-08-19T19:52:19",
            "name": "pipeline: make the hash function configurable per table",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/24366/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/115296/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 F16F8A034C;\n\tFri, 19 Aug 2022 21:52:29 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D996640A7B;\n\tFri, 19 Aug 2022 21:52:29 +0200 (CEST)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id 2BF2840689\n for <dev@dpdk.org>; Fri, 19 Aug 2022 21:52:27 +0200 (CEST)",
            "from orsmga007.jf.intel.com ([10.7.209.58])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Aug 2022 12:52:27 -0700",
            "from silpixa00400573.ir.intel.com (HELO\n silpixa00400573.ger.corp.intel.com.) ([10.237.223.157])\n by orsmga007.jf.intel.com with ESMTP; 19 Aug 2022 12:52:26 -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=1660938748; x=1692474748;\n h=from:to:subject:date:message-id:in-reply-to:references:\n mime-version:content-transfer-encoding;\n bh=unpmnkQrNClFIha9BJ4OdMdBtqU8JVoXRIoVVQjEflM=;\n b=mnlp+dmVNmEgV4uYZRI/84moLi1xp3TigaRxvGqulrEaBKp3oLTFavgs\n X/mBhHg+iaagM7ItUPUiNBHpcGU2p9zW0Qq0q72/hNXzjE9fOAavrAZpn\n 5Ygq0Nf5CDmdkCSIkoWvaeTL57nkI/l7qVekYpvJCRaDnTztbWsDV/O5F\n 0WEk9mY3bGKxtmXOhuBpgm/opHpqLyO2gMck1uxUwUWUW+7C5o/k6lkmE\n wdYMu3ZxuZHkqLbSsnRdGPUIFsYllXkb9uR6aacJTkvk4DqRV9IOD3iB0\n SvCFwNsVQSTHZZ6lc4n2WsPL9T3j28z+TYORYYig7wo5M/gXGQyU9cl7y g==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10444\"; a=\"280047518\"",
            "E=Sophos;i=\"5.93,249,1654585200\"; d=\"scan'208\";a=\"280047518\"",
            "E=Sophos;i=\"5.93,248,1654585200\"; d=\"scan'208\";a=\"604695936\""
        ],
        "X-ExtLoop1": "1",
        "From": "Cristian Dumitrescu <cristian.dumitrescu@intel.com>",
        "To": "dev@dpdk.org",
        "Subject": "[PATCH V2 0/6] pipeline: make the hash function configurable per\n table",
        "Date": "Fri, 19 Aug 2022 19:52:19 +0000",
        "Message-Id": "<20220819195225.1483020-1-cristian.dumitrescu@intel.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20220818114449.1408226-1-cristian.dumitrescu@intel.com>",
        "References": "<20220818114449.1408226-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": "The exact match and learner tables use a hash function for the lookup\noperation. This patch set makes the hash function configurable and\nremoves some limitations.\n\nThe hash function previously used by these table types had the\nfollowing limitations:\na) Not configurable: An internally hardcoded version was used;\nb) Mask-based: This prevents using most of the available\n   hash functions, as they are not mask-based;\nc) Key size limited to 64 bytes or less.\n\nThe new hash function is:\na) Configurable;\nb) Not mask-based;\nc) Not limited to key sizes to less than or equal to 64 bytes.\n\nAlso, since this flexibility has some performance cost, this patch set\nalso introduces key comparison functions specialized for each key size\nvalue. Since the key size is fixed for each table, the key comparison\nfunction can be selected at initialization as opposed to using a\ngeneric function that can handle any key size. This strategy result in\na performance improvement for the table lookup operation of around 5%.\n\nDepends-on: series-24117 (\"pipeline: pipeline configuration and build improvements\")\n\nChange log:\n\nV2:\n-Added check for table match fields to be contiguous for exact match tables.\n-Fixed bug in the specification file parsing related to hash function configuration.\n\nCristian Dumitrescu (6):\n  table: add hash function prototype\n  table: add key comparison functions\n  table: configure the hash function for regular tables\n  pipeline: configure the hash function for regular tables\n  table: configure the hash function for learner tables\n  pipeline: configure the hash function for learner tables\n\n lib/pipeline/rte_swx_ctl.c               |   1 +\n lib/pipeline/rte_swx_ctl.h               |   3 +\n lib/pipeline/rte_swx_pipeline.c          | 134 ++++++++++--\n lib/pipeline/rte_swx_pipeline.h          |  30 ++-\n lib/pipeline/rte_swx_pipeline_internal.h |   2 +\n lib/pipeline/rte_swx_pipeline_spec.c     |  83 ++++++-\n lib/pipeline/rte_swx_pipeline_spec.h     |   2 +\n lib/table/meson.build                    |   2 +\n lib/table/rte_swx_hash_func.h            |  39 ++++\n lib/table/rte_swx_keycmp.c               | 166 ++++++++++++++\n lib/table/rte_swx_keycmp.h               |  49 +++++\n lib/table/rte_swx_table.h                |   8 +\n lib/table/rte_swx_table_em.c             | 266 ++++-------------------\n lib/table/rte_swx_table_learner.c        | 220 +++----------------\n lib/table/rte_swx_table_learner.h        |   6 +\n 15 files changed, 555 insertions(+), 456 deletions(-)\n create mode 100644 lib/table/rte_swx_hash_func.h\n create mode 100644 lib/table/rte_swx_keycmp.c\n create mode 100644 lib/table/rte_swx_keycmp.h"
}