From patchwork Fri Oct 12 17:07:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 983211 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="R0yJnPwz"; 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 42WvMr3Gzvz9s55 for ; Sat, 13 Oct 2018 04:04:55 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 819CD1466; Fri, 12 Oct 2018 17:04: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 95A051145 for ; Fri, 12 Oct 2018 17:04: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 C68AA34F for ; Fri, 12 Oct 2018 17:04:50 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181012170448euoutp0260cd230ac5c6f129846725ec52ab9af2~c600NrZbH2645826458euoutp02w; Fri, 12 Oct 2018 17:04:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181012170448euoutp0260cd230ac5c6f129846725ec52ab9af2~c600NrZbH2645826458euoutp02w DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1539363888; bh=i5nK8xgZNvQ5CKWlpzGtHpCc+Bx7g30z92TqJZJEF6s=; h=From:To:Cc:Subject:Date:References:From; b=R0yJnPwzTIp0nq4wt2D+vFd/zxfhJVtdsx2WVqRRghpIVvC+igGLU40fgO+S2wczu C0D9vAn1m0a+FwR5hlY20FH6hh5ES4qtFJ43IqZwr7JEScQFGye2HZZFBS5hIN95Cu STOS1Oo22mwgyMQhLZRIbfLQvLawnPwHZGroHT6I= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181012170448eucas1p20b4b81f3722c6dd5c561627d2f911087~c60zsn9FN0978509785eucas1p2K; Fri, 12 Oct 2018 17:04:48 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 43.AB.04441.F24D0CB5; Fri, 12 Oct 2018 18:04:47 +0100 (BST) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181012170446eucas1p2a40888c3f547305c105143220d966cc7~c60yPqA5G0973809738eucas1p2L; Fri, 12 Oct 2018 17:04:46 +0000 (GMT) X-AuditID: cbfec7f2-5c9ff70000001159-fa-5bc0d42f5943 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 7D.70.04284.E24D0CB5; Fri, 12 Oct 2018 18:04:46 +0100 (BST) Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0PGH0060OWRSY320@eusync1.samsung.com>; Fri, 12 Oct 2018 18:04:46 +0100 (BST) From: Ilya Maximets To: ovs-dev@openvswitch.org, Ben Pfaff Date: Fri, 12 Oct 2018 20:07:11 +0300 Message-id: <20181012170711.1722-1-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgkeLIzCtJLcpLzFFi42LZduzneV39KweiDY49trJ4NbmB0eJK+092 i40Pz7JazP30nNGBxWPxnpdMHs9u/mf0eH6th8Wjb8sqxgCWKC6blNSczLLUIn27BK6MdXNP sxSsV6o4+HIRewPjC9kuRg4OCQETieZtWV2MXBxCAisYJb4fW80O4XxmlLh7bDNrFyMnWNHy 38dYQGwhgWWMEjvfG0MUNTNJbJ/bwgaSYBPQkTi1+ggjiC0C1LBs6jewOLOAv8T0Yw/AmoUF XCW+750PZrMIqEr0n5vKDGLzClhJ7OzdwQSxTF5i9YYDzCALJATOskpcu7SSHSLhIrH+5gIW CFtY4tXxLVBxGYnOjoNQzfUS91teMkI0dzBKTD/0DyphL7Hl9Tl2iIv4JCZtm84M8T+vREeb EESJh8S5K8ugvoyV6DrxnnUCo8QCRoZVjOKppcW56anFhnmp5XrFibnFpXnpesn5uZsYgfFz +t/xTzsYv15KOsQowMGoxMP7YduBaCHWxLLiytxDjBIczEoivAuygEK8KYmVValF+fFFpTmp xYcYpTlYlMR5l83bGC0kkJ5YkpqdmlqQWgSTZeLglGpgXMJmarRlqkHPPfnlW2V2qZyf/4jd 3W1bdZ1cfL2UjS+j76eyAw9aGFaqVJuXex1U25gue8pFRmAHo4B7a01P0ZeaO2I33WJT26Nr tu8x9/oo4aDF/Kfb6kJIk9GcmHtnt1jxJjwO8hJ+5r2mM6KouyJDcK0/+yf3TOlVfp+D3Fw0 pO991VRiKc5INNRiLipOBAD7kdA4mwIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDJMWRmVeSWpSXmKPExsVy+t/xy7p6Vw5EG7y9IWPxanIDo8WV9p/s FhsfnmW1mPvpOaMDi8fiPS+ZPJ7d/M/o8fxaD4tH35ZVjAEsUVw2Kak5mWWpRfp2CVwZ6+ae ZilYr1Rx8OUi9gbGF7JdjJwcEgImEst/H2PpYuTiEBJYwijxdf9jJginlUmiZeJZFpAqNgEd iVOrjzCC2CJAHcumfmMDsZkFfCXWNk5mArGFBVwlvu+dD1bPIqAq0X9uKjOIzStgJbGzdwcT xDZ5idUbDjBPYORawMiwilEktbQ4Nz232FCvODG3uDQvXS85P3cTI9DP24793LyD8dLG4EOM AhyMSjy8H7YdiBZiTSwrrsw9xCjBwawkwrsgCyjEm5JYWZValB9fVJqTWnyIUZqDRUmc97xB ZZSQQHpiSWp2ampBahFMlomDU6qB0fDPncbZ6w0cLuxbYDZdSF6Q+WOPUBDj/X9lLmv/ih1a ptAwf8Lv7qo1PacLj8Uv3uSeVyLn9Le7NJSbZ83pfzJm/2cb67gw3TacHL/785FXTw3mVs1Z 6rSHTyYhSODDwkbJnMzTx3cJP7ZdIRllnFnTvGcaZ+LGvAuhGvuUbny10LFa+nxznxJLcUai oRZzUXEiALRsQtHvAQAA X-CMS-MailID: 20181012170446eucas1p2a40888c3f547305c105143220d966cc7 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181012170446eucas1p2a40888c3f547305c105143220d966cc7 References: 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: Ilya Maximets Subject: [ovs-dev] [PATCH] dpif-netdev.at: Add datapath flow modification test. 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 This test is intended to cover flow_put operation for datapath flow modifications. Original bug was reported here: https://mail.openvswitch.org/pipermail/ovs-dev/2018-September/352579.html And fixed by commit: 35fe9efb2f02 ("dpif-netdev: Add vlan to mask for flow_put operation.") Signed-off-by: Ilya Maximets --- Ben, this test based on your test script. So, I'd like to add Co-authored-by: Ben Pfaff Signed-off-by: Ben Pfaff if you agree to sign-off this. tests/dpif-netdev.at | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at index 378292dac..6915d43ba 100644 --- a/tests/dpif-netdev.at +++ b/tests/dpif-netdev.at @@ -149,6 +149,60 @@ skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone DPIF_NETDEV_MISS_FLOW_INSTALL([dummy]) DPIF_NETDEV_MISS_FLOW_INSTALL([dummy-pmd]) +m4_define([DPIF_NETDEV_FLOW_PUT_MODIFY], + [AT_SETUP([dpif-netdev - datapath flow modification - $1]) + OVS_VSWITCHD_START( + [add-port br0 p1 -- set interface p1 type=$1 ofport_request=1 options:pstream=punix:$OVS_RUNDIR/p1.sock -- \ + add-port br0 p2 -- set interface p2 type=$1 ofport_request=2 options:pstream=punix:$OVS_RUNDIR/p2.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]) + + # Add a flow that directs some packets received on p1 to p2 and the + # rest back out p1. + AT_CHECK([ovs-ofctl del-flows br0]) + AT_CHECK([ovs-ofctl add-flow br0 priority=1,ip,in_port=1,dl_src=00:06:07:08:09:0a,dl_dst=00:01:02:03:04:05,actions=output:2]) + AT_CHECK([ovs-ofctl add-flow br0 priority=0,in_port=1,actions=IN_PORT]) + + # Inject a packet of the form that should go to p2. + packet="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(0x8100),vlan(vid=1000,pcp=5),encap(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(0x8100),vlan(vid=1000,pcp=5),encap(eth_type(0x0800),ipv4(src=127.0.0.1,dst=127.0.0.1,proto=0,tos=0,ttl=64,frag=no)) +]) + ovs-appctl revalidator/wait + # Dump the datapath flow to see that it goes to p2 ("actions:2"). + AT_CHECK([ovs-appctl dpif/dump-flows br0], [0], [dnl +recirc_id(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(0x8100),vlan(vid=1000,pcp=5),encap(eth_type(0x0800),ipv4(frag=no)), packets:0, bytes:0, used:never, actions:2 +]) + + # Delete the flows, then add new flows that would not match the same + # packet as before. + AT_CHECK([ovs-ofctl del-flows br0]) + AT_CHECK([ovs-ofctl add-flow br0 priority=1,in_port=1,dl_src=00:06:07:08:09:0a,dl_dst=00:01:02:03:04:05,dl_type=0x0801,actions=output:2]) + AT_CHECK([ovs-ofctl add-flow br0 priority=0,in_port=1,actions=IN_PORT]) + + # Wait for flow revalidation + ovs-appctl revalidator/wait + + # Inject the same packet again. + AT_CHECK([ovs-appctl netdev-dummy/receive p1 $packet --len 64]) + + ovs-appctl revalidator/wait + # Dump the datapath flow to see that it goes to p1 ("actions:IN_PORT"). + 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(src=00:06:07:08:09:0a,dst=00:01:02:03:04:05),eth_type(0x8100),vlan(vid=1000,pcp=5),encap(eth_type(0x0800),ipv4(frag=no)), packets:1, bytes:64, used:0.0s, actions:1 +]) + OVS_VSWITCHD_STOP + AT_CLEANUP]) + +DPIF_NETDEV_FLOW_PUT_MODIFY([dummy]) +DPIF_NETDEV_FLOW_PUT_MODIFY([dummy-pmd]) + + m4_define([DPIF_NETDEV_MISS_FLOW_DUMP], [AT_SETUP([dpif-netdev - miss upcall key matches flow_dump - $1]) OVS_VSWITCHD_START(