c8e6ceeceb
A new sample app demonstrating use of driver for CBDMA. The app receives packets, performs software or hardware copy, changes packets' MAC addresses (if enabled) and forwards them. The change covers ports initialization, closing connection and argument parsing. Signed-off-by: Pawel Modrak <pawelx.modrak@intel.com> Signed-off-by: Marcin Baran <marcinx.baran@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
112 lines
3.0 KiB
Meson
112 lines
3.0 KiB
Meson
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2017-2019 Intel Corporation
|
|
|
|
driver_libs = []
|
|
if get_option('default_library') == 'static'
|
|
driver_libs = dpdk_drivers
|
|
endif
|
|
|
|
execinfo = cc.find_library('execinfo', required: false)
|
|
|
|
# list of all example apps. Keep 1-3 per line, in alphabetical order.
|
|
all_examples = [
|
|
'bbdev_app', 'bond',
|
|
'cmdline',
|
|
'distributor', 'ethtool',
|
|
'eventdev_pipeline',
|
|
'fips_validation', 'flow_classify',
|
|
'flow_filtering', 'helloworld',
|
|
'ioat',
|
|
'ip_fragmentation', 'ip_pipeline',
|
|
'ip_reassembly', 'ipsec-secgw',
|
|
'ipv4_multicast', 'kni',
|
|
'l2fwd', 'l2fwd-cat',
|
|
'l2fwd-crypto', 'l2fwd-jobstats',
|
|
'l2fwd-keepalive', 'l3fwd',
|
|
'l3fwd-acl', 'l3fwd-power',
|
|
'link_status_interrupt',
|
|
'multi_process/client_server_mp/mp_client',
|
|
'multi_process/client_server_mp/mp_server',
|
|
'multi_process/hotplug_mp',
|
|
'multi_process/simple_mp',
|
|
'multi_process/symmetric_mp',
|
|
'ntb', 'packet_ordering',
|
|
'performance-thread/l3fwd-thread',
|
|
'performance-thread/pthread_shim',
|
|
'ptpclient',
|
|
'qos_meter', 'qos_sched',
|
|
'rxtx_callbacks',
|
|
'server_node_efd/node',
|
|
'server_node_efd/server',
|
|
'service_cores',
|
|
'skeleton', 'tep_termination',
|
|
'timer', 'vdpa',
|
|
'vhost', 'vhost_crypto',
|
|
'vm_power_manager',
|
|
'vm_power_manager/guest_cli',
|
|
'vmdq', 'vmdq_dcb',
|
|
]
|
|
# install all example code on install - irrespective of whether the example in
|
|
# question is to be built as part of this build or not.
|
|
foreach ex:all_examples
|
|
install_subdir(ex,
|
|
install_dir: get_option('datadir') + '/dpdk/examples',
|
|
exclude_files: 'meson.build')
|
|
endforeach
|
|
|
|
if get_option('examples') == ''
|
|
subdir_done()
|
|
endif
|
|
|
|
if get_option('examples').to_lower() == 'all'
|
|
examples = all_examples
|
|
allow_skips = true # don't flag an error if we can't build an app
|
|
else
|
|
examples = get_option('examples').split(',')
|
|
allow_skips = false # error out if we can't build a requested app
|
|
endif
|
|
default_cflags = machine_args
|
|
if cc.has_argument('-Wno-format-truncation')
|
|
default_cflags += '-Wno-format-truncation'
|
|
endif
|
|
|
|
foreach example: examples
|
|
name = example.split('/')[-1]
|
|
build = true
|
|
sources = []
|
|
allow_experimental_apis = false
|
|
cflags = default_cflags
|
|
|
|
ext_deps = [execinfo]
|
|
includes = [include_directories(example)]
|
|
deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
|
|
if is_windows
|
|
deps = ['eal'] # only supported lib on Windows currently
|
|
endif
|
|
subdir(example)
|
|
|
|
if build
|
|
dep_objs = ext_deps
|
|
foreach d:deps
|
|
var_name = get_option('default_library') + '_rte_' + d
|
|
if not is_variable(var_name)
|
|
error('Missing dependency "@0@" for example "@1@"'.format(d, name))
|
|
endif
|
|
dep_objs += [get_variable(var_name)]
|
|
endforeach
|
|
if allow_experimental_apis
|
|
cflags += '-DALLOW_EXPERIMENTAL_API'
|
|
endif
|
|
executable('dpdk-' + name, sources,
|
|
include_directories: includes,
|
|
link_whole: driver_libs,
|
|
link_args: dpdk_extra_ldflags,
|
|
c_args: cflags,
|
|
dependencies: dep_objs)
|
|
elif not allow_skips
|
|
error('Cannot build requested example "' + name + '"')
|
|
else
|
|
message('Skipping example "' + name + '"')
|
|
endif
|
|
endforeach
|