get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 34926,
    "url": "http://patches.dpdk.org/api/patches/34926/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1517765225-11117-1-git-send-email-matan@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": "<1517765225-11117-1-git-send-email-matan@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1517765225-11117-1-git-send-email-matan@mellanox.com",
    "date": "2018-02-04T17:27:04",
    "name": "[dpdk-dev,1/2] app/testpmd: fix RSS stream invalid Tx port set",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "e6ed3f3cd2fb5fb19c8da0684538e86fa368de1d",
    "submitter": {
        "id": 796,
        "url": "http://patches.dpdk.org/api/people/796/?format=api",
        "name": "Matan Azrad",
        "email": "matan@mellanox.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1517765225-11117-1-git-send-email-matan@mellanox.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/34926/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/34926/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 A3C501B1C5;\n\tSun,  4 Feb 2018 18:27:22 +0100 (CET)",
            "from EUR03-VE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr50056.outbound.protection.outlook.com [40.107.5.56])\n\tby dpdk.org (Postfix) with ESMTP id EC0851B1BD;\n\tSun,  4 Feb 2018 18:27:20 +0100 (CET)",
            "from mellanox.com (37.142.13.130) by\n\tAM4PR0501MB2657.eurprd05.prod.outlook.com (2603:10a6:200:59::19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.464.11;\n\tSun, 4 Feb 2018 17:27:19 +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=yoBEsQSx0wb6mwTACky0JbRmbJ6goSvsoOICVY7eCsg=;\n\tb=lDHyFn2RA1R+jyJUYTpH4xfG/WovI9PSsNs55T5+oUTl9Q/8d55KzJnak+0sq52ufC3OqEJu+15sIEX0f+urVJxXdL1J51fbBv3LtOLDMJpAWBb1mRx+e2IknNKxlwpL+vRw6vCx8dUHQtIitgricvETvdW6BeO4FcRYQFR5IU0=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=matan@mellanox.com; ",
        "From": "Matan Azrad <matan@mellanox.com>",
        "To": "Wenzhuo Lu <wenzhuo.lu@intel.com>",
        "Cc": "dev@dpdk.org,\n\tstable@dpdk.org",
        "Date": "Sun,  4 Feb 2018 17:27:04 +0000",
        "Message-Id": "<1517765225-11117-1-git-send-email-matan@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[37.142.13.130]",
        "X-ClientProxiedBy": "AM0PR0102CA0067.eurprd01.prod.exchangelabs.com\n\t(2603:10a6:208::44) To AM4PR0501MB2657.eurprd05.prod.outlook.com\n\t(2603:10a6:200:59::19)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-MS-Office365-Filtering-Correlation-Id": "80250c0a-feee-43fc-6954-08d56bf48b90",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020);\n\tSRVR:AM4PR0501MB2657; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; AM4PR0501MB2657;\n\t3:iN9ylM5css9BTJ64Yquwy1cy3Uqcf5mUxygpDmu2rpynBSEQxw+5aEa1RhjvbkvVcWDD63DdsG25sgl/0o27D6W6P12ofIa0jdJnuSqdSQGz2SU6vniklfwD/kAhsJLpSHpxtlu04fgZKT+1Yg8qXt6WeqwFCPiWWovI31UzF26bpsA4YRBF/4OdT19fVaawzby7rfbXMK6QDu5ryYI9PsLFAockvkWE3ckOBlgzhoRLL0J+ZkNE9CE3qRCj2pbb;\n\t25:KhVL1+6yOMNNr1+q5zPgufAvj7FprVEdgKTa2IL3Rau2fSOX2nWwpBBZN/vC3PemwtFd2/Bq7gPdFoiiim6Fth6MEYpKkwWRnZVNro8m1gn5HoNMY2C3UDbwrxNKD24bSq9zNkb50gCn3A/Ut+aTbL8fAEkClErLIdhDigP0VWEziTVo50Myx5EnYxdpTu23/M0ybJfYM7FIk90NZB0uCyXKYw9nfjpvzUHBf/7VIX9/CnVZyM0D/OfT27gz17v6ejVbM5EikGr/KsM7vqvHO8b7YN6nFdxZwLWfz6ry3s0DVguf+H5u5OR9+hvCwTg4NQYm7phUHTYhdaN+5mj4oA==;\n\t31:IH9AlFUsaJsd0FkVbWq7733yH2M7VU42izf25WoQx7dPBIt3j6cMAUfHh3MjzR5pdJ/T98tvRDx4cpIZno/zzeYSH/F4c+092AFrIiOEpGyky+LvtOGcmdQBor3k/CCT+C5ByKjQDJG0dyeEsPAxizAVjvBSsjy6lYpzauVA9vyP+6JiHkJIoGyMCwUFzdpoxDi4sS0fl7U35Ji8UQnu1P0OHM29OSJFpY95t/sSKag=",
            "1; AM4PR0501MB2657;\n\t20:C7KwVAzkaPA2v70k76CClvvIh9kuBhOBjONdjNsyTyLCxvgEevAJ267tub+fmScgqsIKQo9eGHUS+htQhOpxJVe0ugOKRxKnK5IKERQqDvDnE2yMikiA38dg4Mkd5tmT+l+Xnj3UiURG/Wxq263+b5g14P5nQiF8hqaQW3g2dklpemJ5dSBA7JSP8bh24/NtFmARkjpc9bF0d0v3lQagyX11f6K1eTTXDkSyGQEEBv4wUZgDDBTOi1DtIrcl6INaSOc+SrBQ0yfO/7ZWoNDTEruVeansYJnUPPbu8FwK9tXICzLdQ3A+zqRnxn1J8a5MEkSUAEO2XgMT/xaJkLKhIrx4fxCba8nyAWKwO3SvYbqA/ynXon8nzeMcBR/C+k5bAb12O9pI3lvbXvL+8Xj9eondrWQipVdzCwnfCY3U/F4EZcyHCmjpcuyuLdbTL4Zxm7J/b2hIqrKRs1gkZiz89jnm0irY7vjslyXgre5Hi/kLcSBeqZ3Rz10I6nx4ZXWp;\n\t4:vmNEOCAlJc0Jx7JLMv/yEBLaLRKBypJ7Wkp/LKJoqVvR6idPUJviCd7dd3LDBao70mr394RRC56LL3yl7xwIjOiXi+yiuB7ckO8igQDUhjlXmGW0KnTT1nSRLJXBkCAAe/wlmHVhup1x3Mw3wheCvkH238tAS8X7O/wdun4jnF9U+rXvRbPLdQYvcRAH5s3PodyfGkjMakyT/ykoyoy/Q1uYkH50LKKIauNDFzJ0NEhhZPLskyP58ezWb+MpufytWpbQ1UuMVq0L+zTyMESd1g==",
            "=?us-ascii?Q?1; AM4PR0501MB2657;\n\t23:+HVsfFUDxyP5/URAGzMjwQcxKun1TS7Uohe6FYg?=\n\ti+P1FDovbIaiHSI4wQ7fqQHLrnp3oRlvTpPvSSHQuTY53Yud/28PWMekbQyxDsbRWQ1yKiQzFgmNyforWPagdJIcDVa3/48uquBOUJ3B0Rzs3a3hEg9xvJWrFmbXCJ3Gn7ZlJKGOwDWi8GGn1JSLEyMaJeFD+0d0MBSpeLzWpo3eLqUBREQV7t9Dv8qoXsRMT9/22gDgfW7iFvdVUSJwV/C5y7zow/gczt+e/HDM6WVr2UE7HQfNeCfCtyp/lFchlHqIEnXHAU4pASzv+sDuYq4OEPZ1OYLpi5mXCkoABfZi5KzTB4IbH74BPaEMiucuJB4TJm7RD7/Ce/sfzuZmJe3hw3PhJXStK6NkESVTW+URhDO56lwEeOUPpE2ME3fwzJ8h3sosk15xmshEEMhr/r6CuMqj0i9Ry+d0D8p6F1Z/qcwoPhWVBByOi0r/IoPJnUO75FSTCX9tg7Gg7G0jH5jhjEB+y+1u8WWmMQZr09tb5V5GWWKK6N5kKtiIbU7Wg6GLczCGZACnMrkXJM32TiBJV32JJCtzqB9GnxBmjyzt6YajRjY7ZRB5ws5u56WNym2KXXeas97SLAdRZA0CNPg2EmuGPgnYSU370fGv8coJPPakFhqLB3YAK5dox9GZgYgYa+JEfI0Y635rP3JY8vDZGC0Zo0QwxhpagkxoDLsWGjURD/BOUMJPlNiR1W6r07Zq9kF+/zdNotafIRDM4rY2iR01MkJ9xlWxvf3Jsy6o6Dj6YwO1K6EP4XBCQVb95q/881yEDlsJl0zuFEPTqyXfY3qNyzd1Rdkz3wKEA2okjF5awgRpQEnIKgbL2iyEqniQ4J5R5a42J11xTwfc3d2jwOh+CgTsNpvl5o2rjbzxGBnWUWotGebkF2DSp+iafSr1NN+vvyDhb/EmZxajzo2+2fh+62HUNwnBbtm+/L5vjbq46K4IbJp0gScEWzp++z6Ng51DJDrCn5e96VeQOIC49T6ytQ3fzwXyrJ8J/SFFdes9JaUNMKnMl7fKRsOsPPjU9dhtSGRuyEBQgjpm+gz2UC5kN3f6dUhZYU06hGtcyu9pBZu5efTKlT+qDPHK0BYvNoqoukYeiiwgOcOJV44HO5j+9/FmhsI3LqpJJUliX2g==",
            "1; AM4PR0501MB2657;\n\t6:8qpgTZPLaYzU0ug6JvtW/LBBt02Y9ByBy8PPwKTHPGkp1QYZy8cOKIxKphQAu6/O9DK1XWh7/u6SP6V/47oT81Sja4tEmNBCLPBcCJM1C6oAcs+DD615MQXSUGJAJE8s3+Y5NZOlsdrt/C9Qr9t3+tJMw1ocTCZ32exckNoitgsUlNKmvpy6+SmErZpXq+2LcxOn0OUxelt+NVfHqQ65z2o6g8KpTa15MZBTYnSl94q3TFUz9wy6U5pVtLoMW25urp7iAyO7CnaaCQddJQRk9U2npvk5mg46aVZM35x8RXNJ9Bu9OgCGfE9LozEK9XkOdqvTmgBXpiL9nIQRJzJ+I9eByE8NGCGKIzvaVLumTQo=;\n\t5:p+1+GlmK4AeqXTNCFyCjPEysA/rdnml58lILxAlgTm5iNYhm3Rar7ydfFElGhnmgjD688/ppKi7SOMyUQDvO++VmCZ6NYtjFet4HVNxEiXmwyFCZgnv/inBuQdUb0PFa1IYYLaN5rO++yVU4JR1m/FIKBHBMDRkUwfJCrb+aLY0=;\n\t24:++NnQoABsjvMyQqDDqJQZkCN+u/aj+O2enGmckY3FWZv+59ECcmC87Uh+Db4pfy0ymSJ6CVZ4f7vpRSiboNKdzcRMFEZ59U2fzwTAbSCyNI=;\n\t7:aP5onPkcXVJBCHIWKdkVHpfRUOKplbu/9aAynm5QrX5E2/rlIFWdNZCnQNAApRa4WQduFPP0JfAXKnSBqiDL6KoHgYJ/XTq6XO42qDGINPI7end/nbE3+LKE++W/F/h6rp72cjobNkVn8i/BEBnR6dKpkpwTCwefAjXFVUshfgI0ClXFahtuRAb2bYTrRYp9A284t+IFzTLECBBDXEbRbjE7Sghl6dN7E863ShC9XNHZl5tRDe5gYzVZffOmgrfh"
        ],
        "X-MS-TrafficTypeDiagnostic": "AM4PR0501MB2657:",
        "X-Microsoft-Antispam-PRVS": "<AM4PR0501MB2657230FE6E1790A7EA4F4C7D2FF0@AM4PR0501MB2657.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040501)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231101)(2400082)(944501161)(3002001)(6055026)(6041288)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(6072148)(201708071742011);\n\tSRVR:AM4PR0501MB2657; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0501MB2657; ",
        "X-Forefront-PRVS": "05739BA1B5",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(376002)(346002)(366004)(396003)(39380400002)(39860400002)(199004)(189003)(305945005)(69596002)(7736002)(86362001)(48376002)(33026002)(7696005)(52116002)(25786009)(51416003)(386003)(59450400001)(478600001)(3846002)(6116002)(186003)(4326008)(16526019)(26005)(97736004)(2906002)(16586007)(66066001)(105586002)(36756003)(21086003)(47776003)(106356001)(55016002)(6916009)(53936002)(81166006)(8936002)(8676002)(50226002)(81156014)(50466002)(4720700003)(5660300001)(6666003)(316002)(68736007);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0501MB2657; 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": "04 Feb 2018 17:27:19.5013\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "80250c0a-feee-43fc-6954-08d56bf48b90",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM4PR0501MB2657",
        "Subject": "[dpdk-dev] [PATCH 1/2] app/testpmd: fix RSS stream invalid Tx port\n\tset",
        "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": "Testpmd application configures RSS forward streams, by default, when\nthe number of queues is higher than 1.\n\nIn this mode the configured port topology is not taken into account.\nMorever, the Tx port may be invalid in case of odd number of forward\nports.\n\nConfigure the RSS stream Tx port by dedicated function which calculates\na valid Tx port as a function of the topology mode and the Rx port.\n\nFixes: af75078fece3 (\"first public release\")\nCc: stable@dpdk.org\n\nSigned-off-by: Matan Azrad <matan@mellanox.com>\n---\n app/test-pmd/config.c | 54 ++++++++++++++++++++++++++++++---------------------\n 1 file changed, 32 insertions(+), 22 deletions(-)",
    "diff": "diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c\nindex 7f2afa2..02ab1e3 100644\n--- a/app/test-pmd/config.c\n+++ b/app/test-pmd/config.c\n@@ -1882,6 +1882,36 @@ struct igb_ring_desc_16_bytes {\n \t}\n }\n \n+static portid_t\n+fwd_topology_tx_port_get(portid_t rxp)\n+{\n+\tstatic int warning_once = 1;\n+\n+\tRTE_ASSERT(rxp < cur_fwd_config.nb_fwd_ports);\n+\n+\tswitch (port_topology) {\n+\tdefault:\n+\tcase PORT_TOPOLOGY_PAIRED:\n+\t\tif ((rxp & 0x1) == 0) {\n+\t\t\tif (rxp + 1 < cur_fwd_config.nb_fwd_ports)\n+\t\t\t\treturn rxp + 1;\n+\t\t\tif (warning_once) {\n+\t\t\t\tprintf(\"\\nWarning! port-topology=paired\"\n+\t\t\t\t       \" and odd forward ports number,\"\n+\t\t\t\t       \" the last port will pair with\"\n+\t\t\t\t       \" itself.\\n\\n\");\n+\t\t\t\twarning_once = 0;\n+\t\t\t}\n+\t\t\treturn rxp;\n+\t\t}\n+\t\treturn rxp - 1;\n+\tcase PORT_TOPOLOGY_CHAINED:\n+\t\treturn (rxp + 1) % cur_fwd_config.nb_fwd_ports;\n+\tcase PORT_TOPOLOGY_LOOP:\n+\t\treturn rxp;\n+\t}\n+}\n+\n static void\n simple_fwd_config_setup(void)\n {\n@@ -1944,11 +1974,6 @@ struct igb_ring_desc_16_bytes {\n  * For the RSS forwarding test all streams distributed over lcores. Each stream\n  * being composed of a RX queue to poll on a RX port for input messages,\n  * associated with a TX queue of a TX port where to send forwarded packets.\n- * All packets received on the RX queue of index \"RxQj\" of the RX port \"RxPi\"\n- * are sent on the TX queue \"TxQl\" of the TX port \"TxPk\" according to the two\n- * following rules:\n- *    - TxPk = (RxPi + 1) if RxPi is even, (RxPi - 1) if RxPi is odd\n- *    - TxQl = RxQj\n  */\n static void\n rss_fwd_config_setup(void)\n@@ -1980,18 +2005,7 @@ struct igb_ring_desc_16_bytes {\n \t\tstruct fwd_stream *fs;\n \n \t\tfs = fwd_streams[sm_id];\n-\n-\t\tif ((rxp & 0x1) == 0)\n-\t\t\ttxp = (portid_t) (rxp + 1);\n-\t\telse\n-\t\t\ttxp = (portid_t) (rxp - 1);\n-\t\t/*\n-\t\t * if we are in loopback, simply send stuff out through the\n-\t\t * ingress port\n-\t\t */\n-\t\tif (port_topology == PORT_TOPOLOGY_LOOP)\n-\t\t\ttxp = rxp;\n-\n+\t\ttxp = fwd_topology_tx_port_get(rxp);\n \t\tfs->rx_port = fwd_ports_ids[rxp];\n \t\tfs->rx_queue = rxq;\n \t\tfs->tx_port = fwd_ports_ids[txp];\n@@ -2006,11 +2020,7 @@ struct igb_ring_desc_16_bytes {\n \t\t * Restart from RX queue 0 on next RX port\n \t\t */\n \t\trxq = 0;\n-\t\tif (numa_support && (nb_fwd_ports <= (nb_ports >> 1)))\n-\t\t\trxp = (portid_t)\n-\t\t\t\t(rxp + ((nb_ports >> 1) / nb_fwd_ports));\n-\t\telse\n-\t\t\trxp = (portid_t) (rxp + 1);\n+\t\trxp++;\n \t}\n }\n \n",
    "prefixes": [
        "dpdk-dev",
        "1/2"
    ]
}