aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-04-18sr: use correct reply to sr_policy_add_v2stable/2402Vratko Polak1-1/+1
Type: fix Fixes: c4c205b091934d96a173f4c0d75ef7e888298ac7 Change-Id: I110729601a9f19451297883b781ec56e2b31465b Signed-off-by: Vratko Polak <vrpolak@cisco.com> (cherry picked from commit 4332082093c267818899476d563c73298a491014)
2024-04-08misc: in crcchecker.py, don't check for uncommitted changes in CIDave Wallace1-7/+9
Type: fix Change-Id: I63260a953e54518b3084b62fccdb4af81315b229 Signed-off-by: Dave Wallace <dwallacelf@gmail.com> (cherry picked from commit 3a0d7d2c95e8b8087c20b99fed5bcf62fac027d9)
2024-03-12flowprobe: fix flush callbacks when multiple workersAlexander Chernavin2-2/+86
IPFIX buffers are stored on a per worker thread basis. Currently, the flush callbacks will flush only buffers stored for the main thread. And buffers for worker threads will not be sent until their size reach the path MTU configured for the exporter. So if traffic is constant, the problem will unlikely to be visible. Buffers will be sent once they reach the maximum size. However, if traffic stops at some point and flush is triggered in order to make the plugin send all currently buffered data, this will not happen. And collectors will not receive that data. The plugin will keep the remaining data until traffic starts again, the buffers reach the maximum size, and be sent. With this fix, flush buffers for worker threads and for the main thread when the flush callbacks are triggered. This will allow to remove @tag_fixme_vpp_workers from the unit tests that don't set timers. The tests that set timers will still be failing for other multi-worker related problems. Type: fix Change-Id: I9a7d9cef8ddbec7ee68c79309e48e7bc0953d488 Signed-off-by: Alexander Chernavin <achernavin@netgate.com> (cherry picked from commit 4c7305f124cfa9c649ec6c9231eaf608fe336f1b)
2024-03-11ipsec: check each packet for no algs in esp-encryptMatthew Smith2-11/+36
In esp_encrypt_inline(), if two or more consecutive packets are associated with the same SA which has no crypto or integrity algorithms set, only the first one gets dropped. Subsequent packets either get sent (synchronous crypto) or cause a segv (asynchronous crypto). The current SA's index and pool entry are cached before it can be determined whether the packet should be dropped due to no algorithms being set. The check for no algorithms is only performed when the cached SA index is different than the SA index for the current packet. So packets after the first one associated with the "none" alg SA aren't handled properly. This was broken by my previous commit ("ipsec: keep esp encrypt pointer and index synced") which fixed a segv that occurred under a different set of circumstances. Check whether each packet should be dropped instead of only checking when a new SA is encountered. Update unit tests: - Add a test for no algs on tunnel interface which enables asynchronous crypto. - Send more than one packet in the tests for no algs. Type: fix Fixes: dac9e566cd16fc375fff14280b37cb5135584fc6 Signed-off-by: Matthew Smith <mgsmith@netgate.com> Change-Id: I69e951f22044051eb8557da187cb58f5535b54bf (cherry picked from commit ff71939c30ae81241808da1843e82cf2dfa92344)
2024-03-11linux-cp: add add_del_v3 and get_v2 methodsAnton Nikolaev2-6/+108
Added vl_api_lcp_itf_pair_add_del_v3_t_handler method, it can return vif_index in reply. Also added vl_api_lcp_itf_pair_get_v2_t_handler methods, this method is able to dump only one lcp pair or dump all lcp pairs via stream_msg. Type: improvement Change-Id: I1d25344ee57f8fac8b857bb3a9a03116230b4d2c Signed-off-by: Anton Nikolaev <anikolaev@netgate.com> (cherry picked from commit 83ad79d69a09f504ba6ce3325fc165648eb55daa)
2024-03-08ip: force full reassembly before virtualMatthew Smith1-14/+5
Type: improvement The vnet buffer metadata for full IP reassembly and shallow virtual reassembly overlaps. If you have full reassembly and virtual reassembly enabled on the same interface and virtual reassembly happens to process packets first, full reassembly will stomp on the metadata populated by virtual reassembly. Virtual reassembly gets enabled implicitly when NAT feature nodes are enabled. Those NAT feature nodes rely on the virtual reassembly metadata being populated correctly in order to find L4 proto & ports. When NAT and IP full reassembly are both enabled on an interface, NAT can drop fragmented packets because the virtual reassembly metadata can be overwritten by full reassembly. Ensure that full reassembly runs before virtual reassembly. Add a runs_before dependency to ensure that ip4-full-reassembly-feature runs before ip4-sv-reassembly-feature. There was a duplicate VNET_FEATURE_INIT() for ip4-full-reassembly-feature. It seems to have been intended for enabling ip4-full-reassembly-custom as a feature node, but its contents are identical to the earlier VNET_FEATURE_INIT() for ip4-full-reassembly-feature. Removed the duplicate. Change-Id: Ie600b854d4ceb90a7cb736810140d410b8f72447 Signed-off-by: Matthew Smith <mgsmith@netgate.com> (cherry picked from commit 205ed8f8845a8ea36f38ed29df158a5a07c2e2c3)
2024-03-01tls: mark ho done atomically after ctx initFlorin Coras1-1/+2
Make sure ctx is initialized before ho is marked as done. Type: fix Change-Id: If0525a9890a56e289e2ab006c669a9d64dc6505d Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 0ded4890beaa3aa1f36c61ff6125d19582b25391)
2024-03-01session: postpone ct cleanup if rx evt pendingFlorin Coras1-3/+4
Type: fix Change-Id: I8cfaa62abd38d5356263b0ffd428638d1a027617 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 3efcbaf3b1119b4312ae1f3a1c59dea2d746bec4)
2024-02-28misc: VPP 24.02 Release Notesv24.02Andrew Yourtchenko2-0/+568
Type: docs Change-Id: I4209b4edf387f2d7b88ecc338cca3b4901210ed2 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-02-19buffers: bring back cache occupancy improvementVratko Polak1-0/+4
The improvement was removed in 40129, causing 5-40% regressions in AVF tests. There is a memory-speed trade-off, this change prefers speed over memory efficiency. Ideally, the choice should be configurable, but that is not easy to achieve, considering how early is vlib_buffer_main_init called. Type: fix Fixes: 038dad7ef29b0b724071edb5f8cc7a9845584454 Change-Id: I4746f3634abe6d233c9d092a372de05b3d1ae4b6 Signed-off-by: Vratko Polak <vrpolak@cisco.com> (cherry picked from commit 04fd51c03c428859bae949a8294ee0f9c062a44b)
2024-02-13vcl: fix epollet test for unhandled evtsv24.02-rc2Florin Coras1-1/+1
Argument to vcl_epoll_ctl_add_unhandled_event is often the result of an and between events and EPOLLET which is larger than u8 Type: fix Change-Id: I8c98f557fa1db9f3eb79c90ecdd60ac9366d4d40 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit e81f27ffb2a698737eae607b111d0611d221222f)
2024-01-24misc: Initial changes for stable/2402 branchv24.02-rc1Andrew Yourtchenko1-0/+1
Type: docs Change-Id: I820bbb54597a8f640ed6b854d20d0b572c5f255b Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-01-23vppinfra: fix clib_array_mask_u32 OOB readsDmitry Valter2-7/+28
Handle non-even n_elts for the larger array instead of reading past the source buffer. Type: fix Fixes: f62ed3f9c1ec3e8db36f63d6a54f46b7bea43723 Signed-off-by: Dmitry Valter <d-valter@yandex-team.com> Change-Id: Ic1708a3f33fe71ca752345b5c77b6ae7a2d42bcd
2024-01-23tls: fix ho leak on tcp connect returnFlorin Coras1-1/+4
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I40345d635b8067dcffbbdd39d0a5b0c0934a6d54
2024-01-23papi: support old style of providing apidirVratko Polak1-1/+4
77caeb1b193404e76beb27a1aa81321e8eb1cf1f has changed the behavior in an incompatible way, breaking users (including CSIT). The new behavior is more pythonic, but the old behavior has to be supported at least one release after publicly deprecating it. Type: fix Change-Id: I9dfdd2229065010216e49db80b14b856c545965c Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2024-01-23tls: overlap parent opaque with listener ctxFlorin Coras1-5/+6
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I0a0d0b8721f5a15da47c7ac0e58cd50e159b2f54
2024-01-23tls: set flag whenever app session is freedFlorin Coras1-5/+9
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3d44ff851da00573343e15712284af3b9c3912e3
2024-01-22session: flag instead of state for filtering ntfFlorin Coras1-2/+2
Avoid situations when notifications are delayed for long enough for transports to start closing/cleaning up. Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Id35b0099adb5242108154a5e19d5ee15e6ca0058
2024-01-21build: Explicitly use gmakeTom Jones5-38/+37
VPP requires GNU Make to build, on GNU systems (such as Debian), GNU Make is installed as 'make', typically with a symlink from 'gmake'. On other systems (such as FreeBSD), 'make' is a BSD Make derriviative and GNU Make is installed a 'gmake'. Use $(MAKE) variable for make calls from within Makefiles. This variable is set to the path of the calling make program, i.e., /usr/local/bin/gmake on a bsd system. This is the recommended way to call make from Makefiles in the GNU Make documentation. Type: improvement Change-Id: Id9162a34a0f8358f22090718087918dae31c0fce Signed-off-by: Tom Jones <thj@freebsd.org>
2024-01-20buffers: add compile-time option to set buffer alignmentDamjan Marion5-8/+11
Type: improvement Change-Id: I88c4c45bed0bdd8686e17e4f77a7d32a08c995aa Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-01-19build: disable plugins which require openssl if openssl is not availableDamjan Marion4-0/+21
Type: improvement Change-Id: I4591fcb31dd28d1771b3d6e5afdaa14f29efe6ef Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-01-19build: fix default platformBenoît Ganne1-0/+1
When unsetting VPP_PLATFORM in cmake, it unmasks the cached value instead, misleading the platform selection logic in src/cmake/cpu.cmake Type: fix Fixes: 01fe7ab88e Change-Id: I676cd0af9ba28150f8ac07724c03df8ef24b640f Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-01-19hs-test: change convention for skipping testsFilip Tehlar3-5/+16
Also re-enable external echo QUIC test. Type: test Change-Id: I3973409c31fd7c42b97ac3ceae1a5cbad6f1b2b6 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2024-01-19vppinfra: fix test_bihashDmitry Valter1-2/+2
Correctly wrap data indices in test_bihash. Type: fix Signed-off-by: Dmitry Valter <d-valter@yandex-team.com> Change-Id: I740fa1cf9f8c382c12f01f607095c5995be6845f
2024-01-19lldp: dump apiDenys Haryachyy3-9/+132
Introduce a dump api for LLDP plugin Type: improvement Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com> Change-Id: If67dedd329cced59227187284646d147ef6ef92c
2024-01-19vppinfra: fix bracket balanceGeorgy Borodin1-1/+2
fix bracket balance in pool_put_will_expand Type: fix Fixes: 66d4cb5a217d556aa7bd2471f02a39badb6d5cd2 Change-Id: I921366c0898cca39cc728b7c7ef4c4c725c6b87d Signed-off-by: Georgy Borodin <bor1-go@yandex-team.ru>
2024-01-19vppinfra: fix vec_prepend use-after-freeDmitry Valter1-7/+9
Don't access free'd memory in vec_prepend. Don't allow prepend when v1 == v2 as it also causes a use-after-free. Found via ASAN. Type: fix Signed-off-by: Dmitry Valter <d-valter@yandex-team.com> Change-Id: I21f8422c007d07d40d237e873b84c042be1fe8e8
2024-01-19memif: use VPP cacheline size for memif when compiling within VPPMohsin Kazmi3-0/+14
Type: make memif.h file is independent code which can be used outside of VPP. Hence it uses its own cacheline size MACRO. This patch sets the value of MEMIF_CACHELINE_SIZE in the cmake file for memif plugin to VPP_CACHE_LINE_SIZE. Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: I8185e78897f4571f1a0430dd7e758816e127444c
2024-01-19build: Explicitly use bash for shell scriptsTom Jones19-21/+21
VPP requires bash for all shell scripts. Align shebang lines in build and test scripts to look up the location of bash rather than hard coding '/bin/bash'. Look up the location of bash for makefiles. Type: improvement Change-Id: I23b705d81d60389fa8af61c680cf0abd74f0ea24 Signed-off-by: Tom Jones <thj@freebsd.org>
2024-01-19af_xdp: Backport xdp-tools fix transposed calloc() argumentsnucleo1-0/+54
Fixes compilation error with GCC 14 'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument Type: fix Change-Id: Ie328ecc711976547df2cffe17325b786bc7a8849 Signed-off-by: nucleo <alekcejk@googlemail.com>
2024-01-18tests: preload api filesMaxime Peim6-38/+54
When sanity test is not done, API files are not loaded until the first test case is run. Hence, it is not possible to use enums, etc. outside of a test class. By preloading API files before running any tests, it prevents its issue. Type: fix Change-Id: I8730150374e6c5f8d6933ec037811372ac2a8da0 Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-01-18hs-test: use specific port for http3 testFilip Tehlar1-1/+1
curl sometimes uses 2 different source ports during the test. Type: test Change-Id: Ib27e9d22a9cc951f4729f4bd0ae99d80bf8d938b Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2024-01-17octeon: native driver for Marvell Octeon SoCDamjan Marion21-18/+2659
Type: feature Change-Id: I6898625c4e8854f777407dac3159e4c639a54860 Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com> Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-01-17vppinfra: change fchmod to umask for unix socketGeorgy Borodin1-14/+17
Setting g+w permission for unix sockets didn't work. There were two problems: 1. new flag local_only wasn't set for all AF_UNIX sockets; 2. fchmod is not a good choice for sockets. fchmod was replaced with couple of umasks, and local_only with socket type check. Type: fix Fixes: 085757bb4930511928daa97f972cdca021e7a813 Change-Id: I8dc0fceb110a36bfa234f552bbdf182e09e55e27 Signed-off-by: Georgy Borodin <bor1-go@yandex-team.ru>
2024-01-17af_packet: set next0 for AF_PACKET_IF_MODE_ETHERNET modeArtem Glazychev1-0/+6
Normally af_packet sets next0 = next_index on each cycle. It works for the most cases. But if vlib_validate_buffer_enqueue_x1() changes the next_index (from NEXT_ETHERNET to NEXT_DROP for example) then the following next0 will have the wrong value, and the correct packet will be dropped. AF_PACKET_IF_MODE_IP handles this case, but AF_PACKET_IF_MODE_ETHERNET doesn't. Type: fix Signed-off-by: Artem Glazychev <artem.glazychev@xored.com> Change-Id: Ic742043e8b10a2abe56b314bb584277151a9c5eb
2024-01-16build: add vapi scripts to VPP_HOST_TOOLS_ONLYGuillaume Solignac1-0/+8
vapi generators were missing from the VPP_HOST_TOOLS_ONLY, which prevents building an out-of-tree plugin with API files. We now install them. Type: improvement Signed-off-by: Guillaume Solignac <gsoligna@cisco.com> Change-Id: Ie613c8f64034e933124325242f2f8b3ac3955878
2024-01-16vnet: fix log_debug message formatGeorgy Borodin1-2/+1
debug+asan build will fail on initialisation when loglevel==debug Type: fix Fixes: 1cd0e5dd533f4209dde453eaa43215e52cd42985 Change-Id: I2005ebf9b95ec3b753c4e6d29337be460c77ffed Signed-off-by: Georgy Borodin <bor1-go@yandex-team.ru>
2024-01-16vppinfra: fix memcpy test buffer sizeDmitry Valter1-1/+1
Fix dst buffer size in memcpy_x86_64 test. Type: fix Signed-off-by: Dmitry Valter <d-valter@yandex-team.com> Change-Id: I2b4502a62d9346d729b83522f4ea01c98a5b961c
2024-01-16dpdk: add ID for QAT 4xxx series VF supportKai Ji1-1/+2
Type: feature Enable use of 4th gen QAT series devices. Change-Id: I890c1f1d305ff9b996322c29e9510cfe89d88d97 Signed-off-by: Kai Ji <kai.ji@intel.com>
2024-01-16dpdk: fix log_debug message formatGeorgy Borodin1-1/+1
debug+asan build will fail on initialisation when log level==debug Type: fix Fixes: 549838c81bd0d995f2b8569955afc33132582c77 Change-Id: Ic64b376727d49f89790fb29bd03a0a2520625cdc Signed-off-by: Georgy Borodin <bor1-go@yandex-team.ru>
2024-01-16vlib: remove unused codeDamjan Marion1-16/+0
Type: improvement Change-Id: I2c54cb3eb41ed35f114eca75fb6e2be3eb3f4ca1 Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-01-16vppinfra: enable AES tests on ARMDamjan Marion4-10/+3
Type: improvement Change-Id: I30f3b2924ab219a8bace87f358b1b823e8bc83bb Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-01-16build: Provide clang-14 for Debian12Pim van Pelt1-0/+2
checkstyle.sh assumes clang-format-11 but allows it to be overridden. Debian12 ships with a minimal version of clang-14, so set the correct version for checkstyle. Before: $ make checkstyle extras/scripts/checkstyle.sh: line 41: --version: command not found make: *** [Makefile:720: checkstyle] Error 127 After: $ make checkstyle Debian clang-format version 14.0.6 ******************************************************************* * CHECKSTYLE SUCCESSFULLY COMPLETED ******************************************************************* Type: make Fixes: 712fc0308981c61444e593d6bcc2ad62102c726d Change-Id: I0c58456477011397115810dab825865b5850d10d Signed-off-by: pim@ipng.nl
2024-01-16stats: Add optional labels to prometheus metricsPim van Pelt1-59/+255
* Refactor the existing prometheus exporter to function print_metric_v1() * Add a 'v2' flag which instead uses metric names with labels, example: nodes_clocks{node="ip4-lookup",index="0",thread="4"} 30198798628761 nodes_vectors{node="ip4-lookup",index="0",thread="4"} 298176625181 nodes_calls{node="ip4-lookup",index="0",thread="4"} 119789874274 nodes_suspends{node="ip4-lookup",index="0",thread="4"} 0 interfaces_rx_packets{interface="tap0",index="0",thread="1"} 79582338270 interfaces_rx_bytes{interface="tap0",index="0",thread="1"} 16265349667188 * For stat names that we don't know, print their v1 equivalent, which keeps backwards compatibility. Details in https://ipng.ch/s/articles/2023/04/09/vpp-stats.html Type: improvement Signed-off-by: pim@ipng.nl Change-Id: I53ed3ede8cc7853eb46c354834d89eb788ece3b1
2024-01-15session: avoid spurious disconnect and reset ntfsFlorin Coras1-2/+4
Type: fix Change-Id: Icdc9d1c8b7b29827ce17920dae64a365bb8a4e40 Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-01-15devices: add support to check host interface offload capabilitiesMohsin Kazmi2-6/+96
Type: improvement This patch implements support to check the host interface offload capabilities. NOTE: this check is only done once when interface is being created. Any changes to the cap of host interface after that will not reflect changes to af_packet interface in VPP. Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: Ibc9953131f64f3fb3e601d34036b9f453913692a
2024-01-14build: Add Debian12 environmentPim van Pelt1-0/+4
Add clang-14 and libffi8 which ship with Debian Bookworm. The project compiles cleanly with these versions. Type: make Change-Id: I17350aae30cec72987792d54d88231b3221b56b9 Signed-off-by: pim@ipng.nl
2024-01-12session: fix app wrk free leakFlorin Coras1-1/+1
Type: fix Change-Id: I9c48b163f174b824df1a76e75c272dc985386bf2 Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-01-12crypto-native: add AES-CTRDamjan Marion4-18/+144
Type: feature Change-Id: Iab84226043d8042a99a507767b75e9d4a89cc5c6 Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-01-12vppinfra: native AES-CTR implementationDamjan Marion7-210/+882
Type: feature Change-Id: I7ef3277edaeb266fbd3c8c9355d4443002ed2311 Signed-off-by: Damjan Marion <damarion@cisco.com>