From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 158301B454 for ; Thu, 12 Jul 2018 10:53:14 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jul 2018 01:53:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,342,1526367600"; d="scan'208";a="244640258" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by fmsmga005.fm.intel.com with ESMTP; 12 Jul 2018 01:53:12 -0700 Received: from wgcvswdev001.ir.intel.com (wgcvswdev001.ir.intel.com [10.102.246.100]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id w6C8rBmk003181; Thu, 12 Jul 2018 09:53:11 +0100 Received: from wgcvswdev001.ir.intel.com (localhost [127.0.0.1]) by wgcvswdev001.ir.intel.com with ESMTP id w6C8rBtf024608; Thu, 12 Jul 2018 09:53:11 +0100 Received: (from jmparthx@localhost) by wgcvswdev001.ir.intel.com with œ id w6C8rBji024603; Thu, 12 Jul 2018 09:53:11 +0100 From: Jananee Parthasarathy To: dev@dpdk.org Cc: remy.horton@intel.com, reshma.pattan@intel.com, Jananee Parthasarathy , Chaitanya Babu Talluri Date: Thu, 12 Jul 2018 09:53:04 +0100 Message-Id: <1531385584-24545-1-git-send-email-jananeex.m.parthasarathy@intel.com> X-Mailer: git-send-email 1.7.12.2 In-Reply-To: <1530896835-19629-1-git-send-email-jananeex.m.parthasarathy@intel.com> References: <1530896835-19629-1-git-send-email-jananeex.m.parthasarathy@intel.com> Subject: [dpdk-dev] [PATCH v2] add sample functions for packet forwarding 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: , X-List-Received-Date: Thu, 12 Jul 2018 08:53:16 -0000 Add sample test functions for packet forwarding. These can be used for unit test cases for LatencyStats and BitrateStats libraries. Signed-off-by: Chaitanya Babu Talluri Reviewed-by: Reshma Pattan --- v2: SOCKET0 is removed and NUM_QUEUES is used accordingly --- test/test/Makefile | 1 + test/test/sample_packet_forward.c | 80 +++++++++++++++++++++++++++++++++++++++ test/test/sample_packet_forward.h | 22 +++++++++++ 3 files changed, 103 insertions(+) create mode 100644 test/test/sample_packet_forward.c create mode 100644 test/test/sample_packet_forward.h diff --git a/test/test/Makefile b/test/test/Makefile index eccc8efcf..1e69f37a1 100644 --- a/test/test/Makefile +++ b/test/test/Makefile @@ -133,6 +133,7 @@ SRCS-y += test_version.c SRCS-y += test_func_reentrancy.c SRCS-y += test_service_cores.c +SRCS-y += sample_packet_forward.c SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline.c SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_num.c diff --git a/test/test/sample_packet_forward.c b/test/test/sample_packet_forward.c new file mode 100644 index 000000000..ec79f7e6e --- /dev/null +++ b/test/test/sample_packet_forward.c @@ -0,0 +1,80 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Intel Corporation + */ + +#include +#include +#include + +#include +#include +#include +#include + +#include "sample_packet_forward.h" +#include "test.h" +#include + +#define NB_MBUF 512 + +static struct rte_mempool *mp; +uint16_t tx_portid, rx_portid; + +/* Sample test to create virtual rings and tx,rx portid from rings */ +int +test_ring_setup(void) +{ + uint16_t socket_id = rte_socket_id(); + struct rte_ring *rxtx[NUM_RINGS]; + rxtx[0] = rte_ring_create("R0", RING_SIZE, socket_id, + RING_F_SP_ENQ|RING_F_SC_DEQ); + if (rxtx[0] == NULL) { + printf("%s() line %u: rte_ring_create R0 failed", + __func__, __LINE__); + return TEST_FAILED; + } + rxtx[1] = rte_ring_create("R1", RING_SIZE, socket_id, + RING_F_SP_ENQ|RING_F_SC_DEQ); + if (rxtx[1] == NULL) { + printf("%s() line %u: rte_ring_create R1 failed", + __func__, __LINE__); + return TEST_FAILED; + } + tx_portid = rte_eth_from_rings("net_ringa", rxtx, NUM_QUEUES, rxtx, + NUM_QUEUES, socket_id); + rx_portid = rte_eth_from_rings("net_ringb", rxtx, NUM_QUEUES, rxtx, + NUM_QUEUES, socket_id); + + return TEST_SUCCESS; +} + +/* Sample test to forward packets using virtual portids */ +int +test_packet_forward(void) +{ + struct rte_mbuf *pbuf[NUM_PACKETS]; + + mp = rte_pktmbuf_pool_create("mbuf_pool", NB_MBUF, 32, 0, + RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id()); + if (mp == NULL) + return -1; + if (rte_pktmbuf_alloc_bulk(mp, pbuf, NUM_PACKETS) != 0) + printf("%s() line %u: rte_pktmbuf_alloc_bulk failed" + , __func__, __LINE__); + /* send and receive packet and check for stats update */ + if (rte_eth_tx_burst(tx_portid, 0, pbuf, NUM_PACKETS) != + NUM_PACKETS) { + printf("%s() line %u: Error sending packet to" + " port %d\n", __func__, __LINE__, + tx_portid); + return TEST_FAILED; + } + if (rte_eth_rx_burst(rx_portid, 0, pbuf, NUM_PACKETS) != + NUM_PACKETS) { + printf("%s() line %u: Error receiving packet from" + " port %d\n", __func__, __LINE__, + rx_portid); + return TEST_FAILED; + } + return TEST_SUCCESS; +} diff --git a/test/test/sample_packet_forward.h b/test/test/sample_packet_forward.h new file mode 100644 index 000000000..f6226e34b --- /dev/null +++ b/test/test/sample_packet_forward.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Intel Corporation + */ + +#ifndef _SAMPLE_PACKET_FORWARD_H_ +#define _SAMPLE_PACKET_FORWARD_H_ + +/* MACROS to support virtual ring creation */ +#define RING_SIZE 256 +#define NUM_RINGS 2 +#define NUM_QUEUES 1 + +#define NUM_PACKETS 10 + +/* Sample test to create virtual rings and tx,rx portid from rings */ +int test_ring_setup(void); + +/* Sample test to forward packet using virtual port id */ +int test_packet_forward(void); + +#endif /* _SAMPLE_PACKET_FORWARD_H_ */ + -- 2.13.6