aboutsummaryrefslogtreecommitdiff
path: root/example
AgeCommit message (Collapse)Author
2021-02-05example: remove ipsec_offload applicationAakash Sasidharan
Remove ipsec_offload application as it is mostly duplicate of the ipsec_api application. Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-02-04example: ipsec: use comma as separator in argsAakash Sasidharan
As part of -i option, interface name could be in PCI Domain Bus Device Function (DBDF) format to represent the device. Application will throw error during argument parsing as DBDF format itself contains colon(:). So updating parsing logic to use comma(,) as a separator instead of colon(:). Also updating MAC address representation to use colons as colon is no longer reserved for field separation. Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2021-01-12example: timer_accuracy: protect start time samplesPetri Savolainen
Use full memory barriers to forbid compiler and CPU to move time samples apart. This improves accuracy of time to tick conversions. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2021-01-12example: timer_accuracy: log also exact timeoutsPetri Savolainen
Write timeouts that arrive exactly also to the log. Diff_ns does not need to be written as the log is initialized to zero. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2021-01-12example: timer_accuracy: add clock source optionPetri Savolainen
Added -s option to select the clock source. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2021-01-12example: timer_accuracy: periodic mode allows short max_tmoPetri Savolainen
Maximum timeout can be short in periodic mode, as (after the start delay) timeouts are requested to the next period. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2021-01-12example: timer_accuracy: add maximum tmo optionPetri Savolainen
Added -x option to control maximum timeout parameter. When zero, maximum timeout is calculated from other options as before. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2020-12-08example: generator: don't use bitwise operations with signed operandsMatias Elo
Bitwise operators shouldn't be applied to signed operands. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2020-12-08example: packet_dump: check odp_pktio_info() return valueMatias Elo
The return value of odp_pktio_info() was never checked. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2020-12-04example: sysinfo: print IPsec capabilitiesJanne Peltonen
Print IPsec capabilities. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2020-12-04example: cls: add pktio_env file to gitignoreMatias Elo
pktio_env file was missing from gitignore. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-12-03example: sysinfo: use new sysinfo APIsPetri Savolainen
Use the new odp_sys_config_print() and odp_system_info() calls. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-12-03example: cls: add application test scriptKiran Kumar K
Add test for the classifier example application. The test configures one PMR to match source IP addresses. The test traffic is read from a capture file using pcap pktio. The number of received packets is verified from both the target queue and default queue. Classifier example test is now run during 'make check'. Signed-off-by: Kiran Kumar K <kirankumark@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-12-03example: cls: add ci pass optionKiran Kumar K
Added an option to check the number of received packets per CoS. Using -C option, the minimum number of expected packets can be specified for each CoS. On application close, the number of received packets on each CoS will be compared to the expected values. If received packet count is less than the expected value, the application will exit with an error. Signed-off-by: Kiran Kumar K <kirankumark@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-12-01example: timer_simple: fix missing timer startPavan Nikhilesh
Fix missing timer pool start before allocating and setting timers. Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
2020-11-30example: generator: use platform defined pktio_envSunil Kumar Kori
odp_generator uses hard coded null interface to validate functionality. Patch optimises it to use platform defined pktio_env. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-11-13example: cls: fix usage printMatias Elo
Fix help text for '--time' option and add missing verbose mode option. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-11-13example: cls: add support for ODP_PMR_DIP_ADDRMatias Elo
Add support for destination IPv4 address PMR term. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-11-13example: cls: add support for ODP_PMR_DMACMatias Elo
Add support for destination MAC address PMR term. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-11-13example: cls: add command line option to enable promisc modeMatias Elo
Add new command line option -P (--promisc_mode) for enabling promiscuous mode for the pktio interface. Enabling promiscuous mode is required for example when using ODP_PMR_DMAC PMRs. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-11-02example: l3fwd: set pktio hint of no packet refsNithin Dabilpuram
Since odp_l3fwd does not use packet static or dynamic references, set the hint in pktio config so that platform will optimize for that case. Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-11-02example: generator: update l3 and l4 type for checksum insertionNithin Dabilpuram
As per new API spec, for pktio to generate checksum, it is mandatory that application keeps L3 and L4 types in packet meta data valid along with L3 and L4 offsets. So this patch updates the same. Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-10-20example: l2fwd_simple: remove implementation specific null pktio testMatias Elo
Remove null pktio test which is linux-generic implementation specific. Testing with this pktio type didn't provide much additional value anyway. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-10-14build: fix permission error during distcheckSunil Kumar Kori
During 'make distcheck' scripts are copied into distribution directory twice. In first iteration scripts are successfully copied into destination path with read/execute permission and in second iteration build system throws permission error because file already exist. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-10-14example: script: enhance application run scriptSunil Kumar Kori
Currently example applications uses pcap based pktio to validate the functionality on linux-generic platform during make check but other platforms may not be supporting pcap interfaces as pktio. So example application's run scripts are enhanced to use generic framework to define pktio interfaces and corresponding interface environment scripts are placed under platform implementation. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-09-28example: ipsec_crypto: rename ipsec application to ipsec_cryptoMatias Elo
Rename ipsec application to ipsec_crypto to better distinguish it from the ipsec api example. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-09-28example: ipsec_api: add README fileMatias Elo
Add README file to document application example usage. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-09-28example: ipsec_api: fix policy argument processingMatias Elo
The application supports adding either AH or ESP header, not both. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-09-15example: debug: add new debug example applicationPetri Savolainen
This application can be used to test various debug print functions of ODP API. Debug functions to be called are selected with command line options. E.g. -s option reserves a SHM area and calls odp_shm_print() to print debug information about it. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-09-11build: simplify remote target testingStanislaw Kardach
It is often beneficial to run "make check" on a remote target platform. However in order to run it, a full build-system has to be present which may not be efficient or possible for embedded platforms. Alternatively autotools offer a mechanism which may be used: LOG_COMPILER environment variable. If specified, all test invocations are prepended with its contents. This allows injecting a wrapper script which will ensure the test is run remotely (i.e. through ssh). Prior to that the binaries have to be transported to the remote system. This cannot be done in the script itself as it has no knowledge on the dependencies of the test program, only its path. Test could be relying on some files stored in srcdir or builddir. An issue exists that if ODP is built in out-of-tree method (builddir != srcdir), only the compiled test programs are copied to the builddir. scripts and script data files remain in srcdir and wrapper script is called with an absolute path to the script located in srcdir. This would require to copy the srcdir to exactly the same path on the target as on build host. This may alias with some paths already there. To prevent this from happening add make target wrappers which copy scripts and script data to build directory which allows the autotools test harness to produce a proper wrapper script invocation with a relative path and allows to only copy the builddir to the target to a strictly controlled location. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-09-07build: re-format autoconf argument defaultsStanislaw Kardach
Make sure that all autoconf arguments defined by ODP use default value description similar to built-in arguments. That is: [default=<value>]. Also make sure that all arguments use AS_HELP_STRING for uniform text formatting. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-09-07build: use more generic naming for PCAP PKTIO testStanislaw Kardach
PCAP pktio is a platform specific concept which is used throughout the examples and tests. Therefore rename it so that it's more clear that this flag is checking whether there is a PCAP pktio support rather than PCAP libraries available. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-08-26build: explicitly list dependency librariesStanislaw Kardach
Debian-based Linux distributions have introduced a while ago a very specific patch to libtool generation which disables libtool generating dependent libraries list to the linker (distribution libtool.m4 has link_all_deplibs forced to no). This causes issues when cross-compiling while using dependent libraries compiled and installed manually to non-sysroot location (see [1]). To reproduce the issue, one has to fetch a toolchain which does not contain pkg-config in it. Debian/Ubuntu aarch64 toolchains do contain version of that tool (aarch64-linux-gnu-pkg-config) which does not have the change in question. There are several solutions to fix this, however this patch opts for explicitly listing dependent libraries in examples and tests. It is done by adding the PLAT_DEP_LIBS variable which platform should fill with libraries that can be added from non-standard locations (such as libconfig and libcrypto for linux-generic). Additionally move the non-platform specific autoconf definitions prior to the platform's configure.m4 so that platforms may adapt to argument customizations passed by the user. [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=297726 Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-08-25example: ipsec: clean README fileMatias Elo
Fix typos and clarify intructions. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-08-25example: ipsec_api: fix premature application exitMatias Elo
Previously, the application would close right away if no test streams were created. A signal handler is added to close the application cleanly. Fixes: https://github.com/OpenDataPlane/odp/issues/983 Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-08-25example: ipsec: fix premature application exitMatias Elo
Previously, the application would close right away if no test streams were created. A signal handler is added to close the application cleanly. Fixes: https://github.com/OpenDataPlane/odp/issues/983 Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-08-25validation: pool: honor max_align capabilityJerin Jacob
Honor the odp_pool_capability_t::buf.max_align attribute while creating the pool. Some implementation chooses to optimize odp_buffer_t handling in such a way that implementation-specific metadata and actual data can be in the same cache-line as a performance optimization while accessing the odp_buffer_t. As a fix, except helpers, let the application uses the default alignment from odp_pool_param_init(). Signed-off-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-07-02example: ping: check odp_pktio_info() return valueMatias Elo
odp_pktio_info_t.name is uninitialized if odp_pktio_info() call fails. Fixes GCC 10 LTO build error. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-07-02example: change thread exit flags to atomic variablesJanne Peltonen
Use atomic flag variables when triggering thread exits from other threads. This fixes the data races with the non-atomic flags and makes sure the compiler will not optimize the flag polling away from the polling loops. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-07-02example: ipsec: detect failure to allocate test packetsMatias Elo
Previously, the IPSec example tests would pass in the CI even though the tests were not properly run due to failures to allocate test input packets. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-07-02example: ipsec: fix stream input packet allocationMatias Elo
The application tried to allocate packets of length zero, which is not allowed by the API. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
2020-06-25example: timer: fix LTO compilationStanislaw Kardach
GCC7.3 warns about uninitialized members of timer pool parameters. Application should take care to ensure clean parameter initialization. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-06-23build: allow per-platform lib nameStanislaw Kardach
So far the build system (helper, examples, tests) expected that the ODP library is named libodp-linux. However that's only a recommended library name. Therefore move the library name specification to the platform automake files. More precisely platform has to define the following: 1. In configure.m4: ODP_LIB_NAME=<name> 2. In Makefile.am: lib_LTLIBRARIES += $(LIB)/lib<name>.la Where <name> is the library name. Please note that lib_LTLIBRARIES has to be explicitly named (cannot use ODP_LIB_NAME variable), otherwise automake will fail to generate compile target. Trying to perform a substitutions in it is only possible with full library name substitution (see [1]), however then all possible library names have to be defined in EXTRA_LTLIBRARIES which cannot contain substitutions. This would effectively replace one hard-coded place with another. [1] https://www.gnu.org/software/automake/manual/ html_node/Conditional-Libtool-Libraries.html Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2020-06-16build: do not define libodp as part of helperStanislaw Kardach
This prevents multiple inclusion of libodp-linux during builds, once as part of libodphelper and then directly by the application. This causes problems when linking statically with LTO enabled. On tested compiler (9.2.1-9ubuntu2) such duplication causes constructor symbols to be defined multiple times. This means that constructors will be run multiple times which leads to unexpected behavior. To fix this, remove libodp from helper link list. This works when compiling applications because there is no point in using libodphelper without libodp-linux, therefore both libraries have to be provided. After removing library order in example/Makefile.inc is required to ensure the proper linking. Signed-off-by: Stanislaw Kardach <skardach@marvell.com> Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-06-11example: l3_fwd: clean up if_name memory handlingJanne Peltonen
Store an explicit pointer to the memory buffer used for holding interface names and use it to free the buffer later. A static analyzer complained about a leak since it did not see that the memory was still pointed to by the first ifname returned by strtok(). Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-06-11example: l3_fwd: fix array overflow when parsing inputJanne Peltonen
Do not try to store more interface names than what fits in the if_names array. The code used to print a message about truncating the list of ports but did not actually do it. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-06-11example: timer_accuracy: fix null pointer dereference when quittingJanne Peltonen
If timer_ctx allocation fails, do not call destroy_timers(), which would dereference it. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-05-29example: hello: remove -c optionJerin Jacob
In the existing application, -c is not honored, instead, it picks the first available CPU from odp_cpumask_default_control(). https://github.com/OpenDataPlane/odp/pull/955 fixes the above-mentioned problem, but hello world does not have to demonstrate CPU pinning, instead it should demonstrate a minimum functionality application. User can run the application with taskset command if it needs to run on a particular CPU. To simplify and fix the existing bug, this patch removes the -c option. Also, it fixes a segfault issue if -n provided without any argument. Suggested-by: Petri Savolainen <petri.savolainen@nokia.com> Signed-off-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-02-28example: don't enable input hashing with only one input queueMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2020-02-26build: check if libatomic is needed for __atomic_compare_exchange_nMatias Elo
Double wide __atomic_compare_exchange_n() is required by ipfragreass example. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>