path: root/app
AgeCommit message (Collapse)Author
2015-11-26table: add key mask to 8 and 16-byte hash parametersFan Zhang
This patch relates to ABI change proposed for librte_table. The key_mask parameter is added for 8-byte and 16-byte key extendible bucket and LRU tables.The release notes is updated and the deprecation notice is removed. Signed-off-by: Fan Zhang <> Signed-off-by: Jasvinder Singh <> Acked-by: Cristian Dumitrescu <>
2015-11-26app/test: add bulk adding and deletingMarcin Kerlin
Added to acl table unit test check for bulk add and bulk delete. Signed-off-by: Maciej Gajdzica <> Acked-by: Cristian Dumitrescu <>
2015-11-25hash: use armv8-a CRC32 instructionsJerin Jacob
armv8-a has optional CRC32 extension, march=armv8-a+crc enables code generation for the ARMv8-A architecture together with the optional CRC32 extensions. added RTE_MACHINE_CPUFLAG_CRC32 to detect the availability of CRC32 extension in compile time. At run-time, The RTE_CPUFLAG_CRC32 can be used to find the availability. armv8-a+crc target support added in GCC 4.9, Used inline assembly and emulated __ARM_FEATURE_CRC32 to work with tool-chain < 4.9 Signed-off-by: Jerin Jacob <>
2015-11-25app/test: add cryptodev unit and performance testsDeclan Doherty
unit tests are run by using cryptodev_qat_autotest or cryptodev_aesni_autotest from the test apps interactive console. performance tests are run by using the cryptodev_qat_perftest or cryptodev_aesni_mb_perftest command from the test apps interactive console. If you which to run the tests on a QAT device there must be one bound to igb_uio kernel driver. Signed-off-by: Declan Doherty <> Signed-off-by: John Griffin <> Signed-off-by: Des O Dea <> Signed-off-by: Fiona Trahe <> Acked-by: Sergio Gonzalez Monroy <>
2015-11-18acl: add NEON optimization for ARMv8Jerin Jacob
The implementation uses NEON gcc intrinsic. Verified with testacl and acl_autotest applications on arm64 architecture. Signed-off-by: Jerin Jacob <> Acked-by: Konstantin Ananyev <>
2015-11-18eal/arm: add CPU flags for ARMv8Jerin Jacob
Signed-off-by: Jerin Jacob <>
2015-11-18eal/arm: add CPU flags for ARMv7Vlastimil Kosar
This implementation is based on IBM POWER version of rte_cpuflags. We use software emulation of HW capability registers, because those are usually not directly accessible from userspace on ARM. Signed-off-by: Vlastimil Kosar <> Signed-off-by: Jan Viktorin <> Acked-by: David Marchand <>
2015-11-13app/testpmd: add nanosecond output for ieee1588Pablo de Lara
Testpmd was only printing out second values when printing RX/TX timestamp value, instead of both second and nanoseconds. Since resolution of time counters is in nanoseconds, testpmd should print out both. Signed-off-by: Pablo de Lara <> Reviewed-by: John McNamara <>
2015-11-12app/testpmd: remove references to deprecated statisticsStephen Hemminger
Some of the statistics are deprecated, so don't test them. Signed-off-by: Stephen Hemminger <>
2015-11-12reorder: fix unit test for random starting pointReshma Pattan
The reorder library unit test was performed under the assumption that the start sequence number was always 0. This is not the case anymore as the start sequence number is initialized by the first packet inserted into the reorder buffer. This patch updates the unit test to reflect the new behavior. Fixes: 7e1fa1de8a53 ("reorder: allow random number as starting point") Reported-by: Mukesh Dua <> Signed-off-by: Reshma Pattan <> Acked-by: Sergio Gonzalez Monroy <>
2015-11-12ixgbe: fix Tx hang when RS distance exceeds HW limitKonstantin Ananyev
One of the ways to reproduce the issue: testpmd <EAL-OPTIONS> -- -i --txqflags=0 testpmd> set fwd txonly testpmd> set txpkts 64,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 testpmd> set txsplit rand testpmd> start After some time TX on ixgbe queue will hang, and all packet transmission on that queue will stop. This bug was first reported and investigated by Vlad Zolotarov <>: "We can reproduce this issue when stressed the xmit path with a lot of highly fragmented TCP frames (packets with up to 33 fragments with non-headers fragments as small as 4 bytes) with all offload features enabled." The root cause is that ixgbe_xmit_pkts() in some cases violates the HW rule that the distance between TDs with RS bit set should not exceed 40 TDs. >From the latest 82599 spec update: "When WTHRESH is set to zero, the software device driver should set the RS bit in the Tx descriptors with the EOP bit set and at least once in the 40 descriptors." The fix is to make sure that the distance between TDs with RS bit set would never exceed HW limit. As part of that fix, tx_rs_thresh for ixgbe PMD is not allowed to be greater then to 32 to comply with HW restrictions. With that fix slight slowdown for the full-featured ixgbe TX path might be observed (from our testing - up to 4%). ixgbe simple TX path is unaffected by that patch. Reported-by: Vlad Zolotarov <> Signed-off-by: Konstantin Ananyev <> Acked-by: Pablo de Lara <>
2015-11-12app/testpmd: add ability to split outgoing packetsKonstantin Ananyev
For CSUM forwarding mode add ability to copy & split outgoing packet into the new mbuf that consists of multiple segments. For TXONLY and CSUM forwarding modes add ability to make number of segments in the outgoing packet to vary on a per packet basis. Number of segments and size of each segment is controlled by 'set txpkts' command. Split policy is controlled by 'set txsplit' command. Possible values are: on | off | rand. Tha allows to increase test coverage for TX PMD codepaths. Signed-off-by: Konstantin Ananyev <> Acked-by: Pablo de Lara <>
2015-11-11app/testpmd: fix build with icc 13Helin Zhang
It fixes compile issue on ICC 13.0.0. Error logs: app/test-pmd/cmdline.c(8160): error #188: enumerated type mixed with another type entry.input.flow.tunnel_flow.tunnel_type = str2fdir_tunneltype(res->tunnel_type); Fixes: 53b2bb9b7ea7 ("app/testpmd: new flow director commands") Signed-off-by: Helin Zhang <> Acked-by: Pablo de Lara <>
2015-11-10app/testpmd: fix icmp echo Tx queuesDavid Marchand
icmp echo forward engine relies on the core rank rather than the number of queues available. This fix is still wrong, because if we set a nb-rxq > nb-txq, then we will use an invalid txq, but with this, we are aligned on other fwd engines. Signed-off-by: David Marchand <> Acked-by: Pablo de Lara <>
2015-11-10app/testpmd: fix flow director help and docWenzhuo Lu
After implementing the fdir new modes for x550, the CLIs are modified. Forgot to update the related help info and doc. Fixes: 53b2bb9b7ea7 ("app/testpmd: new flow director commands") Signed-off-by: Wenzhuo Lu <> Acked-by: Pablo de Lara <>
2015-11-06app/test: increase memory for hash unit testsPablo de Lara
Hash_autotest is in test group 2 which had only 32 MB of memory, which is increased to 64 MB to make it run. Signed-off-by: Pablo de Lara <>
2015-11-06app/test: fix unit test for option -nPablo de Lara
eal_flags_autotest was broken after commit 19bfa4dd ("eal: make the -n argument optional"), since the unit test was checking that app would not run if -n flag was missing, which now it is possible. Also, subtest test_missing_n_flag() has been renamed to test_invalid_n_flag(), as now -n flag is not compulsory. Signed-off-by: Pablo de Lara <>
2015-11-04app/testpmd: extend commands for flow director in VFJingjing Wu
This patch extends commands to support filtering in VFs of flow director. Signed-off-by: Jingjing Wu <>
2015-11-04hash: fix scaling by reducing contentionPablo de Lara
If using multiple cores on a system with hardware transactional memory support, thread scaling does not work, as there was a single point in the hash library which is a bottleneck for all threads, which is the "free_slots" ring, which stores all the indices of the free slots in the table. This patch fixes the problem, by creating a local cache per logical core, which stores locally indices of free slots, so most times, writer threads will not interfere each other. Fixes: 48a399119619 ("hash: replace with cuckoo hash implementation") Signed-off-by: Pablo de Lara <> Acked-by: Bruce Richardson <>
2015-11-04app/testpmd: add command to select filtering GRE key sizeHelin Zhang
Test commands are added to support selecting different length of GRE key. Signed-off-by: Helin Zhang <> Signed-off-by: Andrey Chilikin <>
2015-11-04app/testpmd: add commands for input fields of RSS and flow directorHelin Zhang
Test commands are added to support selecting input set, or adding new input set per different pctype. Signed-off-by: Helin Zhang <> Signed-off-by: Andrey Chilikin <>
2015-11-03app/test: add performance test for ring driverBruce Richardson
Add a performance test for ring pmd, comparing performance of the pmd compared to the basic rte_ring APIs. Signed-off-by: Bruce Richardson <> Acked-by: Pablo de Lara <>
2015-11-02app/testpmd: add command to display queue infoKonstantin Ananyev
Signed-off-by: Konstantin Ananyev <> Acked-by: Remy Horton <>
2015-11-01app/test: add dynamic bonding RSS configurationTomasz Kulasek
Signed-off-by: Tomasz Kulasek <> Acked-by: Declan Doherty <>
2015-11-01app/testpmd: add command to display DCB infoJingjing Wu
This patch adds a command to display DCB info in ports. Signed-off-by: Jingjing Wu <> Acked-by: Jijiang Liu <> Acked-by: Helin Zhang <>
2015-11-01app/testpmd: setup DCB forwarding based on traffic classJingjing Wu
This patch changes the testpmd DCB forwarding stream to make it based on traffic class. It also fixes some coding style issues. Signed-off-by: Jingjing Wu <> Acked-by: Jijiang Liu <> Acked-by: Helin Zhang <>
2015-11-01ethdev: rename DCB field in config structsJingjing Wu
Signed-off-by: Jingjing Wu <> Acked-by: Jijiang Liu <> Acked-by: Helin Zhang <>
2015-11-01app/testpmd: fix missing init in RSS hash show commandAdrien Mazarguil
The "show port X rss-hash" command sometimes displays garbage instead of the expected RSS hash key because the maximum key length is undefined. When the requested key is too large to fit in the buffer, rte_eth_dev_rss_hash_conf_get() does not update it. Signed-off-by: Adrien Mazarguil <> Signed-off-by: Nelio Laranjeiro <>
2015-10-31app/testpmd: add missing type to RSS hash commandsNelio Laranjeiro
DPDK uses a structure to get or set a new hash key (see eth_rte_rss_hash_conf). rss_hf field from this structure is used in rss_hash_get_conf to retrieve the hash key and in rss_hash_update uses it to verify the key exists before trying to update it. Signed-off-by: Nelio Laranjeiro <>
2015-10-29app/testpmd: modify mac in csum forwardingMichael Qiu
For some ethnet-switch like intel RRC, all the packet forwarded out by DPDK will be dropped in switch side, so the packet generator will never receive the packet. Signed-off-by: Michael Qiu <> Acked-by: Jijiang Liu <> Acked-by: Pablo de Lara <>
2015-10-29app/testpmd: new flow director commandsWenzhuo Lu
The different fdir mode needs different parameters, so, the parameter *mode* is introduced to the CLI flow_director_filter and flow_director_mask. This parameter can pormpt the user to input the appropriate parameters for different mode. Please be aware, as we should set the fdir mode, the value of the parameter pkt-filter-mode, when we start testpmd. We cannot set a different mode for mask or filter. The new CLIs are added for the mac vlan and tunnel modes, like this, flow_director_mask X mode MAC-VLAN vlan XXXX mac XX, flow_director_mask X mode Tunnel vlan XXXX mac XX tunnel-type X tunnel-id XXXX, flow_director_filter X mode MAC-VLAN add/del/update mac XX:XX:XX:XX:XX:XX vlan XXXX flexbytes (X,X) fwd/drop queue X fd_id X, flow_director_filter X mode Tunnel add/del/update mac XX:XX:XX:XX:XX:XX vlan XXXX tunnel NVGRE/VxLAN tunnel-id XXXX flexbytes (X,X) fwd/drop queue X fd_id X. Signed-off-by: Wenzhuo Lu <> Acked-by: Konstantin Ananyev <>
2015-10-29app/testpmd: show new flow director modesWenzhuo Lu
There're fdir mask and supported flow type in the output of the CLI, show port fdir. But not every parameter has meaning for all the fdir modes, and the supported flow type is meaningless for mac vlan and tunnel modes. So, we output different thing for different mode. Signed-off-by: Wenzhuo Lu <> Acked-by: Konstantin Ananyev <>
2015-10-29app/testpmd: add parameters for new flow director modesWenzhuo Lu
For testpmd CLI's parameter pkt-filter-mode, there're new values supported for fdir new modes, perfect-mac-vlan, perfect-tunnel. Signed-off-by: Wenzhuo Lu <> Acked-by: Konstantin Ananyev <>
2015-10-29app/testpmd: initialize new flow director masksWenzhuo Lu
When a port is enabled, there're default values for the parameters of fdir mask. For the new parameters, the default values also need to be set. Signed-off-by: Wenzhuo Lu <> Acked-by: Konstantin Ananyev <>
2015-10-26eal: default to using all coresRich Lane
This is a useful default for simple applications where the assignment of lcores to CPUs doesn't matter. It's also useful for more complex applications that automatically assign tasks to cores based on the NUMA topology. Signed-off-by: Rich Lane <>
2015-10-24app/testpmd: detect numa socket countStephen Hurd
Currently, there is a MAX_SOCKET macro which artificially limits the number of NUMA sockets testpmd can use. Anything on a higher socket ends up using socket zero. This patch replaces this with a variable set during set_default_fwd_lcores_config() and uses RTE_MAX_NUMA_NODES where a hard-coded max number of sockets is required. Signed-off-by: Stephen Hurd <> Acked-by: Pablo de Lara <>
2015-10-22eal: fix C++ buildChristoph Gysin
'virtual' is a keyword and can't be used if the code is to compile with C++ compilers. If rte_devargs.h was included in C++ code, compilation with clang++ failed with an error. g++ did not fail, but only because of a bug that treats it as an anonymous struct with a decl-specifier which it ignores. This simply renames the member to 'virt'. Reported-by: Ming Zhao <> Signed-off-by: Christoph Gysin <> Acked-by: Cristian Dumitrescu <> Acked-by: David Marchand <>
2015-10-19port: move metadata offset reference at mbuf headFan Zhang
This patch relates to ABI change proposed for librte_port. Macros to access the packet meta-data stored within the packet buffer has been adjusted to cover the packet mbuf structure. The LIBABIVER number is incremented. Signed-off-by: Fan Zhang <> Acked-by: Cristian Dumitrescu <>
2015-10-12apps: add name to LPM parametersJasvinder Singh
LPM table and pipeline apps have been modified to include name parameter of the lpm table. Signed-off-by: Jasvinder Singh <> Acked-by: Cristian Dumitrescu <>
2015-09-08app/test: replace x86 fence by multi arch functionJerin Jacob
Signed-off-by: Jerin Jacob <>
2015-09-08app/test: fix needless build dependency on x86Jerin Jacob
Signed-off-by: Jerin Jacob <>
2015-09-04hash: remove deprecated function and macrosPablo de Lara
The function rte_jhash2() was renamed rte_jhash_32b and macros RTE_HASH_KEY_LENGTH_MAX and RTE_HASH_BUCKET_ENTRIES_MAX were tagged as deprecated, so they can be removed in 2.2. RTE_HASH_KEY_LENGTH is replaced in unit tests by an internal macro for the memory allocation of all keys used. The library version number is incremented. Signed-off-by: Pablo de Lara <> Signed-off-by: Thomas Monjalon <>
2015-09-03kni: remove deprecated functionsStephen Hemminger
These functions were tagged as deprecated in 2.0 so they can be removed in 2.2. The library version is incremented. Signed-off-by: Stephen Hemminger <> Acked-by: Helin Zhang <> [Thomas: update doc and version] Signed-off-by: Thomas Monjalon <> Acked-by: Neil Horman <>
2015-09-03acl: remove old APIThomas Monjalon
The functions and structures are moved to app/test in order to keep existing unit tests. Some minor changes were done in these functions because of library scope restrictions. An enum is also copied in two other applications to keep existing code. The library version is incremented. Signed-off-by: Thomas Monjalon <> Acked-by: Stephen Hemminger <> Acked-by: Neil Horman <> Acked-by: Konstantin Ananyev <>
2015-09-03lpm: remove deprecated fieldThomas Monjalon
The library version is incremented. Signed-off-by: Thomas Monjalon <> Acked-by: Stephen Hemminger <> Acked-by: Neil Horman <>
2015-09-03ethdev: remove SCTP flow entries switchThomas Monjalon
The extended SCTP flow entries are now part of the standard API. Signed-off-by: Thomas Monjalon <> Acked-by: Stephen Hemminger <> Acked-by: Neil Horman <>
2015-09-03mbuf: remove packet type from offload flagsThomas Monjalon
The extended unified packet type is now part of the standard ABI. As mbuf struct is changed, the mbuf library version is incremented. Signed-off-by: Thomas Monjalon <> Acked-by: Stephen Hemminger <> Acked-by: Neil Horman <>
2015-08-17app/test: initialize table parametersPablo de Lara
In table_autotest, the structures containing the parameters to create the tables were not initialized, and therefore, some checks could fail and so the unit test. Also, due to this initialization, one of the tests that was checking if the table was improperly initialized has been removed, as it is not needed anymore (duplicated) Signed-off-by: Pablo de Lara <>
2015-08-17app/test: fix table alignment checkMaciej Gajdzica
In commit: 1129992baa61d72c5 checking for offset alignment was removed. Unit tests wasn't updated to reflect that change. This patch changes checks with unaligned offsets to make tests pass. Fixes: 1129992baa61 ("port: fix unaligned access to metadata") Signed-off-by: Maciej Gajdzica <> Acked-by: Daniel Mrzyglod <>
2015-08-10app/test: fix bonding mode 5 Tx checkMichal Jastrzebski
Test failed on verification if number of bytes transmitted on each slave is not less than 90% and greater than 110% of mean value of bytes transmitted thru one slave. This was verified on a real system but is difficult to achieve using virtualpmd. That's why for unit tests only, it is sufficient to verify that with high load (2 seconds transmission) all slaves are transmitting so the traffic is balanced. Fixes: 0c8396e6d786 ("bond: unit tests for mode 5") Signed-off-by: Michal Jastrzebski <>