From patchwork Tue Mar 27 07:54:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shahaf Shuler X-Patchwork-Id: 891415 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=mellanox.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="yLwtg35L"; 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 409Ng13YVVz9s1P for ; Tue, 27 Mar 2018 18:58:21 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 7D67C1688; Tue, 27 Mar 2018 07:55: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 D9263165E for ; Tue, 27 Mar 2018 07:55:52 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0088.outbound.protection.outlook.com [104.47.2.88]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id EA82651F for ; Tue, 27 Mar 2018 07:55:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ZiM2XudLGNqMog3uDwQi8tu/Qqr9STbWBP0r17JTRGM=; b=yLwtg35LKwSc4JOcU18mUVRJ7xGnDgpVMnp9fIPaQSogsWIupIsRtwfgJGYXR9y+5J611RnkGK0ygxaGFE7sPBqXl5yH2M9Nmf/AyLzJoNYss9F9RDaNZxWvHRnDr+tEO5xOsCmtSDClrxVweIfxcibylzsP0XV5pRpgwykmhfg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; Received: from mellanox.com (141.226.120.58) by AM0PR05MB4418.eurprd05.prod.outlook.com (2603:10a6:208:5a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 07:55:46 +0000 From: Shahaf Shuler To: fc@napatech.com, ian.stokes@intel.com Date: Tue, 27 Mar 2018 10:54:45 +0300 Message-Id: <46627727bd00966149d16235c6b5ec5a3f99f841.1522136948.git.shahafs@mellanox.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: References: <1517209188-16608-2-git-send-email-yliu@fridaylinux.org> MIME-Version: 1.0 X-Originating-IP: [141.226.120.58] X-ClientProxiedBy: DB6PR1001CA0041.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:55::27) To AM0PR05MB4418.eurprd05.prod.outlook.com (2603:10a6:208:5a::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5fd4b388-a123-4814-e9d4-08d593b82659 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM0PR05MB4418; X-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4418; 3:6rBjDBuDFCRTVrE1P0e3ELGAvjq/Tf5+LPI8gyiNSrQDFE7HXlbe8PeDw4QXGCqS7Z7NKJQRaF7pL1UysDubxfNJLxKo+BO/k0s7CQv8fqdm8g4iS9I+btNl2fMTlPsvislqiun02EAHvtCSIysHr0SXekSq32nc3jVVx+DUm92xnH3M1vW3eCk8Zol2KYjjLFevaiNYWY+Uq3MBIZR3PHyCkeMvzPC8ii6NZ84B8XBYaXTGgskZK3lG702T88FW; 25:ak3F4tg3chBEhskVW7zJVK9hAG6LI9jXmt302YTfmebgz8UFayng5CONcR8rDgiXS3MY7BO1sDneq/H6gU9LlGt4260RTiH4fSHpaXqvM/7eQp8mqdaW/LWQwARHhXxFeGDyWlfMkr5P0iC6QlIIVIAhPmt2se9g0O1T5kKDVLI7naUVWRwFv9hnJ+nUsY6FvcALQhF+gex+SyApFhdTq8iQKsilGMKjWXRdbZnwNNYFHC/i7UaxmYwfWfsdH59IZpzBLAvf3DL12AyOqKDkWJ3W/+LEfKv3vLZjbviecN/hJbAKcQdI74tLekCzDbPsic8B5o4wuVxXmwdsqbDM3Q==; 31:pS7yM7mlWss9PSMWTCG41HkquLX7nDiYHRBLXWSobsgmFlAedSoTPLWliJwJnmGKjKlxNUOuZPxifHXVSZax3kxChFt/otDrqkAKmCJ3Hjs5vmWutc69oOtPKZr+6VWTPeP29GPndLW0SoQcKKE0xZsqMURai6XCqw+9wkFSx8bcmDBspmdnm7X0PrCPZR46geoKaZ+bm0RO4R8JYxCfsGD0eYmWMMtWF3wsP44NZ1s= X-MS-TrafficTypeDiagnostic: AM0PR05MB4418: X-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4418; 20:VMJBhIJfVXNfYRYTRD76F+Iaej7/4HGs5fm5UWbnWEieZKjVm/Rk/QU2h0UPMtW+/1NdBck/cnFL++4zwE9o9dnz7whJnqGtB44Vq7yR5q8YNFqP1usiO8k6BIlqseqRlsCSrcbi22HBkdFQZqME6VKRCHnzZiTCeh5KxPF1X2w0O6HgJ1Dsw4yMaX+MadCKQX+Dj4Y06CqlR02TrYHqwRb4NmJFH0p79HzV7tcXU2NaJZIYRgFQcHzj/8M2ZSTrmO7PMbDsQUuGnV4LjK2nlsFtl59XtKpazB2gQYKAmeF6DuRIb1GW1NAuB1C+v1Zkc0efuAIq9jI60NDbahrZKkezgG8Y/13hvO6eiDBHTY2/zWXLEdX9nP1VeMhImYajuFt2lLx6UvPr3K2CglNsBvxW/V6TI8He05XwL/i7AbWtpvrkZGZ3LKXzVlA7btdQd4ZZPOrO7zxjh47J73FUw8zaHGCurSm+VVoshDsL/GE0WjAJHWDSDIIb9xWAWriG; 4:pbVsRVsV3+PBUAkf5dEtHdCkKRyAWhsxWhlQrxfeS3wyGMSqwZgFv+8jlWtfhquXQ3xXcFiQeYmSHvs37oajxIStchJfnUBHZqh/+zOsziF1FLPoGMHclJYlsnYfTlrEZ/MT2PaFgy+Y4Ogi4fAwGUoP2EKDUZ90we8JbA7K2cnRQRi3H7x6uCFdTLa6jrXfzO44r75e9gnvOXEfEFvwvcnoBWNecdKMgBx5S3c2ReSBWsoGQd2VY6xyK1OPTWyLNc66YGsz5ryy4s4z+lhArQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231221)(944501327)(52105095)(6055026)(6041310)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:AM0PR05MB4418; BCL:0; PCL:0; RULEID:; SRVR:AM0PR05MB4418; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39860400002)(366004)(39380400002)(376002)(396003)(199004)(189003)(50226002)(7736002)(68736007)(3846002)(36756003)(6116002)(7696005)(50466002)(51416003)(21086003)(52116002)(386003)(76176011)(118296001)(16586007)(97736004)(8936002)(486005)(956004)(486005)(478600001)(305945005)(39060400002)(8676002)(25786009)(4326008)(48376002)(186003)(86362001)(26005)(316002)(106356001)(69596002)(16526019)(81156014)(55016002)(2906002)(81166006)(66066001)(105586002)(5660300001)(11346002)(2616005)(53936002)(47776003)(476003)(446003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR05MB4418; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM0PR05MB4418; 23:VMICMa+iLI+1nwOAgUL1L8EdGbm+Axi1K0kbRThwR?= 6Bgasvc/jUJTy56Gy/x4q5pg+dpVne+gQfHApaT0j5cI3i9dYwj/uWBDvi/LeGyHkaC/s4zR6/JolYYN160mqNl/7fiAS+zpTxmtfUtAeY2NA0v8ttkOjiJW+cSUarkqu8HlUxGCspS5Gd13ncYK7DgF56WgXjT0ojqMd3YL9NWrrdpQTj8nMEw1sj5mi9RxS3fjE4IaLvEdT8IfviFF2mjQem7mJJYhXrfkMrPsIjrFPJJjWWkOKLi8j+Efla4Bx9TnGgtOveP5qUD5HNJW8OGwdd9BCRilYPt6AG7pg9iqh3+xI3eQ3CFTZeTscCC/SBo+IQZRFENTMelPRASFK1a0EaZc1D1kX4rmqvyhSRrvg7eW5dGw2kXFINPMx+/tBmcUhIuO2v47VQ2sqyGl1yDriXzn1dBCQPU19CXgQ2HLdTuzAVw2CFWqLOsMZLm/TiDYDLhGcM6wLGKDkHUz8YYtq5neFSrWk0tX1sXxvHxR0K28XK0+K/JFBXagE6gkAvIe5SbSEt2zndFBZE0Syae7fpa+gHXJZrasAAnqlBepr02quJhlRy0VStVG94JULEm5hidixG0RaV61khJV5Y+qx1SKIRnyW7p1PWD7FQmtnI5yN9bYXFgRhSOCbKj8/0rRd47y6Y4tPc9kYwm56lks8xgvtRmSTAOcfAPU2Za4Hw1Fgn1KKbIqY5qq8IvcA/uPXMmgKVmF20mH9CkiPejeYfNRCsOTkZ5azRM3atBYzG1h3rf+Ufu3pioqlITsBO2cZS3klrro4uhCCyTuqGCtgqOHpeBXq0uloHAKIw5Wr0abLtkyK9sBcmogF6A9z2PtJ1R5Bt994Ec0SXcYzCNHOuRoFuEf/Ml1DZqRb58RHO/kFI7nvU6yJok3r3uJWtICOIz6wTbYtIiGCMzp1MfDaV01GWNGxiGMX3q+bRf+SMhW67ovCDtIkq5e3YcPELMhe4oh+Xpb9pVy/rVVeeQub4FNSShpvBOOBbAhplNx7f3qbajM9J9YwZYs5K4FYRaecKxGUjtyHu2tI8qILU003aXaZZe9ylTvJ6PSJe3ykk49Dy/HdezbVsm90fTnKVX+pg2A3FoBKxnHvw2pKl9RQtqPFwBQBa5YELVyF6nmyMqgXBKYR3VW3oCcwEOjbcNWgqe5EglNcE1/vXSgpTsigy1GAsvg3z54QOi5T+Pbg== X-Microsoft-Antispam-Message-Info: Stz27h1McoQ7z0WVzocC2zWtaTE7dC8b4O4pJCIPDVeIQEHS20B21ujXWAwAgPOKKrGKN7mtc/iWpCqT9b6dmMfDe6rcZeXpg4xyYa34AWJUz+SBbj+ope9G7Ojf3Um5GXfVu/GmFMfJ/yY9yNXRqF10/Y9fK4A8+eUhrdYSb5/jKe4tD7W4OcPTm7N+THlA X-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4418; 6:xcjy2z01jk6i0KIOvR4u6YH433aH/iPXzEx3J3jcCjlD/9pAdqVvcFnkmIQ+4/pPdvcVBO/wpjK+jdsq3c6dmWmSduL9BeejmFEYBsm9pqcaLiBAuKlKCFqW1TeoT8C/oes+hNSrXY3363rnOFjUzlm7Cl31DB9bkp5/QfohZ2Ob9VrHeef95ZUEHoqhq6L2KdceUfxmscIRt7IkMC80nbjzsTya27Iaxgo6eHKANAgbrmhTAwzky9EZrx+edNrxpv2E3B3YZs3UPjxPAUPywG28NaxCTtxJ0cCR+X1e3gDbEOEVqAShWePl1whDn680Z4SzSUtzxenU6tuVF2aWI9mf+yR/igTiJoqq0QguhVtx4jQwVcBpNuPCmep6AtxBnBE7H31zdnm2DdtcTw4kP7hXbkg356sri/PD5+Odu9UMdLn1H+10X9obCCLH6befVlhUzktuHy0btU7Umt5Czg==; 5:sUjVRn+xoGlIp1KfU1D81t+vtC5leR3yz/az1nwpscUPkK1UzLRCe7cdiOG8n3X0cmPYEuTM0cH2wNmY/7G/LDw18mr11Oyu0bMPQWfcPA+aaN6e91qvnfLxXyyQ0wV6RY03tEqEOe9TWCf5Nev1aGm6V5sCj0YruUye6yfSXFE=; 24:D60Nuq0ij9WFSZ8RWCVcSz4dJfgbvhGbjxrZcXtHX8xPZ66rahk36VdQ2izRcbqIMRS8F6vIedvssanqnPHR32seaHAsPNnvgr/DCVOCLX0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4418; 7:scoGCWOIs5qkG02+Djr/VBWxDRgdEWjiN7BjeXKA78gRQYd2FFBxgzHdafr9duXN5Hx2/fpo0VypETra6QzHXYbUBC1IYYuNWCN+hE6ZmLCwT5C+Gv9dhGJCnW8SC0lBsqPibAnVLWdS91HAIdZTfLxvKMm59yvQxLYvPzipdudZcDLhPj5l48hFXis+go4ozqB8K+wYbBg4Q8gMrRf9/98MWqAlu1+tRarS1vuDJms7RSYno/bau6yw8bEQqLzC X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 07:55:46.0422 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5fd4b388-a123-4814-e9d4-08d593b82659 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB4418 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: simon.horman@netronome.com, ovs-dev@openvswitch.org Subject: [ovs-dev] [PATCH v8 4/6] netdev-dpdk: add debug for rte flow patterns 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 From: Yuanhan Liu For debug purpose. Co-authored-by: Finn Christensen Signed-off-by: Yuanhan Liu Signed-off-by: Finn Christensen Signed-off-by: Shahaf Shuler --- lib/netdev-dpdk.c | 177 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index df4d480..9785b1e 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -3797,6 +3797,182 @@ struct flow_actions { }; static void +dump_flow_pattern(struct rte_flow_item *item) +{ + if (item->type == RTE_FLOW_ITEM_TYPE_ETH) { + const struct rte_flow_item_eth *eth_spec = item->spec; + const struct rte_flow_item_eth *eth_mask = item->mask; + + VLOG_DBG("rte flow eth pattern:\n"); + if (eth_spec) { + VLOG_DBG(" Spec: src="ETH_ADDR_FMT", dst="ETH_ADDR_FMT", " + "type=0x%04" PRIx16"\n", + eth_spec->src.addr_bytes[0], eth_spec->src.addr_bytes[1], + eth_spec->src.addr_bytes[2], eth_spec->src.addr_bytes[3], + eth_spec->src.addr_bytes[4], eth_spec->src.addr_bytes[5], + eth_spec->dst.addr_bytes[0], eth_spec->dst.addr_bytes[1], + eth_spec->dst.addr_bytes[2], eth_spec->dst.addr_bytes[3], + eth_spec->dst.addr_bytes[4], eth_spec->dst.addr_bytes[5], + ntohs(eth_spec->type)); + } else { + VLOG_DBG(" Spec = null\n"); + } + if (eth_mask) { + VLOG_DBG(" Mask: src="ETH_ADDR_FMT", dst="ETH_ADDR_FMT", " + "type=0x%04"PRIx16"\n", + eth_mask->src.addr_bytes[0], eth_mask->src.addr_bytes[1], + eth_mask->src.addr_bytes[2], eth_mask->src.addr_bytes[3], + eth_mask->src.addr_bytes[4], eth_mask->src.addr_bytes[5], + eth_mask->dst.addr_bytes[0], eth_mask->dst.addr_bytes[1], + eth_mask->dst.addr_bytes[2], eth_mask->dst.addr_bytes[3], + eth_mask->dst.addr_bytes[4], eth_mask->dst.addr_bytes[5], + eth_mask->type); + } else { + VLOG_DBG(" Mask = null\n"); + } + } + + if (item->type == RTE_FLOW_ITEM_TYPE_VLAN) { + const struct rte_flow_item_vlan *vlan_spec = item->spec; + const struct rte_flow_item_vlan *vlan_mask = item->mask; + + VLOG_DBG("rte flow vlan pattern:\n"); + if (vlan_spec) { + VLOG_DBG(" Spec: tpid=0x%"PRIx16", tci=0x%"PRIx16"\n", + ntohs(vlan_spec->tpid), ntohs(vlan_spec->tci)); + } else { + VLOG_DBG(" Spec = null\n"); + } + + if (vlan_mask) { + VLOG_DBG(" Mask: tpid=0x%"PRIx16", tci=0x%"PRIx16"\n", + vlan_mask->tpid, vlan_mask->tci); + } else { + VLOG_DBG(" Mask = null\n"); + } + } + + if (item->type == RTE_FLOW_ITEM_TYPE_IPV4) { + const struct rte_flow_item_ipv4 *ipv4_spec = item->spec; + const struct rte_flow_item_ipv4 *ipv4_mask = item->mask; + + VLOG_DBG("rte flow ipv4 pattern:\n"); + if (ipv4_spec) { + VLOG_DBG(" Spec: tos=0x%"PRIx8", ttl=%"PRIx8", proto=0x%"PRIx8 + ", src="IP_FMT", dst="IP_FMT"\n", + ipv4_spec->hdr.type_of_service, + ipv4_spec->hdr.time_to_live, + ipv4_spec->hdr.next_proto_id, + IP_ARGS(ipv4_spec->hdr.src_addr), + IP_ARGS(ipv4_spec->hdr.dst_addr)); + } else { + VLOG_DBG(" Spec = null\n"); + } + if (ipv4_mask) { + VLOG_DBG(" Mask: tos=0x%"PRIx8", ttl=%"PRIx8", proto=0x%"PRIx8 + ", src="IP_FMT", dst="IP_FMT"\n", + ipv4_mask->hdr.type_of_service, + ipv4_mask->hdr.time_to_live, + ipv4_mask->hdr.next_proto_id, + IP_ARGS(ipv4_mask->hdr.src_addr), + IP_ARGS(ipv4_mask->hdr.dst_addr)); + } else { + VLOG_DBG(" Mask = null\n"); + } + } + + if (item->type == RTE_FLOW_ITEM_TYPE_UDP) { + const struct rte_flow_item_udp *udp_spec = item->spec; + const struct rte_flow_item_udp *udp_mask = item->mask; + + VLOG_DBG("rte flow udp pattern:\n"); + if (udp_spec) { + VLOG_DBG(" Spec: src_port=%"PRIu16", dst_port=%"PRIu16"\n", + ntohs(udp_spec->hdr.src_port), + ntohs(udp_spec->hdr.dst_port)); + } else { + VLOG_DBG(" Spec = null\n"); + } + if (udp_mask) { + VLOG_DBG(" Mask: src_port=0x%"PRIx16", dst_port=0x%"PRIx16"\n", + udp_mask->hdr.src_port, + udp_mask->hdr.dst_port); + } else { + VLOG_DBG(" Mask = null\n"); + } + } + + if (item->type == RTE_FLOW_ITEM_TYPE_SCTP) { + const struct rte_flow_item_sctp *sctp_spec = item->spec; + const struct rte_flow_item_sctp *sctp_mask = item->mask; + + VLOG_DBG("rte flow sctp pattern:\n"); + if (sctp_spec) { + VLOG_DBG(" Spec: src_port=%"PRIu16", dst_port=%"PRIu16"\n", + ntohs(sctp_spec->hdr.src_port), + ntohs(sctp_spec->hdr.dst_port)); + } else { + VLOG_DBG(" Spec = null\n"); + } + if (sctp_mask) { + VLOG_DBG(" Mask: src_port=0x%"PRIx16", dst_port=0x%"PRIx16"\n", + sctp_mask->hdr.src_port, + sctp_mask->hdr.dst_port); + } else { + VLOG_DBG(" Mask = null\n"); + } + } + + if (item->type == RTE_FLOW_ITEM_TYPE_ICMP) { + const struct rte_flow_item_icmp *icmp_spec = item->spec; + const struct rte_flow_item_icmp *icmp_mask = item->mask; + + VLOG_DBG("rte flow icmp pattern:\n"); + if (icmp_spec) { + VLOG_DBG(" Spec: icmp_type=%"PRIu8", icmp_code=%"PRIu8"\n", + ntohs(icmp_spec->hdr.icmp_type), + ntohs(icmp_spec->hdr.icmp_code)); + } else { + VLOG_DBG(" Spec = null\n"); + } + if (icmp_mask) { + VLOG_DBG(" Mask: icmp_type=0x%"PRIx8", icmp_code=0x%"PRIx8"\n", + icmp_spec->hdr.icmp_type, + icmp_spec->hdr.icmp_code); + } else { + VLOG_DBG(" Mask = null\n"); + } + } + + if (item->type == RTE_FLOW_ITEM_TYPE_TCP) { + const struct rte_flow_item_tcp *tcp_spec = item->spec; + const struct rte_flow_item_tcp *tcp_mask = item->mask; + + VLOG_DBG("rte flow tcp pattern:\n"); + if (tcp_spec) { + VLOG_DBG(" Spec: src_port=%"PRIu16", dst_port=%"PRIu16 + ", data_off=0x%"PRIx8", tcp_flags=0x%"PRIx8"\n", + ntohs(tcp_spec->hdr.src_port), + ntohs(tcp_spec->hdr.dst_port), + tcp_spec->hdr.data_off, + tcp_spec->hdr.tcp_flags); + } else { + VLOG_DBG(" Spec = null\n"); + } + if (tcp_mask) { + VLOG_DBG(" Mask: src_port=%"PRIx16", dst_port=%"PRIx16 + ", data_off=0x%"PRIx8", tcp_flags=0x%"PRIx8"\n", + tcp_mask->hdr.src_port, + tcp_mask->hdr.dst_port, + tcp_mask->hdr.data_off, + tcp_mask->hdr.tcp_flags); + } else { + VLOG_DBG(" Mask = null\n"); + } + } +} + +static void add_flow_pattern(struct flow_patterns *patterns, enum rte_flow_item_type type, const void *spec, const void *mask) { int cnt = patterns->cnt; @@ -3814,6 +3990,7 @@ add_flow_pattern(struct flow_patterns *patterns, enum rte_flow_item_type type, patterns->items[cnt].spec = spec; patterns->items[cnt].mask = mask; patterns->items[cnt].last = NULL; + dump_flow_pattern(&patterns->items[cnt]); patterns->cnt++; }