get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 35152,
    "url": "http://patches.dpdk.org/api/patches/35152/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1518546947-20932-1-git-send-email-ophirmu@mellanox.com/",
    "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": "<1518546947-20932-1-git-send-email-ophirmu@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1518546947-20932-1-git-send-email-ophirmu@mellanox.com",
    "date": "2018-02-13T18:35:47",
    "name": "[dpdk-dev,v2] net/tap: fix promiscuous rules double insersions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "cd5de7d4039ac71432bcee1d9f1f4e8524a53777",
    "submitter": {
        "id": 793,
        "url": "http://patches.dpdk.org/api/people/793/?format=api",
        "name": "Ophir Munk",
        "email": "ophirmu@mellanox.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1518546947-20932-1-git-send-email-ophirmu@mellanox.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/35152/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/35152/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 259CF1B355;\n\tTue, 13 Feb 2018 19:36:00 +0100 (CET)",
            "from EUR01-VE1-obe.outbound.protection.outlook.com\n\t(mail-ve1eur01on0064.outbound.protection.outlook.com [104.47.1.64])\n\tby dpdk.org (Postfix) with ESMTP id C17731B34D;\n\tTue, 13 Feb 2018 19:35:58 +0100 (CET)",
            "from mellanox.com (37.142.13.130) by\n\tAM6PR0502MB3877.eurprd05.prod.outlook.com (2603:10a6:209:b::22) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10;\n\tTue, 13 Feb 2018 18:35:55 +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=IZgI5E3f2A3yG8epNjUcGgqFyLBrD6eKoN1Tt3/Wkn4=;\n\tb=JjdQAZeiPYMpA3YcoSzYX2d8wONW5MxgFGPBsSa/H6WlQHGFr0GAoKNa7fo/uda334rUqVGP+2vneIOgOFgDshGZvaOdC7bR6BwdMqkXlR0Pz5i+AGsbUKXGezHc4bqkNxselGbzaGcdu9E22iu+HRCEsvnvgfKHTfRvRCNZP9Q=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=ophirmu@mellanox.com; ",
        "From": "Ophir Munk <ophirmu@mellanox.com>",
        "To": "dev@dpdk.org,\n\tPascal Mazon <pascal.mazon@6wind.com>",
        "Cc": "Thomas Monjalon <thomas@monjalon.net>, Olga Shern <olgas@mellanox.com>, \n\tOphir Munk <ophirmu@mellanox.com>, stable@dpdk.org",
        "Date": "Tue, 13 Feb 2018 18:35:47 +0000",
        "Message-Id": "<1518546947-20932-1-git-send-email-ophirmu@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1518542172-9334-1-git-send-email-ophirmu@mellanox.com>",
        "References": "<1518542172-9334-1-git-send-email-ophirmu@mellanox.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[37.142.13.130]",
        "X-ClientProxiedBy": "VI1PR0802CA0031.eurprd08.prod.outlook.com\n\t(2603:10a6:800:a9::17) To AM6PR0502MB3877.eurprd05.prod.outlook.com\n\t(2603:10a6:209:b::22)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-MS-Office365-Filtering-Correlation-Id": "90c10adb-d02a-406e-a494-08d573109f02",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020);\n\tSRVR:AM6PR0502MB3877; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; AM6PR0502MB3877;\n\t3:+QUOYVnd0zoaGBIvFPXnahib6Iv+Tkg2CAmnviGgEVS5YdJy9WUOuPtvlIq7cyB6yz+6KppNfyTBV0w/zq2UCFx9Y6tGb35IOFhBiLcd5sU/tPOyBqwm3GzJ8L8XofkDoyyeox59a3r5By3Wz9lcxrgU4rP3/aksaBbHN21b5/R8Uvsao8VnTah7VM38rcJSYgOoTXzEc4HD8HCjD5FBje78W1Uk8x+dFsJFgXHQnEQjI1aAAIQQ4/H1e31yG6sX;\n\t25:AMWaN1UXX/7wSGvV/hLhTRGD4gUvbNy6GqOiAxJ7tc8/YJz0GyDKzvvvJRhwZ0zeq1i/IkBNkHS8UpEmYVIZlW1wb4Ynr0EGA2mqKk5RnWgLd/Uw42RDbTqhhUR+hNBAsYpO0XpVtzkxwQEDqdkiNoGXmNZ3OFMwHRfmRDA6mFwEO0Rqt7d1L8G5z/1ird9wjBO8S4lHQpAfHtp7CEgXrLf7w+MNIT2k8Gz+oGR7mOV2rmoJ9Wu/rs5ev/nzIlTB7Leptdjlr3eQlxVhW0464l7KiBNJtqNlPbuCkOlZM3UiPlUZJmRjsL1krFUjMmDoS7QbnhOcLy40E16gHyBqfA==;\n\t31:I3QK/F/t2aHebohZskHXDjFxPL0gqE/4VD9xR2WMkkxIEq59hPfaJzW0ifo2ea2uRU6C4If0/x5nGYx9Oq4BRNYivFfwWp0O45O7pnZczOKxBxcBadsqtptpZUVnkqWADyfYb5dqrhmYa3jccN2Pm7rO6JqcKtIAnEMVNVK4Sg0d74sWZUa0tZdgE/IXeyItRmtqK3OarxdeBj67xNOaCPpH4gAFuZCK78NdqaFHino=",
            "1; AM6PR0502MB3877;\n\t20:PBsJPxZF93QjYkI8RgvYNMXnpiv7+1CgURN2NTVae2TbeaFIi/W8B6L4i8Rh5ryhodIIlUB+dJxVbEE9XItrgR87pZV27PzK6IuyEjXhg086EZLlzpe4RsS3EM9aHJMxELwgmlEGjAqptJEd+PeFehCaz2LBbu/qyBmm9bmQ9rLUeY+BZnWJzICHn1ww/fqru+W739hk0YIy34KSZT2NPW47jcQeX8r4P9meJhiMWH7eadgkUC0+uBA9hbLkt28R31oj75O2Cl7mj6FGRlaa/tid2r2hLyH6g0j+7GnvEEDiATmv51bmFmTLPsB+W9fxqmgJ8SVbhRH9n60ZmUb5nxTN3xuiYsY/X3zksqvEWbJnrEos4vDB5Hd19JNkRZbKABP2Mpx08UjZZ14CCD5VIlAudl5MP46m4togsy3R7ITl80BClgorRHRQjp2fW1moIX3fakS+wdwvSOVvaIzJMrTDm965qXU2/x8qaKDat9L/uNeL0JRH3xYJ44CnYumK;\n\t4:6b2rlyKgjNu6mGFhwcHMaD4lNNLIPFBdsmthJUWK5O9jyVC6bv3ax3Twe38FuyEwth13hpSFp98BFRCqPCccnxMoH7Du7Ob8kafhKwCJOhcq7dy4jMBZ/wGxinsPgYj9NDJpFrhkklbW0GkO9TdFONlGen0n4e/ohG0MajBl9FdTJTYmmVEZTamNi3cUJwZREfwuZ3IS1y9/rYzypgFnEBo/tIMN5Wuql7wV6Cjj6AP5jOG1YMuUZIm68yHwtdWIPe8YSfBlEYKFBTunIl0vaA==",
            "=?us-ascii?Q?1; AM6PR0502MB3877;\n\t23:xYXA4/kTKm60Yv3NFSes6iJB9wXMAyh19q3BWTk?=\n\tnA6bxpu+uV4rQ5/WPgKCUY+ryAGSkQGN0Z0a9sab1u04O83BztbA0jx+0ztJGQrtYRkaQMTPCqew+kSxfyv7/M6yNafVAYfJB7SYBzt/qFAmQX5ryQchvXjFVEAEKWz2a3w7SnLEd5n6/pzlbNSGKjkinLcMkyFbSvXK1GSIb8yTTlu2pglOS2tt+2qEyclG2gIkEiRmh4QLryc3+1irIMj/P2Xil9ej/0Rag30ImBOKcyRMlZsG65Zk4TyBIq7Km34cbdg7LdDDnLQh8mt2tCgzO4XVXoT6hRsNlQ3XX2LdRU2JEW3T5U3xZ5WecGRI3ceXAXZPJScVwl9bpg5tfwliPp/STXuSy5DTVww0NWoLdgnAWfWQXaJQ8ZvZaecbQYxwLYKc7Jo2J1yKWtOt06z/YK6+iM00kjDTYrwNzH3eNTUH2YA3eoXBcu9GOKPPG6SE1+pvzupE1bI5py57SPmxFTAmaFFIR+gyc8VrXa/q5yUze0y+792CmS9MH4MSmWNB/Glev8T/LSliZvAd1yxldWRKzFgyDrMLSF3mKNQrL9JbsHBgDSY3xUDrmxpWl6n0slRNl077YOPV1TUMNL3GPoxd0JaV80tK8P2Gu8+c67GWQKUN4K1Yd85rDNoNLk86ESCGPXlNuhi5EWl77zdLLsPKyEgiGX0lZCHSIdbn7snkyZfOIROaNyzLUXFYrL9xSMiaA+3TSUlykXJFBORevSGpf6EbjyAE5/XD4C3EPDLEdk6wE9p+IEblPA5MESRxgIj+hxyjPTOEG6JMw/AnE+tF1/EHDC3fkREnIvnbOWLUNF85Zy2qU4W65k0XqKRmgKdmJ6fXx2YaysHvY849i7EHgxcS4Pj5uLWW0u/kYLGigo5aN05x8SlH9/wlbv2+NBfvUoepsBcd21kRANQNBHnWAIQT3kXuegodd5aPfUWmpwKDmDkGZ5uA2R0Z6y1wBSgiDNUMKetM5tdmLLEoDiJdBKLZhgZAXaEcnD+bHCXo6Fd2ZXUuQ3QN8Q/N/5w+3qige5Fh1IjBfErcbIZznC/nYnl305F/blJqJN4/W/qySKx3zeEjnImqMOODen84YOKZbZ1yPquMwj6LsiTLL38oIBYaluh5XHYZZclKW62GGkAXHYzjM8FoTFl4COJtCO6as0BWOwdB4biEfZVesjHJIEmfpa+ZjmvY8uzpmSQ==",
            "1; AM6PR0502MB3877;\n\t6:68X8fqI+xZmn6uikWavbOZ/LMw1pv9m20DQR9ZdbaY/72tHSqU2UqVXAl7BvzEE1bTjeeI53fSg1+LEr2dByHFbGffqDInMlTU0eYy5XwiB0jCtJ53aQiaEWsisECukIGYlNFsHC1hiWiGLhb/azMQ9BiwftIsEU6Q0xb/mzvrDecffOSzH5YrCSmO6EgXo8BWP/WvuK0yj1Z7SrTOQtkJJJwXUS5+qMMqaAgh0pSR35tquLiZqYjyZGqhH8GJIv0LgT9fjMJ9u0Riq3CUFo+eENSlwKIBAFmx6yKgHZ5nr7uO0jXvjXtNeRoBD3XJrMaaM4vl77lgFSABdTOWjsgAU9IgMg8xfWLmuTe2kfo3U=;\n\t5:UyLQ2qXOgeyzf5Nf/OAsZsQIOChFmbk7cLnFAO/iXxclHDHAnqoCkA2LdfHX75BNdcDTha442JLHcI9FhUlxKGdx38bxlmWgnMeWl09z7CKx3K7PVPSARt7Gq4cwmuSSRFLNzTKi3DxVKRfVDM17bwEywGTlvK11eld1fnV6gqQ=;\n\t24:Galo0wvZY9hNXmnwJ1SeDBnQ8EsiMgOlClmTA+2t4+i/WdfV6k463uO2REj6mMkUi8G07Bl0TpdxchFi4jRfEiRoA9XMHsjnwmuZA2gbzcU=;\n\t7:wQV1r3b+ZIRFb6YZgffR45g3Jp6LmcDGi6uIIwmZjKuM8PftzO+mkQNQ6Ove9xR/UQT3EAjhB6jEqRkL9mF4NjAfgHWG6CKNWju4c5A7OuHzqPcqdxGHcZzwep89ZgArCnQbH00YmsWxsf/BKvMWTBourlt9YYCOokr7Kn/YwPxjME91Mun0T6mgRyCiTGrYADNS3hEnaT9E5Cjd2UCiLABndW6XYcwPi8vivlwH2w1K5Paxw+qnhzndHOPkSfBW"
        ],
        "X-MS-TrafficTypeDiagnostic": "AM6PR0502MB3877:",
        "X-LD-Processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "<AM6PR0502MB3877B9CDCE8673D85CDFA108D1F60@AM6PR0502MB3877.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040501)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(3231101)(944501161)(10201501046)(6055026)(6041288)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(6072148)(201708071742011);\n\tSRVR:AM6PR0502MB3877; BCL:0; PCL:0; RULEID:; SRVR:AM6PR0502MB3877; ",
        "X-Forefront-PRVS": "0582641F53",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(366004)(376002)(39380400002)(39860400002)(346002)(396003)(199004)(189003)(50226002)(33026002)(55016002)(66066001)(48376002)(69596002)(47776003)(3846002)(52116002)(53936002)(7696005)(6116002)(51416003)(25786009)(4720700003)(81166006)(16526019)(26005)(97736004)(186003)(386003)(76176011)(6666003)(305945005)(86362001)(8936002)(8676002)(2950100002)(106356001)(7736002)(2906002)(316002)(478600001)(16586007)(4326008)(50466002)(81156014)(54906003)(5660300001)(36756003)(6916009)(105586002)(21086003)(68736007)(59450400001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR0502MB3877; 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": "13 Feb 2018 18:35:55.6589\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "90c10adb-d02a-406e-a494-08d573109f02",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM6PR0502MB3877",
        "Subject": "[dpdk-dev] [PATCH v2] net/tap: fix promiscuous rules double\n\tinsersions",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://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": "<https://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": "Running testpmd command \"port stop all\" followed by command \"port start\nall\" may result in a TAP error:\nPMD: Kernel refused TC filter rule creation (17): File exists\n\nRoot cause analysis: during the execution of \"port start all\" command\ntestpmd calls rte_eth_promiscuous_enable() while during the execution\nof \"port stop all\" command testpmd does not call\nrte_eth_promiscuous_enable().\nAs a result the TAP PMD is trying to add tc (traffic control command)\npromiscuous rules to the remote netvsc device consecutively. From the\nkernel point of view it is seen as an attempt to add the same rule more\nthan once. In recent kernels (e.g. version 4.13) this attempt is rejected\nwith a \"File exists\" error. In less recent kernels (e.g. version 4.4) the\nsame rule may have been accepted twice successfully, which is undesirable.\n\nIn the corrupted code every tc promiscuous rule included a different\nhandle number parameter. If instead an identical handle number parameter is\nused for all tc promiscuous rules - all kernels will reject the second\nrule with a \"File exists\" error, which is easy to identify and to silently\nignore.\n\nFixes: 2bc06869cd94 (\"net/tap: add remote netdevice traffic capture\")\nCc: stable@dpdk.org\n\nSigned-off-by: Ophir Munk <ophirmu@mellanox.com>\n---\nv2: add detailed commit message\n\n drivers/net/tap/tap_flow.c | 11 +++++++++++\n 1 file changed, 11 insertions(+)",
    "diff": "diff --git a/drivers/net/tap/tap_flow.c b/drivers/net/tap/tap_flow.c\nindex 65657f0..d1f4a52 100644\n--- a/drivers/net/tap/tap_flow.c\n+++ b/drivers/net/tap/tap_flow.c\n@@ -123,6 +123,7 @@ enum key_status_e {\n };\n \n #define ISOLATE_HANDLE 1\n+#define REMOTE_PROMISCUOUS_HANDLE 2\n \n struct rte_flow {\n \tLIST_ENTRY(rte_flow) next; /* Pointer to the next rte_flow structure */\n@@ -1692,9 +1693,15 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,\n \t * The ISOLATE rule is always present and must have a static handle, as\n \t * the action is changed whether the feature is enabled (DROP) or\n \t * disabled (PASSTHRU).\n+\t * There is just one REMOTE_PROMISCUOUS rule in all cases. It should\n+\t * have a static handle such that adding it twice will fail with EEXIST\n+\t * with any kernel version. Remark: old kernels may falsely accept the\n+\t * same REMOTE_PREMISCUOUS rules if they had different handles.\n \t */\n \tif (idx == TAP_ISOLATE)\n \t\tremote_flow->msg.t.tcm_handle = ISOLATE_HANDLE;\n+\telse if (idx == TAP_REMOTE_PROMISC)\n+\t\tremote_flow->msg.t.tcm_handle = REMOTE_PROMISCUOUS_HANDLE;\n \telse\n \t\ttap_flow_set_handle(remote_flow);\n \tif (priv_flow_process(pmd, attr, items, actions, NULL,\n@@ -1709,12 +1716,16 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,\n \t}\n \terr = tap_nl_recv_ack(pmd->nlsk_fd);\n \tif (err < 0) {\n+\t\t/* Silently ignore re-entering remote promiscuous rule */\n+\t\tif (errno == EEXIST && idx == TAP_REMOTE_PROMISC)\n+\t\t\tgoto success;\n \t\tRTE_LOG(ERR, PMD,\n \t\t\t\"Kernel refused TC filter rule creation (%d): %s\\n\",\n \t\t\terrno, strerror(errno));\n \t\tgoto fail;\n \t}\n \tLIST_INSERT_HEAD(&pmd->implicit_flows, remote_flow, next);\n+success:\n \treturn 0;\n fail:\n \tif (remote_flow)\n",
    "prefixes": [
        "dpdk-dev",
        "v2"
    ]
}