48f31ca50c
This application is purposefully built to benchmark the performance of the Intel DPDK Packet Framework toolbox. It uses 3 CPU cores connected in a chain through SW rings (NICs --> Core A --> Core B --> Core C --> NICs) 1. Core A: reads packets from NIC ports and writes them to SW queues; 2. Core B: instantiates a Packet Framework pipeline that uses ring reader input ports, a table whose type is selected trhough command line arguments (--none, --stub, --lpm, --acl, --hash[-spec]-KEYSZ-TYPE, with KEYSZ as 8, 16 or 32 bytes and TYPE as ext (Extendible bucket) or lru (LRU)) and ring writers output ports; 3. Core C: reads packets from SW rings and writes them to NIC ports. Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Tested-by: Waterman Cao <waterman.cao@intel.com> Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com> Acked by: Ivan Boule <ivan.boule@6wind.com> [Thomas: remove dedicated build option]
67 lines
2.5 KiB
Makefile
67 lines
2.5 KiB
Makefile
# BSD LICENSE
|
|
#
|
|
# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in
|
|
# the documentation and/or other materials provided with the
|
|
# distribution.
|
|
# * Neither the name of Intel Corporation nor the names of its
|
|
# contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
|
|
#
|
|
# library name
|
|
#
|
|
APP = testpipeline
|
|
|
|
CFLAGS += -O3
|
|
CFLAGS += $(WERROR_FLAGS)
|
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y)
|
|
LDFLAGS += -lpcap
|
|
endif
|
|
|
|
#
|
|
# all source are stored in SRCS-y
|
|
#
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) := main.c
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += config.c
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += init.c
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += runtime.c
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_stub.c
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_hash.c
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_lpm.c
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_lpm_ipv6.c
|
|
|
|
# include ACL lib if available
|
|
ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
|
|
SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += pipeline_acl.c
|
|
endif
|
|
|
|
# this application needs libraries first
|
|
DEPDIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += lib
|
|
|
|
include $(RTE_SDK)/mk/rte.app.mk
|