get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/29559/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 29559,
    "url": "https://patches.dpdk.org/api/patches/29559/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1507042556-9839-2-git-send-email-matan@mellanox.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1507042556-9839-2-git-send-email-matan@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1507042556-9839-2-git-send-email-matan@mellanox.com",
    "date": "2017-10-03T14:55:56",
    "name": "[dpdk-dev,2/2] net/tap: allow RSS flow action",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "0ac27279f2d28640fd2895645b80d3e4fc069eb6",
    "submitter": {
        "id": 796,
        "url": "https://patches.dpdk.org/api/people/796/?format=api",
        "name": "Matan Azrad",
        "email": "matan@mellanox.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1507042556-9839-2-git-send-email-matan@mellanox.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/29559/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/29559/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 7EE961B3A9;\n\tTue,  3 Oct 2017 16:56:16 +0200 (CEST)",
            "from EUR03-VE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr50063.outbound.protection.outlook.com [40.107.5.63])\n\tby dpdk.org (Postfix) with ESMTP id C87961B3A7\n\tfor <dev@dpdk.org>; Tue,  3 Oct 2017 16:56:15 +0200 (CEST)",
            "from mellanox.com (37.142.13.130) by\n\tDB6PR0502MB3048.eurprd05.prod.outlook.com (2603:10a6:4:9f::8) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7;\n\tTue, 3 Oct 2017 14:56:14 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=JyI2Bh3sbEn8lTZRaxITWEsiFtBTX0AhXVftoAmPsR4=;\n\tb=Qe3T0kPXuH9cfEAVgSXYO3CQM1MXHqDhOBx9dGScQMVA3c43Iy4vAVgq5o+NoENPuX9X5bah5RaiRjiDoKkuUoiHLbkuMidD4+16cn9HAjM2064czg5nlN/lTH9di6QUD27POfb3fX+cyfymxJX49XdwD4TxWCnL6Nu/XSS+fBI=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=matan@mellanox.com; ",
        "From": "Matan Azrad <matan@mellanox.com>",
        "To": "Pascal Mazon <pascal.mazon@6wind.com>",
        "Cc": "dev@dpdk.org",
        "Date": "Tue,  3 Oct 2017 14:55:56 +0000",
        "Message-Id": "<1507042556-9839-2-git-send-email-matan@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1507042556-9839-1-git-send-email-matan@mellanox.com>",
        "References": "<1507042556-9839-1-git-send-email-matan@mellanox.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[37.142.13.130]",
        "X-ClientProxiedBy": "VI1PR0101CA0055.eurprd01.prod.exchangelabs.com\n\t(2603:10a6:800:1f::23) To DB6PR0502MB3048.eurprd05.prod.outlook.com\n\t(2603:10a6:4:9f::8)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "fe2fd509-9c35-495e-842d-08d50a6ee4e9",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075);\n\tSRVR:DB6PR0502MB3048; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DB6PR0502MB3048;\n\t3:fSqy3lrQiZwv/e8GJzzECi2MPZkYPBNUKBXrgMPp4I4ZFOh+2nYMda0k2E3JEcVpeXn/opv2exIMy/9civOQjED6GEYzE8kbRWpUkqnWW7WRWgJ/UXLdLB1u6n5Ute4G0OVP65+b8x+nhvaGfreDms/yDOqIADFFVYyRoFiyXbKwxdIDCb6EJcLGe/BqmXLcCJpqjIGCTFwdE1osTv+xzZy6J1xT0kOMjqHEn9K8Tww8m1fDgrvfx63mqhuXG8gB;\n\t25:Ea7qYJWNFcJfozUCDOITpZlYlVKxNt+9EmHFSv/xcOHAs2RQzMWmOqGLRnDLB9K5zfYnYWbC5mWJEnPaeeza1JUHwcax/5VsGiVCeQAh0AbSPpJYDF4Y0elaNzY+bEIml7EJIyyvJbsK8sktJoUv1T5KLAAuw3xkH3gzacVdfdMgtK7s2G361rBwZ02XWy0XZYqyi/wR+Mklam2c8seRfoCHsOvgAdDkICZUJIaRZRFbyblK+NXontHneu6/3HndcbeaITsVDXIe4hGGEcVCmTw6Lkbe69WfvaJhnq2x5QmsWu97NhU57bEOQnjfbEWcxIqGZJjWTUjshE0OOm/kdg==;\n\t31:IK6vq533GMjQulblLjf9U70WaKD2dLqtPAm3O9WPIaYzonzPMydCoCVbmhqxMXpw4MUpFgHFxH+v2jdV1Z+lDAqJjxc+BHoQGYo1QjlxMbXq8haYHIbZeVAqC1nzXq4NjMtCKfpe02gu+dynNag7AouxGv/kkbQfEyWTYgwi0SY6DoXX/zyixmfqauK5sHeoUoPm9BZw+idbkYBC26bNtBKKVghCzCPVkyVao1HotGg=",
            "1; DB6PR0502MB3048;\n\t20:P2UgPUtPv7u/RGOGry5Cu9c/FkakpMc+gikv3/vGRrGXs13SjycLx3jIO6wdutHYqnL5kOITS4FJFKnPrv7sb1C5jlOVQ9f3W7gQ6GfF052XjI1tDBMnhnZqc2YHqcpufEUm/gMayay6/P17BBvIdNwd6ec8b0qiKObjSLdIvPORJZoxvRTdaf7UxwpaVqXnDSsvLRdwZtnHiqvHbGl/aptqfbCB9+coHEhRgEwe/zG0zdBp0NozkLJBQl1fx1dgZtzNRb3rQfW5l/EuEqnr4TgVVD2rkzszvLKDgLGhPBZkDPbesoFlncKEf4Fjfbz2JUnI35AFhBAKl1EX71YnHsj9du9ZcN/Bb9oAXzu845bIgLLVahZNEagGnpt4aZfeuW9fkYmb8M2/BUih1NZHEDZ9uuGU3aUp/UP7ChZc8zgkBZ3Oo6dDp17gbvsrqkiWGluP9SAayYCepaVw7NnRAyAlbrEaUuQD7ROsOx69yFuIuR3KmMjY3qL1bFtO10Cg;\n\t4:xAuCiYf+MtFVzX7olI24Jq05cOq/rRF1crw27hfe1TkBbCcH2DXsCqc05EQ4gJ+Ixrit0yZLCsuxvLkjK8v9cLX7VdDRIV+y+Qp7ENdKZ+/4oP4nrpqC7rQgdTpwv4SeVqkDJKF8sFiQdVbeUrLNWYpdTvXU99fweaMSsYakGvvFNpXtENsQmpgn0H0qL9S/M/iEpiZp8MZrPpH7w/EKBz9fXmbXVaO7m0n1VpnQuBkat6y4xx2oaEZRvGZz573m",
            "=?us-ascii?Q?1; DB6PR0502MB3048;\n\t23:eJ9l1dosaznAHpH6jR0rzESWbWjIjJBMGMnZ3ht?=\n\t8LnYe1rf/17AK5q4x40BxvfXJsqT/iv0yf4fgI3a1k45sIJHGxHo21EYWovvB9vwkMkT4c+KnRchGsSkrbZPRfxaR/b3rPlv0qBSeFKHnueDCewKIt+7IiQGP/0zPUuDJN/htae1lOX55oDntNwJRqcKhCgAtGqhOB7eqB/ZRIIayIbYebbsJ8IBED5y1ZCWwyOk+LlviMh8w5kJWLxcNx97TySKKt7ZN/WcVwjxNUtJyhdIouGEIxJZ9JrxfhDQ8PxclvDJUymo0hv93HgxAr0YZ5/iJ/0M8KjD1aVLah32EVi8cy7iUPSK9wfZVb/rMdEEz8AVHQUnIoJTvSMqrPwqgKtyl31oWqDEZW9v8D4Q92wVnbGb+Qp+3tmJcE0/aD77XOxFKRCp7g7/NXze/Q761fTg0dhZWf6DQj7x4AOZOHh9VYkUTGitVJO2UByFQcuWhLl09lRpIk7L39XhaRyuagtWMK9YbbBXqCCe8VsJDm+jnniNarpdfyWXwurLvBKRSpz8qIJ4kg4kKoil2F3ZTHobdEmU7iMQDq+b1IExCMNMekfQ3c5DWknkaX2KXVgKUJQStB70lgQMduWGehVGxh88msws1a6RJXVMwgIfNmTenNVm7SKI7IF0pNfUX4CH759bvKtpQpUeEnVJPvmiz4yXsAEYXG0I4k0kDgih2wl/zjPw+FgKPjB/ZafbbZeoqKdil58qN0lT/7Po7K0pojdkL908pP2dwsoBzKJUubuQgSmgfKOuRbh9gcpoG3slXm+snKiwECWivA110ogVrRujXl7fpL/C3+93vu1/qep0LLjz1dhvFTB+bhmoPL8W5ShVtmM+wJFPKqhxmUVSa5pbqsN/g1VNyMZMiFHh0zbquy9Ec6G1mSth5ylMsW13QJBnIfh0orG8MTZC90LV6f8STfVxXw2mVE0ekx4IPERqqL2b2kxJe7GUM8E3s7rc8hlgLf6xURfx6J4YXbE6Z88VFSb1WdJ25JQEscbypvRSU9kgVCh9xSnDySRyHUg4sCnSu6GOLwmBcNH1QOW0XxedCn8435wayyDVZyKTTWx7kZnfhfxtuGpiOzR0fC1cMxXwahfeokb2wjumHR9zVWGHHiDJ3i8PQvfnOAJsaAQ==",
            "1; DB6PR0502MB3048;\n\t6:X9Bx5opZBrHLUw2POBUv+gWZVBAsnmA8UuzFkgkG5oSxM5DoBXtAO5lpmmwA+xlXKcwohnOXUg8spGjYOjKyAt8WPSS5FUH98pfkYCvxrqJ0YrJ622ZQ5UxSUySVYCrBiAHm9JV0jIs8dlYYMMVbn+75AY9b8eWHP8/HHFDyCVra7/Ahle7xP5B/rgZGxC8LhkEj9cim4mOzJSE92LFrwCGbxdrn8ivxpxOTspwtnz1xqjrx3knTdxWHxs0FWhHEQYBu6/7UR6dLvu+wYh/KgHukimICd8nB8wIIT7b+WGIRV+/PgRNZKUoxWXmgCjbO0u2AO/2p8cQIMloFw9eY8w==;\n\t5:ZhRcEWu8t4vK+HSgxAiszxYU/FyZHnxHPU4gYvrf1F4N0/ztbLe+lc9xiAZRpK8/qAx9DrnhQxfy068PsTOW6gfiJGgvqzWGCs/Cjf60hbawLg/P7uzutXCoTDbjwxy14JnFFVnyMKcZekNnTr8rCw==;\n\t24:G0LV6wL89mGSXORQM7+ZzWUxQBti9S7OB+3vXc/WeId/d2p5cFHl+tfwT4Bo8x0MVgBCYkNKQUHp+zJZ2Uj/F3zMfF5Qg3kwg09aD4evB6k=;\n\t7:l28FIsoxm8elmKUpq3MQDnOzTX+llG/3TXI6EQkTj792fwpPM8j0f/TsACiHCEJxxvIOWPtLYyWKHf0rMTWo4yD+6fYjAfweh8vLPfsnxxJUc43I73+ILdI6jJ+QqE2oAFQ6rIEW7qiTwsqe2Ah+zaf7G4NhSwCVVPfhiS5jwdn934GudLzDOOlCgCoHFwoB24Mh4toxIK44bqqbIHkkeO/2mCX9YjLxqCkrQH4Cipo="
        ],
        "X-MS-TrafficTypeDiagnostic": "DB6PR0502MB3048:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<DB6PR0502MB3048C20D9644B359C6ECCAE6D2720@DB6PR0502MB3048.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123564025)(20161123555025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DB6PR0502MB3048; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DB6PR0502MB3048; ",
        "X-Forefront-PRVS": "044968D9E1",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(6009001)(39860400002)(376002)(346002)(199003)(55674003)(189002)(5003940100001)(4720700003)(316002)(6666003)(50986999)(66066001)(76176999)(3846002)(33646002)(7736002)(48376002)(16586007)(68736007)(16526017)(189998001)(8936002)(50466002)(81166006)(305945005)(86362001)(81156014)(8676002)(478600001)(4326008)(25786009)(2906002)(53936002)(55016002)(47776003)(33026002)(6116002)(69596002)(97736004)(21086003)(36756003)(6916009)(105586002)(5660300001)(106356001)(101416001)(2950100002)(50226002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0502MB3048; H:mellanox.com; FPR:;\n\tSPF:None; \n\tPTR:InfoNoRecords; A:1; MX:1; LANG:en; ",
        "Received-SPF": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "03 Oct 2017 14:56:14.0044\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB6PR0502MB3048",
        "Subject": "[dpdk-dev] [PATCH 2/2] net/tap: allow RSS flow action",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "One of the main identified use cases for the tap PMD is to be used in\ncombination with the fail-safe PMD as a fallback for a physical device.\n\nFail-safe is very strict about making sure its current configuration is\nproperly applied to all slave devices, they get rejected otherwise in\norder to maintain a consistent state.\n\nThe problem is that tap's RSS support is currently limited to the\ndefault (non-Toeplitz) balancing performed by the kernel on all Rx\nqueues. While proper RSS support emulation in the tap PMD is a work in\nprogress, the lack of rte_flow counterpart prevents validation of the\nabove use case in the meantime.\n\nGiven that unlike most PMDs, tap is more about convenience than\nperformance, support for the RSS action can be temporarily faked with\na minimum amount of code and mostly correct behavior by treating it\nlike a QUEUE action. Traffic is directed to the first queue of the set.\n\nSigned-off-by: Matan Azrad <matan@mellanox.com>\n---\n drivers/net/tap/tap_flow.c | 15 +++++++++++++++\n 1 file changed, 15 insertions(+)",
    "diff": "diff --git a/drivers/net/tap/tap_flow.c b/drivers/net/tap/tap_flow.c\nindex aa33960..28d793f 100644\n--- a/drivers/net/tap/tap_flow.c\n+++ b/drivers/net/tap/tap_flow.c\n@@ -1089,6 +1089,7 @@ struct tap_flow_items {\n \t\t\tconst struct rte_flow_action_queue *queue =\n \t\t\t\t(const struct rte_flow_action_queue *)\n \t\t\t\tactions->conf;\n+\n \t\t\tif (action)\n \t\t\t\tgoto exit_action_not_supported;\n \t\t\taction = 1;\n@@ -1097,6 +1098,20 @@ struct tap_flow_items {\n \t\t\t\tgoto exit_action_not_supported;\n \t\t\tif (flow)\n \t\t\t\terr = add_action_skbedit(flow, queue->index);\n+\t\t} else if (actions->type == RTE_FLOW_ACTION_TYPE_RSS) {\n+\t\t\t/* Fake RSS support. */\n+\t\t\tconst struct rte_flow_action_rss *rss =\n+\t\t\t\t(const struct rte_flow_action_rss *)\n+\t\t\t\tactions->conf;\n+\n+\t\t\tif (action)\n+\t\t\t\tgoto exit_action_not_supported;\n+\t\t\taction = 1;\n+\t\t\tif (!rss || rss->num < 1 ||\n+\t\t\t    (rss->queue[0] > pmd->dev->data->nb_rx_queues - 1))\n+\t\t\t\tgoto exit_action_not_supported;\n+\t\t\tif (flow)\n+\t\t\t\terr = add_action_skbedit(flow, rss->queue[0]);\n \t\t} else {\n \t\t\tgoto exit_action_not_supported;\n \t\t}\n",
    "prefixes": [
        "dpdk-dev",
        "2/2"
    ]
}