From patchwork Fri Sep 8 10:00:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zoltan Balogh X-Patchwork-Id: 811445 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ericsson.onmicrosoft.com header.i=@ericsson.onmicrosoft.com header.b="IZSGUBVS"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xpXrs02r6z9s7C for ; Fri, 8 Sep 2017 20:01:01 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 4B8D1970; Fri, 8 Sep 2017 10:00:58 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id B415E8A1 for ; Fri, 8 Sep 2017 10:00:56 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from sesbmg22.ericsson.net (sesbmg22.ericsson.net [193.180.251.48]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 5094C8A for ; Fri, 8 Sep 2017 10:00:55 +0000 (UTC) X-AuditID: c1b4fb30-57fff70000005897-c9-59b26a557119 Received: from ESESSHC014.ericsson.se (Unknown_Domain [153.88.183.60]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id A1.1B.22679.55A62B95; Fri, 8 Sep 2017 12:00:53 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.60) with Microsoft SMTP Server (TLS) id 14.3.352.0; Fri, 8 Sep 2017 12:00:52 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.onmicrosoft.com; s=selector1-ericsson-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=GjnctL0108shO0wVGnjpkAiRP1vTx0zDLRpCli0C8AE=; b=IZSGUBVSCmm3RueWuxEUL8q4udPOXsxQX8NOTXPkQoLYflB0NH2HYcS3dDCY23iHNpfe8Yrd1a3zrN531jgvCnZcae6Rh1WFA4XfIgTy0yQnLiN8VGsCyJKQK9MN+PUhTCH0r2FNJ9KyTTt0pZwayht6cLtUJpWnQajXqfcYsqw= Received: from AM2PR07MB1042.eurprd07.prod.outlook.com (10.162.37.27) by AM2PR07MB0803.eurprd07.prod.outlook.com (10.161.71.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.4; Fri, 8 Sep 2017 10:00:50 +0000 Received: from AM2PR07MB1042.eurprd07.prod.outlook.com ([fe80::7e:2b4e:3774:4ef3]) by AM2PR07MB1042.eurprd07.prod.outlook.com ([fe80::7e:2b4e:3774:4ef3%13]) with mapi id 15.20.0035.016; Fri, 8 Sep 2017 10:00:50 +0000 From: =?iso-8859-1?q?Zolt=E1n_Balogh?= To: "'dev@openvswitch.org'" Thread-Topic: [PATCH v3] netdev-dpdk: reset packet_type for reused dp_packets Thread-Index: AdMoiTpZmqpszDzEQRmLSbLnaW3BlQ== Date: Fri, 8 Sep 2017 10:00:50 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [91.82.100.59] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM2PR07MB0803; 6:uv1NQRuwcmPcijrJcFyrYZombCD/KnDC5bm26+J+5XYm1+Ligkv4iN8oXU8Q2SpqKPwqdrG+HEgfWHiQEb5YrcfJUdcYFWElPCrO1AvREvPaHM/kt7/DhWXg8xg2CkRMnGIXACX6XdQ4F7jQ/wtlVrE4qQTYf0Cg9Lrcqbs2CXdPBK7/WRADT1d4rivrMGki0ZfBX5RGjgUFb720UD0+jdGCdpkrGVo8ttoj43U62uc6QvSFzZEPdahO6dOJTNsHIU/Vu3c1gk85S69G0k5uMh8iPpeHpmimtJL45L6usqoMtyruqpeQT+Wl17Bg3FVBiMt7C6y/Xk1ex3pufXhZCw==; 5:WTiPQBMrNuMJQw7f4o5RnrSpNrCZejSmEZunRrJKMsR6WhkRp+lFQ7ovGpRUPNZ+rwLLYe3Kc3g9X9dzAzTO1fStvp22FmlOzhwk0eXgPJ6YHRT3Z59jsEkf4rd/3vXdXRSC7cPLvqQy6Z3arKZIIQ==; 24:exPBO2bHGg6zmhUOQNFIlsR3BKmM2Hrqk/DX0Y87jw4h8Rz72kHERslgwIa02pCEFo6PH+SHtXiOwxCb5yT5hiVVYRiXSEKDb/W1sUBY4Tg=; 7:Qb0mCe9YGcW2fWTsyqRDPLFSIcmFcvHcX4taZAEpBMzzK3AGT6jd8FXtKISYu4lAuer4GKv/w/WICllOaaqES7hU8+770tVHHtAn//hAxyXdnbZ12HUb1NSoNXWjUbu2KVkPsXRYJqyzSdkFjYCDZXSe29oyP6YyhCwBnzlbPZw822byllqi06icVmB7h7EqH0tswvd7rZk+el+iJfOkH4zWmAZ/lqv+A3se1rZw4KA= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: f0609974-4807-4f75-5907-08d4f6a07c60 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM2PR07MB0803; x-ms-traffictypediagnostic: AM2PR07MB0803: authentication-results: spf=none (sender IP is ) smtp.mailfrom=zoltan.balogh@ericsson.com; x-exchange-antispam-report-test: UriScan:(37575265505322)(21748063052155)(228905959029699); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM2PR07MB0803; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM2PR07MB0803; x-forefront-prvs: 04244E0DC5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(199003)(189002)(54896002)(53946003)(9686003)(99286003)(55016002)(53936002)(2900100001)(50986999)(110136004)(2906002)(25786009)(3280700002)(54356999)(478600001)(14454004)(6306002)(3660700001)(66066001)(33656002)(5250100002)(101416001)(189998001)(6916009)(97736004)(6506006)(7696004)(5660300001)(68736007)(74316002)(6436002)(106356001)(86362001)(7736002)(105586002)(6116002)(102836003)(8936002)(8676002)(3846002)(81166006)(81156014)(790700001)(491001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR07MB0803; H:AM2PR07MB1042.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2017 10:00:50.6721 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR07MB0803 X-OriginatorOrg: ericsson.com X-Brightmail-Tracker: H4sIAAAAAAAAA02SbUhTYRTHe3bvtutodJsuT76QrBIynC8oBIo5KrDAKEjQzHTmRc1t2r0q 6odYiL2ooyzDnJKZNdMUaVqKLmHLMBPRhqaZzlBLRoqkhB8sbduzwG+/8z//8/A/h4ciJI18 Hypbk8+wGqVKJhCRtYnd0cEJV41JoeauA8feD5uIWBT348s2OocuiqIzGFV2IcOGxKSJsh43 /SLyOgxE0fbzeqEW3d7klSMPCugIGDOsCJ0soQcQzFq4ciRy8CCCSVslz1mQtI4A+5pNiDsP eLCl23AXNgQ6bR9yzgvoEzDZZxc42YsOA+v9Ib6TPek4WDJUuvV4mHj3wc1yML2cIp1M0ofg d2ep6x0xfQmWJ7668iF6H2x8bHMxQXvD9GKDOzcNz0yjBGYp2Be2+JgDwPhkVYjZH6wNFcgZ FOibQtAO1JC4IYfXVSsIczy02XsIbJrnweq60T0dBN/vvuDjFClQU1bhSE059GRo+hyFLTlQ PWIj8ewwH3ot3ST2+IF9Kg3rVXxYr2sW4Asz0NxehvBVfGB2/A66h47odyyHORde3TIhvesY e2GodpHEuhymHlYLMB8FQ+NPAnMwPNqykDv1J0jYiqQcw6WrM8PD5QybfYXjcjVyDZNvRI6P Y+7aDO1B9iWFBdEUku0WR6UbkyR8ZSFXrLYgoAiZl/jTWYckzlAWlzBsbipboGI4C/KlSJm3 WNE/liihM5X5TA7D5DHs/y6P8vDRogLF9FxsT8Kpyl1PvXPqwwfPU57Xe7+J5/UbHfuLj0ck lixYyeZytTmQqzvsebqwdGSPtX3NNv038uRbvwr15RideNmXm1HFXvvTyiZ0cRNzLcmpkf0Z y1p9ZtF4VMDoWPCbgyUgXbqgCFDyWmoCPWa8uv38O8+kmGXrZdKQGzKSy1KGBREsp/wHm2Ed zDQDAAA= X-Spam-Status: No, score=-2.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HTML_MESSAGE,RCVD_IN_DNSWL_MED autolearn=disabled version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Content-Filtered-By: Mailman/MimeDel 2.1.12 Subject: [ovs-dev] [PATCH v3] netdev-dpdk: reset packet_type for reused dp_packets X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org DPDK uses dp-packet pool for storing received packets. The pool is reused by rxq_recv funcions of the DPDK netdevs. The datapath is capable to modify the packet_type property of packets. For instance when encapsulated L3 packets are received on a ptap gre port. In this case the packet_type property of struct dp_packet can be modified and later the same dp_packet with the modified packet_type can be reused in the rxq_rec function, so it can contain corrupted data. The dp_packet_batch_init_cutlen() in the rxq_recv functions iterates over dp_packets and sets their cutlen. So I modified this function to set packet_type to Ethernet for the dp_packets as well. I also renamed this function because of the added functionality. The dp_packet_batch_init_cutlen() iterates over batch->count dp_packet. Therefore setting of batch->count = nb_rx needs to be done before the former function is invoked. This is an additional fix. Signed-off-by: Zoltan Balogh Signed-off-by: Laszlo Suru Co-authored-by: Laszlo Suru CC: Jan Scheurich CC: Sugesh Chandran CC: Darrell Ball --- lib/dp-packet.h | 3 ++- lib/netdev-dpdk.c | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) } - dp_packet_batch_init_cutlen(batch); batch->count = nb_rx; + dp_packet_batch_init_packet_fields(batch); return 0; } -- 1.9.1 diff --git a/lib/dp-packet.h b/lib/dp-packet.h index 046f3ab..b4b721c 100644 --- a/lib/dp-packet.h +++ b/lib/dp-packet.h @@ -805,12 +805,13 @@ dp_packet_delete_batch(struct dp_packet_batch *batch, bool may_steal) } static inline void -dp_packet_batch_init_cutlen(struct dp_packet_batch *batch) +dp_packet_batch_init_packet_fields(struct dp_packet_batch *batch) { struct dp_packet *packet; DP_PACKET_BATCH_FOR_EACH (packet, batch) { dp_packet_reset_cutlen(packet); + packet->packet_type = htonl(PT_ETH); } } diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index f58e9be..ccccb9a 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -1644,8 +1644,9 @@ netdev_dpdk_vhost_rxq_recv(struct netdev_rxq *rxq, nb_rx, dropped); rte_spinlock_unlock(&dev->stats_lock); - dp_packet_batch_init_cutlen(batch); - batch->count = (int) nb_rx; + batch->count = nb_rx; + dp_packet_batch_init_packet_fields(batch); + return 0; } @@ -1684,8 +1685,8 @@ netdev_dpdk_rxq_recv(struct netdev_rxq *rxq, struct dp_packet_batch *batch) rte_spinlock_unlock(&dev->stats_lock);