Show a cover letter.

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

{
    "id": 100923,
    "url": "http://patches.dpdk.org/api/covers/100923/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20211010000503.28712-1-ivan.malov@oktetlabs.ru/",
    "project": {
        "id": 1,
        "url": "http://patches.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": "<20211010000503.28712-1-ivan.malov@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211010000503.28712-1-ivan.malov@oktetlabs.ru",
    "date": "2021-10-10T00:04:51",
    "name": "[v2,00/12] ethdev: rework transfer flow API",
    "submitter": {
        "id": 869,
        "url": "http://patches.dpdk.org/api/people/869/?format=api",
        "name": "Ivan Malov",
        "email": "Ivan.Malov@oktetlabs.ru"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20211010000503.28712-1-ivan.malov@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 19488,
            "url": "http://patches.dpdk.org/api/series/19488/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=19488",
            "date": "2021-10-10T00:04:51",
            "name": "ethdev: rework transfer flow API",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/19488/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/100923/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 E2636A0C41;\n\tSun, 10 Oct 2021 02:05:19 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6316D40040;\n\tSun, 10 Oct 2021 02:05:19 +0200 (CEST)",
            "from shelob.oktetlabs.ru (unknown [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id D1BE74003C\n for <dev@dpdk.org>; Sun, 10 Oct 2021 02:05:17 +0200 (CEST)",
            "from localhost.localdomain (unknown [5.144.122.166])\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 385917F508;\n Sun, 10 Oct 2021 03:05:11 +0300 (MSK)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 385917F508",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru;\n s=default; t=1633824311;\n bh=bRyfvU2Kkn3ajJtb8SmqnNrV/6bTX14xha+39etu+2Q=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References;\n b=cQw0gyaawxxPZpabFSgFrf/HRgE8s/2sH8OuEgtLWGoN+McZxCFlFNxX3JZdWyimE\n ZudvESbcIsF0tYFpCaCPynDxMcVk26LKQZ99ksO4qov7Ih3R8LaylyNXXbQAM1VN8s\n y8i8ghT4MSUWCs9JVoy9i9SvlY91FdGjjm2cv/E8=",
        "From": "Ivan Malov <ivan.malov@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "Thomas Monjalon <thomas@monjalon.net>,\n\tOri Kam <orika@nvidia.com>",
        "Date": "Sun, 10 Oct 2021 03:04:51 +0300",
        "Message-Id": "<20211010000503.28712-1-ivan.malov@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.20.1",
        "In-Reply-To": "<20211001134716.1608857-1-andrew.rybchenko@oktetlabs.ru>",
        "References": "<20211001134716.1608857-1-andrew.rybchenko@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 00/12] ethdev: rework transfer flow API",
        "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": "As per RFC [1], action PORT_ID appears to be ambiguous. Its name suggests\nthat matching traffic be sent to the ethdev with the specified ID, that\nis, to the application. However, in Open vSwitch, the action is used to\nsend traffic to a remote entity represented by the given port, that is,\nin the opposite direction. Its interpretation across PMDs also varies.\n\nRFC [2] attempted to define action PORT_ID semantics in vSwitch sense.\nHowever, this solution would completely abandon the opposite meaning.\n\nOne more effort, RFC [3], was meant to declare that the use of direction\nattributes in \"transfer\" flows assumed implicit filtering by the port ID\nappearing as the first argument in rte_flow_create(). However, not all\nPMDs require such filtering, so the RFC turned out rather disputable.\n\n\nSince then, all of that has been given more thought:\n\n1. One should not attempt to fix action PORT_ID. Instead, two new actions\n   should be introduced. The first one should send traffic to the given\n   ethdev. The second one should send it to the represented entity.\n\n2. Similar to (1), two new items should be defined. The first one should\n   match traffic going down from the given ethdev. The second one should\n   match traffic going up from the entity represented by that ethdev.\n\n3. The application always knows which packets come through which ethdevs.\n   So, as per (2), the application can use the new item to match traffic\n   arriving from precise entities represented by the relevant ethdev IDs.\n\n4. New items suggested in (2) do not require the use of direction\n   attributes. These items define precise directions on their own.\n\n5. As a consequence of (3) and (4), the problem of implicit filtering\n   by rte_flow_create() port ID argument and direction attributes is\n   no longer a blocker. The new items allow to dispose of it.\n\n\nThe new items appear to be symmetrical to each other. So do the new\nactions. This requires that their names reflect the symmetry. Also,\nthe names should respect the existing concept of port representors.\nBy the looks of it, terms \"PORT_REPRESENTOR\" and \"REPRESENTED_PORT\"\nsatisfy these requirements. However, currently, ethdevs associated\nwith network ports are not considered as their representors. Such\nunderstanding is mentioned in the documentation, but it's not\nexpressed in the code (see enum rte_eth_representor_type).\n\n\nThe short of it, this patch series follows points (1-5) to rework\nsupport for \"transfer\" flows accordingly. On the way, a string of\nambiguous pattern items (PF, VF, PHY_PORT) is deprecated.\n\nThe patch series also updates PMDs which support item and action PORT_ID\nto add support for replacements (1-2). However, there're some exceptions:\n\n - Support for traffic source items in the case of net/mlx5 is really\n   complicated. This series does not rework it. The PMD maintainer\n   can do the job much better and test the new code accordingly;\n\n - Support for action REPRESENTED_PORT is not added to net/sfc.\n   This will be done when support for VF representors has been\n   upstreamed, just for the new code to apply cleanly.\n\n\n[1] https://patches.dpdk.org/project/dpdk/patch/20210907125157.3843-1-ivan.malov@oktetlabs.ru/\n[2] https://patches.dpdk.org/project/dpdk/patch/20210903074610.313622-1-andrew.rybchenko@oktetlabs.ru/\n[3] https://patches.dpdk.org/project/dpdk/patch/20210901151104.3923889-1-andrew.rybchenko@oktetlabs.ru/\n\nAndrew Rybchenko (6):\n  net/bnxt: support meta flow items to match on traffic source\n  net/bnxt: support meta flow actions to overrule destinations\n  net/enic: support meta flow actions to overrule destinations\n  net/mlx5: support represented port flow action\n  net/octeontx2: support port representor flow action\n  net/sfc: support port representor flow item\n\nIvan Malov (6):\n  ethdev: add port representor item to flow API\n  ethdev: add represented port item to flow API\n  ethdev: add port representor action to flow API\n  ethdev: add represented port action to flow API\n  ethdev: deprecate hard-to-use or ambiguous items and actions\n  ethdev: deprecate direction attributes in transfer flows\n\n app/test-pmd/cmdline_flow.c                   | 104 +++++++\n doc/guides/nics/mlx5.rst                      |   4 +-\n doc/guides/nics/octeontx2.rst                 |   5 +-\n doc/guides/nics/sfc_efx.rst                   |   2 +\n doc/guides/prog_guide/rte_flow.rst            | 270 +++++++++++++++++-\n doc/guides/rel_notes/deprecation.rst          |  18 +-\n doc/guides/rel_notes/release_21_11.rst        |   8 +\n doc/guides/testpmd_app_ug/testpmd_funcs.rst   |  19 ++\n drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c |  22 +-\n drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      | 161 ++++++++---\n drivers/net/bnxt/tf_ulp/ulp_rte_parser.h      |  12 +-\n drivers/net/enic/enic_fm_flow.c               |  93 ++++--\n drivers/net/mlx5/mlx5_flow_dv.c               |  62 +++-\n drivers/net/octeontx2/otx2_flow_parse.c       |  16 +-\n drivers/net/sfc/sfc_mae.c                     |  72 +++++\n lib/ethdev/rte_flow.c                         |   4 +\n lib/ethdev/rte_flow.h                         | 162 ++++++++++-\n 17 files changed, 914 insertions(+), 120 deletions(-)"
}