get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 32332,
    "url": "https://patches.dpdk.org/api/patches/32332/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20171215211125.39177-1-yskoh@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": "<20171215211125.39177-1-yskoh@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20171215211125.39177-1-yskoh@mellanox.com",
    "date": "2017-12-15T21:11:25",
    "name": "[dpdk-dev] app/testpmd: make txonly mode generate multiple flows",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "5b6b60bf2c1df0fc60e40d5f53cf34ccc0863009",
    "submitter": {
        "id": 636,
        "url": "https://patches.dpdk.org/api/people/636/?format=api",
        "name": "Yongseok Koh",
        "email": "yskoh@mellanox.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20171215211125.39177-1-yskoh@mellanox.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/32332/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/32332/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 9570B1B012;\n\tFri, 15 Dec 2017 22:11:43 +0100 (CET)",
            "from EUR01-DB5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr60070.outbound.protection.outlook.com [40.107.6.70])\n\tby dpdk.org (Postfix) with ESMTP id 1CD2B1B010\n\tfor <dev@dpdk.org>; Fri, 15 Dec 2017 22:11:41 +0100 (CET)",
            "from mellanox.com (209.116.155.178) by\n\tAM5PR0501MB2034.eurprd05.prod.outlook.com (2603:10a6:203:1a::20) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.323.15;\n\tFri, 15 Dec 2017 21:11:39 +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=PDfD+zTx819wo6PjQmyZAfnnjlVSugbZsLgQ10iyO7U=;\n\tb=EmhNbmQc5O8CsrXksQqgtA6K4ZUTJLIDoAwWoSRO05OOWqcSBPHF2q+HDPq0LHr4yqmswMEYNi4yLMT6fdJEUCz2bNFJ0f/rgkLvU2glOOvl2MTiqn4H7E+W9YE52wjia+1pR2Q1OrT+kAlwXSw0Zi/ZpElO4hlK8q4hgWlWrxM=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=yskoh@mellanox.com; ",
        "From": "Yongseok Koh <yskoh@mellanox.com>",
        "To": "jingjing.wu@intel.com",
        "Cc": "dev@dpdk.org,\n\tYongseok Koh <yskoh@mellanox.com>",
        "Date": "Fri, 15 Dec 2017 13:11:25 -0800",
        "Message-Id": "<20171215211125.39177-1-yskoh@mellanox.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[209.116.155.178]",
        "X-ClientProxiedBy": "YQXPR0101CA0013.CANPRD01.PROD.OUTLOOK.COM\n\t(2603:10b6:c00:15::26) To AM5PR0501MB2034.eurprd05.prod.outlook.com\n\t(2603:10a6:203:1a::20)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "dfd6efd4-d5e7-45e7-1d62-08d544006f97",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603307);\n\tSRVR:AM5PR0501MB2034; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; AM5PR0501MB2034;\n\t3:jfdmysp38UM6UyJYeya4LLRQrBp+azd/l0f4yRT3ahsRaUyY/Hv2XDgNw/74QKHNS5DbqoMiBrFwkPPGh7mo7hTvL40RCId9YXetff6jsPk5FuX9H7edbkI30z501+RDwKZQFRKcQghGxafmg4UOBVvgOV6sns3bdgijIYs1KurmUu9CTKVWtsiK3JBWKR3Gy5rqNVit7Go4T8wj4XCNTuB/EwGK3uAJ0nCFbABOntxBQutr6Djc/YchKBmZzBcN;\n\t25:+ETWlvM7ohDY/AxPVcv2bDBktaP9zBSn7IeqyZKOQXmZFMrydgEYjsANdHO8TxdVoW2SllCfu6+uh9dqAuxaGGVV9q+NI9EPexf1nxbAByI2oY/KaBzbZxoX9KZw8bqgX1Zto1EWW20HFTTw68V4TP1WYnjbkLt0qHoL/DcPCLeC5nQVyzbyQRIqHEIIsmK6zi5eM6zglOkZXUfEocrQ7zxMWzIRA9fWx0020slZIDNtldDTRvpoUyXHh/tF8ijxvP7ChFq+mYWMv0ypO487oJegp7ZZkTmU5m1S9cKQjlWzFbuWyoQk8kGVjtsDCUNg+tCV2dF6hY6lmIpOWTC4RA==;\n\t31:ThimFf4pqZE6WWbnisXvWyqs2FsGAW56J83FoETWH0dV0G4bGf37UJEO9Re0vAdQP/Dom0zlEFK1XXjX1bDen94G4bJXMRahof1tPAtZa3ArSiDFvy9QTwQy4aJXmAMhQn4226+1b3gPP3bZuXuiSr5jyguP29RrdzcE1I6hN8LFBCKulossVetWvGYDiBMHErqZ0O0G4FWVmHSwNscxpB2wiA4gdbnMyUgHe0q5Tf4=",
            "1; AM5PR0501MB2034;\n\t20:gelWVoQCEkxU4+maeBPDieCqt/c1zTio1ABssqbhuPzldTXZm0LBTSwBcvQ3Yoea0T9rURd4Zys/VM7P20G2dED0xLLwCJX7UGDxhdYo0Mkn6L+yqTYscIVz5uKG6P1HZIHMsBO/HXU3TixeXMniQ+i+xcWaBDSMzzgraGWxK+GFeMBhsOySzt59P1h10UclbRJ00m/JB6FlYUGLi3spneOGSydr54qxDHP5ste+b7f3da2qPG0yBFlAybzT4XXdn+W9tOsBHsfJIiRXHJAdc27D1xI6RDHdQT+4ITVO23kkl4r45xjKwaTHVWbI/fvQlTsJrGXYJKrGoTQF8FzX7hmWHbPSWjbn450jSKUA2naOU5Kem3+Mo6ZPMlAlJp6IKYQbIQTOQcZfdpIpgxD/aZXNL4D4EkS1Kgpo3pKKdbWgAx2jsdQqybc1GNVtZ2t8sNqYq6d6UIGTZhbjbrN20o53ruEDoDN7shxFNcEidYJpib4z0AriZ3w/yrK1MWsQ;\n\t4:Jb2AFMfpAkboqmGBS7V98MC0P2JE+fjxWVXWiYRn0Z3qqONaHL0iEaAYvLhqLXbRHxIiSrq9INq6EgMUbfKEFOFrvGWsbF6Ekh/4wkvW84kwjt0Lwbp6+Ge0l250Z/bfCtjON6zu8Yfn3O9hxu9YQ2GdH+XZwdKudqNVNYl80/7/wPPCiY97lRuOnkny2Et3egNqfki3GBjc2zApl8gylzxgWnr7djPcCrOhQcg3rModBFBCtq6wnNsOZxi4NkhamBSs56I5EaDKr5FKV6mTGw==",
            "=?us-ascii?Q?1; AM5PR0501MB2034;\n\t23:FUqcW5xV6miJ9fK98gwun94YLbbaD6eaPf8bF7I?=\n\tgCPwOKXr3OH2PPAfTfykbdhwgpiRcW6gCD3Wz3KVG086uq7j7a2qFGtUuVNCVTM7cWbo8vJmHdZGML8dXdaHoU/VpXepyZvfjt9vS+Zd2fIHGaM4fA4v+YZeEgn5WgLBO2Rmy8gRHjH4TOef6QdfAOV8ygg/RzMZ6HcD8mb/uVFMaKs4G//c4iiE08NVcovgfvrGZbUjzJuWtV+Wc8cQFl/7BkB3a+n0QLDiX+/OnMtZk3e2J0vA0ff6YWPPQeCSMVjEb/kbIvqCfQNI8JF0Cp8U+Oln0RX3qVJaOaiZqNEyxC6atAq8eqeUsy51ZDqYzyBtzr3uJ9sgF5H7SMs80NmRIIl1rG6VeXrgunAQPxo94QWUWoScPKZYofTuTFT1t9N/50LiRpCIfDvv+I9jFZhkrzh5hSw6OAvBrNvz9Q9fGfY1JPe88yJpiF+UNGQ0UJZ0sZH785EbNlaRLcIKxD5yS+N5XodZFXTq3zLlBPc7zjDmFum7PaKNqJu2dN21vknsHKXll6vXcB1UhI1uf1KGuwqD/Lju5xiSnChGLN3niRCUk9n1bKA3uFybGWIyBRJOXWjeCzZfJJeTAq5DpbsurT3Yb/KGWDKRCzp6Qi7gurqd8hinG7a05oF4f1CbfnlsJakiZzELRc2jrKSLq0QgaDPY8eqdx581jEGWtVBR6cyQEY68/in2QQrN6GMjHUIvojJzRiTZ5DMi0QJIP8TM9v5+/GPD50RDoXiWcBCfDvA+HqJU3LTa119pFahNUP82priwnz1Bpw6GsNvGDbm9AcPWpSiaiovxLR3lcRC3qORxP2XYJnIaWiN0zEYZMf3NO2GIUOvTEtGv6A+lM3yCCSU/S1g+B7IijqD5zDu/P2WmnwdB2IBHirkl17Co3rUT3WTWHMMbOqKtvuRcIGgvL2ZJYZre7HXuijVNbusc0k+AVzSZqN2wkea+xlYTwvHswd0B9Np0lQaosnMtE892NV63nuKQ6fmEC9i6hpP3JNqm5t+P9pHv9ZkAS49ysXgZC+6ym2vvdO580O84xmB0pf+fHQ+ZwpGHieRExsl8HUeiAqifyywhuBqXL2pLvsYxAurk5BLUt5fT3973FIP2U",
            "1; AM5PR0501MB2034;\n\t6:+j2BfWRhQueenbbLGp5RuFhCB0g+TfyASeMJnAO0Z1sWMZ/0LnAAlxrOdpXcZ2gLugGpyDeUJV8vaSGF7Xp8HRJ9NrQbaIVUgdpCs7c4U8kSEPnGF/D4xyqYxaSX9p1xVZGxo4+NkXR+QXuNwGfNKiUVE/FV4MY9chTwNEx8+HfuF60KlWKswyrReuGLncQ+kFIbp+v1SAPodY0xpezVcQQL1cD6cywST2PPg9BytuyqRvJbeppLOCzdco/P+A9OvkFyKcYleXPVf02+PwE66C11yobPb2OCinQxHv0TG+Ag4f2/8h3U7ySsfXXQOSxMcmya98OOeRYinfVF40MBVTa/1jd20QCNWFnv2EKzBsA=;\n\t5:bbKi+TdkU9D9Y6VyvrYwMFQ7lLO5+SmyRPeUWkhpap1qBbn0eFHLOMNvAD/0WqaCk1/5SIF92B69/IlUHv41ApQttlf1uRfrHY3en4y4JmAEWV5OxrsztyHK4kbJFv/+4ny7OSz2gJ7M0p1LIll81H6zQGAk5rAqf5+2WxNth4o=;\n\t24:wNHT0npb5KQHNb/uZoXKuTqqsBoYkRBqQ5iG/O3719/MN+9k7efiLTrvLexjygfJrvzoyNZsLlnDuyUaGYIruysZrT9Lao85amFaoFqi6bM=;\n\t7:eCFbYdSKQ+yXBBOOmo7VAM2eWLks7egyeAkkPOFWz4t4tp7nsKWtbCFMXZK403dMR0OMPpjmTHMAIGaJfdIOcpCV8htCs2awbBhQAc2bCbbc1IH5LuRPkVP93w3GVD4u6OKkJahdCrj2aAQAUmo+vLtvmj/UnV8l53TEWgp2gYzZBsCDdIZxmj0jVFcQKoCtj7TZyTujGmBV2tL6uzG8DSFoIxWu1R7cwiMVD86omMz+X1iEjq8f7iE9mHl8VCDH"
        ],
        "X-MS-TrafficTypeDiagnostic": "AM5PR0501MB2034:",
        "X-Microsoft-Antispam-PRVS": "<AM5PR0501MB203422D2957BA544DFD7C405C30B0@AM5PR0501MB2034.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040450)(2401047)(5005006)(8121501046)(3002001)(3231023)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123558100)(20161123564025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011);\n\tSRVR:AM5PR0501MB2034; BCL:0; PCL:0;\n\tRULEID:(100000803101)(100110400095); \n\tSRVR:AM5PR0501MB2034; ",
        "X-Forefront-PRVS": "05220145DE",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(39860400002)(346002)(396003)(376002)(366004)(199004)(189003)(7736002)(105586002)(106356001)(97736004)(68736007)(2906002)(69596002)(4326008)(2361001)(2351001)(6116002)(25786009)(386003)(59450400001)(1076002)(16586007)(55016002)(36756003)(16526018)(3846002)(50226002)(50466002)(8676002)(8936002)(81156014)(81166006)(478600001)(53936002)(51416003)(7696005)(52116002)(48376002)(5660300001)(6666003)(305945005)(86362001)(21086003)(47776003)(107886003)(66066001)(6916009)(316002)(20673002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0501MB2034; 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": "15 Dec 2017 21:11:39.6592\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "dfd6efd4-d5e7-45e7-1d62-08d544006f97",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM5PR0501MB2034",
        "Subject": "[dpdk-dev] [PATCH] app/testpmd: make txonly mode generate multiple\n\tflows",
        "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 can generate multiple flows without taking much cost and this could\nbe a simple traffic generator for developer's quick tests. IP destination\naddress is varied.\n\nSigned-off-by: Yongseok Koh <yskoh@mellanox.com>\n---\n app/test-pmd/txonly.c | 12 +++++++++++-\n 1 file changed, 11 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c\nindex 309c73893..aa4c379c4 100644\n--- a/app/test-pmd/txonly.c\n+++ b/app/test-pmd/txonly.c\n@@ -73,7 +73,7 @@\n #define UDP_DST_PORT 1024\n \n #define IP_SRC_ADDR ((192U << 24) | (168 << 16) | (0 << 8) | 1)\n-#define IP_DST_ADDR ((192U << 24) | (168 << 16) | (0 << 8) | 2)\n+#define IP_DST_ADDR ((192U << 24) | (168 << 16))\n \n #define IP_DEFTTL  64   /* from RFC 1340. */\n #define IP_VERSION 0x40\n@@ -81,6 +81,7 @@\n #define IP_VHL_DEF (IP_VERSION | IP_HDRLEN)\n \n static struct ipv4_hdr  pkt_ip_hdr;  /**< IP header of transmitted packets. */\n+static __thread uint8_t ip_var; /**< IP address variation */\n static struct udp_hdr pkt_udp_hdr; /**< UDP header of transmitted packets. */\n \n static void\n@@ -187,6 +188,7 @@ pkt_burst_transmit(struct fwd_stream *fs)\n \tstruct rte_mbuf *pkt_seg;\n \tstruct rte_mempool *mbp;\n \tstruct ether_hdr eth_hdr;\n+\tstruct ipv4_hdr *ip_hdr;\n \tuint16_t nb_tx;\n \tuint16_t nb_pkt;\n \tuint16_t vlan_tci, vlan_tci_outer;\n@@ -263,6 +265,14 @@ pkt_burst_transmit(struct fwd_stream *fs)\n \t\tcopy_buf_to_pkt(&eth_hdr, sizeof(eth_hdr), pkt, 0);\n \t\tcopy_buf_to_pkt(&pkt_ip_hdr, sizeof(pkt_ip_hdr), pkt,\n \t\t\t\tsizeof(struct ether_hdr));\n+\t\tip_hdr = rte_pktmbuf_mtod_offset(pkt, struct ipv4_hdr *,\n+\t\t\t\t\t\t sizeof(struct ether_hdr));\n+\t\t/*\n+\t\t * Generate multiple flows by varying IP dest addr.\n+\t\t */\n+\t\tip_hdr->dst_addr =\n+\t\t\trte_cpu_to_be_32(IP_DST_ADDR | (ip_var++ << 8) |\n+\t\t\t\t\t (rte_lcore_id() + 1));\n \t\tcopy_buf_to_pkt(&pkt_udp_hdr, sizeof(pkt_udp_hdr), pkt,\n \t\t\t\tsizeof(struct ether_hdr) +\n \t\t\t\tsizeof(struct ipv4_hdr));\n",
    "prefixes": [
        "dpdk-dev"
    ]
}