summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-01-22tests: add generalized tags for tests, use them for run-solo testsAndrew Yourtchenko10-58/+54
We have accumulated several scenarios in prod or wishlists where it would be useful to have a general infra to say yes/no about a certain test, and potentially make decisions based on that, for example: - runs solo (aka 'time-dependent') - (wishlist) part of quick smoke-test set - (wishlist) intermittent failure unrelated to timing - (wishlist) test broken with a multi-worker config in vpp Refactor the current "run-solo" code to allow for this extension. Type: test Change-Id: Ia5b3810e57c0543753c8e0dc4dc0cfb4a30b36ac Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-01-22docs: vpp stateless traffic generatorDave Barach2-0/+106
Add a use-case writeup. Type: docs Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: Ib6e79e80455edbdeedcc96943dd98f16c57c559e
2021-01-22interface: fix rx-placement api/cli for new infraMohammed Hawari3-72/+90
Change-Id: Ic977ffe761efc2129c61aec581da5479fe4838da Type: fix Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2021-01-22interface: let drivers control polling when downMohammed Hawari2-8/+2
Change-Id: I03e164d8d5a329497f422e99f8b0058135241b4e Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: fix
2021-01-22devices: adapt af_packet to new rxq frameworkMohammed Hawari3-32/+32
Change-Id: If8077280cef501599f810ad9255efa2a5a451ced Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: improvement
2021-01-21interface: fix vnet_hw_if_update_runtime_dataMohammed Hawari1-0/+1
Take into account pending interrupts when resizing rxq_interrupts Type: fix Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Change-Id: I64f6f4404738c90ed5a2c10d72c7ce59cf96a644
2021-01-21sr: SRv6 FlowLabel AddedJakub Horn1-12/+39
Type: improvement Signed-off-by: Jakub Horn <jhorn@cisco.com> Change-Id: I06401a8645615d139893dca27d07bb3b3214bea7
2021-01-21dpdk: do not use TSO for small packetsSomnath Kotur1-2/+5
Asking for TSO (TCP Segmentation Offload) on packets that are already smaller than (headers + MSS) does not make sense and may not work on some HW. Fix to only set the TSO flag when a segmentation offload is really required, i.e when packet is large enough. Type: improvement Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> Change-Id: I7830ae8474581c8e518fb4910f7863e10346bb62 Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
2021-01-21avf: use write combining store for queues tail updateRadu Nicolau5-25/+49
Performance improvement: on supported platforms, currently only Intel Tremont, use a write combining store to update the tail pointers. Also, Tremont node variant is added for all. Type: improvement Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Change-Id: Ie9606e403b7d9655184f778e3ffee3027c8c9edd
2021-01-21libmemif: buffer enqueue refactorJakub Grajciar3-75/+121
Refactored memif_buffer_enq_tx - dequeue buffers from any queue (rx/tx) and enqueue them to any tx queue. Added memif_buffer_requeue - swap descriptors of provided buffers. Type: refactor Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I8482824df920aaaf8325d52a297ed57a815aaba6
2021-01-21dpdk: dpdk i40e patch cherry-pickChenmin Sun1-0/+134
This patch fixes flex payload flow creation failure issue Type: fix Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I3ac0a168dadd033a668d7bd6f5e78798aedb61a5
2021-01-21rdma: adapt to new vnet rxq frameworkMohammed Hawari3-27/+30
Change-Id: Id539d36635f0ab9625dc2fc73630be39bead09af Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: improvement
2021-01-21ip: do not return uninitialized IPv6 ll attributesBenoît Ganne1-3/+7
Type: fix Change-Id: If35cf7da0c3d1b92532cc2e45c164d6b5a08592c Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-01-21memif: adapt to new rxq frameworkMohammed Hawari3-61/+59
Change-Id: Ifa8bccd8a34ec1b14e772ee53757e9083373e3de Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: feature
2021-01-21af_xdp: update interrupt mode to new infraBenoît Ganne3-36/+86
Type: improvement Change-Id: Icb23af5f5e458a555f416cb0a829e84646b25dd9 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-01-21marvell: adapt pp2 to new rxq framework.Mohammed Hawari2-9/+11
Change-Id: I8759a07a24692b8b418ef8eb2025b61a62d2dda1 Type: improvement Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2021-01-21interface: rx queue infra rework, part oneDamjan Marion37-354/+1212
Type: improvement Change-Id: I4008cadfd5141f921afbdc09a3ebcd1dcf88eb29 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-01-21perfmon: added cache hits and missesRay Kinsella2-0/+70
Added basic support for counting cache hits and misses per node. Type: improvement Signed-off-by: Ray Kinsella <mdr@ashroe.eu> Change-Id: Ic566611fd3d4246ccaa2117d8f74a569a6862e80
2021-01-21dpdk: terminate device devargs stringMatthew Smith1-1/+2
Type: fix When a device is whitelisted with devargs arguments specified, the string that is generated and added to conf->eal_init_args is not explicitly terminated with 0. If the formatted string takes up all of the memory allocated to the vector which stores it and it is used later as a string in a format() or printf() call, any nonzero characters stored in memory at the address immediately following the memory allocated for the vector will be erroneously appended to the string. Terminate the string with 0 to ensure that this does not happen. Change-Id: I20a78d994daad93bf5aecab5c03d705022e882ec Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-01-21build: deprecate debian-9 supportDave Wallace1-4/+0
Type: make Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: Ib14ce5561446aefb03c3989cf82ac7c6eb1471bb
2021-01-21dpdk: add support for system libdpdkNathan Moos1-85/+96
Type: improvement This patch enables dynamically linking the dpdk plugin against a system-wide packaged version of dpdk. Change-Id: I2276d125f39986b0e1788c7b52b94485cdbcd855 Signed-off-by: Nathan Moos <nmoos@cisco.com>
2021-01-21vppinfra: ensure _GNU_SOURCE is presentNathan Moos2-6/+13
Type: fix When building with musl, _GNU_SOURCE is required to be defined in more places. This patch defines it in those required places. Additionally, this patch changes the udphdr field names to the standard names. Change-Id: I0fec54214ccc8458289176488afb4218761e9d51 Signed-off-by: Nathan Moos <nmoos@cisco.com>
2021-01-21ip: Use correct enum type in ip_address_setNeale Ranns5-11/+12
Type: refactor Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: Ice2bc42838e6d5ba579f449c3f8b0feffebeb719
2021-01-21ip: use IPv6 flowlabel in flow hash computationAhmed Abdelsalam16-107/+129
extends ip6_compute_flow_hash() to include IPv6 flowlabel in flowhash computation Type: improvement Signed-off-by: Ahmed Abdelsalam <ahabdels@cisco.com> Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Change-Id: Id1aaa20c9dac729c22b714eea1cdd6e9e4d1f75e
2021-01-21ipsec: Honour IPSec SA table-ID over APINeale Ranns2-11/+9
Type: fix Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: Ib08fe356e4dc710dd60a96736c48b27129f06786
2021-01-21ipsec: Tunnelled packets are locally generatedNeale Ranns1-0/+1
Type: fix this means we 1) don't decrement TTL and (for v6) can fragment. Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: I0f718da7dcaba834ad495ae9242a9a58c9e7c184
2021-01-21ip: set correct error in ip6-localBenoît Ganne1-3/+3
Type: fix Change-Id: Ib23f823e46494f80d9d857ddde88f4939bf2b3d1 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-01-21vppinfra: add bihash with 32 byte keyMatthew Smith2-0/+108
Type: feature Add header to define bihash_32_8. Change-Id: Ia8a21a1e76cf0c05b8f8a2d1f5dbc0dc586d7801 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-01-21fib: fix includes for muslNathan Moos1-1/+1
Type: fix When building with musl, the type `uint` is not available unless you include <sys/types.h>. Signed-off-by: Nathan Moos <nmoos@cisco.com> Change-Id: I0003b0c373d9fd532b4135c43d78f36d6cd7afa4
2021-01-20tests: do not skip solo-run tests if running within a single job and all ↵Andrew Yourtchenko1-8/+7
remaining tests are solo-run There was a logic error, which results in not running solo tests if TEST_JOBS=1, and we have finished running the regular test and the remaining tests are all solo-run. They all get put into that pile, but the new runners never start. Solution: check the pile of solo-run jobs unconditionally. Thanks to Klement Sekera for spotting the issue. Type: fix Change-Id: Iaecacbe4de44050cd8d0ff2d524559df99f2bae4 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-01-20build: add python files to ctagsJerome Tollet1-1/+1
Type: improvement Signed-off-by: Jerome Tollet <jtollet@cisco.com> Change-Id: Ifb97b3a52d8bf4ecc09dc1e8ff94992fef309a65
2021-01-20acl: replace glibc internal __bswap_64 with clibNathan Moos1-1/+2
Type: fix In order to build VPP as a package for an embedded Yocto-based distribution, this patch replaces the use of the glibc internal __bswap_64 function with the VPP function clib_net_to_host_u64, which is provided by vppinfra. Change-Id: I3ecc8525861dc3441bce2b51aa4c80f9a62d3051 Signed-off-by: Nathan Moos <nmoos@cisco.com>
2021-01-20memif: fix vpp to go link up immediately on admin upEd Warnicke3-16/+23
Type: improvement Previously, memif would check every 3 seconds to see if an interface had gone admin up. Now it does as soon as admin up occurs. Signed-off-by: Ed Warnicke <hagbard@gmail.com> Change-Id: I808699cd5980fa162c34ac977f43d00ed6b67115 Signed-off-by: Ed Warnicke <hagbard@gmail.com>
2021-01-20vxlan: fix SEGV reported in VPP-1962Ed Warnicke1-5/+29
Type: fix Replace vnet_register_interface with ethernet_register_interface Fixes https://jira.fd.io/browse/VPP-1962 Signed-off-by: Ed Warnicke <hagbard@gmail.com> Change-Id: I5f578fc416605429fe1e2b510ad49eb754451d40 Signed-off-by: Ed Warnicke <hagbard@gmail.com>
2021-01-20vppinfra: add option to use libexecinfoNathan Moos1-1/+5
Type: feature The musl libc does not provide <execinfo.h> or an implementation of the functions provided. This patch enables the use of libexecinfo as an alternative, which can be used on systems with musl. Change-Id: I76b5744ddf731b66e16144025a6fdedf72925260 Signed-off-by: Nathan Moos <nmoos@cisco.com>
2021-01-20svm: add standard include for __WORDSIZENathan Moos1-0/+1
Type: fix In glibc, the __WORDSIZE macro is defined in a header included indirectly from svm_common.h. In musl, the __WORDSIZE macro is not indirectly included, so this patch directly includes <sys/user.h> to ensure the __WORDSIZE macro is available. Change-Id: If1b1fc97161b7a0b2e82351d4776c81c36a323cb Signed-off-by: Nathan Moos <nmoos@cisco.com>
2021-01-20vlib: fix build with muslNathan Moos2-0/+2
Type: fix When building with musl, some transitive includes from glibc are not present. This patch adds direct includes for the necessary types, and it also defines _GNU_SOURCE to ensure that the socket types are complete. Change-Id: Ic69c307b9515fec764c32906b5bc7f1fb34f2525 Signed-off-by: Nathan Moos <nmoos@cisco.com>
2021-01-20crypto: improve ipsecmb build timePiotrX Kleski1-1/+1
Type: improvement This change disables building of ipsecmb test and perf targets to reduce the build time. IpsecMB test and perf targets are not neeeded and not used by VPP. Signed-off-by: PiotrX Kleski <piotrx.kleski@intel.com> Reviewed-by: Fan Zhang <roy.fan.zhang@intel.com> Change-Id: I7c3449f7f4ce9a2e70ca21a00fd510691dab87d0
2021-01-20ikev2: use new counters data model & add more countersFilip Tehlar3-50/+169
Type: feature Ticket: VPP-1916 Change-Id: Ibe612d21f748a532d88b73b286dc4a1dd15d7420 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2021-01-20ip: add IPv6 ping test for link-layer addressBenoît Ganne3-44/+45
Type: improvement Change-Id: I9f60e29462c7cb193a8594b7de06418b40573103 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-01-20ip: add API to retrieve IPv6 link-layer addressBenoît Ganne3-37/+89
Type: feature Change-Id: I5739869490155b0b9674b4faf61882d97e66a4ed Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-01-20crypto: fixed vnet_crypto_is_set_handler()PiotrX Kleski1-1/+10
Type: fix vnet_crypto_is_set_handler() was checking if op handler is set by using alg instead of op id. This fix changes the check to use op ids from crypto_main's alg_data for provided alg. Signed-off-by: PiotrX Kleski <piotrx.kleski@intel.com> Change-Id: I5f0f00a889ddada44d9912af175ebad66677037a
2021-01-20build: add the missing leading underscore to FORTIFY_SOURCENeale Ranns5-19/+19
Type: fix Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: I36f2d08681f90a3f8ea7598952d1e14c53f0187b
2021-01-20rdma: fix pkg_config fileMohammed Hawari1-0/+3
When building DPDK with rdma linkage, this patch avoids linking against useless verb providers. It also hard-codes the library directory to lib to fix CentOS behavior. Change-Id: I3acd94adf1b7e59e023346b3c254bd4bba6157df Type: fix Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2021-01-20classify: Layout classify entry to group data-plane accessed fields onNeale Ranns3-102/+124
one cache line Type: refactor Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Change-Id: I54128ba62f8dcc87c1845b33ed3637112d42a891
2021-01-19classify: crash on classify filter pcap del commandSteven Luong1-1/+2
If classify pcap filter was never configured, typing the delete command causes a crash. The reason is cm->classify_table_index_by_sw_if_index not yet allocated. The fix is to add a check before we access the vector. Type: fix Fixes: gerrit 28475 Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: Ia33bd91fa82d8ffc4490d4069155980a6e233268
2021-01-19avf: fix l2_len for csum offloadMohammed Hawari1-4/+3
Use vlib_buffer_t::current_data instead of vnet_buffer_opaque_t::l2_hdr_offset to compute l2_len for checksum offload (l2_hdr_offset might be invalid if packet originates from an L3 interface) Change-Id: I2031ea6fd6a7af4b6e186751e119ebd6161641b5 Type: fix Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2021-01-18build: make rpath optionalNathan Moos1-1/+4
Type: feature This patch begins enabling support for building VPP as a package for a Yocto-based embedded Linux distribution. Yocto QA complains about executables and libraries with an rpath configured, as the paths may not be valid on the target system. Therefore, this patch adds a new CMake option named `VPP_SET_RPATH`, which is enabled by default but can be disabled by a Yocto-based build. Change-Id: I90e9c4ba07138032b0f76cb72a98e58470885d55 Signed-off-by: Nathan Moos <nmoos@cisco.com>
2021-01-18nat: deal with flows instead of sessionsKlement Sekera15-1963/+1865
This change introduces flow concept to endpoint-dependent NAT. Instead of having a session and a plethora of special cases in code for e.g. hairpinning, twice-nat and others, figure all this out and store it in flow logic. Every flow has a match and a rewrite part. This unifies all the NAT packet processing cases into one - match a flow and rewrite the packet based on that flow. It also provides a cure for hairpinning dilemma where one part of the flow is on one worker and another on a different one. These cases are also sped up by not requiring destination adress lookup every single time to be able to rewrite source nat as this is now part of flow rewrite logic. Type: improvement Change-Id: Ib60c992e16792ea4d4129bc10202ebb99a73b5be Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-01-18ipsec: Support MPLS over IPSec[46] interfaceNeale Ranns13-166/+470
Type: feature Signed-off-by: Neale Ranns <nranns@cisco.com> Change-Id: I89dc3815eabfee135cd5b3c910dea5e2e2ef1333