From patchwork Fri Sep 8 14:12:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zoltan Balogh X-Patchwork-Id: 811617 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="SGMDOGKZ"; 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 3xpfRS4kxmz9s7G for ; Sat, 9 Sep 2017 00:12:51 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 3CDC9ABC; Fri, 8 Sep 2017 14:12:49 +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 16DDDB1F for ; Fri, 8 Sep 2017 14:12:48 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 18506421 for ; Fri, 8 Sep 2017 14:12:46 +0000 (UTC) X-AuditID: c1b4fb3a-617ff700000051a3-1c-59b2a55d6694 Received: from ESESSHC024.ericsson.se (Unknown_Domain [153.88.183.90]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 28.14.20899.D55A2B95; Fri, 8 Sep 2017 16:12:45 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.90) with Microsoft SMTP Server (TLS) id 14.3.352.0; Fri, 8 Sep 2017 16:12:44 +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=FJR2kkanIUOXCHVfPt6Ed7mQS57yB5Z+TdpyCm9DeVY=; b=SGMDOGKZcIpMDLWdbTr0zC1Tc96evBayr+p/3lQVg15PXUXkWptHuO2e6Qx7F7/J/QgVbSaX3CSWVK8xOqoD6LU/9wZJrNbDqZByC0k7YVLJ59Xk06NPS0oJfVIqM0q1xw46f+mB8HjOaOQfZgmCPzrVz6MlYk/VzIDn3sdr0fU= Received: from AM2PR07MB1042.eurprd07.prod.outlook.com (10.162.37.27) by AM2PR07MB0706.eurprd07.prod.outlook.com (10.160.56.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.3; Fri, 8 Sep 2017 14:12:43 +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 14:12:43 +0000 From: =?iso-8859-1?q?Zolt=E1n_Balogh?= To: "'dev@openvswitch.org'" Thread-Topic: [PATCH v4] netdev-dpdk: reset packet_type for reused dp_packets Thread-Index: AdMorHfjX1eCXpD3TWqgiRuZDB4+Vg== Date: Fri, 8 Sep 2017 14:12:43 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=zoltan.balogh@ericsson.com; x-originating-ip: [91.82.100.59] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM2PR07MB0706; 6:wKKNilHSOHSPsGlMiHhDAs6FrGZASW0LaiAKpEXI1OobsjkK0ASSRa1KrJD0uQtlC3d4RqlUUuaYrR7JVvX2CJMpiNA4A7cBaNdcYnw+nGNKiXHymhv3d4QgzSfgrO9nfFBXEARf+G44VOJCTn1Jk5H5LaJMsFoINoHHlkDZdLxwwLfkUDutoJvjZDOd+f10KMnzOx2nuN2tWVrDvNGpslF1EmLH8J8jTHrFMPqEPoctjuAOnTwl2mqRfo6or8W8Z0HFMssVmo3JORFMb+5CKKq15zabkmNVv7c+/7CnOmNncOwSk1j5hhiZM7BshK0p9JkAxu1rZ8AEQ/OKMTqZqQ==; 5:ZX5bPVQXAAAQFQxhjdGoEvIc67GBfsNZx7IdM4fA2rom48+e1hhXkvn0cdetf/s3/aTmlbvGdZyRGxSX4zL1XqDeXT/PH3QBaBmGvqAtOJqVZejjKNdyIjsIHEez0cuGX4T6qQKb9qjh+JCNfD26tybDoAhkRLEYcRw0WC9pAuA=; 24:60Nceuf9v99omjf7SSSNnt8nvBvoObsYderRHD8gwTeyDzZwsM4yMV2vMI7EDfdOP1d3XxMD9c7zZCIwQYiJ0IzoWiXucqQ/LGoqcO4m00I=; 7:hGXSZ7jt8TlvdvWw7l50Xo6fYORrfkmJN7EvSEcRM4YG5kyZl5rLkA5IVVWF5qSz+CvLDveGGGnyd1wM/4lFCO8Bngar58LSDiqn+wsg4XUQMeTmBGOI1gxJgqFrS1KAIokJHVpKhJcXrpWAMnTdQYgemV4e0/jmOSVMWTRz3JuaAXuswdT/stGnSuA43EIoO/29ZEKGNu9Znl6dB6Z7TRZ1d0x3Le2q11rOCc6X5Lo= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 1229ef6d-3786-4759-a75f-08d4f6c3ac39 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:AM2PR07MB0706; x-ms-traffictypediagnostic: AM2PR07MB0706: x-exchange-antispam-report-test: UriScan:(37575265505322)(228905959029699); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM2PR07MB0706; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM2PR07MB0706; x-forefront-prvs: 04244E0DC5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(199003)(189002)(3280700002)(3660700001)(478600001)(2906002)(25786009)(106356001)(105586002)(305945005)(101416001)(8676002)(74316002)(81166006)(7736002)(81156014)(14454004)(9686003)(55016002)(8936002)(189998001)(97736004)(6916009)(5660300001)(50986999)(110136004)(7696004)(99286003)(54356999)(68736007)(2900100001)(33656002)(3846002)(66066001)(86362001)(6506006)(102836003)(6436002)(5250100002)(53936002)(6116002)(491001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR07MB0706; 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 14:12:43.3191 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR07MB0706 X-OriginatorOrg: ericsson.com X-Brightmail-Tracker: H4sIAAAAAAAAA02SbUhTURzGO7t323W5uE7N/2ZFLQNduFICs2Jor5II+5ZKliMvOpzTdjdL g5JwgUpWTjFn4UulpBY1S4OZ4tBi+kGbbzPJxObLDPNLUyqoth2Dvv3+/+d5Duc8HIoQ/SAl lFqrZ3RalUbKE5B1qd3p0RlPLGkHR1zBhweHe4gElLQ4/QcpUbrgWBajURcyugOKTEHO05kX vAJn6FVH47kS5AgqRxQF9CFYKVOUIwElogcQdNmtJB7eIzDP3fIPJH2bgP5337xDgFcxcWB9 NBm7ZhG0fJjk+gQefQKmrG6ej0PoGHBU2f37YDoJjPMTBN6nwPRGBx+zHOZqe/weko6Amc4K f1ZIn4fPC2PIx4jeDhtDHRwfE3QYfHQ1+BloGh73jBCYQ8H95TcX+zOg1ojPAXo3WBrX+Jh3 gqOhAvkuDbSZD33jzSQW5PD63irCnALLSyscbJrnQJdxZDMtA4+1fvPUZKipfLgZyAXXwhqJ A8NceHSzho9b3QFuZyb2eEh426zE1THQ+syIcCsS+DRehu4imfm/x2GWg7Ommod5P7Q0fSXM /mKCwF7nIhsR2YZCWYZl87JjY+WMTn2JZfO1ci2jtyDvh+h/9evIG9S/lGhDNIWkgcLKekua iKsqZIvybAgoQhoijDN7V8IsVVExo8u/qDNoGNaGwilSGiZM6B1NFdHZKj2TyzAFjO6fyqEC JCWotPj5gGQ1USm7I16+TG1djxCuRtkXN66dPH1hKjC9TbtHYrj+0lSp3zco8FTHhw8pv5vU e03dlib5z5x2xZkqffyp6MjJ6Th1u+24oe/GFevyFsu2iUGDMehBlHhWfD+ydHKsdWiX+4+z YU2hyRUUQC8V1jlffvYoYXN7xGlSks1RxcgIHav6CwtoRHAMAwAA X-Spam-Status: No, score=-2.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, 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 Subject: [ovs-dev] [PATCH v4] 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(-) 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); } - dp_packet_batch_init_cutlen(batch); batch->count = nb_rx; + dp_packet_batch_init_packet_fields(batch); return 0; }