From patchwork Fri Jun 1 08:17:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rohith Basavaraja X-Patchwork-Id: 923872 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=ericsson.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ericsson.com header.i=@ericsson.com header.b="DEH1Lw4I"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ericsson.com header.i=@ericsson.com header.b="lqit0Owj"; 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 40xxz106T9z9ry1 for ; Fri, 1 Jun 2018 18:17:48 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id A99991279; Fri, 1 Jun 2018 08:17:45 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id F01FD1269 for ; Fri, 1 Jun 2018 08:17:41 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id C6AE66EC for ; Fri, 1 Jun 2018 08:17:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; d=ericsson.com; s=mailgw201801; c=relaxed/simple; q=dns/txt; i=@ericsson.com; t=1527841058; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=zL1EsY4r0pT+Txd6i3CTClnMmRbpXenZPNh4tGKvhHE=; b=DEH1Lw4IPaMGBfG5ITVDVCLhTplWmzdffW/GQTId4f8nF26vlpOITyj8juOx793f PaeI68nLbdik0a0KHRik+hcyeKGru3iK0zY3sKDtzkTrRN+njr/efw/WG6qIdIhv J5QA4z4CPzPRg1a5S496ZcspeQtfv+DqZaL3eOMesI0=; X-AuditID: c1b4fb2d-03f859c0000028db-94-5b110121d55a Received: from ESESSHC019.ericsson.se (Unknown_Domain [153.88.183.75]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 70.93.10459.121011B5; Fri, 1 Jun 2018 10:17:38 +0200 (CEST) Received: from ESESBMR503.ericsson.se (153.88.183.135) by ESESSHC019.ericsson.se (153.88.183.75) with Microsoft SMTP Server (TLS) id 14.3.382.0; Fri, 1 Jun 2018 10:17:09 +0200 Received: from ESESSMB505.ericsson.se (153.88.183.166) by ESESBMR503.ericsson.se (153.88.183.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Fri, 1 Jun 2018 10:17:09 +0200 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB505.ericsson.se (153.88.183.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Fri, 1 Jun 2018 10:17:09 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zL1EsY4r0pT+Txd6i3CTClnMmRbpXenZPNh4tGKvhHE=; b=lqit0OwjxrbL5B37biEoeiUIBT5sTUJjQ724VFudg9ss0jJQ5JZAXK6VjrYkh45YJfST00opeCaSpctk34yrD66hWX9boV/mPEApG3XCDREmBBmOc1OtaqhsEc2GhHiwud6da3aKzg8ARyTUQVgxsxPisFTEvT20Solo1tuRIbc= Received: from VI1PR07MB1599.eurprd07.prod.outlook.com (10.165.239.21) by VI1PR07MB1312.eurprd07.prod.outlook.com (10.164.92.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.5; Fri, 1 Jun 2018 08:17:08 +0000 Received: from VI1PR07MB1599.eurprd07.prod.outlook.com ([fe80::6945:2648:f4cd:176f]) by VI1PR07MB1599.eurprd07.prod.outlook.com ([fe80::6945:2648:f4cd:176f%6]) with mapi id 15.20.0841.006; Fri, 1 Jun 2018 08:17:07 +0000 From: Rohith Basavaraja To: "dev@openvswitch.org" Thread-Topic: [PATCH 2/2] Add Drop Stats unit test cases Thread-Index: AQHT+YDustcCcPNBOUmL8sJYV4ytng== Date: Fri, 1 Jun 2018 08:17:07 +0000 Message-ID: <2EECC704-D6C8-4389-9D1B-F54CCCFFB1CC@ericsson.com> Accept-Language: en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/f.29.0.171205 x-originating-ip: [125.16.128.122] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR07MB1312; 7:1pm2LEQGX/nzYlmJCoixSZbMfGsy/QKb2vGNM6sEJRRqIunnLj/mXPGKR5WhsPMVRTfh72LF7UTZSNBf1HSX7JjKPdqkZmcNOIQnBICGLZ845JxgUvXW7kigjdu7/SUKe727g+kztpnV9k+pNNSFdj5YQuKPd8DCjbnsjSz/FCVD89B0zkV0i9dJVT7XNxluzLOxbUwXkv2zyunYWkTHRbmwHfQtVwi2bPmHgzxUOBrFZyI2gUJ4LlK+xtY1Jykq x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10009020)(346002)(366004)(376002)(39380400002)(396003)(39860400002)(189003)(199004)(5660300001)(58126008)(316002)(82746002)(105586002)(5250100002)(2501003)(186003)(8936002)(2351001)(8676002)(6916009)(106356001)(1730700003)(97736004)(3280700002)(81166006)(3660700001)(478600001)(966005)(305945005)(14454004)(81156014)(6512007)(6306002)(5640700003)(25786009)(6506007)(7736002)(6436002)(26005)(99286004)(4326008)(107886003)(59450400001)(55236004)(53936002)(2906002)(86362001)(3846002)(6116002)(68736007)(476003)(575784001)(102836004)(486006)(66066001)(2616005)(83716003)(2900100001)(36756003)(33656002)(6486002)(44832011); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB1312; H:VI1PR07MB1599.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR07MB1312; x-ms-traffictypediagnostic: VI1PR07MB1312: authentication-results: spf=none (sender IP is ) smtp.mailfrom=rohith.basavaraja@ericsson.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(37575265505322); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(149027)(150027)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:VI1PR07MB1312; BCL:0; PCL:0; RULEID:; SRVR:VI1PR07MB1312; x-forefront-prvs: 0690E5FF22 received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: R7uQqeUgYoU7Ibyg3PGmQnfYBAWlpj4wcqzWAGFyKJqGn3sSDzu2ngDdH5qU60UQvXureTNiYk+vm3xdBy+a3WmchI4XNQkd99dGPbEPbr5pIrQk3Oc4DqESpK/AD140lrX/MrIsu1yvLjWJ0+lotK//6U1YSkudA9mQY4NrhwZIfqzaIVKc9T6UjlYMqR5c spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: <8FBD0A8825B2E646AB51CC6AFD7F10AD@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c019f7e9-e796-48dc-e25d-08d5c79810d7 X-MS-Exchange-CrossTenant-Network-Message-Id: c019f7e9-e796-48dc-e25d-08d5c79810d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2018 08:17:07.3072 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB1312 X-OriginatorOrg: ericsson.com X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpjleLIzCtJLcpLzFFi42KZGbHdW1eJUTDaYH8zu8XR03uYHRg9nt38 zxjAGMVlk5Kak1mWWqRvl8CV8fr5YvaCcxMZKz7MWcbYwPihl7GLkZNDQsBE4saSZ8xdjFwc QgJHGCW2/rvECOFsZpToaGqCcr4ySlxa0g7lLGaSeNc/iQmkn0VgArPE5u2CILaQQD+TxJ/7 whBFDxkl5i06CTSYg4NNwEKifWMqSI2IgL7EoZ6zLCA2s4CexKH1DWC2sICxxLL+eawg5SJA 5Rs3FUGU60ksO/WbGWKVikRPyxlWEJtXwF6i5/01MJtRQEzi+6k1TBAjxSWavqxkhXhNQGLJ nvPMELaoxMvH/8DiokAzX5y5xg4RV5LYPPMFE4QtK3Fpfjc0WLYwSXRurIawDSWOr9wPDiIJ gVVsEk2LprNAOPsZJT7t74OapCXRd/IxM8RFiRLPP8yFmpotcfjqDXA4SAhYScw7EwsRlpNY 1fuQZQKj0Swkd88CqmIW0JRYv0sfIuwh8enYDGYIW1FiSvdD9llg7wtKnJz5hGUBI+sqRtHi 1OLi3HQjY73Uoszk4uL8PL281JJNjMDUcXDLb90djKtfOx5iFOBgVOLh/f9PIFqINbGsuDL3 EKMEB7OSCO+UMv5oId6UxMqq1KL8+KLSnNTiQ4zSHCxK4rx6q/ZECQmkJ5akZqemFqQWwWSZ ODilGhh1++N0Zjn43JbmurJs0bGMu8vauBtnxmyzn+66a6LlzaZb5s4GTxbV3bkyKzX8f985 /qfzXa5cuniquXtnxpXOS3eXlx44faDRtuXir+/xJm8/mXru/Dnjt3fuQaPg2bu/vdpotrFy 2tWO9paOexJb66fkm6+7LZX4oeDdHj42hr3ftRZ945rSosRSnJFoqMVcVJwIADo1Ct8ZAwAA X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH 2/2] Add Drop Stats unit test cases X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org This patch adds unit test cases for Improved Drop statistics feature request raised by following https://patchwork.ozlabs.org/patch/918934/ Signed-off-by: Rohith Basavaraja --- tests/automake.mk | 3 +- tests/dpif-netdev.at | 6 ++ tests/drop-stats.at | 212 +++++++++++++++++++++++++++++++++++++++++++++ tests/packet-type-aware.at | 6 ++ tests/testsuite.at | 1 + tests/tunnel-push-pop.at | 23 ++++- tests/tunnel.at | 10 +++ 7 files changed, 258 insertions(+), 3 deletions(-) create mode 100644 tests/drop-stats.at diff --git a/tests/automake.mk b/tests/automake.mk index c420b29..a27b3a7 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -105,7 +105,8 @@ TESTSUITE_AT = \ tests/ovn-controller-vtep.at \ tests/mcast-snooping.at \ tests/packet-type-aware.at \ - tests/nsh.at + tests/nsh.at \ + tests/drop-stats.at SYSTEM_KMOD_TESTSUITE_AT = \ tests/system-common-macros.at \ diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at index c6f6a66..216b3c0 100644 --- a/tests/dpif-netdev.at +++ b/tests/dpif-netdev.at @@ -249,6 +249,12 @@ meter:2 flow_count:1 packet_in_count:5 byte_in_count:300 duration:0.0s bands: 0: packet_count:1 byte_count:60 ]) +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "meter drop" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +21 meter drop 5 +]) + # Advance time by 1/2 second ovs-appctl time/warp 500 diff --git a/tests/drop-stats.at b/tests/drop-stats.at new file mode 100644 index 0000000..c0c85ce --- /dev/null +++ b/tests/drop-stats.at @@ -0,0 +1,212 @@ +AT_BANNER([drop-stats]) + +AT_SETUP([drop-stats - cli tests]) + +OVS_VSWITCHD_START([dnl + set bridge br0 datapath_type=dummy \ + protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \ + add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1]) + +AT_DATA([flows.txt], [dnl +table=0,in_port=1,actions=drop +]) + +AT_CHECK([ + ovs-ofctl del-flows br0 + ovs-ofctl -Oopenflow13 add-flows br0 flows.txt + ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions +], [0], [dnl + in_port=1 actions=drop +]) + +AT_CHECK([ + ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637 + ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637 + ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637 +], [0], [ignore]) + +AT_CHECK([ovs-appctl dpctl/dump-flows | sed 's/used:[[0-9]].[[0-9]]*s/used:0.0/' | sort], [0], +[flow-dump from non-dpdk interfaces: +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:196, used:0.0, actions:drop:pipeline-drop +]) + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "pipeline drop" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +2 pipeline drop 3 +]) + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +dummy: +rx-drops :0 +dataplane-processing-drops :3 + drop action :3 + upcall drops :0 + dp error drops :0 +tx-drops :0 +]) + + +AT_CHECK([ovs-appctl dpif/clear-drop-stats]) + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +dummy: +rx-drops :0 +dataplane-processing-drops :0 + drop action :0 + upcall drops :0 + dp error drops :0 +tx-drops :0 +]) + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "pipeline drop" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +2 pipeline drop 0 +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([drop-stats - pipeline and recurssion drops]) + +OVS_VSWITCHD_START([dnl + set bridge br0 datapath_type=dummy \ + protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \ + add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \ + add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2]) + +AT_DATA([flows.txt], [dnl +table=0,in_port=1,actions=drop +]) + +AT_CHECK([ + ovs-ofctl del-flows br0 + ovs-ofctl -Oopenflow13 add-flows br0 flows.txt + ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions +], [0], [dnl + in_port=1 actions=drop +]) + +AT_CHECK([ + ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637 +], [0], [ignore]) + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "pipeline drop" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +2 pipeline drop 1 +]) + +AT_DATA([flows.txt], [dnl +table=0, in_port=1, actions=goto_table:1 +table=1, in_port=1, actions=goto_table:2 +table=2, in_port=1, actions=resubmit(,1) +]) + +AT_CHECK([ + ovs-ofctl del-flows br0 + ovs-ofctl -Oopenflow13 add-flows br0 flows.txt + ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions +], [0], [ignore]) + +AT_CHECK([ + ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637 +], [0], [ignore]) + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "recursion too deep" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +4 recursion too deep 1 +]) + +OVS_VSWITCHD_STOP(["/|WARN|/d"]) +AT_CLEANUP + +AT_SETUP([drop-stats - too many resubmit]) + +OVS_VSWITCHD_START +add_of_ports br0 1 +(for i in `seq 1 64`; do + j=`expr $i + 1` + echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local" + done + echo "in_port=65, actions=local") > flows.txt + +AT_CHECK([ + ovs-ofctl del-flows br0 + ovs-ofctl -Oopenflow13 add-flows br0 flows.txt +], [0], [ignore]) + +ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)' + + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "too many resubmits" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +5 too many resubmits 1 +]) + +OVS_VSWITCHD_STOP(["/|WARN|/d"]) +AT_CLEANUP + + +AT_SETUP([drop-stats - stack too deep]) +OVS_VSWITCHD_START +add_of_ports br0 1 +(for i in `seq 1 12`; do + j=`expr $i + 1` + echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local" + done + push="push:NXM_NX_REG0[[]]" + echo "in_port=13, actions=$push,$push,$push,$push,$push,$push,$push,$push") > flows + AT_CHECK([ovs-ofctl add-flows br0 flows]) + +ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)' + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "stack too deep" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +6 stack too deep 1 +]) + +OVS_VSWITCHD_STOP(["/resubmits yielded over 64 kB of stack/d"]) +AT_CLEANUP + +AT_SETUP([drop-stats - too many mpls labels]) + +OVS_VSWITCHD_START([dnl + set bridge br0 datapath_type=dummy \ + protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \ + add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \ + add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2]) + +AT_DATA([flows.txt], [dnl +table=0, in_port=1, actions=push_mpls:0x8847, resubmit:3 +table=0, in_port=3, actions=push_mpls:0x8847, set_field:10->mpls_label, set_field:15->mpls_label, resubmit:4 +table=0, in_port=4, actions=push_mpls:0x8847, set_field:11->mpls_label, resubmit:5 +table=0, in_port=5, actions=push_mpls:0x8847, set_field:12->mpls_label, resubmit:6 +table=0, in_port=6, actions=push_mpls:0x8847, set_field:13->mpls_label, output:2 +]) + +AT_CHECK([ + ovs-ofctl del-flows br0 + ovs-ofctl -Oopenflow13 add-flows br0 flows.txt +]) + +AT_CHECK([ + ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637 +], [0], [ignore]) + +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "too many mpls labels" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +9 too many mpls labels 1 +]) + +OVS_VSWITCHD_STOP(["/|WARN|/d"]) +AT_CLEANUP diff --git a/tests/packet-type-aware.at b/tests/packet-type-aware.at index ed20576..018519e 100644 --- a/tests/packet-type-aware.at +++ b/tests/packet-type-aware.at @@ -568,6 +568,12 @@ AT_CHECK([ recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:drop:unsupported packet type ]) +AT_CHECK([ + ovs-appctl dpif/show-drop-stats --detail | grep "unsupported packet type" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +11 unsupported packet type 2 +]) + # Encap(ethernet) on Ethernet frame -> should be droped AT_CHECK([ ovs-ofctl del-flows br0 diff --git a/tests/testsuite.at b/tests/testsuite.at index 15c385e..0588460 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -80,3 +80,4 @@ m4_include([tests/ovn-controller-vtep.at]) m4_include([tests/mcast-snooping.at]) m4_include([tests/packet-type-aware.at]) m4_include([tests/nsh.at]) +m4_include([tests/drop-stats.at]) diff --git a/tests/tunnel-push-pop.at b/tests/tunnel-push-pop.at index b2269df..72e576f 100644 --- a/tests/tunnel-push-pop.at +++ b/tests/tunnel-push-pop.at @@ -447,6 +447,24 @@ AT_CHECK([ovs-ofctl dump-ports int-br | grep 'port 7'], [0], [dnl port 7: rx pkts=3, bytes=252, drop=?, errs=?, frame=?, over=?, crc=? ]) +AT_CHECK([ovs-appctl dpif/clear-drop-stats]) +AT_CHECK([ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007079464000402fba600101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637']) + +AT_CHECK([ +ovs-appctl dpif/show-drop-stats --detail | grep "tunnel pop action" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +16 tunnel pop action errors 1 +]) + +AT_CHECK([ovs-appctl dpif/clear-drop-stats]) +AT_CHECK([ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004503007079464000402fba600101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637']) + +AT_CHECK([ +ovs-appctl dpif/show-drop-stats --detail | grep "ecn mismatch" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +12 ecn mismatch at tunnel decapsulation 1 +]) + dnl Check GREL3 only accepts non-fragmented packets? AT_CHECK([ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820000800000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637']) @@ -455,7 +473,7 @@ ovs-appctl time/warp 1000 AT_CHECK([ovs-ofctl dump-ports int-br | grep 'port [[37]]' | sort], [0], [dnl port 3: rx pkts=3, bytes=294, drop=?, errs=?, frame=?, over=?, crc=? - port 7: rx pkts=4, bytes=350, drop=?, errs=?, frame=?, over=?, crc=? + port 7: rx pkts=5, bytes=434, drop=?, errs=?, frame=?, over=?, crc=? ]) dnl Check decapsulation of Geneve packet with options @@ -510,7 +528,8 @@ AT_CHECK([ovs-appctl tnl/ports/show |sort], [0], [dnl Listening ports: ]) -OVS_VSWITCHD_STOP +OVS_VSWITCHD_STOP(["/dropping tunnel packet marked ECN CE but is not ECN capable/d +/ip packet has invalid checksum/d"]) AT_CLEANUP AT_SETUP([tunnel_push_pop - packet_out]) diff --git a/tests/tunnel.at b/tests/tunnel.at index 48aeb99..6c36915 100644 --- a/tests/tunnel.at +++ b/tests/tunnel.at @@ -107,6 +107,7 @@ AT_CHECK([tail -3 stdout], [0], Datapath actions: drop:ecn mismatch at tunnel decapsulation Translation failed (CONGESTION DROP), packet is dropped. ]) + OVS_VSWITCHD_STOP(["/dropping tunnel packet marked ECN CE but is not ECN capable/d"]) AT_CLEANUP @@ -194,6 +195,15 @@ AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00: AT_CHECK([tail -1 stdout], [0], [Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,ttl=64,flags(df|key))),set(skb_mark(0x2)),1 ]) + +AT_CHECK([ovs-appctl dpif/clear-drop-stats]) +AT_CHECK([ovs-appctl netdev-dummy/receive p2 'aa55aa550001f8bc124434b6080045000054ba20000040018486010103580101037001004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637']) + +AT_CHECK([ +ovs-appctl dpif/show-drop-stats --detail | grep "invalid port" | tr -s " " | sed 's/[ \t]*$//' +], [0], [dnl +23 invalid port 1 +]) OVS_VSWITCHD_STOP AT_CLEANUP