From patchwork Tue Apr 17 11:40:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shahaf Shuler X-Patchwork-Id: 899220 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="XEc8koDz"; 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 40QNjM6bjSz9s0x for ; Tue, 17 Apr 2018 21:45:27 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id A0260EC4; Tue, 17 Apr 2018 11:41:21 +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 32ABAE0D for ; Tue, 17 Apr 2018 11:41:18 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0066.outbound.protection.outlook.com [104.47.1.66]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 290F067F for ; Tue, 17 Apr 2018 11:41:17 +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=on7ImkYXQN+CAnBxfFsf3YmRapuS1N3ywEZY9y/aWRQ=; b=XEc8koDzBw+/AzEtjmcgaA1efIKB5Bw86BRLqqnY884OOnkzKNL/QN7KBFLDUw189jkjN1i0xLmCrWvPLdynaxq5jZU9m/6eOVNw6Ud6T470nWeixWOysynoyZZRDEyD4oOV3Hnee96KuLAZq8fpl5xKwZIplMq13bvB+B4PFmM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; Received: from mellanox.com (141.226.120.58) by VI1PR05MB4432.eurprd05.prod.outlook.com (2603:10a6:803:42::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.14; Tue, 17 Apr 2018 11:41:10 +0000 From: Shahaf Shuler To: fc@napatech.com, ian.stokes@intel.com Date: Tue, 17 Apr 2018 14:40:11 +0300 Message-Id: <4d3e977d2a53a9a9014b60bba106e48c99ca9f44.1523964811.git.shahafs@mellanox.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [141.226.120.58] X-ClientProxiedBy: VI1P18901CA0015.EURP189.PROD.OUTLOOK.COM (2603:10a6:801::25) To VI1PR05MB4432.eurprd05.prod.outlook.com (2603:10a6:803:42::27) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB4432; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4432; 3:v5/0NB1cC2y3Kv2ZEmcP16Avt1tlZBb+nMgfHjeX1BDHsEh9aKpHnVZ2QPDV/x4V8kBzrUrLaix4TybRer4UZM61og5oHkB6LDR/cYpxd7eMfECmrFYHN/JEzJ/3gpqgwnKPSuoRe6eKJMH+CH9SRmQ589PRKEzndF4zwxoPLoeMKJ9TAoCAkEedMN9Ot4n2JC6diV0/pb6EEtTd46mQAZK7pNqtjQ2YRJAS3df8Ty1MnlzXQ2skYimvLEGbh8sp; 25:HiMXQMc66kE7uCtqTZ6I0oy7W/2NQDF+EbitZrsc9lgXjU7tiyTweGCOyfTfrlm/2h3x9P78SaS74PXI7+QPGgo3t123Z3+5+uT+OyU6aReuwf7iOLVTurp/i5J/l2JNg2D74eYnCogmIdS+ueXWBoUckSBqJJrtHMLc5V4jV+nAiWMw7s1Kc7UK2G6WKM+hGjDoLn6Y6MN8SECw6K2l7hMhEX7j7uYnKMDA0nK/UtwRIFXlHQ2VBKZvClatckM/9yZo511bZksCZCRBcOkJ64mzO1LMjjfoZuBuv39UAprUc2THCcEXG8lChGDpC1yWALZPxlBNY6vAEBGvTLJdsA==; 31:RGuE+lBUTDwhfccmxCNxRdyQQhrQCLoIp+SfrzG3MQSBQnBShAxybGGrgUjH1Rjqyi+Z1nbrJlYbg0xvkxot4p9cnvTQouj1pn2fw+wLwWvEjRJ0amLg/REJmwsoMG9zcKRZXkcHMCNWg0b/YPfXYtMghCirFMUMWlpdLQl0dTvfr7AD3xoehkshmPUuomuz4kaeBj9tdYdvui50EreoiExy46U/UZ/9hGhisHInTbM= X-MS-TrafficTypeDiagnostic: VI1PR05MB4432: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4432; 20:qz8gSvTfp4uX9pqcvOJqt4tit2q0VOYnDRsvW4HGM057hpO+iMsXmsfo0w2USZx1G0qAB/ctcgq6P5uTkIdsddo/z8m87i6RwdAEmAq5j3jtn8ZKAN2hNY8ZE5YBHDrD+ZbNTBO2RjH8bDbCyzSLrXhpIgerxmapSXORRsZf3CWK+uhuk/brp70gS8bDnZEcI6UXUbkr6PtXeqoqQGfBlm/ftrLd4J1HAg8q0JsQTOHOShnSUTBRN1ul6/TcqVgGRDa0WTPCRpv0ZnZAumet3wcktkMfdsJLxK8DJqdd4x2zY6pHkrGkcYL1jvkORJRTdWHDNe/oMYP/+MFRZrhvdTqCbQ4JN9wHReCDyoqU/GdMHo3zT08+pGZTEJXSPQQlWn8X0fohvqOfOBLswuc2S8ZUscClC+fEn7zf3yUvFO/KMc6O7/tk5yYU1Lmi82MRT273nwZdZVJEyf97+Cqib3nTauxrnLGstw40w54t2zqWVrHSo+s49bu6gAcu9OzP; 4:t3NtlSxu24n63oQckR3nZ0NBgxdBmympmRSIyIZLm7hCbs2MsmrhN+EtJbv+u7utuxFh29KNgWsH0NU3ryY0sbIVk2xYGDC0Bm6l3NLrokUT+2KzxLbzvgoe3kufJExSroV1j22P/x+BwuFY+L2BQYdQX43fddOowIEOUDOqSApm/hJ87ClO8C+rVBdtGPQqzCtO3x78e9J86mkVYU/cvyY6h0yobVf0pK7g9QOMlqzT9Hd4coFxUq4+0CIT7Bc/8sQCh3iC66WdlQ3treTU7A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231232)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:VI1PR05MB4432; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4432; X-Forefront-PRVS: 0645BEB7AA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(366004)(39860400002)(396003)(39380400002)(346002)(189003)(199004)(486006)(8936002)(5660300001)(53936002)(2616005)(36756003)(956004)(4326008)(11346002)(97736004)(52116002)(16526019)(39060400002)(76176011)(47776003)(51416003)(476003)(7696005)(186003)(6116002)(55016002)(3846002)(106356001)(446003)(48376002)(69596002)(25786009)(50466002)(66066001)(105586002)(118296001)(2906002)(305945005)(7736002)(16586007)(316002)(81156014)(21086003)(478600001)(68736007)(81166006)(26005)(8676002)(386003)(86362001)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4432; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR05MB4432; 23:8R/72FgrX5djryGVd85Jyodx0Y4tKo4VhujCZ6/J0?= 6EaiQCikYJUdoxpbeY41plUsO2Q6yXSwb9ZQdMj+7XxjMK4O7epMyKYSn54c2a3QkamZv5bat3yQOPmmJwbb08ugwZPAwJ11v+ZlAt6IC0N7F6WMphJ+xxv1gvdZM8Hu093THkk7MnOmlj3mDvfDRNbB6bfVS/OXoaMyTzLfb9vG/3fYGUHPrgKRxRR1cZfhStnIPPifTsBxFdH+tsyJvVz8HnqtttMB7+DOwOw8rD4hOJQ+SWwLFlouCwWHLxfZwHAKnSjoKIagSvgmLimhu1YlwVbyzMOxUTcgq3xR8nargrWPs+7nELTmdkyH1ldtEIm1WSAbkiqJa/3PwREIe25psl9J2d3QE5BqiIHbnPiZNyageXj+m2JaZgppW43EKP4fL7kSG6+kk0pdjcq3478KVTq+m7J/6wsTR7kLic01C+b0xAWZqaQ14lhJUMZyOBIfjbEi3TMUKkjAu8GAbnXNkMzl9Cx2Yq59w0Hoj+PV9YNjfq0fD9FB0u9Si5gQE/eifOCE74KKpbsLBRfXPUZDc5ehm7cB/5jBbDiePGZyHypL9vam5W0hwONDM8AQZMJJq9xsS24wN8BJ9EFS5CenlXWtrr5z58vItn1Wr/Ejky6njuJ7mUfdLjvzuhUa/Rz7CX45GP8Mw1jtTlbVtVbPaa3ocOS9JSs51uMtNUNdtEuGr1qZeuPA6U/5y/Lw7SFw8Q2FRDhiTkLAQxVKtAxxhoWFrmLdKdCgBcITYGfxMT7RnotjjAvLjzFrrM/K03A/lUq+bUPEADajC8XGqCU5YP1i4LnQNF0BFHUApHpMkshOLvRotzTEMhlOxaYFYRXFplhu0AUKyV2+tulxSaaxUZeQkeSdf/q5jvbU9pmaZ1AFskYnIGQKOlQAHErtlxacPrN4pPH+YUrwQPFBK2WEaLXukGKdZKr1DFr0BVT3PAAcVTjzdF0xTrOgVAFv9iZyOB+IjIIfjUvEu9+aGe3JrZLq99KrnsC0+KSQbz+YNNXS0wgw9znqUd5v8Mw69UB+TTcmlA7C/UDaTbA7hZAAPoRMsjIWsV909XbKEOzkqhFqi/85PXRgz84QdqS+CUkZpXL4UPDpofOo/5KBEaV+vfAn51ERiuirORD9eZXLc7yyJfPi0P+ZXqDoPrD3Ipfz4e16VYVrwg+doIq/dhi X-Microsoft-Antispam-Message-Info: HAXt/79zX/ng9wZlYKp1LgBWkPDzLVl6JE0WjyqIOrTQ633sPLQoZ//j2AMxBqvJtTUqHjL7A4Mr3SYxGuYzA2FaaODJMp8IqW3Ad7aGcfFXqJTMEB6qW+2IygFZLMQBfbagd+dD5HO5RDVs0J1kFZmvYWeYC3RQxbZanO7ghC5LyiFQU1bUOHkw/YO9cn5z X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4432; 6:iAjVqc94c5cwiOzIaCdka1J6N4iDdyCpUbDfqaJEzBUHiDqNX1tZIHzTGpzxwZlVmcAyNZbK3YRXvmGAQNM/7HEdqeQcEdoJvx9y+Bxog8s2eD4qq5oRpcnDQwp369rm8ikKfY1+bC/61vtNw9guws55f8GHer1dr5tWstd6d36aOlDb2AckTvYMSeM5q8gSWzCE3j9lvfFj0Qvekk6IKvxlaMYx2cMjq7x0sUwZoOEmrgUYXq0arS6e6rMz1Xu2w/aM6HME6mn0UMGSWMWI6Q1qYOkxR/okh0Yt5Em6tWG2QtoumOmjn6w6Uipo//5k+7UgRVw+54LhQUKGWJuap61LtqQ/Tn0u+FwgwlSiUVQL/xB1QXTL6FCVKHH8mBCzIguNut9h9wtBP5l6sg3IXxffrl64+9N1FDGqQgqQUFleKA4xT7NcC+b+spc2Wlbx3KCDnoCWH1MkIUAGzLNmsA==; 5:NZRIzYYTin6WAIMzV2S/9nocB/JbhGW3TquHzvdyAXwXTsuAUuLUAWbUG/pXb3BfQO5ZA5cFimhBggqn+fUtixu6OJsWEwMEJPD0qD0NE3NxIVLOeO7tcriSpIOYvWSno8R7v2uJVtDiSXRKVefna8caokr5CgvtAbrIHdBWLkI=; 24:Uv0sh6TbArfkDizO/sgGvk9U+rSZIhKohEktng4eiKwyAZru0fQ/gsmbimxMzVCCbCy+Or7TXvUxGVozW/El7zDP2HzXAU8at65iQFbohqk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4432; 7:9DdDPpKeS+Qqv4GhdAr2IFwdI6s8rTz2GUz7kk+eCLPk2F8nXP2ofBulV3R5Tgr6xROKX8bB1l1DSUpjwa7ypa5vQdzkwKb2iX2e1YgN6LRb7IjKUriju1taTQvmv1XjnNtV2LlIkKXsahTx6a+byxgMpX1okYNh4ZdlYkdnnjsmo6jd2vKrEDE25TgqczCPk5kqV+gjiFVoru8ABb4otUbcGYReKjQOt2iyvn7OmOYuZ1AaGXPAuudDCXrYTi/B X-MS-Office365-Filtering-Correlation-Id: 1f7730a5-0d47-4670-f1b2-08d5a4581e6d X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2018 11:41:10.7548 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f7730a5-0d47-4670-f1b2-08d5a4581e6d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4432 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 v9 5/7] 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 c4ceb65..e75b8a1 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -3805,6 +3805,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; @@ -3822,6 +3998,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++; }