From patchwork Mon Jul 16 16:00:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jananee Parthasarathy X-Patchwork-Id: 43115 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 1634B255; Mon, 16 Jul 2018 18:00:45 +0200 (CEST) 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) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jul 2018 09:00:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,361,1526367600"; d="scan'208";a="240707451" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga005.jf.intel.com with ESMTP; 16 Jul 2018 09:00:40 -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 w6GG0eRP032393; Mon, 16 Jul 2018 17:00:40 +0100 Received: from wgcvswdev001.ir.intel.com (localhost [127.0.0.1]) by wgcvswdev001.ir.intel.com with ESMTP id w6GG0dt2001064; Mon, 16 Jul 2018 17:00:39 +0100 Received: (from jmparthx@localhost) by wgcvswdev001.ir.intel.com with ? id w6GG0dwB001060; Mon, 16 Jul 2018 17:00:39 +0100 From: Jananee Parthasarathy To: dev@dpdk.org Cc: remy.horton@intel.com, reshma.pattan@intel.com, Jananee Parthasarathy , Chaitanya Babu Talluri Date: Mon, 16 Jul 2018 17:00:33 +0100 Message-Id: <1531756833-947-1-git-send-email-jananeex.m.parthasarathy@intel.com> X-Mailer: git-send-email 1.7.12.2 In-Reply-To: <1531385584-24545-1-git-send-email-jananeex.m.parthasarathy@intel.com> References: <1531385584-24545-1-git-send-email-jananeex.m.parthasarathy@intel.com> Subject: [dpdk-dev] [PATCH v3] test: 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: , 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 Acked-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_ */