Show a cover letter.

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

{
    "id": 97844,
    "url": "http://patchwork.dpdk.org/api/covers/97844/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20210903001542.15309-1-ivan.malov@oktetlabs.ru/",
    "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": "<20210903001542.15309-1-ivan.malov@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210903001542.15309-1-ivan.malov@oktetlabs.ru",
    "date": "2021-09-03T00:15:37",
    "name": "[v2,0/5] A means to negotiate support for Rx meta information",
    "submitter": {
        "id": 869,
        "url": "http://patchwork.dpdk.org/api/people/869/?format=api",
        "name": "Ivan Malov",
        "email": "Ivan.Malov@oktetlabs.ru"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/20210903001542.15309-1-ivan.malov@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 18639,
            "url": "http://patchwork.dpdk.org/api/series/18639/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=18639",
            "date": "2021-09-03T00:15:37",
            "name": "A means to negotiate support for Rx meta information",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/18639/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/97844/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 875F1A0C4D;\n\tFri,  3 Sep 2021 02:15:59 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 05F8A40041;\n\tFri,  3 Sep 2021 02:15:59 +0200 (CEST)",
            "from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id 004604003E\n for <dev@dpdk.org>; Fri,  3 Sep 2021 02:15:56 +0200 (CEST)",
            "from localhost.localdomain (unknown [5.144.122.241])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 3E72A7F52E;\n Fri,  3 Sep 2021 03:15:56 +0300 (MSK)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 3E72A7F52E",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru;\n s=default; t=1630628156;\n bh=G1qoOvZXm5UZiWn4hLSnya8xNsU+a4qQBpHy+5z+Tb8=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References;\n b=rHccT3POUOLkP0QllYmenL4CyAY+7X6tyHv2Z1dLeNnrpPHu0o006LpRKoPDWIPZa\n wy+Pw8cR2eG1Eu2g7QuT7QVza3+R/y/sTESrGtf5l5rXq1PYYAH8X9Mp6nzY7DEZwS\n C9mSr9Pl/1wbClc7nrWopZiZ3Ke+hPsB2lxNswrw=",
        "From": "Ivan Malov <ivan.malov@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "Jerin Jacob <jerinjacobk@gmail.com>,\n\tRay Kinsella <mdr@ashroe.eu>",
        "Date": "Fri,  3 Sep 2021 03:15:37 +0300",
        "Message-Id": "<20210903001542.15309-1-ivan.malov@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.20.1",
        "In-Reply-To": "<20210902142359.28138-1-ivan.malov@oktetlabs.ru>",
        "References": "<20210902142359.28138-1-ivan.malov@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 0/5] A means to negotiate support for Rx meta\n information",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Back in 2019, commit c5b2e78d1172 (\"doc: announce ethdev API changes in offload flags\")\nannounced changes in DEV_RX_OFFLOAD namespace intending to add new flags, RSS_HASH and\nFLOW_MARK. Since then, only the former has been added. Currently, there's no way for\nthe application to configure the ethdev's ability to read out user FLAG, user MARK or\nwhatever else meta information that might be required in the case of tunnel offload.\nThe application assumes that no extra efforts are needed to make such data available.\n\nThe team behind sfc poll-mode driver would like to take over these efforts since the\nlack of said controls has started impacting us in a number of ways. Riverhead, a\ncutting edge Xilinx smart NIC family, allows to switch between several Rx prefix\nformats, with the short one being the most suited for small packet performance.\nFeatures like RSS hash and user mark, in turn, are provided when long prefix is used,\nbut the driver does not enable it by default. Some leverage has to be implemented to\nlet the application express its interest in relying on various sorts of Rx meta data.\n\nOur research indicates that, while RSS_HASH is a legitimate offload flag (it requests\nthe very computation of RSS hash and not just its delivery via mbufs), adding similar\nflags for user FLAG, user MARK and tunnel ID information has a better alternative.\n\nThe first patch in the series provides a dedicated API to control precisely the very\nability to deliver Rx meta data from the HW to the ethdev and, later, to the callers.\nWhile adding a new dedicated API might at first seem a bit awkward, it does have its\nbenefits, with the most notorious one being its clear and concise contract for users.\nThe documentation provided in the patch explains concrete workflow to be implemented.\n\nThe most important use case for this might be Open vSwitch. The application has to be\npatched separately to make use of the new API. Right now OvS tries to use tunnel\noffload and, if it fails to insert the corresponding flow rules, falls back to\nMARK + RSS scheme, which also can fail in the case when the port doesn't support MARK.\nWith this API, OvS will be able to negotiate supported types of Rx meta information\nin advance thus avoiding many unnecessary flow insertion attempts later on.\n\nChanges in v2:\n* [1/5] has review notes from Jerin Jacob applied and the ack from Ray Kinsella added\n* [2/5] has minor adjustments incorporated to follow changes in [1/5]\n\nIvan Malov (5):\n  ethdev: add API to negotiate support for Rx meta information\n  net/sfc: provide API to negotiate supported Rx meta features\n  net/sfc: allow to use EF100 native datapath Rx mark in flows\n  common/sfc_efx/base: add RxQ flag to use Rx prefix user flag\n  net/sfc: allow to discern user flag on EF100 native datapath\n\n app/test-flow-perf/main.c              | 21 ++++++++\n app/test-pmd/testpmd.c                 | 26 ++++++++++\n doc/guides/rel_notes/release_21_11.rst | 10 ++++\n drivers/common/sfc_efx/base/ef10_rx.c  | 54 +++++++++++++--------\n drivers/common/sfc_efx/base/efx.h      |  4 ++\n drivers/common/sfc_efx/base/rhead_rx.c |  3 ++\n drivers/net/sfc/sfc.h                  |  2 +\n drivers/net/sfc/sfc_ef100_rx.c         | 19 ++++++++\n drivers/net/sfc/sfc_ethdev.c           | 34 +++++++++++++\n drivers/net/sfc/sfc_flow.c             | 10 ++--\n drivers/net/sfc/sfc_mae.c              | 22 ++++++++-\n drivers/net/sfc/sfc_rx.c               |  6 +++\n lib/ethdev/ethdev_driver.h             | 19 ++++++++\n lib/ethdev/rte_ethdev.c                | 25 ++++++++++\n lib/ethdev/rte_ethdev.h                | 66 ++++++++++++++++++++++++++\n lib/ethdev/rte_flow.h                  | 15 ++++++\n lib/ethdev/version.map                 |  3 ++\n 17 files changed, 311 insertions(+), 28 deletions(-)"
}