From patchwork Tue Nov 13 12:12:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997051 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="cSx+Gc0D"; 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 42vRNd11Blz9s5c for ; Tue, 13 Nov 2018 23:13:21 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 5942788A; Tue, 13 Nov 2018 12:12:44 +0000 (UTC) X-Original-To: ovs-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 233C27F9 for ; Tue, 13 Nov 2018 12:12:43 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id A589C19B for ; Tue, 13 Nov 2018 12:12:42 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121240euoutp02706b5b886740824456bea4748ef31a5d~mre4wwlQ50377303773euoutp027 for ; Tue, 13 Nov 2018 12:12:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181113121240euoutp02706b5b886740824456bea4748ef31a5d~mre4wwlQ50377303773euoutp027 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111160; bh=y6Y4f4Pwfufpa2+0o9L9ioD9EtfynaUfFWSv8p6TFuo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cSx+Gc0DoZWmsBlYCg69TN90wpxmyZtIYKJNyKciRIavXFZpYf1o7lzKVbbIquj0A KFJTfNGy2HwzJkYIM9v0Jg+a7GjDjr2Qpmcz2L0/TDw361zsA876WEF8/pvrKn0xlv x5XT6hnyDotJBktMBtzgFrF0TBTp4Y6xVmpfQ7+k= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181113121240eucas1p286840555b26675aa3ae6b1b5314de107~mre36W4Y52451224512eucas1p2P; Tue, 13 Nov 2018 12:12:40 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id A8.64.04294.7BFBAEB5; Tue, 13 Nov 2018 12:12:39 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20181113121239eucas1p2dc37e1a1d19aa66fe4b9ce52212af47f~mre3HiBAo2093420934eucas1p2V; Tue, 13 Nov 2018 12:12:39 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20181113121238eusmtrp1f734bac04d2114ff29ab733a0dc9ca35~mre249SAx3076030760eusmtrp1_; Tue, 13 Nov 2018 12:12:38 +0000 (GMT) X-AuditID: cbfec7f4-835ff700000010c6-a4-5beabfb71a55 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id E1.DC.04128.6BFBAEB5; Tue, 13 Nov 2018 12:12:38 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121238eusmtip160609a50dc9f6c05d651204054825e34~mre2K3gua1152111521eusmtip1W; Tue, 13 Nov 2018 12:12:38 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:20 +0300 Message-Id: <20181113121228.17650-2-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJKsWRmVeSWpSXmKPExsWy7djP87rb97+KNpi6RN9iy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBHFZZOSmpNZllqkb5fAldH08zhL wVv2iiOfF7E0MM5g62Lk5JAQMJFoXfyBvYuRi0NIYAWjxO3t8xhBEkICXxglts1nhEh8ZpS4 NfcOC0zH7hldzBCJ5YwSEz/MYYFwfjBKdN95zApSxSagI3Fq9RGwUSIClhJd17vARjELbGOS uP/mPjNIQljAR+L55d9MIDaLgKrE/JXbwBp4BawlFtydBXWgvMTqDQfA6jkFbCQa74MczgUU n84ucWflRKibXCR6bs5ihrCFJV4d38IOYctInJ7cA1VTL3G/5SUjRHMHo8T0Q/+YIBL2Elte nwNq4AA6T1Ni/S59iLCjxMuzC5hBwhICfBI33gqChJmBzEnbpkOFeSU62oQgqlUkfh9cDnWB lMTNd5+hLvCQuPB+FRMkSPsZJf5dtJ3AKD8LYdcCRsZVjOKppcW56anFRnmp5XrFibnFpXnp esn5uZsYgQnm9L/jX3Yw7vqTdIhRgINRiYf3xPSX0UKsiWXFlbmHGCU4mJVEeHeavIoW4k1J rKxKLcqPLyrNSS0+xCjNwaIkzlvN8CBaSCA9sSQ1OzW1ILUIJsvEwSnVwLg65JB00Iv3BrMa Hx9auWFNwDqRU2b7rqfozRQMdxU9/9Eo7QGDo9ndtcXvtxZU9mq6tHaXlHdt3Nf/JSSxIetT fhS35RStT8zqOkF9zMVW8exLX8W36e2Qm71rbtiKxZbLJL6ZnrgQpnJyyuqDqV87WR1EXvx9 p3iFXSX36JZFdwp9T84PCldiKc5INNRiLipOBAAByZvDLAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRmVeSWpSXmKPExsVy+t/xu7rb9r+KNpjy2cRiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBGlZ1OUX1qSqpCRX1xiqxRtaGGk Z2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl9H08zhLwVv2iiOfF7E0MM5g62Lk5JAQ MJHYPaOLGcQWEljKKDHlQwlEXErix68LrBC2sMSfa11A9VxANd8YJb58vM4EkmAT0JE4tfoI I4gtImAtse77RhaQImaBPUwSR3a9B+sWFvCReH75N1gDi4CqxPyV28AaeIEaFtydBXWFvMTq DQfAruAUsJFovA9xnRBQzf59vWwTGPkWMDKsYhRJLS3OTc8tNtIrTswtLs1L10vOz93ECAz4 bcd+btnB2PUu+BCjAAejEg/viekvo4VYE8uKK3MPMUpwMCuJ8O40eRUtxJuSWFmVWpQfX1Sa k1p8iNEU6KiJzFKiyfnAaMwriTc0NTS3sDQ0NzY3NrNQEuc9b1AZJSSQnliSmp2aWpBaBNPH xMEp1cCYfE+1/eKm2uoFasbMLKH33lcu/fQ77V7VNH6WzJApHTPsZol9qY/xvvh7m+PVVsH8 V1YPZ3/7YDM5+OlGr5/dMk6eD7nuy2+/dUDenOHmj0Vm7IvSM2t2aM92/BEiMLsu46J81JPP 1XY95y9/YtCcWM932NpvVbH+FPMsPX3evYyLF95tks9QYinOSDTUYi4qTgQA8ZgGhY4CAAA= X-CMS-MailID: 20181113121239eucas1p2dc37e1a1d19aa66fe4b9ce52212af47f X-Msg-Generator: CA X-RootMTR: 20181113121239eucas1p2dc37e1a1d19aa66fe4b9ce52212af47f X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121239eucas1p2dc37e1a1d19aa66fe4b9ce52212af47f References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 1/9] dpif-netdev: Reduce log level for not found mark id. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org It's a normal case for 'find' function, especially because this happens for every first packet of flow that was not offloaded yet. Should not warn about this. Dropped to DBG to avoid log trashing in case of big number of new flows. CC: Yuanhan Liu Fixes: 241bad15d99a ("dpif-netdev: associate flow with a mark id") Signed-off-by: Ilya Maximets --- lib/dpif-netdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 1564db9c6..8136b0389 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -2157,8 +2157,8 @@ megaflow_to_mark_find(const ovs_u128 *mega_ufid) } } - VLOG_WARN("Mark id for ufid "UUID_FMT" was not found\n", - UUID_ARGS((struct uuid *)mega_ufid)); + VLOG_DBG("Mark id for ufid "UUID_FMT" was not found\n", + UUID_ARGS((struct uuid *)mega_ufid)); return INVALID_FLOW_MARK; } From patchwork Tue Nov 13 12:12:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997052 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="QKNeDvmi"; 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 42vRPM67Xjz9s5c for ; Tue, 13 Nov 2018 23:13:59 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id F028F8CC; Tue, 13 Nov 2018 12:12:46 +0000 (UTC) X-Original-To: ovs-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 F1E0B890 for ; Tue, 13 Nov 2018 12:12:45 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 4E513224 for ; Tue, 13 Nov 2018 12:12:45 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121243euoutp02b718dd451e690b02d85d5cb7e46b91bf~mre7iyd_U0384403844euoutp02q for ; Tue, 13 Nov 2018 12:12:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181113121243euoutp02b718dd451e690b02d85d5cb7e46b91bf~mre7iyd_U0384403844euoutp02q DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111163; bh=KUc+5OOt1D/IPYViFHOhYsgA46KTIOV2cYJXMt21jSk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QKNeDvmizq2IxSeImLlajE0H9K1WJc1uRFKWWfzHdw+M/hgA2lJVDxaVDk0r1Md9g wqjrOwUZREKlssCsXFxHr2ke0cjhhzDnXIAPXk35TtvafCGyAq9R8PCYCzPHckkp72 RxuOaVkuDhsN3cNfL+is+NqfgG6jEaeapYwWnC1A= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181113121243eucas1p1f98a2a3455d589e1519e5ea93f24c3a7~mre6yuXBj2393323933eucas1p1V; Tue, 13 Nov 2018 12:12:43 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 16.D4.04806.ABFBAEB5; Tue, 13 Nov 2018 12:12:42 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20181113121242eucas1p120912e6aa32ed3ea576902ae5d85cd07~mre6Aafdt0103201032eucas1p1p; Tue, 13 Nov 2018 12:12:42 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20181113121242eusmtrp1c41fe953f5ca288ead04d29de207ae52~mre5x3hHB3076030760eusmtrp1F; Tue, 13 Nov 2018 12:12:42 +0000 (GMT) X-AuditID: cbfec7f5-367ff700000012c6-92-5beabfba8ed6 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 54.DC.04128.9BFBAEB5; Tue, 13 Nov 2018 12:12:41 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121241eusmtip10d4fa5c1eded4d8afd9f72538e2433d4~mre5HRRrW1152711527eusmtip1W; Tue, 13 Nov 2018 12:12:41 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:21 +0300 Message-Id: <20181113121228.17650-3-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBKsWRmVeSWpSXmKPExsWy7djP87q79r+KNpj/19hiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBHFZZOSmpNZllqkb5fAlbHo5l7G ggPyFfdvdLM2MJ6R7GLk5JAQMJGYP+k5UxcjF4eQwApGiX+tP5ghnC+MEvMPNLJDOJ8ZJRYe mAfkcIC1XFsfBdItJLCcUeL6kTSImh+MEne2tLGDJNgEdCROrT7CCGKLCFhKdF3vYgQpYhbY xiRx/819ZpBBwgL2Ensu14DUsAioSiy4+Qesl1fAWmL26k/sEOfJS6zecIAZxOYUsJFovD+D DWSOhMAydokHfz6yQBS5SKxae5URwhaWeHV8C1SzjMTpyT1QNfUS91teMkI0dzBKTD/0jwki YS+x5fU5sM+YBTQl1u/Shwg7Ssz/fR/qYT6JG28FQcLMQOakbdOZIcK8Eh1tQhDVKhK/Dy5n hrClJG6++wx1gYfE7Z3/oGHYzyhxYck/1gmM8rMQli1gZFzFKJ5aWpybnlpsnJdarlecmFtc mpeul5yfu4kRmF5O/zv+dQfjvj9JhxgFOBiVeHhPTH8ZLcSaWFZcmXuIUYKDWUmEd6fJq2gh 3pTEyqrUovz4otKc1OJDjNIcLErivNUMD6KFBNITS1KzU1MLUotgskwcnFINjPkTxXS/Os2O eWRQL65Y6nPiltH+8g0bf62tval7L1+h82ab2kfeOKllRY/3VvPWi5St0C/J6/rteXKJy8Hp dx5cMJQOOrrgxMq9T5y2qs+UyxNTivnzQSnRzeJYi8tLaRV/66smAndOec/6NGOua4uU4p+v dyTrFKd9Ox+wVVM9xFu+O/Z+iBJLcUaioRZzUXEiANyhoakrAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRmVeSWpSXmKPExsVy+t/xu7o797+KNjh70Npiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBGlZ1OUX1qSqpCRX1xiqxRtaGGk Z2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl7Ho5l7GggPyFfdvdLM2MJ6R7GLk4JAQ MJG4tj6qi5GTQ0hgKaPEv/deILaEgJTEj18XWCFsYYk/17rYuhi5gGq+MUo8mrsPLMEmoCNx avURRhBbRMBaYt33jSwgRcwCe5gkjux6zwqyQFjAXmLP5RqQGhYBVYkFN/+wg9i8QPWzV39i h1ggL7F6wwFmEJtTwEai8f4MNoiDrCX27+tlm8DIt4CRYRWjSGppcW56brGRXnFibnFpXrpe cn7uJkZgsG879nPLDsaud8GHGAU4GJV4eE9MfxktxJpYVlyZe4hRgoNZSYR3p8mraCHelMTK qtSi/Pii0pzU4kOMpkBHTWSWEk3OB0ZiXkm8oamhuYWlobmxubGZhZI473mDyighgfTEktTs 1NSC1CKYPiYOTqkGRrU6p+/RhxZ/VFddWSb4e12s1LnFxh77Fk6VnSb8Z/PWfpGpJzi9FKsd Nrx5+5v1/qvL32zrp8keD8xiunYkikWGvYFP7+aRnc/m6R/8+2Cx9Obfd/huNuwvWphm9rw/ hK9oiZP1q4pTDjrmhy51/zZMe3nd1eLyVE7JeQs04+VecVXcmLCxq1+JpTgj0VCLuag4EQDW BTlRjAIAAA== X-CMS-MailID: 20181113121242eucas1p120912e6aa32ed3ea576902ae5d85cd07 X-Msg-Generator: CA X-RootMTR: 20181113121242eucas1p120912e6aa32ed3ea576902ae5d85cd07 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121242eucas1p120912e6aa32ed3ea576902ae5d85cd07 References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 2/9] dp-packet: Constantify offloading APIs. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Getters should have const arguments. Signed-off-by: Ilya Maximets --- lib/dp-packet.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/dp-packet.h b/lib/dp-packet.h index 7b85dd902..bfc2d308f 100644 --- a/lib/dp-packet.h +++ b/lib/dp-packet.h @@ -469,7 +469,7 @@ dp_packet_set_allocated(struct dp_packet *b, uint16_t s) /* Returns the RSS hash of the packet 'p'. Note that the returned value is * correct only if 'dp_packet_rss_valid(p)' returns true */ static inline uint32_t -dp_packet_get_rss_hash(struct dp_packet *p) +dp_packet_get_rss_hash(const struct dp_packet *p) { return p->mbuf.hash.rss; } @@ -482,7 +482,7 @@ dp_packet_set_rss_hash(struct dp_packet *p, uint32_t hash) } static inline bool -dp_packet_rss_valid(struct dp_packet *p) +dp_packet_rss_valid(const struct dp_packet *p) { return p->mbuf.ol_flags & PKT_RX_RSS_HASH; } @@ -509,28 +509,28 @@ dp_packet_mbuf_init(struct dp_packet *p) } static inline bool -dp_packet_ip_checksum_valid(struct dp_packet *p) +dp_packet_ip_checksum_valid(const struct dp_packet *p) { return (p->mbuf.ol_flags & PKT_RX_IP_CKSUM_MASK) == PKT_RX_IP_CKSUM_GOOD; } static inline bool -dp_packet_ip_checksum_bad(struct dp_packet *p) +dp_packet_ip_checksum_bad(const struct dp_packet *p) { return (p->mbuf.ol_flags & PKT_RX_IP_CKSUM_MASK) == PKT_RX_IP_CKSUM_BAD; } static inline bool -dp_packet_l4_checksum_valid(struct dp_packet *p) +dp_packet_l4_checksum_valid(const struct dp_packet *p) { return (p->mbuf.ol_flags & PKT_RX_L4_CKSUM_MASK) == PKT_RX_L4_CKSUM_GOOD; } static inline bool -dp_packet_l4_checksum_bad(struct dp_packet *p) +dp_packet_l4_checksum_bad(const struct dp_packet *p) { return (p->mbuf.ol_flags & PKT_RX_L4_CKSUM_MASK) == PKT_RX_L4_CKSUM_BAD; @@ -544,7 +544,7 @@ reset_dp_packet_checksum_ol_flags(struct dp_packet *p) } static inline bool -dp_packet_has_flow_mark(struct dp_packet *p, uint32_t *mark) +dp_packet_has_flow_mark(const struct dp_packet *p, uint32_t *mark) { if (p->mbuf.ol_flags & PKT_RX_FDIR_ID) { *mark = p->mbuf.hash.fdir.hi; @@ -606,7 +606,7 @@ dp_packet_set_allocated(struct dp_packet *b, uint16_t s) /* Returns the RSS hash of the packet 'p'. Note that the returned value is * correct only if 'dp_packet_rss_valid(p)' returns true */ static inline uint32_t -dp_packet_get_rss_hash(struct dp_packet *p) +dp_packet_get_rss_hash(const struct dp_packet *p) { return p->rss_hash; } @@ -619,7 +619,7 @@ dp_packet_set_rss_hash(struct dp_packet *p, uint32_t hash) } static inline bool -dp_packet_rss_valid(struct dp_packet *p) +dp_packet_rss_valid(const struct dp_packet *p) { return p->rss_hash_valid; } @@ -641,25 +641,25 @@ dp_packet_mbuf_init(struct dp_packet *p OVS_UNUSED) } static inline bool -dp_packet_ip_checksum_valid(struct dp_packet *p OVS_UNUSED) +dp_packet_ip_checksum_valid(const struct dp_packet *p OVS_UNUSED) { return false; } static inline bool -dp_packet_ip_checksum_bad(struct dp_packet *p OVS_UNUSED) +dp_packet_ip_checksum_bad(const struct dp_packet *p OVS_UNUSED) { return false; } static inline bool -dp_packet_l4_checksum_valid(struct dp_packet *p OVS_UNUSED) +dp_packet_l4_checksum_valid(const struct dp_packet *p OVS_UNUSED) { return false; } static inline bool -dp_packet_l4_checksum_bad(struct dp_packet *p OVS_UNUSED) +dp_packet_l4_checksum_bad(const struct dp_packet *p OVS_UNUSED) { return false; } @@ -670,7 +670,7 @@ reset_dp_packet_checksum_ol_flags(struct dp_packet *p OVS_UNUSED) } static inline bool -dp_packet_has_flow_mark(struct dp_packet *p OVS_UNUSED, +dp_packet_has_flow_mark(const struct dp_packet *p OVS_UNUSED, uint32_t *mark OVS_UNUSED) { return false; From patchwork Tue Nov 13 12:12:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997053 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="KWq2wG6F"; 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 42vRQ55mdNz9s5c for ; Tue, 13 Nov 2018 23:14:37 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 91C51904; Tue, 13 Nov 2018 12:12:50 +0000 (UTC) X-Original-To: ovs-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 1B5AD89C for ; Tue, 13 Nov 2018 12:12:49 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 589BB19B for ; Tue, 13 Nov 2018 12:12:48 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121246euoutp014517c65c88108212f0c97c9ac8794e47~mre_Yi8Pa2907229072euoutp01f for ; Tue, 13 Nov 2018 12:12:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20181113121246euoutp014517c65c88108212f0c97c9ac8794e47~mre_Yi8Pa2907229072euoutp01f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111167; bh=2YM/P6WCKmXbOfSSdcgFi9H49MZZe4JKVVfwNJRmeTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KWq2wG6F++8MAttO+afcVAsKz4o6cQo1qC+HesI5yMFhFz+w4QPv7nabM7io6vmRI l6Y2pwC6vtR7ioideD9Z7wCTsYg347pNXfJ52Z5BfBAPFyKvYI2yPIaSGXqo9IdhL6 VU9L2toBz78IyQii6kQ/MTlOVj1kyBcxs1KRtr4U= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181113121246eucas1p14e45be1f34f5a4901bc9839b7edc31cf~mre9ogc4d0870608706eucas1p1M; Tue, 13 Nov 2018 12:12:46 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 5F.E7.04441.DBFBAEB5; Tue, 13 Nov 2018 12:12:45 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20181113121245eucas1p2350b9dec340003c463554d4ff4d33b43~mre8qMgJ12460324603eucas1p2V; Tue, 13 Nov 2018 12:12:45 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20181113121244eusmtrp2b5f4da7d52a8c2d5a5f0523e3ba057c4~mre8bK5eK2687426874eusmtrp2r; Tue, 13 Nov 2018 12:12:44 +0000 (GMT) X-AuditID: cbfec7f2-5e3ff70000001159-5b-5beabfbdd3fc Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 49.18.04284.CBFBAEB5; Tue, 13 Nov 2018 12:12:44 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121244eusmtip169a979b4da77ab904432c97d2f8eca7e~mre7unTeK1152111521eusmtip1Z; Tue, 13 Nov 2018 12:12:44 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:22 +0300 Message-Id: <20181113121228.17650-4-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFKsWRmVeSWpSXmKPExsWy7djP87p797+KNji5Wcdiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBHFZZOSmpNZllqkb5fAlbHk+Sq2 gl+WFRs3XGFuYDyp28XIySEhYCIx4focxi5GLg4hgRWMEle/L2QCSQgJfGGU6LwRBpH4zCjx cfoCRpiO1Y9fQHUsZ5R4vn8PlPODUWJN61w2kCo2AR2JU6uPgHWICFhKdF3vAitiFtjGJHH/ zX1mkISwgLXE7v0T2UFsFgFViU0P/oLZvEDx+ytPsEOsk5dYveEAWD2ngI1E4/0ZbCCDJATm sUt0nF0EVeQi8eT9N1YIW1ji1fEtUHEZif875zNB2PUS91teMkI0dzBKTD/0DyphL7Hl9Tmg Bg6g8zQl1u/Shwg7Sqw9t58JJCwhwCdx460gSJgZyJy0bTozRJhXoqNNCKJaReL3weXMELaU xM13n6Eu8JCY2buZDRJA/YwS5w6vYJnAKD8LYdkCRsZVjOKppcW56anFhnmp5XrFibnFpXnp esn5uZsYgSnm9L/jn3Ywfr2UdIhRgINRiYf3xPSX0UKsiWXFlbmHGCU4mJVEeHeavIoW4k1J rKxKLcqPLyrNSS0+xCjNwaIkzlvN8CBaSCA9sSQ1OzW1ILUIJsvEwSnVwJjoYGRSsnreQr+v k6P27ZPld7zL1Xrt4+dlc8OMX3zf1ZqxjjvSUkPifbKuT4uN675ph3JXpS//zi38rtXc++oB 3uSev86Pk6We6lzjubkgJLHPKrtqIbP9NJXekkCh9Tt0913O0KqYGybgt/Vd1ds5lYbvpKfm 6iWzq0mwzrq67af4vB19R5VYijMSDbWYi4oTAZkBcf4tAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRmVeSWpSXmKPExsVy+t/xu7p79r+KNjg508Biy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBGlZ1OUX1qSqpCRX1xiqxRtaGGk Z2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl7Hk+Sq2gl+WFRs3XGFuYDyp28XIySEh YCKx+vELxi5GLg4hgaWMEifefWKCSEhJ/Ph1gRXCFpb4c62LDcQWEvjGKLHguRqIzSagI3Fq 9RFGEFtEwFpi3feNLCCDmAX2MEkc2fUerFkYKLF7/0R2EJtFQFVi04O/YDYvUPz+yhPsEAvk JVZvOMAMYnMK2Eg03p8BtcxaYv++XrYJjHwLGBlWMYqklhbnpucWG+oVJ+YWl+al6yXn525i BAb8tmM/N+9gvLQx+BCjAAejEg/viekvo4VYE8uKK3MPMUpwMCuJ8O40eRUtxJuSWFmVWpQf X1Sak1p8iNEU6KiJzFKiyfnAaMwriTc0NTS3sDQ0NzY3NrNQEuc9b1AZJSSQnliSmp2aWpBa BNPHxMEp1cCY3Hqdxfm//UavOT/WNUoer+OtzXPqPGmqWnZkQ7DJKoeTTmlRU84E37s3Q21d tMFl478yuxRl9YvY3qYWCd6qitp9ZXPZwu6y6kePnrdGhe8997r1W62jGXOwubLEhN6jO9tk NRv23pKO5V0sYNV+X5X/3LK6PZ3q9VWV+7n1XrQuviEjuUWJpTgj0VCLuag4EQDowcUTjgIA AA== X-CMS-MailID: 20181113121245eucas1p2350b9dec340003c463554d4ff4d33b43 X-Msg-Generator: CA X-RootMTR: 20181113121245eucas1p2350b9dec340003c463554d4ff4d33b43 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121245eucas1p2350b9dec340003c463554d4ff4d33b43 References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 3/9] dp-packet: Refactor offloading API. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org 1. No reason to have mbuf related APIs in a generic code. 2. Not only RSS/checksums should be invalidated in case of tunnel decapsulation or sending to 'ring' ports. In order to fix two above issues, new function 'dp_packet_offload_invalidate' introduced. In order to clean up/unify the code and simplify addition of new offloading features to non-DPDK version of dp-packet, introduced 'ol_flags' bitmask. Additionally reduced code complexity in 'dp_packet_clone_with_headroom' by using already existent generic APIs. Unfortunately, we still need to have a special case for mbuf initialization inside 'dp_packet_init__()'. Signed-off-by: Ilya Maximets --- lib/dp-packet.c | 14 ++++------- lib/dp-packet.h | 62 ++++++++++++++--------------------------------- lib/netdev-dpdk.c | 6 ++--- lib/netdev.c | 4 +-- 4 files changed, 28 insertions(+), 58 deletions(-) diff --git a/lib/dp-packet.c b/lib/dp-packet.c index 93b0e9c84..b5942f815 100644 --- a/lib/dp-packet.c +++ b/lib/dp-packet.c @@ -30,8 +30,10 @@ dp_packet_init__(struct dp_packet *b, size_t allocated, enum dp_packet_source so b->source = source; dp_packet_reset_offsets(b); pkt_metadata_init(&b->md, 0); - dp_packet_rss_invalidate(b); +#ifdef DPDK_NETDEV dp_packet_mbuf_init(b); +#endif + dp_packet_offload_invalidate(b); dp_packet_reset_cutlen(b); /* By default assume the packet type to be Ethernet. */ b->packet_type = htonl(PT_ETH); @@ -173,16 +175,10 @@ dp_packet_clone_with_headroom(const struct dp_packet *buffer, size_t headroom) #ifdef DPDK_NETDEV new_buffer->mbuf.ol_flags = buffer->mbuf.ol_flags; -#else - new_buffer->rss_hash_valid = buffer->rss_hash_valid; #endif - if (dp_packet_rss_valid(new_buffer)) { -#ifdef DPDK_NETDEV - new_buffer->mbuf.hash.rss = buffer->mbuf.hash.rss; -#else - new_buffer->rss_hash = buffer->rss_hash; -#endif + if (dp_packet_rss_valid(buffer)) { + dp_packet_set_rss_hash(new_buffer, dp_packet_get_rss_hash(buffer)); } return new_buffer; diff --git a/lib/dp-packet.h b/lib/dp-packet.h index bfc2d308f..67914ec59 100644 --- a/lib/dp-packet.h +++ b/lib/dp-packet.h @@ -58,8 +58,9 @@ struct dp_packet { uint16_t allocated_; /* Number of bytes allocated. */ uint16_t data_ofs; /* First byte actually in use. */ uint32_t size_; /* Number of bytes in use. */ + uint32_t ol_flags; /* Offloading flags. */ +#define DP_PACKET_OL_RSS_HASH_MASK 0x1 /* Is the 'rss_hash' valid? */ uint32_t rss_hash; /* Packet hash. */ - bool rss_hash_valid; /* Is the 'rss_hash' valid? */ #endif enum dp_packet_source source; /* Source of memory allocated as 'base'. */ @@ -408,6 +409,16 @@ dp_packet_get_nd_payload(const struct dp_packet *b) #ifdef DPDK_NETDEV BUILD_ASSERT_DECL(offsetof(struct dp_packet, mbuf) == 0); +/* This initialization is needed for packets that do not come from DPDK + * interfaces, when vswitchd is built with --with-dpdk. */ +static inline void +dp_packet_mbuf_init(struct dp_packet *p) +{ + p->mbuf.tx_offload = p->mbuf.packet_type = 0; + p->mbuf.nb_segs = 1; + p->mbuf.next = NULL; +} + static inline void * dp_packet_base(const struct dp_packet *b) { @@ -488,24 +499,9 @@ dp_packet_rss_valid(const struct dp_packet *p) } static inline void -dp_packet_rss_invalidate(struct dp_packet *p OVS_UNUSED) -{ -} - -static inline void -dp_packet_mbuf_rss_flag_reset(struct dp_packet *p) -{ - p->mbuf.ol_flags &= ~PKT_RX_RSS_HASH; -} - -/* This initialization is needed for packets that do not come from DPDK - * interfaces, when vswitchd is built with --with-dpdk. */ -static inline void -dp_packet_mbuf_init(struct dp_packet *p) +dp_packet_offload_invalidate(struct dp_packet *p OVS_UNUSED) { - p->mbuf.ol_flags = p->mbuf.tx_offload = p->mbuf.packet_type = 0; - p->mbuf.nb_segs = 1; - p->mbuf.next = NULL; + p->mbuf.ol_flags = 0; } static inline bool @@ -536,13 +532,6 @@ dp_packet_l4_checksum_bad(const struct dp_packet *p) PKT_RX_L4_CKSUM_BAD; } -static inline void -reset_dp_packet_checksum_ol_flags(struct dp_packet *p) -{ - p->mbuf.ol_flags &= ~(PKT_RX_L4_CKSUM_GOOD | PKT_RX_L4_CKSUM_BAD | - PKT_RX_IP_CKSUM_GOOD | PKT_RX_IP_CKSUM_BAD); -} - static inline bool dp_packet_has_flow_mark(const struct dp_packet *p, uint32_t *mark) { @@ -615,29 +604,19 @@ static inline void dp_packet_set_rss_hash(struct dp_packet *p, uint32_t hash) { p->rss_hash = hash; - p->rss_hash_valid = true; + p->ol_flags |= DP_PACKET_OL_RSS_HASH_MASK; } static inline bool dp_packet_rss_valid(const struct dp_packet *p) { - return p->rss_hash_valid; + return p->ol_flags & DP_PACKET_OL_RSS_HASH_MASK; } static inline void -dp_packet_rss_invalidate(struct dp_packet *p) -{ - p->rss_hash_valid = false; -} - -static inline void -dp_packet_mbuf_rss_flag_reset(struct dp_packet *p OVS_UNUSED) -{ -} - -static inline void -dp_packet_mbuf_init(struct dp_packet *p OVS_UNUSED) +dp_packet_offload_invalidate(struct dp_packet *p) { + p->ol_flags = 0; } static inline bool @@ -664,11 +643,6 @@ dp_packet_l4_checksum_bad(const struct dp_packet *p OVS_UNUSED) return false; } -static inline void -reset_dp_packet_checksum_ol_flags(struct dp_packet *p OVS_UNUSED) -{ -} - static inline bool dp_packet_has_flow_mark(const struct dp_packet *p OVS_UNUSED, uint32_t *mark OVS_UNUSED) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index e8618a6d2..574fddd0f 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -3664,11 +3664,11 @@ netdev_dpdk_ring_send(struct netdev *netdev, int qid, struct dp_packet *packet; /* When using 'dpdkr' and sending to a DPDK ring, we want to ensure that - * the rss hash field is clear. This is because the same mbuf may be + * the offload fields are clear. This is because the same mbuf may be * modified by the consumer of the ring and return into the datapath - * without recalculating the RSS hash. */ + * without recalculating the RSS hash or revalidating the checksums. */ DP_PACKET_BATCH_FOR_EACH (i, packet, batch) { - dp_packet_mbuf_rss_flag_reset(packet); + dp_packet_offload_invalidate(packet); } netdev_dpdk_send__(dev, qid, batch, concurrent_txq); diff --git a/lib/netdev.c b/lib/netdev.c index 84874408a..0934f0072 100644 --- a/lib/netdev.c +++ b/lib/netdev.c @@ -814,10 +814,10 @@ netdev_pop_header(struct netdev *netdev, struct dp_packet_batch *batch) DP_PACKET_BATCH_REFILL_FOR_EACH (i, size, packet, batch) { packet = netdev->netdev_class->pop_header(packet); if (packet) { - /* Reset the checksum offload flags if present, to avoid wrong + /* Reset the offload flags if present, to avoid wrong * interpretation in the further packet processing when * recirculated.*/ - reset_dp_packet_checksum_ol_flags(packet); + dp_packet_offload_invalidate(packet); dp_packet_batch_refill(batch, packet, i); } } From patchwork Tue Nov 13 12:12:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997054 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="jgRNUL38"; 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 42vRQr4DwRz9s5c for ; Tue, 13 Nov 2018 23:15:16 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 6A3CAA7A; Tue, 13 Nov 2018 12:12:53 +0000 (UTC) X-Original-To: ovs-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 EBA5E89C for ; Tue, 13 Nov 2018 12:12:51 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id CE1B319B for ; Tue, 13 Nov 2018 12:12:50 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121249euoutp02ed199c7eddcb731c41971158d6de0589~mrfAyALPi0367503675euoutp02U for ; Tue, 13 Nov 2018 12:12:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181113121249euoutp02ed199c7eddcb731c41971158d6de0589~mrfAyALPi0367503675euoutp02U DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111169; bh=IN6+Mw0BDbPQbY+g2vetmAtETzckPwsoYzC7hOY2t0c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jgRNUL38hfiWag0s3jPpqsm9eNy24n7df9WoLp3ZY1zzhyrPFtJdzbLg9o6MoWsUT 4yjXyeMkWBONr4zdFVOWtR526YxuBClBU1KdIdqXBZeB15CYBCNfMkyHi6wSqDnKis INQPOuH/+m1OyYkF/3Oll3LgJY6C1bvyRYBux67I= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181113121248eucas1p226cc7cc4283d4b3665945733f15981a4~mre-8qqBS0157401574eucas1p2w; Tue, 13 Nov 2018 12:12:48 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id F1.F7.04441.0CFBAEB5; Tue, 13 Nov 2018 12:12:48 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20181113121247eucas1p110097140bc81e536aa77bb0b43c79c8b~mre-JOQ-u2393323933eucas1p1Z; Tue, 13 Nov 2018 12:12:47 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20181113121247eusmtrp233a0179c1ec4cf212e9b1877108a7ca4~mre-IDRKF2687426874eusmtrp2x; Tue, 13 Nov 2018 12:12:47 +0000 (GMT) X-AuditID: cbfec7f2-5e3ff70000001159-68-5beabfc057b3 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 1B.18.04284.FBFBAEB5; Tue, 13 Nov 2018 12:12:47 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121247eusmtip19c0152782f30fcce5d7d417576118cc1~mre_attl41152111521eusmtip1a; Tue, 13 Nov 2018 12:12:46 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:23 +0300 Message-Id: <20181113121228.17650-5-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSfyyUcRzH+95zj3vcXH17KB8/NnaqVSs/FvNU9GNr7Zl+zNZmlVodnmFx 7B5EtWEsuoRRXTUXq5aGVriIJdIPyiSVkOVoOTlhoS0/L3fPWf+99n6/Pz/22Yci6GukMxWt TOBUSkWM3EYqrnkz07G1qdEY6l3Tu5bRXS8kGeOdDoL5nDUjYSoH20mmrzFHzBRcbUWMdnIY MX1FQcxQ5yzBZN6rE+2Rsj2LX23Yu89GRKxB81LE9tS2kayh14TY4S85YjZXV4ZYU0YXGUwd lwZEcDHRSZzKa9dpadTvBkn861XJLWNlkjSUZadGthRgXzDlfSfVSErR+AGCh9+qSbNB42kE o91egjGFYH52kViu+NCQKRFCpQgqjNuE0F8EtXNFFsMGb4F35a+QmR3wdlB3q5E5ROAaEeh/ 6S2d7PEBUA9Mis0sxushIz3fosvwTriS/0QkTHOD8sdNFt0WB0C6/oaNoN+WwFgrL/A+6Jy6 LBHYHowtOiu7gqmu2NonFfSZI5YlAGcj0DQvWo3doBt9v1RALW23CR7Ve5kR8F4oLNoo4Ero GVttDhNLWFCjIQRZBtkXaaHHOph7UWo9jzP0jk9ZF2CheLrdeqo8BA2F3vnI7db/USUIlSFH LpGPjeR4HyV31pNXxPKJykjP8LjYKrT0LG2LLZNP0Z+PYc0IU0huJ2vVjITSpCKJT4ltRkAR cgdZna8xlJZFKFLOcaq4U6rEGI5vRi6UWO4oO79iIJTGkYoE7gzHxXOqZVdE2TqnoQrTj8SF CGlLcpTuQshCcS6tPznJ6mY+Pa90OOqPnLTuuHhu+pKrwWfi5qHAtCBJSH/H22g/bXLYODZm dQWkKvNODJfkFwbS2oPBG3o9lDvCy6swxWlICDmyP9me+ulRvmZwYrzfL+W+4Vj9WP+Qy+G0 2mrDvLsp3qndfyJBLuajFD6bCRWv+Ac5u1rRKAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRmVeSWpSXmKPExsVy+t/xu7r797+KNtg0SdNiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBGlZ1OUX1qSqpCRX1xiqxRtaGGk Z2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl/FxL3vBUf6K429XsTcwtvN0MXJySAiY SFzY28LexcjFISSwlFGi6/UVRoiElMSPXxdYIWxhiT/Xutggir4xSjydvIAdJMEmoCNxavUR sAYRAWuJdd83soAUMQvsYZI4sus9WLewgLdE14NPLCA2i4CqRHPjBGYQmxeooXfCViaIDfIS qzccAItzCthINN6fwQZiCwHV7N/XyzaBkW8BI8MqRpHU0uLc9NxiQ73ixNzi0rx0veT83E2M wIDfduzn5h2MlzYGH2IU4GBU4uE9Mf1ltBBrYllxZe4hRgkOZiUR3p0mr6KFeFMSK6tSi/Lj i0pzUosPMZoCHTWRWUo0OR8YjXkl8YamhuYWlobmxubGZhZK4rznDSqjhATSE0tSs1NTC1KL YPqYODilGhglUgPiN0yvP2z5kXcZF19kxJQcNRHWDiXtCS4K99pr905wuPhwsurOjYzvDm0+ Y68mf83nR5dhrqm2X9HiC2cadvud8jh7eEv5/Q9237ZPcTEwEwhQartYHvWlQn/dq6D5fEaV Z6ouydVUXn8V0aj92f2RfdV93ze3uaY3Hly76FbdorfM++8qsRRnJBpqMRcVJwIArw98Xo4C AAA= X-CMS-MailID: 20181113121247eucas1p110097140bc81e536aa77bb0b43c79c8b X-Msg-Generator: CA X-RootMTR: 20181113121247eucas1p110097140bc81e536aa77bb0b43c79c8b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121247eucas1p110097140bc81e536aa77bb0b43c79c8b References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 4/9] dp-packet: Add flow_mark support for non-DPDK case. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Additionally, new API call 'dp_packet_set_flow_mark' is needed for packet clone. Mostly for dummy HWOL implementation. Signed-off-by: Ilya Maximets --- lib/dp-packet.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/dp-packet.h b/lib/dp-packet.h index 67914ec59..936b31527 100644 --- a/lib/dp-packet.h +++ b/lib/dp-packet.h @@ -60,7 +60,9 @@ struct dp_packet { uint32_t size_; /* Number of bytes in use. */ uint32_t ol_flags; /* Offloading flags. */ #define DP_PACKET_OL_RSS_HASH_MASK 0x1 /* Is the 'rss_hash' valid? */ +#define DP_PACKET_OL_FLOW_MARK_MASK 0x2 /* Is the 'flow_mark' valid? */ uint32_t rss_hash; /* Packet hash. */ + uint32_t flow_mark; /* Packet flow mark. */ #endif enum dp_packet_source source; /* Source of memory allocated as 'base'. */ @@ -543,6 +545,13 @@ dp_packet_has_flow_mark(const struct dp_packet *p, uint32_t *mark) return false; } +static inline void +dp_packet_set_flow_mark(struct dp_packet *p, uint32_t mark) +{ + p->mbuf.hash.fdir.hi = mark; + p->mbuf.ol_flags |= PKT_RX_FDIR_ID; +} + #else /* DPDK_NETDEV */ static inline void * dp_packet_base(const struct dp_packet *b) @@ -644,11 +653,21 @@ dp_packet_l4_checksum_bad(const struct dp_packet *p OVS_UNUSED) } static inline bool -dp_packet_has_flow_mark(const struct dp_packet *p OVS_UNUSED, - uint32_t *mark OVS_UNUSED) +dp_packet_has_flow_mark(const struct dp_packet *p, uint32_t *mark) { + if (p->ol_flags & DP_PACKET_OL_FLOW_MARK_MASK) { + *mark = p->flow_mark; + return true; + } return false; } + +static inline void +dp_packet_set_flow_mark(struct dp_packet *p, uint32_t mark) +{ + p->flow_mark = mark; + p->ol_flags |= DP_PACKET_OL_FLOW_MARK_MASK; +} #endif /* DPDK_NETDEV */ static inline void From patchwork Tue Nov 13 12:12:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997055 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="XZxsKSXs"; 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 42vRRT2zF2z9sCX for ; Tue, 13 Nov 2018 23:15:49 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 16279A91; Tue, 13 Nov 2018 12:12:56 +0000 (UTC) X-Original-To: ovs-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 38C39A5E for ; Tue, 13 Nov 2018 12:12:55 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 13E4175B for ; Tue, 13 Nov 2018 12:12:54 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121252euoutp011ff7e6863b63895aea701f5ccc246bc2~mrfDzwoFY2919929199euoutp01L for ; Tue, 13 Nov 2018 12:12:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20181113121252euoutp011ff7e6863b63895aea701f5ccc246bc2~mrfDzwoFY2919929199euoutp01L DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111172; bh=fyRsihvJBo5m3bRlQxl4Fp9Ej6E+9YUpm7bVMe+Oa18=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XZxsKSXs3Zpr1P1Vl4nHkA4YpoSplt95l1q94B4PI4uO2xbpzWLVO7vaN3ymHs7Wf nVL7ue/xjoPP8PGGKR+WZ6yLAcgrKY7XKKu/0hUr8zgkqc2FOJjvMocrE2PQ/fFrnO AMrcCv4J+EB47EV6K3wlHDWEHjZa7332p5/sSTNY= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181113121251eucas1p2514fb678ea2117a0735b936e18142040~mrfDAALJr0938209382eucas1p2L; Tue, 13 Nov 2018 12:12:51 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 13.74.04294.3CFBAEB5; Tue, 13 Nov 2018 12:12:51 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20181113121251eucas1p19eaae131af38a665d3377f316db1e500~mrfCPOUKC2983229832eucas1p1Y; Tue, 13 Nov 2018 12:12:51 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20181113121250eusmtrp115828f9e0ffeef9dd7563b429c4985d7~mrfCAbXCm3076030760eusmtrp1L; Tue, 13 Nov 2018 12:12:50 +0000 (GMT) X-AuditID: cbfec7f4-84fff700000010c6-d3-5beabfc35aa3 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 4A.DC.04128.2CFBAEB5; Tue, 13 Nov 2018 12:12:50 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121249eusmtip19cbbbf95372724e4e961891017c7fea9~mrfBGbsWk1101811018eusmtip1p; Tue, 13 Nov 2018 12:12:49 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:24 +0300 Message-Id: <20181113121228.17650-6-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VSa0hTcRTv7N7pdbW4rsCDBdEqqUjtRdxI7EndpA/ZA6SBtfKyRm7armaz D2mtEtFZGq7UUCrUNC1z+VjBbGZaVhakbRlqlq/5oNJALWZud9G3c36Pc37nz58iZHniQEqt TeB0WmWs3EdC1ryYagtutDoVa2uqgxhzbo6Ycd5uI5gPV6Z8maovb8RMpzWDZLKvtwBz6+cA MJ0FEUzf+2mCMdytF22TsHbXJx/2ztMhEdtvahSx9tpWMdvvmAF2oCODZI3mMmBnLraL91NH JGExXKz6DKcLDT8mOVmb7YT4VL+z9gIjmQIG33Two5DeiNZsC5EOEkpGlwKmjWWJhGYCsLLX BUIzDjg51Uv8s7S0mkmBKAGcsvSI3YSMngS0d61w1z70GnxV/hzc9UJ6M6Z/TPdMIugaEXaP dHsmLaB3oOPTd4+ZpFdgSbHRg0vpLTjdUAXCtiVY/rDBg/vRYZjafcPHPQhpky9ea3aRgmgX XrpQ6Y23AJ3NZu91i7E1J8OrOY/dhiEQzGmAJptLJBBb0Tz8dtZAzcZbhQ8soQK8HduMVnDD SM9H+6i/GyZmy+waEyHAUky7LBPUy/H3sxJvgkB0jI17E7CYWfHS+4pZgH15+XAVluT9X1YE UAYBXCKvUXH8ei2XFMIrNXyiVhVyIk7zCGZ/TKureaIOLH+O24CmQD5P2mIaUsjEyjO8XmMD pAj5Qmn9RqdCJo1R6pM5XdxRXWIsx9tgEUXKA6Tn5vQoZLRKmcCd4rh4TvePFVF+gSlwKX86 WfpreGmwRaSPaLJE8pmHJg6MmEsP/zgYVOHQF3UU7hz3l+gCjJ2KQpthj8tUK3ncfN8xt/Rz 0tfBm6MPLHu/zDQN/kiOVu/Li7YUs68r6pq+bYhq1BX2vQs0PRHnVGOx4V2DfW1uSXsUoYbT y1hV1z1l2spX4Zt6Ix/ulpP8SeW61YSOV/4FKDG1Ry0DAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRmVeSWpSXmKPExsVy+t/xu7qH9r+KNrj938hiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBGlZ1OUX1qSqpCRX1xiqxRtaGGk Z2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl7F90ivGgkbOihtz+lgaGFvYuxg5OSQE TCROnN7C0sXIxSEksJRR4suceWwQCSmJH78usELYwhJ/rnWBxYUEvjFKzF0sAWKzCehInFp9 hBHEFhGwllj3fSPYIGaBPUwSR3a9B2sWFnCSuHnrA5jNIqAqsXxZHzOIzQvU8OvARkaIBfIS qzccAItzCthINN6fAbXMWmL/vl62CYx8CxgZVjGKpJYW56bnFhvpFSfmFpfmpesl5+duYgQG /LZjP7fsYOx6F3yIUYCDUYmH98T0l9FCrIllxZW5hxglOJiVRHh3mryKFuJNSaysSi3Kjy8q zUktPsRoCnTURGYp0eR8YDTmlcQbmhqaW1gamhubG5tZKInznjeojBISSE8sSc1OTS1ILYLp Y+LglGpg3DzjRZb0fqeO0GMMbb+Mleesc2/Pkm69nZTAKtQhFb0pN/5H59Xwvtn90l8/RdRK al98NlVjknAmU0HWDLEHidP1Ax0nXElpqOflW74plLPkpsK3RUE8fDtfM2XmiJ+tePav8qeG 3Q81zajHyVNNgkW3c4t1XevWDbKV37prypy5y+5oH2NVYinOSDTUYi4qTgQApoDnZI4CAAA= X-CMS-MailID: 20181113121251eucas1p19eaae131af38a665d3377f316db1e500 X-Msg-Generator: CA X-RootMTR: 20181113121251eucas1p19eaae131af38a665d3377f316db1e500 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121251eucas1p19eaae131af38a665d3377f316db1e500 References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 5/9] dp-packet: Copy flow mark on packet clone. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Dummy interfaces clones dp-packet while 'receive' appctl processing. In general, we should do this anyway to avoid any possible issues in the future with real interfaces. Signed-off-by: Ilya Maximets --- lib/dp-packet.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/dp-packet.c b/lib/dp-packet.c index b5942f815..4ccb4da5c 100644 --- a/lib/dp-packet.c +++ b/lib/dp-packet.c @@ -163,6 +163,7 @@ struct dp_packet * dp_packet_clone_with_headroom(const struct dp_packet *buffer, size_t headroom) { struct dp_packet *new_buffer; + uint32_t mark; new_buffer = dp_packet_clone_data_with_headroom(dp_packet_data(buffer), dp_packet_size(buffer), @@ -180,6 +181,9 @@ dp_packet_clone_with_headroom(const struct dp_packet *buffer, size_t headroom) if (dp_packet_rss_valid(buffer)) { dp_packet_set_rss_hash(new_buffer, dp_packet_get_rss_hash(buffer)); } + if (dp_packet_has_flow_mark(buffer, &mark)) { + dp_packet_set_flow_mark(new_buffer, mark); + } return new_buffer; } From patchwork Tue Nov 13 12:12:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997056 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="lr+Jornr"; 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 42vRS21QVgz9sDF for ; Tue, 13 Nov 2018 23:16:18 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id A7641AC7; Tue, 13 Nov 2018 12:12:58 +0000 (UTC) X-Original-To: ovs-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 A6327A67 for ; Tue, 13 Nov 2018 12:12:57 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 05B94224 for ; Tue, 13 Nov 2018 12:12:57 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121255euoutp02fa01edb4277403b44dcddf912e1d03b5~mrfGhoyEX0367503675euoutp02a for ; Tue, 13 Nov 2018 12:12:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181113121255euoutp02fa01edb4277403b44dcddf912e1d03b5~mrfGhoyEX0367503675euoutp02a DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111175; bh=u89IcTbte/pdbkUPanpkDyEoOAz0z14JMJ1dWJeOTAM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lr+Jornrgl7BsihfU8IRwJ66OfkjBwZ4PtUXQhEsnoyCwMTSW4pZRXCGgD0vyJ5Ce hN0CJ55NDc0Sc7kp+5eWDHI/rVYI6NoX7Trim+aPBPRffh2Kk5QZTFIVeR/Ij3y+TI dQsjpgbRyrYCTTuhs4saozzfLi8GgS7QlZogT/ng= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181113121254eucas1p1b7a762362602d46798abb43f9fb7a2ab~mrfF12LKZ0680806808eucas1p1k; Tue, 13 Nov 2018 12:12:54 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id AC.F7.04441.6CFBAEB5; Tue, 13 Nov 2018 12:12:54 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20181113121253eucas1p15b6cc3c614d237fd9fa07eb4511052d0~mrfE4ja640871008710eucas1p1a; Tue, 13 Nov 2018 12:12:53 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20181113121253eusmtrp28b4d6e0ddb7d228fc52e5f5d8066303c~mrfEp59e02687426874eusmtrp28; Tue, 13 Nov 2018 12:12:53 +0000 (GMT) X-AuditID: cbfec7f2-5e3ff70000001159-7e-5beabfc6d985 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 0C.DC.04128.5CFBAEB5; Tue, 13 Nov 2018 12:12:53 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121253eusmtip102d2005971c6ca12daec07e45c09152a~mrfEAkWcz1152111521eusmtip1d; Tue, 13 Nov 2018 12:12:52 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:25 +0300 Message-Id: <20181113121228.17650-7-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSe0hTYRjG+3Z23NlwcZyCbxaIy5JCXYLYiaQbBodulFBgI2zqQSVvbd4L MvI6zDuuLCvUWKlhipmKpU6boqRoXpOYQjo3TchLauaWx2P03+993ue9fXwEJinGnYjwqFhG GaWIkNqI+A369X4PfatZfqStyI2qLy7EKXNZP0YNZawLqNqpzzg10ZrNpwqKuhFVumhE1MTT c9T0wG+MSq1o4p0S0WOWrzZ0eYuJR89oOnj02PtenJ4ZtyLaOJLNp3PqKxFtfTCMXyaui3xD mIjweEYpO3FTFNbTcSlm1SOxQb0gSEHzUjUSEkB6Q0mpTqBGIkJCvkJQXjHH54JlBJULrzEu WEJQM2TF1YjYLulKceB0LYICbaWAbSUh1xBYOl1ZtiHdoaeqE7HsQB4D9agasQUY2cADw7wB YxP25BWYfFO63ZRPHoCnhWdZFJPHYaPMh9vOGaretm27haQv3Dc8smHbAPlMAJsDjXzO5AeZ 2jKcY3swd9ULON4H1qbnPI7vgSHVhLjiTAQanWUncRLq5/oE7GCMPAQ1zTJOPg2z+X927t0N Yz/sWBnbwoIGDcbJYshMl3BuV9ho12IcO8H4wtLOBjRUfM/dedxcBL8y2rE85Fzyf9gLhCqR IxOnigxlVF5RTIKnShGpiosK9QyOjqxDW7+l19K12IhWBoN0iCSQ1FbcrTHJJbgiXpUUqUNA YFIHcZO3WS4RhyiSkhlldKAyLoJR6dBegi91FN/ZNSmXkKGKWOYWw8Qwyn9ZHiF0SkEBaWui RH3nQM1tNKv7maWfbq7L0LjkfzFqdZNC/82P6fH4mYv+1/rKZOCbkDXjYAgw2n5YHRFe1UvD tU+qp8IrRDdm8hRoNFjj/s5o2vPQ5W6L24WgkNFlP8b+ZVehPND8KXF/kmwl/nyanU/cnPOg Z7Dd8OOjybWD3TkHv1VL+aowhddhTKlS/AVDHGhAKQMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRmVeSWpSXmKPExsVy+t/xu7pH97+KNti3Tstiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBGlZ1OUX1qSqpCRX1xiqxRtaGGk Z2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl3HqsF/Bd92KbV3v2BsY3yh1MXJwSAiY SBxvEOli5OIQEljKKLFl/nr2LkZOoLiUxI9fF1ghbGGJP9e62EBsIYFvjBKbLxaC2GwCOhKn Vh9hBLFFBKwl1n3fyAIyiFlgD5PEkV3vwZqFBfwlPjybwA6yjEVAVWLOZFcQkxeo/vciM4jx 8hKrNxxgBrE5BWwkGu/PgFplLbF/Xy/bBEa+BYwMqxhFUkuLc9Nzi430ihNzi0vz0vWS83M3 MQIDfduxn1t2MHa9Cz7EKMDBqMTDe2L6y2gh1sSy4srcQ4wSHMxKIrw7TV5FC/GmJFZWpRbl xxeV5qQWH2I0BTppIrOUaHI+MArzSuINTQ3NLSwNzY3Njc0slMR5zxtURgkJpCeWpGanphak FsH0MXFwSjUwrkjO/SOsabdn5RXNM9ZfbazkPe4kcKuLnQ1er5tyIiN9sdM9383zZTjNmJKP l3P0LjLIMeOT3R9VsnBSE0PRR8aVS56Hsc9zvrvmYWWt/O87fOcve83S+21QGFHpx/A1ue14 yywbj2d9Pxa9V983aUVx8CKb240tXz2+T/p/5OKarM2NL8oslFiKMxINtZiLihMBB3rwIYoC AAA= X-CMS-MailID: 20181113121253eucas1p15b6cc3c614d237fd9fa07eb4511052d0 X-Msg-Generator: CA X-RootMTR: 20181113121253eucas1p15b6cc3c614d237fd9fa07eb4511052d0 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121253eucas1p15b6cc3c614d237fd9fa07eb4511052d0 References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 6/9] netdev-dummy: Implement dummy put/del flow offload API. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Basic partial HWOL API for dummy interfaces. Signed-off-by: Ilya Maximets --- lib/netdev-dummy.c | 106 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 3 deletions(-) diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 23817d121..7163ab47c 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -29,6 +29,7 @@ #include "odp-util.h" #include "openvswitch/dynamic-string.h" #include "openvswitch/list.h" +#include "openvswitch/match.h" #include "openvswitch/ofp-print.h" #include "openvswitch/ofpbuf.h" #include "openvswitch/vlog.h" @@ -92,6 +93,13 @@ struct pkt_list_node { struct ovs_list list_node; }; +struct offloaded_flow { + struct hmap_node node; + ovs_u128 ufid; + struct match match; + uint32_t mark; +}; + /* Protects 'dummy_list'. */ static struct ovs_mutex dummy_list_mutex = OVS_MUTEX_INITIALIZER; @@ -124,6 +132,8 @@ struct netdev_dummy { struct in6_addr ipv6, ipv6_mask; struct ovs_list rxes OVS_GUARDED; /* List of child "netdev_rxq_dummy"s. */ + struct hmap offloaded_flows OVS_GUARDED; + /* The following properties are for dummy-pmd and they cannot be changed * when a device is running, so we remember the request and update them * next time netdev_dummy_reconfigure() is called. */ @@ -699,6 +709,7 @@ netdev_dummy_construct(struct netdev *netdev_) dummy_packet_conn_init(&netdev->conn); ovs_list_init(&netdev->rxes); + hmap_init(&netdev->offloaded_flows); ovs_mutex_unlock(&netdev->mutex); ovs_mutex_lock(&dummy_list_mutex); @@ -712,6 +723,7 @@ static void netdev_dummy_destruct(struct netdev *netdev_) { struct netdev_dummy *netdev = netdev_dummy_cast(netdev_); + struct offloaded_flow *off_flow; ovs_mutex_lock(&dummy_list_mutex); ovs_list_remove(&netdev->list_node); @@ -727,6 +739,11 @@ netdev_dummy_destruct(struct netdev *netdev_) dummy_packet_conn_close(&netdev->conn); netdev->conn.type = NONE; + HMAP_FOR_EACH_POP (off_flow, node, &netdev->offloaded_flows) { + free(off_flow); + } + hmap_destroy(&netdev->offloaded_flows); + ovs_mutex_unlock(&netdev->mutex); ovs_mutex_destroy(&netdev->mutex); } @@ -1389,8 +1406,88 @@ netdev_dummy_update_flags(struct netdev *netdev_, return error; } - -/* Helper functions. */ + +/* Flow offload API. */ +static uint32_t +netdev_dummy_flow_hash(const ovs_u128 *ufid) +{ + return ufid->u32[0]; +} + +static struct offloaded_flow * +find_offloaded_flow(const struct hmap *offloaded_flows, const ovs_u128 *ufid) +{ + uint32_t hash = netdev_dummy_flow_hash(ufid); + struct offloaded_flow *data; + + HMAP_FOR_EACH_WITH_HASH (data, node, hash, offloaded_flows) { + if (ovs_u128_equals(*ufid, data->ufid)) { + return data; + } + } + + return NULL; +} + +static int +netdev_dummy_flow_put(struct netdev *netdev, struct match *match, + struct nlattr *actions OVS_UNUSED, + size_t actions_len OVS_UNUSED, + const ovs_u128 *ufid, struct offload_info *info, + struct dpif_flow_stats *stats OVS_UNUSED) +{ + struct netdev_dummy *dev = netdev_dummy_cast(netdev); + struct offloaded_flow *off_flow; + + ovs_mutex_lock(&dev->mutex); + + off_flow = find_offloaded_flow(&dev->offloaded_flows, ufid); + if (!off_flow) { + /* Create new offloaded flow. */ + off_flow = xzalloc(sizeof *off_flow); + memcpy(&off_flow->ufid, ufid, sizeof *ufid); + hmap_insert(&dev->offloaded_flows, &off_flow->node, + netdev_dummy_flow_hash(ufid)); + } + + off_flow->mark = info->flow_mark; + memcpy(&off_flow->match, match, sizeof *match); + + /* As we have per-netdev 'offloaded_flows', we don't need to match + * the 'in_port' for received packets. This will also allow offloading for + * packets passed to 'receive' command without specifying the 'in_port'. */ + off_flow->match.wc.masks.in_port.odp_port = 0; + + ovs_mutex_unlock(&dev->mutex); + + return 0; +} + +static int +netdev_dummy_flow_del(struct netdev *netdev, const ovs_u128 *ufid, + struct dpif_flow_stats *stats OVS_UNUSED) +{ + struct netdev_dummy *dev = netdev_dummy_cast(netdev); + struct offloaded_flow *off_flow; + + ovs_mutex_lock(&dev->mutex); + + off_flow = find_offloaded_flow(&dev->offloaded_flows, ufid); + if (!off_flow) { + ovs_mutex_unlock(&dev->mutex); + return -1; + } + + hmap_remove(&dev->offloaded_flows, &off_flow->node); + free(off_flow); + + ovs_mutex_unlock(&dev->mutex); + return 0; +} + +#define DUMMY_FLOW_OFFLOAD_API \ + .flow_put = netdev_dummy_flow_put, \ + .flow_del = netdev_dummy_flow_del #define NETDEV_DUMMY_CLASS_COMMON \ .run = netdev_dummy_run, \ @@ -1424,7 +1521,8 @@ netdev_dummy_update_flags(struct netdev *netdev_, .rxq_dealloc = netdev_dummy_rxq_dealloc, \ .rxq_recv = netdev_dummy_rxq_recv, \ .rxq_wait = netdev_dummy_rxq_wait, \ - .rxq_drain = netdev_dummy_rxq_drain + .rxq_drain = netdev_dummy_rxq_drain, \ + DUMMY_FLOW_OFFLOAD_API static const struct netdev_class dummy_class = { NETDEV_DUMMY_CLASS_COMMON, @@ -1442,6 +1540,8 @@ static const struct netdev_class dummy_pmd_class = { .is_pmd = true, .reconfigure = netdev_dummy_reconfigure }; + +/* Helper functions. */ static void pkt_list_delete(struct ovs_list *l) From patchwork Tue Nov 13 12:12:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997058 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="n5Rrvh9C"; 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 42vRSX1SkJz9sBh for ; Tue, 13 Nov 2018 23:16:44 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 484F2AD7; Tue, 13 Nov 2018 12:13:01 +0000 (UTC) X-Original-To: ovs-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 5000AACD for ; Tue, 13 Nov 2018 12:13:00 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B2FFD7A4 for ; Tue, 13 Nov 2018 12:12:59 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121258euoutp01ae97284ab3c3654a91d208f05e1e28c5~mrfI-5HLz2919929199euoutp01S for ; Tue, 13 Nov 2018 12:12:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20181113121258euoutp01ae97284ab3c3654a91d208f05e1e28c5~mrfI-5HLz2919929199euoutp01S DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111178; bh=mvM0z7UVhXTNtjAi52SaebJl8HC7vo0EjxJPG8xVNFs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n5Rrvh9CM4eHn2kjm7dzIdSQ/6Q6wphHKGwpqgYbGBM/R3OlXKX2GaCzOvS+0vlDv rKzGNx54dPf6ZKTSdSzVzsxZ4uHD4QK7Oq3YSP1lQZXHOZozUHm368gwIBxO1Tax1M K7kXkia/2BgYA+blP6RtjHqkw1FReCOmmuiawcuw= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181113121257eucas1p1cf8f24a695444086b2770a54d9fbdaf1~mrfITB2w10870608706eucas1p1X; Tue, 13 Nov 2018 12:12:57 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id E0.E4.04806.9CFBAEB5; Tue, 13 Nov 2018 12:12:57 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20181113121256eucas1p2e42f999410fd4d587f90948e0ac67f8b~mrfHjnITd2452124521eucas1p2n; Tue, 13 Nov 2018 12:12:56 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20181113121256eusmtrp20cb59d96e5bc61e9a528268377ba0ffb~mrfHU_9Ww2687726877eusmtrp2-; Tue, 13 Nov 2018 12:12:56 +0000 (GMT) X-AuditID: cbfec7f5-367ff700000012c6-ce-5beabfc9c913 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 8E.DC.04128.8CFBAEB5; Tue, 13 Nov 2018 12:12:56 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121255eusmtip12c0de49b6a1f74d4b507521e49e5b8a8~mrfGsevrL1152111521eusmtip1e; Tue, 13 Nov 2018 12:12:55 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:26 +0300 Message-Id: <20181113121228.17650-8-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSWUwTURSGvZ2ZdmisGQqGI5KQNPqAC2DkYQgoaIgZfYFofLGJWmVYImsH UCRhCYSlElZjiyIQECGQYC0VhShLUdnCIoIWqyJLIS0uCQgRJEXKQHz7zn/+/5yTm0ti0jLC lYyMSWCVMYoomVCMt7xdHTra12GVezdlSmn9vVKCtlYPY/RYzqqIfjo1SNCmjnycLrnbi+iH i/OINpWfo83v1jA661GrIFDMGG2fhEzNS4uAmVN3Cxjj8wGCmZvYQMz8h3ycKdA3IGYjc5wI IS+J/UPZqMgkVul18qo44tdKHR7X7XGreiQtHS25qZADCZQPlJfmECokJqVUPQJb9ijii98I ZgpVmN0lpZYQWId9dxIqy8q2qQ7BZ2OegC/+ILBoRoV2l5A6Av2Nr5GdnSlfUH1UbSUwqkUA k98nt8Y6UQzUFqzjdsapg5BTVSyys4Tyg+F+jYhf5w6N2s4tvwPlDxmTGqF9EFAVIsiYseC8 KQgWrSaCZyew9ui3w26w0Vop4DkNJrMsiA/nIlAbbNuNANAvDG0GyM3zPOBJmxcvn4LRWt2W DNQeMP5wtMvYJpa0qDFelkButpR3H4C/XXUYz64w8XNp+wIGxmszMf6BChHkadpQEXK//39Z FUINyIVN5KLDWe54DHvTk1NEc4kx4Z7XY6N1aPPDDNh6ll+g9vVrBkSRSLZb0qu2yKWEIolL jjYgIDGZs6TVxyqXSkIVybdZZewVZWIUyxnQfhKXuUhSdn2TS6lwRQJ7g2XjWOVOV0A6uKYj fdi+4AvKoDK5Now6cfnrGW/TjE5bc/a8G3M43vwgJWs6pKvf2Bnpa1TGNetefWlUDLr0BZuy idTQQImuqLDX3L3QrGLrc8cGOT9rRMWzabKhqdzt/d6JBG3ebIitfzr7TcDaSLvcMTzVXMnG P+4NXNIVXzw9FVs/W37Hcdkgw7kIxbFDmJJT/ANQrWZaLAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFLMWRmVeSWpSXmKPExsVy+t/xu7on9r+KNuh4rmixZdpkVotXi84z W1xp/8lusfHhWVaL2/t7WCwmTTnBaDH303NGi9tzvCyeXvzFbNGyZCeTA5fHjX+32DwW73nJ 5PFs+mEmjxvbT7N6PLv5n9Hj+bUeFo++LasYPf43X2UN4IjSsynKLy1JVcjILy6xVYo2tDDS M7S00DMysdQzNDaPtTIyVdK3s0lJzcksSy3St0vQy3j/bTlLwWHNikUX6hsYP8t0MXJySAiY SHS9/MYIYgsJLGWUuHLcACIuJfHj1wVWCFtY4s+1LrYuRi6gmm+MEudXfWADSbAJ6EicWn0E rFlEwFpi3feNLCBFzAJ7mCSO7HoP1i0s4CGxtO8PC4jNIqAq0b5gIjuIzQvUcP7UDHaIDfIS qzccYAaxOQVsJBrvz2CDuMhaYv++XrYJjHwLGBlWMYqklhbnpucWG+kVJ+YWl+al6yXn525i BIb7tmM/t+xg7HoXfIhRgINRiYf3xPSX0UKsiWXFlbmHGCU4mJVEeHeavIoW4k1JrKxKLcqP LyrNSS0+xGgKdNREZinR5HxgLOaVxBuaGppbWBqaG5sbm1koifOeN6iMEhJITyxJzU5NLUgt gulj4uCUamDctk47c5up+Cu+L3t1L4gs5uftrbrf+yzAKe73qiO9YRX97eum7FHzWcX4JOlG xNZpMcw8WqWXtO25lZIU2bvDLwemaFWHil660cXEoNW64tumQqaUKbL7XvAfm8+Z7DCN5env VWzZu7Ub2R/pvyrvKlrV+Or97/d7/zHzSLZFbP/3dcGeAAklluKMREMt5qLiRAAWBIJLjQIA AA== X-CMS-MailID: 20181113121256eucas1p2e42f999410fd4d587f90948e0ac67f8b X-Msg-Generator: CA X-RootMTR: 20181113121256eucas1p2e42f999410fd4d587f90948e0ac67f8b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121256eucas1p2e42f999410fd4d587f90948e0ac67f8b References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 7/9] netdev-dummy: Set flow mark for offloaded flows. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Match packets received on dummy interfaces with offloaded flows and set up corresponding marks in dp-packet. Signed-off-by: Ilya Maximets --- lib/netdev-dummy.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 7163ab47c..bd18a5190 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -156,7 +156,7 @@ struct netdev_rxq_dummy { static unixctl_cb_func netdev_dummy_set_admin_state; static int netdev_dummy_construct(struct netdev *); static void netdev_dummy_queue_packet(struct netdev_dummy *, - struct dp_packet *, int); + struct dp_packet *, struct flow *, int); static void dummy_packet_stream_close(struct dummy_packet_stream *); @@ -283,7 +283,7 @@ dummy_packet_stream_run(struct netdev_dummy *dev, struct dummy_packet_stream *s) if (retval == n && dp_packet_size(&s->rxbuf) > 2) { dp_packet_pull(&s->rxbuf, 2); netdev_dummy_queue_packet(dev, - dp_packet_clone(&s->rxbuf), 0); + dp_packet_clone(&s->rxbuf), NULL, 0); dp_packet_clear(&s->rxbuf); } } else if (retval != -EAGAIN) { @@ -1152,7 +1152,7 @@ netdev_dummy_send(struct netdev *netdev, int qid OVS_UNUSED, struct dp_packet *reply = dp_packet_new(0); compose_arp(reply, ARP_OP_REPLY, dev->hwaddr, flow.dl_src, false, flow.nw_dst, flow.nw_src); - netdev_dummy_queue_packet(dev, reply, 0); + netdev_dummy_queue_packet(dev, reply, NULL, 0); } } @@ -1563,12 +1563,11 @@ eth_from_packet(const char *s) } static struct dp_packet * -eth_from_flow(const char *s, size_t packet_size) +eth_from_flow_str(const char *s, size_t packet_size, struct flow *flow) { enum odp_key_fitness fitness; struct dp_packet *packet; struct ofpbuf odp_key; - struct flow flow; int error; /* Convert string to datapath key. @@ -1585,7 +1584,7 @@ eth_from_flow(const char *s, size_t packet_size) } /* Convert odp_key to flow. */ - fitness = odp_flow_key_to_flow(odp_key.data, odp_key.size, &flow); + fitness = odp_flow_key_to_flow(odp_key.data, odp_key.size, flow); if (fitness == ODP_FIT_ERROR) { ofpbuf_uninit(&odp_key); return NULL; @@ -1593,15 +1592,15 @@ eth_from_flow(const char *s, size_t packet_size) packet = dp_packet_new(0); if (packet_size) { - flow_compose(packet, &flow, NULL, 0); + flow_compose(packet, flow, NULL, 0); if (dp_packet_size(packet) < packet_size) { - packet_expand(packet, &flow, packet_size); + packet_expand(packet, flow, packet_size); } else if (dp_packet_size(packet) > packet_size){ dp_packet_delete(packet); packet = NULL; } } else { - flow_compose(packet, &flow, NULL, 64); + flow_compose(packet, flow, NULL, 64); } ofpbuf_uninit(&odp_key); @@ -1621,14 +1620,28 @@ netdev_dummy_queue_packet__(struct netdev_rxq_dummy *rx, struct dp_packet *packe static void netdev_dummy_queue_packet(struct netdev_dummy *dummy, struct dp_packet *packet, - int queue_id) + struct flow *flow, int queue_id) OVS_REQUIRES(dummy->mutex) { struct netdev_rxq_dummy *rx, *prev; + struct offloaded_flow *data; + struct flow packet_flow; if (dummy->rxq_pcap) { ovs_pcap_write(dummy->rxq_pcap, packet); } + + if (!flow) { + flow = &packet_flow; + flow_extract(packet, flow); + } + HMAP_FOR_EACH (data, node, &dummy->offloaded_flows) { + if (flow_equal_except(flow, &data->match.flow, &data->match.wc)) { + dp_packet_set_flow_mark(packet, data->mark); + break; + } + } + prev = NULL; LIST_FOR_EACH (rx, node, &dummy->rxes) { if (rx->up.queue_id == queue_id && @@ -1674,6 +1687,7 @@ netdev_dummy_receive(struct unixctl_conn *conn, for (i = k; i < argc; i++) { struct dp_packet *packet; + struct flow flow; /* Try to parse 'argv[i]' as packet in hex. */ packet = eth_from_packet(argv[i]); @@ -1693,15 +1707,17 @@ netdev_dummy_receive(struct unixctl_conn *conn, i += 2; } /* Try parse 'argv[i]' as odp flow. */ - packet = eth_from_flow(flow_str, packet_size); + packet = eth_from_flow_str(flow_str, packet_size, &flow); if (!packet) { unixctl_command_reply_error(conn, "bad packet or flow syntax"); goto exit; } + } else { + flow_extract(packet, &flow); } - netdev_dummy_queue_packet(dummy_dev, packet, rx_qid); + netdev_dummy_queue_packet(dummy_dev, packet, &flow, rx_qid); } unixctl_command_reply(conn, NULL); From patchwork Tue Nov 13 12:12:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997059 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="PGo6pLAW"; 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 42vRTD3QRBz9s5c for ; Tue, 13 Nov 2018 23:17:20 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 11705AD8; Tue, 13 Nov 2018 12:13:04 +0000 (UTC) X-Original-To: ovs-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 C932AAD1 for ; Tue, 13 Nov 2018 12:13:02 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 441DE19B for ; Tue, 13 Nov 2018 12:13:02 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121300euoutp026f91cbc63cd1539a852241b0008358df~mrfLX6Ugs0377303773euoutp02O for ; Tue, 13 Nov 2018 12:13:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181113121300euoutp026f91cbc63cd1539a852241b0008358df~mrfLX6Ugs0377303773euoutp02O DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111180; bh=r/IEBuAPrXDVeFsEgZiloaSVKYKJFDzWFZ9eftWis2k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PGo6pLAWcwsiw59u04CfasRJ24qcNRqW0DL3CFBDh6idkam9xVHy253JoAxfl40RR MRzvm1kh3Y8oW+cCbjx18U6YuErtL27wFRDqOZpHF7DvzbgEECHrQR1awxc1jdqx46 m9oRhiYN0ys9/F69GKCWG2s8AgsrcQxTzSRiHAuA= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181113121300eucas1p242bebd3a37bca35a9bd07041205f5c87~mrfK6FsWn2999529995eucas1p28; Tue, 13 Nov 2018 12:13:00 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 23.E4.04806.CCFBAEB5; Tue, 13 Nov 2018 12:13:00 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20181113121259eucas1p1420f91da14601bea01178c04206250f9~mrfKJBMyi2393423934eucas1p1e; Tue, 13 Nov 2018 12:12:59 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20181113121259eusmtrp2d9287adf722312c9bf2a9f5287c1bde3~mrfJ6Sq4r2687426874eusmtrp2H; Tue, 13 Nov 2018 12:12:59 +0000 (GMT) X-AuditID: cbfec7f5-34dff700000012c6-d7-5beabfccc6f0 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id B0.EC.04128.BCFBAEB5; Tue, 13 Nov 2018 12:12:59 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121258eusmtip140a717680d5c02a4c97821d4b4108d4a~mrfJPIh3s1100611006eusmtip1W; Tue, 13 Nov 2018 12:12:58 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:27 +0300 Message-Id: <20181113121228.17650-9-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VSa0hTYRjuO2dnO44mxyn6YoG4ii54KTM4lngJoUN/6rdDaulBLZ2yqWVC mnlrmJqJC8sUCzWHZTkvM0mb5iQziUyn5iVDbTMl8zoTzXkm/Xve58Lz8PGRuPgR4UpGyxNY hVwWI+ELeY1dlj7Pj21m6fG1egGtLX5A0OaKPpzuz7YI6Fffewl6pC2XRxcWdSO69M8Mokce n6enPq/jdMYzHRYkZIybw3zmaasJY6bVHRhjbOohmOmhLcTMDOTymDxtDWK27nwlLpKhQv8I NiY6iVV4B1wWRpW1lwjiG9xvVPwYQGlI66JCdiRQvtDUusRXISEppqoRVA5vYNyxhGChZA7n jkUE2bUraDfSMbtsi1QhKGlIs0XWEGwMZu64+JQHfNB07mAnyg9UgypkNeFUIwbjv8Zxq+BI nQNL/YbAinnUIXiebiGsWESdAfX8JJ+rcwNNXfuO347yh9vjD3eqgXoigILMPAFnCoHauxk4 hx3BbNDa+P2wpSvDOJwK4xkmxIVzEKj1mzYhELSzn7YD5Pa8o/CyxZujg8FSucK30kDZg3HO wUrj27CwUY1ztAhyssSc+yD8fVdlW+AKQ/OLtgUMTA/tPlA+gi89LVgBciv5X1aOUA1yYROV sZGs8qScve6llMUqE+WRXuFxsa/R9pfp2TQsN6O3G1f0iCKRZK+oW22SiglZkjI5Vo+AxCVO Ip2vWSoWRciSb7KKuEuKxBhWqUf7SJ7ERZSyZ0IqpiJlCew1lo1nFbsqRtq5piGsL2Np3eDl EGJwbwkOLS22VBLtQv294R6f6qj8zcgjp8NFV91kW2+yxkYn6i749K+wxi7nW4b3AcZZambh bPKkZ/RPsqhS0zvyzc+vJlAzdT/Mt1M6uqrSef4mgvLdT7WFpIc5D0RrDrusjtk1k4kHyj1M 7i/UKamD9jEWOSPhKaNkJ47hCqXsH09fQFkuAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRmVeSWpSXmKPExsVy+t/xu7qn97+KNpj6VNBiy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBGlZ1OUX1qSqpCRX1xiqxRtaGGk Z2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5eglzH/wCz2gq2KFYseX2NsYNwi3sXIySEh YCJx+PVXti5GLg4hgaWMEtvfPGCFSEhJ/Ph1AcoWlvhzrQuq6BtQ0ce5bCAJNgEdiVOrjzCC 2CIC1hLrvm9kASliFtjDJHFk13uwbmEBd4mfm/+wg9gsAqoSK5t+gsV5gRqmv3vEBrFBXmL1 hgPMIDangI1E4/0ZYHEhoJr9+3rZJjDyLWBkWMUoklpanJueW2ykV5yYW1yal66XnJ+7iREY 8tuO/dyyg7HrXfAhRgEORiUe3hPTX0YLsSaWFVfmHmKU4GBWEuHdafIqWog3JbGyKrUoP76o NCe1+BCjKdBRE5mlRJPzgfGYVxJvaGpobmFpaG5sbmxmoSTOe96gMkpIID2xJDU7NbUgtQim j4mDU6qBsZ/5/x3Fw9mLynXf3+r8/nhVqXEig/ViL2th+XPrebnLN6gctEi5bX5+yS7ulVUP 5v/5rLX411elfaoad99bPJU6tDG288bCNZt4NgbNV5/mHKbWJ2s4n/lzzNl5nfvWN9p4rPyd X2qYuWb6zYyCLUlGa37X+0673RxlvyPF/lxht8Hs9UdfMCqxFGckGmoxFxUnAgC4Ab2GjwIA AA== X-CMS-MailID: 20181113121259eucas1p1420f91da14601bea01178c04206250f9 X-Msg-Generator: CA X-RootMTR: 20181113121259eucas1p1420f91da14601bea01178c04206250f9 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121259eucas1p1420f91da14601bea01178c04206250f9 References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 8/9] netdev-dummy: Add flow offloading related logs. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Add debug logging for partial HWOL for dummy interfaces for the future using in tests. Signed-off-by: Ilya Maximets --- lib/netdev-dummy.c | 66 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index bd18a5190..3d548e55e 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -1438,6 +1438,7 @@ netdev_dummy_flow_put(struct netdev *netdev, struct match *match, { struct netdev_dummy *dev = netdev_dummy_cast(netdev); struct offloaded_flow *off_flow; + bool modify = true; ovs_mutex_lock(&dev->mutex); @@ -1448,6 +1449,7 @@ netdev_dummy_flow_put(struct netdev *netdev, struct match *match, memcpy(&off_flow->ufid, ufid, sizeof *ufid); hmap_insert(&dev->offloaded_flows, &off_flow->node, netdev_dummy_flow_hash(ufid)); + modify = false; } off_flow->mark = info->flow_mark; @@ -1460,6 +1462,20 @@ netdev_dummy_flow_put(struct netdev *netdev, struct match *match, ovs_mutex_unlock(&dev->mutex); + if (VLOG_IS_DBG_ENABLED()) { + struct ds ds = DS_EMPTY_INITIALIZER; + + ds_put_format(&ds, "%s: flow put[%s]: ", netdev_get_name(netdev), + modify ? "modify" : "create"); + odp_format_ufid(ufid, &ds); + ds_put_cstr(&ds, " flow match: "); + match_format(match, NULL, &ds, OFP_DEFAULT_PRIORITY); + ds_put_format(&ds, ", mark: %"PRIu32, info->flow_mark); + + VLOG_DBG("%s", ds_cstr(&ds)); + ds_destroy(&ds); + } + return 0; } @@ -1469,20 +1485,43 @@ netdev_dummy_flow_del(struct netdev *netdev, const ovs_u128 *ufid, { struct netdev_dummy *dev = netdev_dummy_cast(netdev); struct offloaded_flow *off_flow; + const char *error = NULL; + uint32_t mark; ovs_mutex_lock(&dev->mutex); off_flow = find_offloaded_flow(&dev->offloaded_flows, ufid); if (!off_flow) { - ovs_mutex_unlock(&dev->mutex); - return -1; + error = "No such flow."; + goto exit; } + mark = off_flow->mark; hmap_remove(&dev->offloaded_flows, &off_flow->node); free(off_flow); +exit: ovs_mutex_unlock(&dev->mutex); - return 0; + + if (error || VLOG_IS_DBG_ENABLED()) { + struct ds ds = DS_EMPTY_INITIALIZER; + + ds_put_format(&ds, "%s: ", netdev_get_name(netdev)); + if (error) { + ds_put_cstr(&ds, "failed to "); + } + ds_put_cstr(&ds, "flow del: "); + odp_format_ufid(ufid, &ds); + if (error) { + ds_put_format(&ds, " error: %s", error); + } else { + ds_put_format(&ds, " mark: %"PRIu32, mark); + } + VLOG(error ? VLL_WARN : VLL_DBG, "%s", ds_cstr(&ds)); + ds_destroy(&ds); + } + + return error ? -1 : 0; } #define DUMMY_FLOW_OFFLOAD_API \ @@ -1637,7 +1676,28 @@ netdev_dummy_queue_packet(struct netdev_dummy *dummy, struct dp_packet *packet, } HMAP_FOR_EACH (data, node, &dummy->offloaded_flows) { if (flow_equal_except(flow, &data->match.flow, &data->match.wc)) { + dp_packet_set_flow_mark(packet, data->mark); + + if (VLOG_IS_DBG_ENABLED()) { + struct ds ds = DS_EMPTY_INITIALIZER; + + ds_put_format(&ds, "%s: packet: ", + netdev_get_name(&dummy->up)); + /* 'flow' does not contain proper port number here. + * Let's just clear it as it wildcarded anyway. */ + flow->in_port.ofp_port = 0; + flow_format(&ds, flow, NULL); + + ds_put_cstr(&ds, " matches with flow: "); + odp_format_ufid(&data->ufid, &ds); + ds_put_cstr(&ds, " "); + match_format(&data->match, NULL, &ds, OFP_DEFAULT_PRIORITY); + ds_put_format(&ds, " with mark: %"PRIu32, data->mark); + + VLOG_DBG("%s", ds_cstr(&ds)); + ds_destroy(&ds); + } break; } } From patchwork Tue Nov 13 12:12:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 997061 X-Patchwork-Delegate: ian.stokes@intel.com 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; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="Uv0sQkkw"; 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 42vRTp4Bhlz9s1c for ; Tue, 13 Nov 2018 23:17:50 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id A0854B0A; Tue, 13 Nov 2018 12:13:06 +0000 (UTC) X-Original-To: ovs-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 E43C6AF7 for ; Tue, 13 Nov 2018 12:13:05 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 4C56819B for ; Tue, 13 Nov 2018 12:13:05 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181113121303euoutp02bf4f319b958bcddcc0395ca6f028d347~mrfOJN0J_0377303773euoutp02Q for ; Tue, 13 Nov 2018 12:13:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181113121303euoutp02bf4f319b958bcddcc0395ca6f028d347~mrfOJN0J_0377303773euoutp02Q DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1542111183; bh=Ou9xUGYxwZ2yyp23Lqxk2Zwf3cBEMhM/QMk5iO91xnY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Uv0sQkkw70jQ8o+2fE824j2/yegfSoUxhvgGyCNkfzuB931G2QNT0mvEogZ7f7wyb YVcLGnYYkRMF5Hxzpis7C0eyMGOVR77cO/8r3SCuXYicBV9++BL9wmei4Yy8gFTEwo /I2jXwz1doIW7SG6NNcCv2WybQRzZMMbbB6jN6Ak= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181113121303eucas1p2362b87b1624435c73978a661d0b97a0b~mrfNm_-zQ3000730007eucas1p2B; Tue, 13 Nov 2018 12:13:03 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id F4.08.04441.FCFBAEB5; Tue, 13 Nov 2018 12:13:03 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20181113121302eucas1p24e6c53f04f03d018a52102644775cfd5~mrfMzQPS22453324533eucas1p2R; Tue, 13 Nov 2018 12:13:02 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20181113121302eusmtrp293f52a5adea93b9878b0d002fbfea626~mrfMkfFmB2687426874eusmtrp2L; Tue, 13 Nov 2018 12:13:02 +0000 (GMT) X-AuditID: cbfec7f2-5e3ff70000001159-9c-5beabfcf99d5 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 03.28.04284.ECFBAEB5; Tue, 13 Nov 2018 12:13:02 +0000 (GMT) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20181113121301eusmtip1ad6d5df992f87255c44e420a77afbf90~mrfL7wLXf1152711527eusmtip1d; Tue, 13 Nov 2018 12:13:01 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ian Stokes Date: Tue, 13 Nov 2018 15:12:28 +0300 Message-Id: <20181113121228.17650-10-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113121228.17650-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKKsWRmVeSWpSXmKPExsWy7djP87rn97+KNjgxkdViy7TJrBavFp1n trjS/pPdYuPDs6wWt/f3sFhMmnKC0WLup+eMFrfneFk8vfiL2aJlyU4mBy6PG/9usXks3vOS yePZ9MNMHje2n2b1eHbzP6PH82s9LB59W1YxevxvvsoawBHFZZOSmpNZllqkb5fAlXH/p3LB QqWKNX33mBsYZ8l2MXJwSAiYSPROUuti5OIQEljBKLF07hWmLkZOIOcLo8SzKXYQic+MEitO 9rKAJEAaLl1/yAZRtJxR4k2nL0TRD0aJ+d87wLrZBHQkTq0+wghiiwhYSnRd72IEKWIW2MYk cf/NfWaQ1cICwRK3p5WC1LAIqEoseTqfFSTMK2AjcXGjPcQueYnVGw4wg9icQOHG+zPYQMZI CMxjl7iz+QgrRJGLxJnvq5kgbGGJV8e3sEPYMhL/d86HitdL3G95yQjR3MEoMf3QP6iEvcSW 1+fYQRYzC2hKrN+lDxF2lHi17w0LJIT4JG68FQQJMwOZk7ZNZ4YI80p0tAlBVKtI/D64nBnC lpK4+e4z1AUeEp/Wt7BBgqefUWLr3AcsExjlZyEsW8DIuIpRPLW0ODc9tdgwL7Vcrzgxt7g0 L10vOT93EyMwsZz+d/zTDsavl5IOMQpwMCrx8J6Y/jJaiDWxrLgy9xCjBAezkgjvTpNX0UK8 KYmVValF+fFFpTmpxYcYpTlYlMR5qxkeRAsJpCeWpGanphakFsFkmTg4pRoY3SwfXc1RebfS y13M53u1UuIbH+M9l2o/Bk1USQ1u+SERZ9+jzWfjFf3mE2+fv2JcRklYo6ForvG1p/O11yys 2BvFwdSX7n8t1PTc6Z7g2L8ebgf9kriebhSX+sXDniNwZc+S508ENIvNLa7zKLz5rTc15kDf 9u9rP/YuTPK/u/sS56YGsSIlluKMREMt5qLiRACXLTIdKAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRmVeSWpSXmKPExsVy+t/xu7rn9r+KNvjcymOxZdpkVotXi84z W1xp/8lusfHhWVaL2/t7WCwmTTnBaDH303NGi9tzvCyeXvzFbNGyZCeTA5fHjX+32DwW73nJ 5PFs+mEmjxvbT7N6PLv5n9Hj+bUeFo++LasYPf43X2UN4IjSsynKLy1JVcjILy6xVYo2tDDS M7S00DMysdQzNDaPtTIyVdK3s0lJzcksSy3St0vQy7j/U7lgoVLFmr57zA2Ms2S7GDk5JARM JC5df8jWxcjFISSwlFHi0JEHrBAJKYkfvy5A2cISf651sYHYQgLfGCXmrOcBsdkEdCROrT7C CGKLCFhLrPu+kQVkELPAHiaJI7vegzULCwRKbF/RygJiswioSix5Oh8ozsHBK2AjcXGjPcR8 eYnVGw4wg9icQOHG+zOgdllL7N/XyzaBkW8BI8MqRpHU0uLc9NxiQ73ixNzi0rx0veT83E2M wGDfduzn5h2MlzYGH2IU4GBU4uE9Mf1ltBBrYllxZe4hRgkOZiUR3p0mr6KFeFMSK6tSi/Lj i0pzUosPMZoC3TSRWUo0OR8YiXkl8YamhuYWlobmxubGZhZK4rznDSqjhATSE0tSs1NTC1KL YPqYODilGhh1Vh3S1Lf1KQs9+8fFp+ih4Df2i/aRot05cz78sqnfcqcqi6vIa7Xmv8NKgsHn 7mzJ33QyWSC2qdmCL6FdMHyCy4yZ5mZfLcU47dhezrFpOxq885Nq99OD5vumekdv5Fke3vFn urfJ7qALKnfmXTgeciYnYP6j4N/C7ctNAtV3bXlQqfYg30aJpTgj0VCLuag4EQCgg0LbjAIA AA== X-CMS-MailID: 20181113121302eucas1p24e6c53f04f03d018a52102644775cfd5 X-Msg-Generator: CA X-RootMTR: 20181113121302eucas1p24e6c53f04f03d018a52102644775cfd5 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181113121302eucas1p24e6c53f04f03d018a52102644775cfd5 References: <20181113121228.17650-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Shahaf Shuler , Flavio Leitner , Ilya Maximets Subject: [ovs-dev] [PATCH v2 9/9] dpif-netdev.at: Add basic test for partial HW offloading. 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: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Simple test for basic partial HWOL functionality. Signed-off-by: Ilya Maximets --- tests/dpif-netdev.at | 73 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at index 6915d43ba..dd47f8874 100644 --- a/tests/dpif-netdev.at +++ b/tests/dpif-netdev.at @@ -34,6 +34,18 @@ filter_flow_install () { grep 'flow_add' | sed 's/.*flow_add: //' | sort | uniq } +filter_hw_flow_install () { + grep 'netdev_dummy.*flow put\[create\]' | sed 's/.*|DBG|//' | sort | uniq +} + +filter_hw_flow_del () { + grep 'netdev_dummy.*flow del' | sed 's/.*|DBG|//' | sort | uniq +} + +filter_hw_packet_netdev_dummy () { + grep 'netdev_dummy.*: packet:' | sed 's/.*|DBG|//' | sort | uniq +} + filter_flow_dump () { grep 'flow_dump ' | sed ' s/.*flow_dump // @@ -346,3 +358,64 @@ recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), a OVS_VSWITCHD_STOP AT_CLEANUP + +m4_define([DPIF_NETDEV_FLOW_HW_OFFLOAD], + [AT_SETUP([dpif-netdev - partial hw offload - $1]) + OVS_VSWITCHD_START( + [add-port br0 p1 -- set interface p1 type=$1 ofport_request=1 options:pstream=punix:$OVS_RUNDIR/p1.sock -- \ + set bridge br0 datapath-type=dummy \ + other-config:datapath-id=1234 fail-mode=secure], [], [], + [m4_if([$1], [dummy-pmd], [--dummy-numa="0,0,0,0,1,1,1,1"], [])]) + AT_CHECK([ovs-appctl vlog/set dpif:file:dbg dpif_netdev:file:dbg netdev_dummy:file:dbg]) + + AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:hw-offload=true]) + OVS_WAIT_UNTIL([grep "netdev: Flow API Enabled" ovs-vswitchd.log]) + + AT_CHECK([ovs-ofctl del-flows br0]) + AT_CHECK([ovs-ofctl add-flow br0 in_port=1,actions=IN_PORT]) + + packet="packet_type(ns=0,id=0),eth(src=00:06:07:08:09:0a,dst=00:01:02:03:04:05),eth_type(0x0800),ipv4(src=127.0.0.1,dst=127.0.0.1,proto=0,tos=0,ttl=64,frag=no)" + AT_CHECK([ovs-appctl netdev-dummy/receive p1 $packet --len 64], [0]) + + OVS_WAIT_UNTIL([grep "miss upcall" ovs-vswitchd.log]) + AT_CHECK([grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1], [0], [dnl +skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=00:06:07:08:09:0a,dst=00:01:02:03:04:05),eth_type(0x0800),ipv4(src=127.0.0.1,dst=127.0.0.1,proto=0,tos=0,ttl=64,frag=no) +]) + # Check that flow successfully offloaded. + OVS_WAIT_UNTIL([grep "succeed to add netdev flow" ovs-vswitchd.log]) + AT_CHECK([filter_hw_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl +p1: flow put[[create]]: flow match: recirc_id=0,eth,ip,in_port=1,vlan_tci=0x0000,nw_frag=no, mark: 0 +]) + # Check that datapath flow installed successfully. + AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions: +]) + # Inject the same packet again. + AT_CHECK([ovs-appctl netdev-dummy/receive p1 $packet --len 64], [0]) + + # Check for succesfull packet matching with installed offloaded flow. + AT_CHECK([filter_hw_packet_netdev_dummy < ovs-vswitchd.log | strip_xout], [0], [dnl +p1: packet: ip,vlan_tci=0x0000,dl_src=00:06:07:08:09:0a,dl_dst=00:01:02:03:04:05,nw_src=127.0.0.1,nw_dst=127.0.0.1,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=64 matches with flow: recirc_id=0,eth,ip,vlan_tci=0x0000,nw_frag=no with mark: 0 +]) + + ovs-appctl revalidator/wait + # Dump the datapath flow to see that actions was executed for a packet. + AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_timers], [0], [dnl +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:64, used:0.0s, actions:1 +]) + + # Wait for datapath flow expiration. + ovs-appctl time/stop + ovs-appctl time/warp 15000 + ovs-appctl revalidator/wait + + # Check that flow successfully deleted from HW. + OVS_WAIT_UNTIL([grep "succeed to delete netdev flow" ovs-vswitchd.log]) + AT_CHECK([filter_hw_flow_del < ovs-vswitchd.log | strip_xout], [0], [dnl +p1: flow del: mark: 0 +]) + OVS_VSWITCHD_STOP + AT_CLEANUP]) + +DPIF_NETDEV_FLOW_HW_OFFLOAD([dummy]) +DPIF_NETDEV_FLOW_HW_OFFLOAD([dummy-pmd])