From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jananee Parthasarathy Subject: [PATCH v3] test: add sample functions for packet forwarding Date: Mon, 16 Jul 2018 17:00:33 +0100 Message-ID: <1531756833-947-1-git-send-email-jananeex.m.parthasarathy@intel.com> References: <1531385584-24545-1-git-send-email-jananeex.m.parthasarathy@intel.com> Cc: remy.horton@intel.com, reshma.pattan@intel.com, Jananee Parthasarathy , Chaitanya Babu Talluri To: dev@dpdk.org Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 8BB18160 for ; Mon, 16 Jul 2018 18:00:43 +0200 (CEST) In-Reply-To: <1531385584-24545-1-git-send-email-jananeex.m.parthasarathy@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- v3: Used same port for tx,rx and removed extra line v2: SOCKET0 is removed and NUM_QUEUES is used accordingly --- test/test/Makefile | 1 + test/test/sample_packet_forward.c | 71 +++++++++++++++++++++++++++++++++++++++ test/test/sample_packet_forward.h | 21 ++++++++++++ 3 files changed, 93 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 e6967bab6..8032ce53b 100644 --- a/test/test/Makefile +++ b/test/test/Makefile @@ -135,6 +135,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..4afc0b69a --- /dev/null +++ b/test/test/sample_packet_forward.c @@ -0,0 +1,71 @@ +/* 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 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; + } + portid = rte_eth_from_rings("net_ringa", 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(portid, 0, pbuf, NUM_PACKETS) != + NUM_PACKETS) { + printf("%s() line %u: Error sending packet to" + " port %d\n", __func__, __LINE__, + portid); + return TEST_FAILED; + } + if (rte_eth_rx_burst(portid, 0, pbuf, NUM_PACKETS) != + NUM_PACKETS) { + printf("%s() line %u: Error receiving packet from" + " port %d\n", __func__, __LINE__, + 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..a4880316f --- /dev/null +++ b/test/test/sample_packet_forward.h @@ -0,0 +1,21 @@ +/* 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 1 +#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