From patchwork Wed Sep 12 08:06:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 44607 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A70B72E8F; Wed, 12 Sep 2018 10:06:36 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40086.outbound.protection.outlook.com [40.107.4.86]) by dpdk.org (Postfix) with ESMTP id 57D931041 for ; Wed, 12 Sep 2018 10:06:35 +0200 (CEST) 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:X-MS-Exchange-SenderADCheck; bh=Ag6h2vFsrfOd95+e/k5oJ4p11AsAoGHaF6aLyBM+Gx8=; b=pKGgoMwYt5XdMxxRauo9Xl9nL/EGotcZIeKnSdU4IcDsLE7MLEGpSGD4Q5t5HTRJztnCpMcQK0SK9fMHexhueoGIz033l6xiIJTmE8ltKMlCWOCJJGdBaYbqi3t24pj3SF8+NZsj4L4mtaMHyBFkDFfMoMYE/Q5ZTuZPoXXVex4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by DB5PR05MB1255.eurprd05.prod.outlook.com (2a01:111:e400:51cc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.15; Wed, 12 Sep 2018 08:06:33 +0000 From: Raslan Darawsheh To: jingjing.wu@intel.com Cc: thomas@monjalon.net, dev@dpdk.org, shahafs@mellanox.com, rasland@mellanox.com, xuemingl@mellanox.com Date: Wed, 12 Sep 2018 11:06:22 +0300 Message-Id: <1536739583-29166-1-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: LO2P265CA0118.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::34) To DB5PR05MB1255.eurprd05.prod.outlook.com (2a01:111:e400:51cc::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8ba6b553-ef62-4b23-ffc7-08d61886a7da X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB5PR05MB1255; X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1255; 3:q8AoadoX03NwvLwA4bApflsAHFPL9xj+ZVi4RPLuWF0M7QU02gWfrl5rFzrFFhWDVgBOov0mNky2bWCwAgvWLcqeEzrcqbvN9VwXEZ97CCCsrPtHO5BQ/nFxDqK7/vQAzb53+AyEE6sRlTMK9gLjDhlVsqQzgl0DbiFeIr6ITjM2HR+FJCokE/L6z8xvhadpcuPrxaB7zQP16olkC3wD7OFw3hnpkX13C0spTtW+xXhg+hsOZFnGqZOrtIiVYZaU; 25:np2wLCwhU6zkcfZhbP4QyzYMNyfIwEto+bOMMBtHHLESLkdMgPCz8GZnjSu96WaHIW28l0FTw7inqpCqJ5SN3dIhZyXa2G52A/6IZFU7FIiuGx/zuYGC5GggbUPsWrg4gu0sZtGhWuIbcdhZmXO50dmp8hwulEBx2lV2ncpehETX6v2yFMIG3ii+PrAPRG5LIKph6O4dwM0TeGZHFQLPezqUBHIVt+2fvLa5e0hb/jvM4EgKBOwiJwyo7/M+eOZ49FygtcaL8xMo2AguWlQiU9Rzj+OP7ovgH2G5ut6hrfVoe1kmMcOsIIfJxBVMTv1wVyoU0mCrZLIETj+OJ5tKEQ==; 31:mG9o0roEV5PiV6ihEOR9DA4oBQbsNlBxz0MvPtRSSmkkGq5801f6diZxUcbvPi+U/LZgK9nSTN+0X9qWbyCRwCqF4mJqAZdwoL5zVFDRZU/qbdqy1ttJ0El4ttbiZfBxjlxfNbC9pK81UtQMxNHT5oGue67ApV+ywfyxJgPdJ0iClZ54QJZPA7EksjfjCudDHTLsjRe3whNn7gZKj/T8ZHe2aGzKSPZ9o37BZk65Pyw= X-MS-TrafficTypeDiagnostic: DB5PR05MB1255: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1255; 20:5pUQa96bA6IF4QbcAqTZojp+/M8Cz+LBeXUrrShdPX+Ns3uQTUDlR+V4eT4qz3EJ1wujayaOiQVWdsJzg2toS0mZu8pjQCQXJwsg15uRXXxvbrLZD0HRkznsEi/W6KaxDzfzXdzz1N0N6VFqOqabxJbJ6evllekpMMVlbEHgcxMz/HprhqHoe5ziaR0bcP5vcYuFAfqFQbKMFIF7+17VH5HpibM8dYFbVX0LGhQwK9mKyPn3k0kEIa8G6oivoqZjoEq3l+SxZ0H2yjv7teghi5CkyG6ObC/JvFDbuJS5lIuhkAZL2BPv77oXVCAIOAv/oeWFbqcWT6WlmDVNcsE9FQTfdsoXb8HS7r+0twYNcE0YqRJQ2qHmYUoRBXvRTOzBjlrJuUVzjRSVtFSKSQDknqS9C6tan/Hp0LjU6EcteJx7a/Y6U8sH4w/EweA4ajXb76oFHCJdHHhl2vMgULrAeje5PdFYx/DgF8mDF15MxHowO2QfXE+hOkY9+hxh78nH; 4:gULT22URRY/AUll53vRAxYRylRuXcXYbPlD26AWgP8jFaMQ3ej8blQDi9FgtVvJHLUMUh4u8GpvXG1sKQemxlDf2i1dBNa/KcdJaRooRO3dWtDyVzs9nSgBDXrokupupoESakxeY+pM54lCmwbOUL7CWaeVlyglKPQbAFjkajm5v8Qd4YuDCLZ7NuszRdjepRV1Kh/i9GXOYtaWjct5d69iQ9osRDTaZ9wh35QZ4LHG9LKtVombJN/S5Z69z3igplnXybzdb1j3Sy/vWzdrR1g== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(3231311)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:DB5PR05MB1255; BCL:0; PCL:0; RULEID:; SRVR:DB5PR05MB1255; X-Forefront-PRVS: 07935ACF08 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(136003)(346002)(366004)(376002)(39860400002)(396003)(189003)(199004)(2906002)(386003)(33026002)(7736002)(69596002)(186003)(26005)(107886003)(25786009)(97736004)(478600001)(4326008)(8676002)(66066001)(16526019)(86362001)(575784001)(6116002)(3846002)(47776003)(5660300001)(16586007)(50226002)(36756003)(2351001)(55016002)(105586002)(106356001)(316002)(476003)(486006)(2616005)(21086003)(956004)(68736007)(52116002)(7696005)(2361001)(305945005)(6916009)(48376002)(81156014)(53936002)(51416003)(8936002)(50466002)(6666003)(81166006)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR05MB1255; 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; DB5PR05MB1255; 23:/jEHtLpI8xcNOJN2sp53Vsr500vuNrq7ftrZrWpRt?= uvMg8zIwNKE8/KBo9W4Z7YBvkiM1ZMjn8D8sBrzf1yOQuyHK9NwyIn4dh4ZIrbb8nm4MJgd8jshk5D9y7gwi8dE9rJQ2KkNXpir6jL6i9zMLy/kzYr9mtd3h5HZEQqMP5okgT8rJcLAIw7bQiPxvpOgKL6hJmCMbhpbvrOVqvVjdnaaoQJITk/HuTDHjhjYv0I4eiELGihJPJvaAkI62/yZEqNux1JQOe4hdj0QH+Bi9ZRWBNDBRYUCcmNLb4n0PQoxqqjHk/9yMpVTR6I+vX0jW14zdCyQSRV18bThaHqQTBZ+oqgQolCoCsN/0zRVJKCCHQcBt4Pk6S/LR1Ftuk1WQ3wyqWxlVrDtDXRqQnePItluCSfwpmvaEtPtXjBPizz5Dgahy3c0dWRjSC8KdAyjr2qBxidyjmjtqSOh1n1UpIO3l4YcwoBw6Y5+0E7nXPkLD905NnWCBSVGieEj6WBYEnprDsjuKKdXMURr14+21V9FsLnyHuR9lFuKYtaLgFw7Pq7jSuh/kj3hqjx/vMDYLj68mt59cSUMXOX4L7fDppsLAts5f7BDFsjMlQNLQeC9FT4bznISTBRjMo+2d8skzI34umwVLjuQ6rXaoAc0iE+iY85KqDk7mNHvXMyrTWALTNQcZIBVfx4Vc0RRdSelHT9UmPCHLrGkzuso6s0tCXRzTJaRufxWJquidQAFMgwggT8mT+cRxmGxlvimPrE0gyF+HwZ2beSdpjqe6ZvoTQQBBufItPsg3MK9APO2tANDozxB0M+4l11l6a6XPKjK1y0EqdjUE3lyMhqdE0IKpxHUgxinlNSwyzHx4CEkmam1K3MetFn9jqkuskO2NEVxPqn8ZfmBtySxm125wn9Dfq2LIJedG6Koxzfs0z5TCR3998azXQdt2tjFiTe9v2AV6+uJf3kJnz+XWBScVKGWUZoOU+zcqPndvq42YB5PFq8AwFWx7eQ8CqycEo4yTCEewSnh+emLzsoveYfDmFG0ATuZVYhRRIX23WwDM2otmFy6iRDAjMK0iwlbhKIJmRBiNLcFK7nPiaWTLkmL8iV1M30jXmoEahftvgbGpNCRArnxD7t5LtN83X1S7KCa0v65ykfHZpUf1AQLwXVZs5qs7jsuQP07NoEvR2JyMipvVJ4XY7T8SYg8F0KUP+BtIWzVGgy3209sFLfEfYGCw4sjKumGvNLhOF8OXY72jwcel52ByXu1piTTlCG/eMVz/a9K X-Microsoft-Antispam-Message-Info: IuGc2I+lljfRJ6bWnvQU6ZO1WvNbYAbCG4IGvW7gcURYj4+T4wJRhFWkgfqq81vUMT7RXp8jdEXF+cebLu7FMUtOk2KdpdWZ+WDCyxV2HgfDx87pvJLwih+JS8X580fngUGaS59NUOkLRxUyDz1kvKCi5b8RychShQnhrybrKeWUdXoBwJ7rXxIJa8V8K39bHa1CTE7h08TuJAeNtBgfNSjq+Rhax5sHobC8KYTYbVo6qqFmWAZ1sBOhl4NWXecRTIqY+GV06BnejtOzESdphUX7IbEnt8WomcoTObTIuoJdaVVigDwsUsGCfIRqxEq5+4Z3Knto1KBKlt5HATQyX2944OHfVLtpZ4oubX5wcTo= X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1255; 6:fu8Aw9HLFNV+1EwOFYZGGNANA0HqQap6bVrBKlMjtCNgdexZiM7mXo2honMn6xf3Q5VZvgXE+yt4lMTT5XvPFRZi2yGE1oiq8wDuRNAmRtOwZjOh4uGMjmyUgT2tWoBnib0gErwysUkfNhWlWTG4jsEmQUPUHB5ntDGxQNk2y1tJy+gCU8XOwlhj/9Q7uM5Gkm6FDVMtzq8jHBEs3wdl9tKHLNJU+Z6bdwe/416OerJujzdHZp4aiBsMX88KZlyP7XDmmuEyYIi/YcF4NnEh/r5nkUZe81zQvBj7tY7UWWs9p/0Bw+y328CndlT+kzluQgLUXA62sAwAbRLe5ufV4R1drV578Z/P0NFhbXqG7nLFWoNBBUYZfiWctsLseh0/DG70bXorTplpMMpjo2p8i3OhSepMJCfNfvrd2WVQBZ3Sb4WxqmN6yb353S1n7axwbKK2tTGi/J0pyUa7wwp0Dg==; 5:27zlhxIb34FD68Pav+bzBgW745Nz/c4veTBWcp8XReHWyPibLAQzDJWthauhk/rQNd4nqFb5srUieSLW+dPGTsAVeokqRTezY8LA9JtzMz2x+31sOfGnkDIprIjd6lhqqDAtTp0IYZcbh9OHReVoJA/IWtKfjdObhuuPxf9q3yo=; 7:bz+ELGBW1KruoALyAt3XPr/RFqjLr82hvyaETxXPJQWeR+5yv7ZnROz8gNp9wP0PqO0UZaag40e6C30TYFg8Ry6pnsUbNTjHGFih4y2gDiiKPhsJFPDhjo0iBnhtDK6hUPl7b3Nlj6/Q5NZNap/266msNQ4AK2RFnPPA5U0hwH8Pcv6zdjJhVZ6udr4F6rvFNoB/PIbBoqYXXVIg/MkdsvG+7PXuwxXCZ/7hU2hQdlBb1mTxjk+8HhXhujiry9Js SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2018 08:06:33.1741 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8ba6b553-ef62-4b23-ffc7-08d61886a7da X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR05MB1255 Subject: [dpdk-dev] [PATCH 1/2] app/testpmd: add a generic way for dumping packets X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" verbosity for the received/sent packets is needed in all of the forwarding engines so moving it to be in a separate function. Signed-off-by: Raslan Darawsheh --- app/test-pmd/Makefile | 1 + app/test-pmd/testpmd.h | 2 + app/test-pmd/util.c | 143 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 app/test-pmd/util.c diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile index 2b4d604..e2c7845 100644 --- a/app/test-pmd/Makefile +++ b/app/test-pmd/Makefile @@ -35,6 +35,7 @@ SRCS-y += csumonly.c SRCS-y += icmpecho.c SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_cmd.c +SRCS-y += util.c ifeq ($(CONFIG_RTE_LIBRTE_PMD_SOFTNIC), y) SRCS-y += softnicfwd.c diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index a1f6614..a0d9ce1 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -743,6 +743,8 @@ int check_nb_rxq(queueid_t rxq); queueid_t get_allowed_max_nb_txq(portid_t *pid); int check_nb_txq(queueid_t txq); +void dump_pkt_burst(struct fwd_stream *fs, struct rte_mbuf *pkts_burst[], + uint16_t nb_rx, int direction); /* * Work-around of a compilation error with ICC on invocations of the * rte_be_to_cpu_16() function. diff --git a/app/test-pmd/util.c b/app/test-pmd/util.c new file mode 100644 index 0000000..87cbbcd --- /dev/null +++ b/app/test-pmd/util.c @@ -0,0 +1,143 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2018 Mellanox technology. + */ + +#include + +#include +#include +#include +#include +#include + +#include "testpmd.h" + +static inline void +print_ether_addr(const char *what, struct ether_addr *eth_addr) +{ + char buf[ETHER_ADDR_FMT_SIZE]; + ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr); + printf("%s%s", what, buf); +} + +void +dump_pkt_burst(struct fwd_stream *fs, struct rte_mbuf **pkts_burst, + uint16_t nb_pkts, int direction) +{ + struct rte_mbuf *mb; + struct ether_hdr *eth_hdr; + uint16_t eth_type; + uint64_t ol_flags; + uint16_t i, packet_type; + uint16_t is_encapsulation; + char buf[256]; + struct rte_net_hdr_lens hdr_lens; + uint32_t sw_packet_type; + + printf("port %u/queue %u: %s %u packets\n", + direction ? fs->rx_port : fs->tx_port, + direction ? (unsigned int) fs->rx_queue : + (unsigned int) fs->tx_queue, + direction ? "received" : "sent", + (unsigned int) nb_pkts); + for (i = 0; i < nb_pkts; i++) { + mb = pkts_burst[i]; + eth_hdr = rte_pktmbuf_mtod(mb, struct ether_hdr *); + eth_type = RTE_BE_TO_CPU_16(eth_hdr->ether_type); + ol_flags = mb->ol_flags; + packet_type = mb->packet_type; + is_encapsulation = RTE_ETH_IS_TUNNEL_PKT(packet_type); + + print_ether_addr(" src=", ð_hdr->s_addr); + print_ether_addr(" - dst=", ð_hdr->d_addr); + printf(" - type=0x%04x - length=%u - nb_segs=%d", + eth_type, (unsigned int) mb->pkt_len, + (int)mb->nb_segs); + printf(" - RSS hash=0x%x", (unsigned int) mb->hash.rss); + printf(" - RSS queue=0x%x", (unsigned int) fs->rx_queue); + if (ol_flags & PKT_RX_FDIR) { + printf(" - FDIR matched "); + if (ol_flags & PKT_RX_FDIR_ID) + printf("ID=0x%x", + mb->hash.fdir.hi); + else if (ol_flags & PKT_RX_FDIR_FLX) + printf("flex bytes=0x%08x %08x", + mb->hash.fdir.hi, mb->hash.fdir.lo); + else + printf("hash=0x%x ID=0x%x ", + mb->hash.fdir.hash, mb->hash.fdir.id); + } + if (ol_flags & PKT_RX_TIMESTAMP) + printf(" - timestamp %"PRIu64" ", mb->timestamp); + if (ol_flags & PKT_RX_VLAN_STRIPPED) + printf(" - VLAN tci=0x%x", mb->vlan_tci); + if (ol_flags & PKT_RX_QINQ_STRIPPED) + printf(" - QinQ VLAN tci=0x%x, VLAN tci outer=0x%x", + mb->vlan_tci, mb->vlan_tci_outer); + if (mb->packet_type) { + rte_get_ptype_name(mb->packet_type, buf, sizeof(buf)); + printf(" - hw ptype: %s", buf); + } + sw_packet_type = rte_net_get_ptype(mb, &hdr_lens, + RTE_PTYPE_ALL_MASK); + rte_get_ptype_name(sw_packet_type, buf, sizeof(buf)); + printf(" - sw ptype: %s", buf); + if (sw_packet_type & RTE_PTYPE_L2_MASK) + printf(" - l2_len=%d", hdr_lens.l2_len); + if (sw_packet_type & RTE_PTYPE_L3_MASK) + + printf(" - l4_len=%d", hdr_lens.l4_len); + if (sw_packet_type & RTE_PTYPE_TUNNEL_MASK) + printf(" - tunnel_len=%d", hdr_lens.tunnel_len); + if (sw_packet_type & RTE_PTYPE_INNER_L2_MASK) + printf(" - inner_l2_len=%d", hdr_lens.inner_l2_len); + if (sw_packet_type & RTE_PTYPE_INNER_L4_MASK) + printf(" - inner_l4_len=%d", hdr_lens.inner_l4_len); + if (is_encapsulation) { + struct ipv4_hdr *ipv4_hdr; + struct ipv6_hdr *ipv6_hdr; + struct udp_hdr *udp_hdr; + uint8_t l2_len; + uint8_t l3_len; + uint8_t l4_len; + uint8_t l4_proto; + struct vxlan_hdr *vxlan_hdr; + + l2_len = sizeof(struct ether_hdr); + + /* Do not support ipv4 option field */ + if (RTE_ETH_IS_IPV4_HDR(packet_type)) { + l3_len = sizeof(struct ipv4_hdr); + ipv4_hdr = rte_pktmbuf_mtod_offset(mb, + struct ipv4_hdr *, + l2_len); + l4_proto = ipv4_hdr->next_proto_id; + } else { + l3_len = sizeof(struct ipv6_hdr); + ipv6_hdr = rte_pktmbuf_mtod_offset(mb, + struct ipv6_hdr *, + l2_len); + l4_proto = ipv6_hdr->proto; + } + if (l4_proto == IPPROTO_UDP) { + udp_hdr = rte_pktmbuf_mtod_offset(mb, + struct udp_hdr *, + l2_len + l3_len); + l4_len = sizeof(struct udp_hdr); + vxlan_hdr = rte_pktmbuf_mtod_offset(mb, + struct vxlan_hdr *, + l2_len + l3_len + l4_len); + + printf(" - VXLAN packet: packet type =%d, " + "Destination UDP port =%d, VNI = %d", + packet_type, + RTE_BE_TO_CPU_16(udp_hdr->dst_port), + rte_be_to_cpu_32(vxlan_hdr->vx_vni) >> 8); + } + } + printf(" - Receive queue=0x%x", (unsigned int) fs->rx_queue); + printf("\n"); + rte_get_rx_ol_flag_list(mb->ol_flags, buf, sizeof(buf)); + printf(" ol_flags: %s\n", buf); + } +} From patchwork Wed Sep 12 08:06:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 44608 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 151394CA7; Wed, 12 Sep 2018 10:06:39 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40056.outbound.protection.outlook.com [40.107.4.56]) by dpdk.org (Postfix) with ESMTP id 48F761041 for ; Wed, 12 Sep 2018 10:06:36 +0200 (CEST) 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:X-MS-Exchange-SenderADCheck; bh=sMlFS29Yz2+WdMVpNVoYTiDIraEbhD6zRhDemHTVJ1Q=; b=dBK7arvgpXrvE6DHx5RE9h9LWUwAYSmC9OJABXgPUbSujQ01CcFVUli/dZlt1HX+0H7Sr9fotvzthzJyrJxQ/tDCTh+yGYW4yPz97dBDho9AuPHIzwefQYuVg2bZ1CzXth+SdwxtKsE20KEUZfwJT24iqxOQhUiaJs5rY74cn7g= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by DB5PR05MB1255.eurprd05.prod.outlook.com (2a01:111:e400:51cc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.15; Wed, 12 Sep 2018 08:06:34 +0000 From: Raslan Darawsheh To: jingjing.wu@intel.com Cc: thomas@monjalon.net, dev@dpdk.org, shahafs@mellanox.com, rasland@mellanox.com, xuemingl@mellanox.com Date: Wed, 12 Sep 2018 11:06:23 +0300 Message-Id: <1536739583-29166-2-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1536739583-29166-1-git-send-email-rasland@mellanox.com> References: <1536739583-29166-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: LO2P265CA0118.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::34) To DB5PR05MB1255.eurprd05.prod.outlook.com (2a01:111:e400:51cc::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 19351b8e-07f2-4048-5c52-08d61886a897 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB5PR05MB1255; X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1255; 3:5NC740YT/hL+/7S7PZz5m6YsA0Sf0/vQY3jCrwBHkz+HsSs5SnlDV4OVL4d7lTUeIl8lGciXPRQhNW3zo/A7xJA+UMs6oMpZSY2Sr74QkUqUkJyrVKdr/jt2vwwpt82xmNMg7UAwm4/rPZ0GIPOfC19IPtBLlE4Z4564WlQ9ptjkLmb6QpdwMCk1rBnNaSyg7eJwNULKOTspB8xIDdDCns2z1yqYPAv7H1r5tOTM+4IH5E73BkM8dzFeHAE9jXhA; 25:ZwpS/MDHhld/rTiKmKuBxp9gHJ0/rmWecndPbLmBlavwoeUFqf7dAGJ+wK4wrb82okfywXK/ljOY4OHnUHPtX6rlgVqsnjLj6Uhh92LcJz7XZevgtM3tSsG4w6QQa48UzXH4lutmvHm+vD2pQGVirLpnuEnv6n3uVSZKkSZWEzR+lTG3wy3yU1xZwzqI0G5LoNy053CaiqUE+h6Id7gEc8ID34HUWt7DMDSOdWQcoF6AdADbn9KAM44l4b6yNXrt8rX/EOhY8ORaUJMqZFHa5+BLao32ZO/GOc1j5XPxF4SfYgSwsGzhCjSOdjXLPVlCJR/+oiDUXzuH+h0i831Rdw==; 31:F7Nq+yfvwbRwtXOJ+Ya/kIdPkFkzeWug2VXJVgXyNKBWGJ/WwE3EwBj3iuIiJSrZMfQWIqR5HCXbQlURtrwi5386u3osazjtYPJ2JakJQ6/ApErxX9ujiZK/Yeq7wWf7UbLKnmb5demLeXuOrobZfOo85MTcY7iBgAkkq8lOqa1JvcR06IBCTC6WleYf3imwhSV1c6k22oLtZY9o6ytXmE93wiXrPwFi/WrxJTc56dE= X-MS-TrafficTypeDiagnostic: DB5PR05MB1255: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1255; 20:9kllSez+7squ76Kggcjy31teNYj5t64Ircqn3hXEwSlb/zeZDBXF6ivjM+B3Anyhd7ncGJDF3+2ZctYxzhICXSwwJh1yvo+t4Q74sUyKb20AJreOxlHMVEWq3ejUvQCLVSVhn5o4Jx6f9b0QP9bb7j1GDg6k/1FnoHmTXP+qnnHwUuQxG1gmfRIBDdI0Wfqpb2A2+3ldZv6pLiYousCn8HXSwqYo4CMUKUu5Fl3O8iJMKCshDwZOSvGYQijDsymBekkezm+vDauSeabom8WhDk3oEkmd8H7c8ixI2IfWs7D2oGlYewCpgK0q8FIzuP8TJckBI5hC71iS6gUyOgBP0kx5YNeaYPwlyP4odj0+jufO3kJePwaTcjSY5u31nkj7NJoBfiFUOn41Z+7OsuEGJfXSEfFaqCMT7ymAqTM3ChUjDlejplJM8sjs4qZhgr2DLrYgm1Dpm8e35Cmgwmx+/5FHsUSUpT/9T94ySzpdw2phf8/t17FRAvSBvF0x3ZzK; 4:0b8j8JeCVk2laL4lh2RzMc57A7H5unFW7esaKqKYYaxbtuf8x7vnWPqWYzcU0aTFEYQGQaNCp4k3txq9RhP1SPZSnVALCAext+L6pBrAzRJ2t8oNCOix/5jKU4x+3duFIKomMdWbRMVFCKJVR+96w7FCQrmHXdbUSgPKvo8m3MEjVVAd49eqPpHu/xdWWKoNkohwYxKvz4ur75okCVYZv9nayIumLwr/0Hm61KxXd13BnBuLasyYHscOGxAg54XGVJ7qrYwRov92Bm4Hfwa9bA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(3231311)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:DB5PR05MB1255; BCL:0; PCL:0; RULEID:; SRVR:DB5PR05MB1255; X-Forefront-PRVS: 07935ACF08 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(136003)(346002)(366004)(376002)(39860400002)(396003)(189003)(199004)(2906002)(386003)(33026002)(7736002)(69596002)(186003)(26005)(107886003)(25786009)(97736004)(478600001)(4326008)(8676002)(66066001)(16526019)(86362001)(6116002)(3846002)(47776003)(5660300001)(16586007)(50226002)(36756003)(2351001)(55016002)(105586002)(106356001)(316002)(476003)(486006)(446003)(11346002)(2616005)(21086003)(956004)(68736007)(52116002)(7696005)(2361001)(76176011)(305945005)(6916009)(48376002)(81156014)(53936002)(51416003)(8936002)(50466002)(6666003)(81166006)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR05MB1255; 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; DB5PR05MB1255; 23:z1rsY/96Ouwg+HvIt8xb11Y6mkeJ+BbAb8hhROXeu?= nqOWXViCsohG3GEaqABihy6mckGAb7yPePOtrgYHdv/spa4FCppJ53Fkv/YqSlbVGayXFHuLA0UUEqODXEcwxiJWMpBlN7NdHbDAr+ljFvylO+Cl9Hx2mxAM/NHSJhSp9RbizbI0+njFkcPRl329ljEhTvFT6Voes40zZXCzwF11Z9HW35MWj8hbdKTbWeasLI+rP9hSaf4fY6C03XOaO0JGRqeyXXWZ/uDi9AAduGWsqaZJcTZ7wTr5qPSIXe5i/BlBWrkd5hOw/srh9dtgf1LyyDdyN6L1YoZ2SwX6g4H1LacVl1i9eiQ0i09xtXftPthH9rLE7RbemSrNJfTrvvfhvYacYL16DOURVBFb7zEmYpUoScg8B6epQkF1ZBvLmnReY6bNpxeVI460KZ0nBYfMJNbawtX/csKwKapPeWKf/teVmc1tNgLJnDszDnN0bripRoUtX6m3XPbeodrcWneKqr6t7Pg7qk+TBRsxlkvZRfrDaJ36KqO0SWAHDXCTcsqNoicdF73+soDwvXxeZ3MVTexXyQh3cuz+R8ws+ix+Ms/k6LS40q1cV0d79A6e/BOhAQDpseBIc15go52WXZboWfJFkolJ6tTxJtBNSAkg9hVOJWMhfkgzzuicrapLnFqEIoGprFAwdXlH6QlvohMjyXCvpVTgKpKT0ZBpx9PRfciUTXZjgo2gbjUdmksbeekSg/f8m6FFfeBoQuE6Vu5vUvr7yPON05R0s2PVuPamEKKUXi9Z047bHQNwNr6cdlp8MptRq1ZVCY8lQbvoWaVfavG7J1dOSOLoNTWhCosstrwKY0eDHvCDNYOz5nf07J53FR70c1QBS6uhS18hczSOGNHZ3rquzEZxqoxkbE+EqT1x35xgayxZaW91Kij+/lSgiFZQkFQ6dl2qc53mfGXNqUJt5KzADMa2l35E8UNZy9NqQpIqeNJkjXZHyKyV4UoGtWzvX7yGszqD0phBO8Frw54I4C7sQOIbO2D5QdvxSTECY8/giURRJF/sT+lDU3NoW1bBICCQZoyjKG5mDjaBRzYAr9RqXKX8QBTyjnjuN8KBCyPvwGBhnVilJIZ8j13K3qURUyTvCCuQMyn82FlMNkUbIefNzZwM4NCmcRLDAHXzhIzppYsexZcwhhTw3PRJ19oOY/ZSO/uNPAiEfibgOjtTJ4LVWFaD1gl3sqtQ0DFpD+ZqVB11XZXV+WiHeOX24/ePPKwlXHDpL/aH7U/w0xZy1KZUNqW1gExNV3C4Q== X-Microsoft-Antispam-Message-Info: T3iJUdHrg2piiVJJIFyGjZosDq4QzAXGZDC3MA6c6dXFiX2y3UBrghPIcY66j02ZZW14hl9TzU3Jux94zfL1ziWAop17BGT5yGotmfANVpi9FRUUqaTXyO+zUmBHff+72pB4c8Gl1FsExnmZ5FGwo+BNNOomJKVZ7fdUgRxxNvxt2kt6ofQvBE4uAduOn56cJ10QoaiVGJgP99W5swSVaCShIYXbYisxb/532Y/ePsY81xOOuWNpoKwHRRWyeSlK05PFAkws8PEw57HMiOktH6ave6aXgC14dq7wp7n/XNC5AnQn8+HsqEjA/pzT1LRbANWMYdBwUHDJS+6jymxAhPlOV7OgkA2Gr+hUdjvJRn4= X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1255; 6:+11Z95Fi/7YIjikHw4i3Lus9UciA9FgUHccPB01mY5aySX3smsxZjh3IehElXPH3/iZmV0+yUoVT46v9KO3FDkvRmdXmFdDuKwtO6YehiQ0Zvnb2QkrTginBmNYWSP+/dQN/JprvJ7/ZpZxExwhgBIucxGelPvsd0DwpXH5o/Raz591uXlcK3slG89ErRzuMLr/AMOzL0fwNvtts3P7jbX4TMPZQRT+NwX+l35Mrcl4g+j3uMGsjfgxxJKBziNEo//iv2eqhQwpYXDUYlMUxY/4Ijfr9w9z+wquxvIOww2H6GElO+Eg+odLMa8vkG/sOwFE6Pk4FA7SEgZkZSMyixef25sNSL/8E3INyN6hOvLRbfihzROTWCI/xAv/Sgruhiseku2qhjFqigBNoWHakm0CjbvKRWxOJAzWYESnzzk2+cQ2+bC6QfhPbOa6DAn9kYm/Y4/hyQkdTbHVHWTJ5WQ==; 5:+dJ79m3l2hO/6gdeG292kQD+yaWEyEEBwzNtx+UrEX7yN3YG55vXkSvfIgTYTrhKqTkxWaodEnSjeCTCBhQ+jI74EowQN1vpmqkTEgm/QBCPS2mDs6GlxeZWNECFIkYVC5KDAFcHWftayQCCc9JdG/dKptT/P+YEGa8zg0R4AaE=; 7:Za+8t58pe6q0ixAuwizuSuZetkWkvR6+KaeLN9JYvFgJjraUf/eRfNApApwbLDwKNHsCiNRT0V3UUTu5FBPFWxG4MWTsE4zK7oKeBbU7yrvqyYoGmbrjaoj3PnS+2r7oBOSJRPlugIk3rHCud/Hvd53mQkgnxf/LJR/ku/alJKhvHOc1IksoVDXK1Peu5mB8MH09FQCvuCs9OQpp+SzaksEyW5NvtiGz6vPpDMHc1MilfEx+YXIOMV3zzUqrGht8 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2018 08:06:34.3929 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 19351b8e-07f2-4048-5c52-08d61886a897 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR05MB1255 Subject: [dpdk-dev] [PATCH 2/2] app/testpmd: use the generic function to dump packets X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" use the generic function to dump packets for several forwarding engines. To dump received packets first bit of verbosity need to be set and for sent packets verbosity second bit need to be set. for example: dump rx : set verbose 1 dump tx : set verbose 2 dump rx and tx : set verbose 3 Signed-off-by: Raslan Darawsheh --- app/test-pmd/iofwd.c | 2 + app/test-pmd/macfwd.c | 4 ++ app/test-pmd/macswap.c | 4 ++ app/test-pmd/rxonly.c | 136 ++----------------------------------------------- 4 files changed, 15 insertions(+), 131 deletions(-) diff --git a/app/test-pmd/iofwd.c b/app/test-pmd/iofwd.c index 9dce76e..7c09271 100644 --- a/app/test-pmd/iofwd.c +++ b/app/test-pmd/iofwd.c @@ -69,6 +69,8 @@ pkt_burst_io_forward(struct fwd_stream *fs) if (unlikely(nb_rx == 0)) return; fs->rx_packets += nb_rx; + if (unlikely(verbose_level & 0x1)) + dump_pkt_burst(fs, pkts_burst, nb_rx, 1); #ifdef RTE_TEST_PMD_RECORD_BURST_STATS fs->rx_burst_stats.pkt_burst_spread[nb_rx]++; diff --git a/app/test-pmd/macfwd.c b/app/test-pmd/macfwd.c index 7cac757..b1b00bc 100644 --- a/app/test-pmd/macfwd.c +++ b/app/test-pmd/macfwd.c @@ -78,6 +78,8 @@ pkt_burst_mac_forward(struct fwd_stream *fs) fs->rx_burst_stats.pkt_burst_spread[nb_rx]++; #endif fs->rx_packets += nb_rx; + if (unlikely(verbose_level & 0x1)) + dump_pkt_burst(fs, pkts_burst, nb_rx, 1); txp = &ports[fs->tx_port]; tx_offloads = txp->dev_conf.txmode.offloads; if (tx_offloads & DEV_TX_OFFLOAD_VLAN_INSERT) @@ -117,6 +119,8 @@ pkt_burst_mac_forward(struct fwd_stream *fs) } fs->tx_packets += nb_tx; + if (unlikely(verbose_level & 0x2)) + dump_pkt_burst(fs, pkts_burst, nb_tx, 0); #ifdef RTE_TEST_PMD_RECORD_BURST_STATS fs->tx_burst_stats.pkt_burst_spread[nb_tx]++; #endif diff --git a/app/test-pmd/macswap.c b/app/test-pmd/macswap.c index a8384d5..5611bf8 100644 --- a/app/test-pmd/macswap.c +++ b/app/test-pmd/macswap.c @@ -107,6 +107,8 @@ pkt_burst_mac_swap(struct fwd_stream *fs) fs->rx_burst_stats.pkt_burst_spread[nb_rx]++; #endif fs->rx_packets += nb_rx; + if (unlikely(verbose_level & 0x1)) + dump_pkt_burst(fs, pkts_burst, nb_rx, 1); txp = &ports[fs->tx_port]; tx_offloads = txp->dev_conf.txmode.offloads; if (tx_offloads & DEV_TX_OFFLOAD_VLAN_INSERT) @@ -147,6 +149,8 @@ pkt_burst_mac_swap(struct fwd_stream *fs) } } fs->tx_packets += nb_tx; + if (unlikely(verbose_level & 0x2)) + dump_pkt_burst(fs, pkts_burst, nb_tx, 0); #ifdef RTE_TEST_PMD_RECORD_BURST_STATS fs->tx_burst_stats.pkt_burst_spread[nb_tx]++; #endif diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c index a93d806..f9bfdeb 100644 --- a/app/test-pmd/rxonly.c +++ b/app/test-pmd/rxonly.c @@ -40,14 +40,6 @@ #include "testpmd.h" -static inline void -print_ether_addr(const char *what, struct ether_addr *eth_addr) -{ - char buf[ETHER_ADDR_FMT_SIZE]; - ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr); - printf("%s%s", what, buf); -} - /* * Received a burst of packets. */ @@ -55,16 +47,8 @@ static void pkt_burst_receive(struct fwd_stream *fs) { struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; - struct rte_mbuf *mb; - struct ether_hdr *eth_hdr; - uint16_t eth_type; - uint64_t ol_flags; uint16_t nb_rx; - uint16_t i, packet_type; - uint16_t is_encapsulation; - char buf[256]; - struct rte_net_hdr_lens hdr_lens; - uint32_t sw_packet_type; + uint16_t i; #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES uint64_t start_tsc; @@ -90,120 +74,10 @@ pkt_burst_receive(struct fwd_stream *fs) /* * Dump each received packet if verbose_level > 0. */ - if (verbose_level > 0) - printf("port %u/queue %u: received %u packets\n", - fs->rx_port, - (unsigned) fs->rx_queue, - (unsigned) nb_rx); - for (i = 0; i < nb_rx; i++) { - mb = pkts_burst[i]; - if (verbose_level == 0) { - rte_pktmbuf_free(mb); - continue; - } - eth_hdr = rte_pktmbuf_mtod(mb, struct ether_hdr *); - eth_type = RTE_BE_TO_CPU_16(eth_hdr->ether_type); - ol_flags = mb->ol_flags; - packet_type = mb->packet_type; - is_encapsulation = RTE_ETH_IS_TUNNEL_PKT(packet_type); - - print_ether_addr(" src=", ð_hdr->s_addr); - print_ether_addr(" - dst=", ð_hdr->d_addr); - printf(" - type=0x%04x - length=%u - nb_segs=%d", - eth_type, (unsigned) mb->pkt_len, - (int)mb->nb_segs); - if (ol_flags & PKT_RX_RSS_HASH) { - printf(" - RSS hash=0x%x", (unsigned) mb->hash.rss); - printf(" - RSS queue=0x%x",(unsigned) fs->rx_queue); - } - if (ol_flags & PKT_RX_FDIR) { - printf(" - FDIR matched "); - if (ol_flags & PKT_RX_FDIR_ID) - printf("ID=0x%x", - mb->hash.fdir.hi); - else if (ol_flags & PKT_RX_FDIR_FLX) - printf("flex bytes=0x%08x %08x", - mb->hash.fdir.hi, mb->hash.fdir.lo); - else - printf("hash=0x%x ID=0x%x ", - mb->hash.fdir.hash, mb->hash.fdir.id); - } - if (ol_flags & PKT_RX_TIMESTAMP) - printf(" - timestamp %"PRIu64" ", mb->timestamp); - if (ol_flags & PKT_RX_VLAN_STRIPPED) - printf(" - VLAN tci=0x%x", mb->vlan_tci); - if (ol_flags & PKT_RX_QINQ_STRIPPED) - printf(" - QinQ VLAN tci=0x%x, VLAN tci outer=0x%x", - mb->vlan_tci, mb->vlan_tci_outer); - if (mb->packet_type) { - rte_get_ptype_name(mb->packet_type, buf, sizeof(buf)); - printf(" - hw ptype: %s", buf); - } - sw_packet_type = rte_net_get_ptype(mb, &hdr_lens, - RTE_PTYPE_ALL_MASK); - rte_get_ptype_name(sw_packet_type, buf, sizeof(buf)); - printf(" - sw ptype: %s", buf); - if (sw_packet_type & RTE_PTYPE_L2_MASK) - printf(" - l2_len=%d", hdr_lens.l2_len); - if (sw_packet_type & RTE_PTYPE_L3_MASK) - printf(" - l3_len=%d", hdr_lens.l3_len); - if (sw_packet_type & RTE_PTYPE_L4_MASK) - printf(" - l4_len=%d", hdr_lens.l4_len); - if (sw_packet_type & RTE_PTYPE_TUNNEL_MASK) - printf(" - tunnel_len=%d", hdr_lens.tunnel_len); - if (sw_packet_type & RTE_PTYPE_INNER_L2_MASK) - printf(" - inner_l2_len=%d", hdr_lens.inner_l2_len); - if (sw_packet_type & RTE_PTYPE_INNER_L3_MASK) - printf(" - inner_l3_len=%d", hdr_lens.inner_l3_len); - if (sw_packet_type & RTE_PTYPE_INNER_L4_MASK) - printf(" - inner_l4_len=%d", hdr_lens.inner_l4_len); - if (is_encapsulation) { - struct ipv4_hdr *ipv4_hdr; - struct ipv6_hdr *ipv6_hdr; - struct udp_hdr *udp_hdr; - uint8_t l2_len; - uint8_t l3_len; - uint8_t l4_len; - uint8_t l4_proto; - struct vxlan_hdr *vxlan_hdr; - - l2_len = sizeof(struct ether_hdr); - - /* Do not support ipv4 option field */ - if (RTE_ETH_IS_IPV4_HDR(packet_type)) { - l3_len = sizeof(struct ipv4_hdr); - ipv4_hdr = rte_pktmbuf_mtod_offset(mb, - struct ipv4_hdr *, - l2_len); - l4_proto = ipv4_hdr->next_proto_id; - } else { - l3_len = sizeof(struct ipv6_hdr); - ipv6_hdr = rte_pktmbuf_mtod_offset(mb, - struct ipv6_hdr *, - l2_len); - l4_proto = ipv6_hdr->proto; - } - if (l4_proto == IPPROTO_UDP) { - udp_hdr = rte_pktmbuf_mtod_offset(mb, - struct udp_hdr *, - l2_len + l3_len); - l4_len = sizeof(struct udp_hdr); - vxlan_hdr = rte_pktmbuf_mtod_offset(mb, - struct vxlan_hdr *, - l2_len + l3_len + l4_len); - - printf(" - VXLAN packet: packet type =%d, " - "Destination UDP port =%d, VNI = %d", - packet_type, RTE_BE_TO_CPU_16(udp_hdr->dst_port), - rte_be_to_cpu_32(vxlan_hdr->vx_vni) >> 8); - } - } - printf(" - Receive queue=0x%x", (unsigned) fs->rx_queue); - printf("\n"); - rte_get_rx_ol_flag_list(mb->ol_flags, buf, sizeof(buf)); - printf(" ol_flags: %s\n", buf); - rte_pktmbuf_free(mb); - } + if (unlikely(verbose_level & 0x1)) + dump_pkt_burst(fs, pkts_burst, nb_rx, 1); + for (i = 0; i < nb_rx; i++) + rte_pktmbuf_free(pkts_burst[i]); #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES end_tsc = rte_rdtsc();