Show a cover letter.

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

{
    "id": 115235,
    "url": "http://patchwork.dpdk.org/api/covers/115235/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20220818114449.1408226-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": "<20220818114449.1408226-1-cristian.dumitrescu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220818114449.1408226-1-cristian.dumitrescu@intel.com",
    "date": "2022-08-18T11:44:43",
    "name": "[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/20220818114449.1408226-1-cristian.dumitrescu@intel.com/mbox/",
    "series": [
        {
            "id": 24356,
            "url": "http://patchwork.dpdk.org/api/series/24356/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=24356",
            "date": "2022-08-18T11:44:43",
            "name": "pipeline: make the hash function configurable per table",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/24356/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/115235/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 0F581A034C;\n\tThu, 18 Aug 2022 13:45:04 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A998F40DDC;\n\tThu, 18 Aug 2022 13:45:03 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id DB95D40156\n for <dev@dpdk.org>; Thu, 18 Aug 2022 13:45:01 +0200 (CEST)",
            "from fmsmga008.fm.intel.com ([10.253.24.58])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 18 Aug 2022 04:44:50 -0700",
            "from silpixa00400573.ir.intel.com (HELO\n silpixa00400573.ger.corp.intel.com.) ([10.237.223.157])\n by fmsmga008.fm.intel.com with ESMTP; 18 Aug 2022 04:44:49 -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=1660823102; x=1692359102;\n h=from:to:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=xMJGGLkgLvaWo7EyLKaQKixgl+sijM9PSkLZbB0DMzU=;\n b=ADxs+mPiJkeOwWbgRKc176BthWa7K5RXIdgpU3nx0Q9vmTGZMvziJiUa\n Mhwo9xPbEpu9GTTTBeVmko2UVBVvW9hfpSCSqPMavDOU05Vuisy3rwM5J\n DLtYaT3skmH+BtkuqD8uM5/UXydHsmETiWzrTrUem72K2SlJbb5pJrMrB\n L/Z6DTko8fcFlwUcJcAiLd4rj6AWnqSsGd+JnlLnoFhWoXX7TroyAB07t\n l9ibflOx2C3K26MwUlXx0pUX8R+qGJaAMJnRV75af8uEktWibdQgNT3/l\n gKPdidX6tcPy1DsAPZvsojtZ3krjs4bBkKUg7bmWcTp4jwLDpU9/fMquj Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10442\"; a=\"292735205\"",
            "E=Sophos;i=\"5.93,246,1654585200\"; d=\"scan'208\";a=\"292735205\"",
            "E=Sophos;i=\"5.93,246,1654585200\"; d=\"scan'208\";a=\"668069692\""
        ],
        "X-ExtLoop1": "1",
        "From": "Cristian Dumitrescu <cristian.dumitrescu@intel.com>",
        "To": "dev@dpdk.org",
        "Subject": "[PATCH 0/6] pipeline: make the hash function configurable per table",
        "Date": "Thu, 18 Aug 2022 11:44:43 +0000",
        "Message-Id": "<20220818114449.1408226-1-cristian.dumitrescu@intel.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "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\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          |  22 ++\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     |  70 +++++-\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, 450 insertions(+), 436 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"
}