summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-07-15session: application namespace may reference a deleted vrf tableSteven Luong7-5/+148
lock the vrf table when adding an application namespace and unlock the vrf table when deleting an application namespace. Free the session table when no more application namespace uses it anymore to avoid memory leaks. Type: fix Change-Id: I10422c9a3b549bd4403962c925e29dd61a058eb0 Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-15tests: more options for decoding pcapsKlement Sekera4-18/+26
Introduce "none", "all" and "failed" options for --decode-pcaps parameter. Keep "failed" as default to be consistent with current behaviour. Add missing documentation to test/Makefile and passthrough to Makefile. Rationale: running tshark binary takes about 100-150ms and if there are thousands of pcap files, it takes minutes to decode them. This might not be desirable if rerunning the tests repeatedly during development. Type: improvement Change-Id: Ie033521d51d18b9d499b9bc40fe6eff21c94622d Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-07-15octeon: fix link down issueAlok Mishra1-0/+12
An issue is noticed when the link state of the ethernet interface is toggled to down and again brought up. The link status shows "up" in the "show interface", but shows "down" in "show hardware-interface". This issue does not occur when the link is brought up for the first time, but only manifests when the interface is brought down and up again. This happens because the device status and VNET_HW_INTERFACE_FLAG_LINK_UP aren't correctly updated during the port stop, preventing them from being updated during the port start. This patch fixes this issue in the port stop function. Type: fix Fixes: 01fe7ab88e Signed-off-by: Alok Mishra <almishra@marvell.com> Change-Id: Idbc5a6c31409a3d1c5b19e14a3c9509291175677
2024-07-12tests: skip more excluded plugin testsDmitry Valter68-0/+351
Check and skip VPP_EXCLUDED_PLUGINS tests for most of plugins. Type: improvement Signed-off-by: Dmitry Valter <d-valter@yandex-team.com> Change-Id: I23fd3666729251c639aa8da72a676058e3f5bb4e
2024-07-12build: overwrite clang-format version on Ubuntu 24.04Jay Wang1-0/+2
clang-format-11 is used by default in checkstyle.sh while it can be overridden to higher clang-format version. On Ubuntu 24.04, the minimum version of clang-format is version 14. Set the environment variable explicitly in Makefile to overwrite the clang-format version. Before: $ make checkstyle extras/scripts/checkstyle.sh: line 41: --version: command not found make: *** [Makefile:775: checkstyle] Error 127 After: $ make checkstyle Ubuntu clang-format version 14.0.6 ******************************************************************* * CHECKSTYLE SUCCESSFULLY COMPLETED ******************************************************************* Type: fix Change-Id: Iba3e4739c9376701577b2f37e070d199b195e7d0 Signed-off-by: Jay Wang <jay.wang2@arm.com>
2024-07-12build: Fix crossbuilding definitionsRenato Botelho do Couto1-7/+8
CMAKE_C_COMPILER_TARGET doesn't need to be set when it's not cross compiling, and based on wrong identation of that line I suspect it was intended to be inside CMAKE_CROSSCOMPILING conditional. With this line moved inside, it ends up being the only place where COMPILER_SUFFIX is used, so, move its declaration there as well. It will not bring any change to currently supported systems but will make it easier to build VPP on systems running musl libc. Type: fix Change-Id: Ia8e16d9e8ad9c987ddf246dd0e3f8636ccad1362 Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-07-12build: ubuntu-24.04 install-deps package listDave Wallace1-2/+6
- support for ubuntu-24.04 CI jobs Type: make Change-Id: I225d72e22207283de9979cce75d8d208ab99feb5 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-07-12fib: fix covered_inherit_addMaxime Peim2-2/+57
When a FIB entry has multiple sources installed by covering inheritance, the first walk installs the covering source, which can be worse than the already used one (hence the source is not activated). If a covering path is added and a new fib cover walk is done, the deactivated source is compared to itself. This operation calls for a reactivation of the source which was not activated in the first place. Type: fix Change-Id: I2639401bed14eb5a2cb003664c04d6c1f9130de9 Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-07-12ip6: fix icmp error on check failMaxime Peim1-83/+62
Avoid to do fixup either if TTL or MTU check fails. It rewrites the icmp header copied in case the ip6-icmp-error ran before. Type: fix Change-Id: If043d1cae35c41ebf70ba979883119604bee883d Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-07-12fib: improve ipv6 fib scalingBenoît Ganne4-406/+203
VPP IPv6 FIB relies on 2 bihash for all its VRFs: 1 for control plane and one for data plane. Because of that, control plane VRF walks time grows with the number of VRFs as it has to go through all the VRFs. In order to improve control plane performance with large number of VRFs, the control plane data structure is changed from a global bihash to a per-VRF hashtable, similarly to IPv4. Contrary to IPv4, there is only 1 hashtable per VRF and not 1 hashtable per prefix-length per VRF, which is a compromise between memory consumption and single VRF scaling. Type: improvement Change-Id: Ib738a44adb88e46c95c4c62c853ee1f1392c7187 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-07-12fib: make mfib optionalBenoît Ganne14-46/+167
In some cases we do not need multicast support. Making it optional helps scaling to high number of VRFs, by reducing the control plane operations and memory consumption. Type: improvement Change-Id: Ib34ed3fe2806e2f4624981da4e4a3c49c69f70be Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-07-12fib: log an error when destroying non-empty tablesBenoît Ganne4-12/+12
Destroying a non-empty fib table can lead to difficult to diagnose bugs, like dandling fib entries preventing entries to be inserting to the mtrie. Always log an error to help diagnose those issues. Type: improvement Change-Id: I2c771a80595035b440931b74cca4429af22161a2 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-07-10hs-test: quick fix for CpuPinningSuiteAdrian Villin1-1/+8
Type: test Change-Id: Iaed08fe23a63562c99012bd469ca3f3271be2564 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-10session: deleting an application namespace cleaning up the wrong applicationSteven Luong1-1/+1
We call application_namespace_cleanup to remove the application which has a reference to the application namespace when deleting an application namespace. When we find the matching application namespace, we queue the ns_index instead of app_index to look for the application. This may lead to a crash. Type: fix Change-Id: I89c7f8d1681b4c7c1bcb16641217230a26dbe582 Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-09hs-test: Add CPU pinning test suiteHadi Rayan Al-Sandid6-12/+201
Type: test Added suite to verify that VPP launches with provided CPU pinning configurations. CPU configuration is specified per-test. Change-Id: Ic283339676d3b24636fc21156a09a192c1a8d8da Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-07-09vppinfra: fix huge page alloc error on 5.19+ kernelJay Wang1-0/+14
Running VPP on a NUMA system with 5.19+ kernel outputs the following error messages. 'show physmem' command confirms that VPP falls back to using normal 4K pages instead of the preallocated 1G huge pages. The root cause is that VPP uses move_pages()[1] to get the huge page node information. However, this misbehaves on the 5.19+ kernel due to changes introduced in its implementation[2]. Our proposed fix is retry obtaining NUMA node info with get_mempolicy()[3] only if we see -ENOENT returned in status from move_pages() and huge pages are used. Additionally, we use mincore()[4] to check if pages are allocated and in memory to avoid the possibility of get_mempolicy() falsely allocating a new page. buffer [warn ]: numa[1] falling back to non-hugepage backed buffer pool () vpp# show physmem used-pages 2 reserved-pages 16 default-page-size 1G lookup-page-size 4K arena 'buffers-numa-0' pages 1 subpage-size 1G numa-node 0 shared fd 5 arena 'buffers-numa-1' pages 1 subpage-size 4K numa-node 1 shared fd 6 [1] https://man7.org/linux/man-pages/man2/move_pages.2.html [2] https://lore.kernel.org/linux-mm/91da2c3b-96f1-bb03-8fff-4c38f31cb9be@huawei.com/ [3] https://man7.org/linux/man-pages/man2/get_mempolicy.2.html [4] https://man7.org/linux/man-pages/man2/mincore.2.html Type: fix Signed-off-by: Jay Wang <jay.wang2@arm.com> Change-Id: Ia423745423bb080404292333ef95455a4950ce0a
2024-07-09tls: refactor vft functionsn to allow for reuseFlorin Coras3-140/+152
Type: refactor Change-Id: I3d7ff64e2e54b113f8d4b26f2dbf5b9c67b80976 Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-07-08session: add api to program rx io evtsFlorin Coras2-0/+17
Type: improvement Change-Id: I5a4a33604ecb8a29ef6932cc5826835d3bec7f23 Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-07-08hs-test: add missing packages to install-depsDave Wallace1-1/+2
Type: test Change-Id: I2730debc7ea9256bf27208a2662f920edcd6826c Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-07-08hs-test: CPU allocation improvementsAdrian Villin5-47/+179
- Release build runs on numa node0, debug on node1. Using the last digit of a build number to reserve 4 cores per test mmeans we can run 20 jobs (10 release, 10 debug) on the same machine, assuming we have 111 cores available (not counting core 0). Can be increased if needed, there are still some cores left. - Added separate numa aware cpu allocation - Added CPU0=true|false (useful for users with 4c/8t) Type: test Change-Id: Iba8e492a4e01a7f457e49112303887a2a27f6af9 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-08session: improve enable and disable handlingFlorin Coras10-20/+42
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3c79d16f6a19767d990e8a4683c296219b559ccd
2024-07-08session: handle multiple attempts to mark mq congestedFlorin Coras1-2/+5
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Iadc6ec58f5fc7fbff62e4fd31d509557b60395cb
2024-07-03acl: cli addition to set macip rulesSanjyot Vaidya1-0/+211
This change is used to add cli command for macip acl rules. Cli commands added for addition and deletion of rule. Type: improvement Change-Id: I28adba0193a904f6c130c81cd19bb6de47f517a9 Signed-off-by: Sanjyot Vaidya <Sanjyot.Vaidya@arm.com>
2024-07-03tests: disable failing tests on Ubuntu 22.04Andrew Yourtchenko5-10/+21
Also rework the logic so the skipping of marked Ubuntu 22.04 occurs at framework level Leave debian11 special cases as-is. Type: fix Change-Id: I481eb32cd1a0860935482e9f930ced409da653c9 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-07-02session: session disable crash if not enableSteven Luong1-1/+2
If session is not enable, type in the CLI session disable cause VPP to crash. Type: fix Change-Id: Ib55b7430b7ce521a40025d58fa18b765f5129fd5 Signed-off-by: Steven Luong <sluong@cisco.com>
2024-06-29unittest: coverity woeSteven Luong1-2/+5
check return value after strstr() Type: fix Change-Id: Ib6eb82b6a52c7e08785f6deb73e6cc7a10e7f61b Signed-off-by: Steven Luong <sluong@cisco.com>
2024-06-28session: memory leaks on various transports when session disable and enableSteven Luong4-3/+76
When toggling session disable and enable, memory leaks found on various transports. Don't create the timer wheels on enable when they are already creaded. Don't create the spin locks when they are already created. Add session enable disable test in session unit test. Type: fix Change-Id: I08988a96bbf2d67a67c743b50b63f5b1e27402a3 Signed-off-by: Steven Luong <sluong@cisco.com>
2024-06-28hs-test: cat summary file after a failed test runAdrian Villin2-1/+3
- as per Florin's request Type: test Change-Id: Id76fda0e2dfac7e58b703a8d6f096aa7b5be31c7 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-28misc: VPP 24.06 Release NotesAndrew Yourtchenko2-0/+495
Type: docs Change-Id: Id47dbab5e5661c76e6ff41237bbca5b5b15506c4 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> (cherry picked from commit 6e8b350a0154caee6e9f037ae4938b83fb5dcf20)
2024-06-26vppinfra: Improve code portabilityRenato Botelho do Couto1-2/+2
Use standard macros CPU_ISSET_S and CPU_ZERO_S and make code more portable. Type: improvement Change-Id: I8e6a0fd79b90de8c6c33cad8882680eae2ca50ef Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-06-25linux-cp: populate mapping vif-sw_if_index only for default-nsDenys Haryachyy1-2/+6
When custom netns is used we don't need to populate the mapping ifindex->sw_if_index otherwise netlink events in default-ns can apply settings to wrong interfaces. Most of the lcp functions however wasn't working for such interfaces and neither it was fixed by this patch. Type: fix Change-Id: I74a8a4e332753f9a40fc291d489dfd7fc51cbef3 Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
2024-06-25dev: move bus code to bus/Damjan Marion16-15/+17
Type: refactor Change-Id: If3a195f1ea600bfd621717f333af1b1273ab0807 Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-06-25session: memory leak in mma rule tableSteven Luong1-0/+3
When the rule table is allocated, the root node is allocated. But it cannot be deleted by the add_del API, or the table is useless. When the table is free, the root node is not free and there is memory leak. Let's add pool_flush when the rule table is free. Type: fix Change-Id: I58c3e040cd101c7db501d99a373ad78d85321b8f Signed-off-by: Steven Luong <sluong@cisco.com>
2024-06-25ipsec: enable ipv6 udp checksum offloadJeff Shaw1-0/+33
RFC6935 section 5 states that, by default, the UDP checksum must be computed when originating an IPv6 UDP packet. The default behavior may be overridden when conditions defined by RFC6936 are satisfied. However this implementation does not satisfy all the conditions so the checksum must be computed. After ESP encryption the packet is an IPv6 UDP packet so set the l3_hdr_offset and l4_hdr_offset values, and set the UDP_CKSUM offload flag in the buffer. Type: improvement Co-authored-by: Cian Ferriter <cian.ferriter@intel.com> Change-Id: I9f8c434c9fe9dbddd8890d5ae366984bfcf34067 Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
2024-06-25hs-test: return error if connecting to vpp failsHadi Rayan Al-Sandid1-0/+1
Type: fix Fix case where no error code would be returned if vpp was launched, but then exited due to invalid configuration. Change-Id: I54d526629a2ee0206227615ffb6cb658779f93a0 Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-06-25crypto: Add prefetching for src and dstNiyaz Murshed1-0/+11
Adding prefetching to openssl plugin improves both sync and async mode ipsec performance by more than 5% on N1 ampere. Sync mode (1420b) core count old (MPPS) new (MPPS) %diff 1c 0.972 1.01 3.90 2c 1.91 2.02 5.87 3c 2.86 3.04 6.03 Async mode (1420b) core count old (MPPS) new (MPPS) %diff 1c 1.296 1.37 5.70 2c 2.58 2.753 6.70 3c 3.74 3.9 4.27 6c 7.52 7.832 4.14 Type: improvement Change-Id: Ieef22c37e1330ac9f8b7e09a25c24162516b6c26 Signed-off-by: Niyaz Murshed <niyaz.murshed@arm.com>
2024-06-24hs-test: move nginx tests into one fileMatus Fabian3-152/+153
Type: test Change-Id: Ie525636c6299a8306cba45e72f8ee6c9da6d6e4f Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-24hs-test: added interrupt mode testsAdrian Villin6-7/+55
Type: test Change-Id: I327fa1a4ea23a3af3aa33e5260367426a11e7b4f Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-24build: conditional dependency handling of depfileOle Troan1-6/+18
Older distributions like Ubuntu 20.04 uses an old version of cmake that does not handle absolute paths. Leave .api dependency handling like before, i.e. not handle interdependency between .api files for those older builds. Type: fix Change-Id: I3f15a4506f6c95fca7a5b00893dc354cbed42a29 Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-24ip: mark IP_ADDRESS_DUMP as mp-safeVladislav Grishenko1-0/+2
Since main thread is the only one thread that can modify address hash, avoid barriers while IP_ADDRESS_DUMP api calls. Type: improvement Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru> Change-Id: I9c35400bdef9fb08e81d859c8f2e3bdaa5468f4b
2024-06-21hs-test: cache docker build in local filesystemDave Wallace1-8/+24
- when running in the CI, cache the docker build layers in the local filesystem to allow docker executor images to contain cached docker build layers Type: test Change-Id: Ie728a8370d3fb8144d01dff566aaa846ca6fd81b Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-06-20http_static: fix reply data leakFlorin Coras1-0/+2
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ica78044b044a78714dd9947620250f13c63320fb
2024-06-20ip6: fix ip6-michain trace functionMaxime Peim1-1/+1
Type: fix Change-Id: I3a5c04b14bf1156376e2acece69f8256d00f261a Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-06-19dpdk: xstats vecor stuck at 0 elementsOle Troan1-7/+19
Fixes: dd6fb60f1794fc08ec40598a67dc70f942c200d1 Type: fix Change-Id: I2429715a954361ceea969191493c15bef21e2040 Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-19hs-test: fix LDPreloadIperfVppTestAdrian Villin4-3/+16
- fixed ldpreload path (debug build) Type: test Change-Id: Ib2ab58b32ffd87a78189464b599f7bbc4f05c175 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-19http: fix app name formatting in templateMatus Fabian1-2/+2
app name is vector without null termination Type: fix Change-Id: Iaa50770c84f23a71165d76a63c29b76e90006ac6 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-19build: vppapigen dependency handlingOle Troan2-4/+42
Add dependency generation to the vppapigen compiler, so that when an API file depends on another, that's registered as a dependency with the build system. Add a build dependency on vppapigen submodules so that all api files are regenerated if the compiler itself changes. Type: improvement Change-Id: I392853754129778ef15532d1b04813786b943b44 Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-19fib: fix ip drop path crashesDmitry Valter2-0/+17
Do not mark drop paths as imported to avoid crashes on invalid table lookup. ``` vpp[8478]: /build/Vpp2310/source/src/vnet/fib/fib_table.c:35 (fib_table_get) assertion `! pool_is_free (ip4_main.fibs, _e)' fails #9 0x00007ff21785da1d in _clib_error () from /lib/x86_64-linux-gnu/libvppinfra.so.23.10 #10 0x00007ff218087698 in fib_table_get (index=4294967295, proto=FIB_PROTOCOL_IP4) at /build/Vpp2310/source/src/vnet/fib/fib_table.c:35 #11 0x00007ff218087a37 in fib_table_lookup_exact_match (fib_index=4294967295, prefix=0x7ff0eae0d354) at /build/Vpp2310/source/src/vnet/fib/fib_table.c:100 #12 0x00007ff2180bc938 in fib_attached_export_import (fib_entry=0x7ff0eceac3e0, export_fib=4294967295) at /build/Vpp2310/source/src/vnet/fib/fib_attached_export.c:264 #13 0x00007ff218098ade in fib_entry_post_flag_update_actions (fib_entry=0x7ff0eceac3e0, old_flags=FIB_ENTRY_FLAG_NONE, new_fib_index=4294967295) at /build/Vpp2310/source/src/vnet/fib/fib_entry.c:624 #14 0x00007ff218098b90 in fib_entry_post_install_actions (fib_entry=0x7ff0eceac3e0, source=FIB_SOURCE_API, old_flags=FIB_ENTRY_FLAG_NONE) at /build/Vpp2310/source/src/vnet/fib/fib_entry.c:674 #15 0x00007ff218098cce in fib_entry_create (fib_index=1, prefix=0x7ff0d3244d80, source=FIB_SOURCE_API, flags=FIB_ENTRY_FLAG_NONE, paths=0x7ff0eac15ab8) at /build/Vpp2310/source/src/vnet/fib/fib_entry.c:712 #16 0x00007ff218088db4 in fib_table_entry_update (fib_index=1, prefix=0x7ff0d3244d80, source=FIB_SOURCE_API, flags=FIB_ENTRY_FLAG_NONE, paths=0x7ff0eac15ab8) at /build/Vpp2310/source/src/vnet/fib/fib_table.c:799 #17 0x00007ff2180c026c in fib_api_route_add_del (is_add=1 '\001', is_multipath=0 '\000', fib_index=1, prefix=0x7ff0d3244d80, src=FIB_SOURCE_API, entry_flags=FIB_ENTRY_FLAG_NONE, rpaths=0x7ff0eac15ab8) at /build/Vpp2310/source/src/vnet/fib/fib_api.c:485 #18 0x00007ff217d4b6dd in ip_route_add_del_t_handler (mp=0x7ff0eb08b998, stats_index=0x7ff0d3244dc8) at /build/Vpp2310/source/src/vnet/ip/ip_api.c:718 #19 0x00007ff217d4b986 in vl_api_ip_route_add_del_t_handler (mp=0x7ff0eb08b998) at /build/Vpp2310/source/src/vnet/ip/ip_api.c:789 ``` Type: fix Fixes: 4b08632748727486e7ebfdcf4d992743595bc500 Signed-off-by: Dmitry Valter <d-valter@yandex-team.com> Change-Id: I647899533771c35f44c9ecde517a30f111b36ad9
2024-06-18dpdk: expose xstats in stats segmentOle Troan3-12/+90
Expose DPDK xstats in the stat segment. Represented as a 2D array. Thread by sw_if_index. Each counter has the same name as the corresponding xstats counter, under /if/<driver-name>/<xstats-name> Type: improvement Change-Id: Icd34b46e2b4d708f1c9a7063d6afd4ced3dfa4f5 Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-17vnet: move format_vl_api_address_union() from vpp to vnetBenoît Ganne4-16/+16
format_vl_api_address_union() is used by vnet, creating a linkage dependency from vnet to vpp. Type: fix Change-Id: I298a90d521e51b7527ef140d66130062824e1d16 Signed-off-by: Benoît Ganne <bganne@cisco.com>