aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-02-12af_packet : fix crash on interface creationhsandid1-4/+6
Type: fix Attempting to create a host-interface with an invalid af_packet name causes a crash, as we attempt to read the contents of a null ptr. Change-Id: Ia31ae21684c2b66baa1ceaadf29e19fae33c4ed4 Signed-off-by: hsandid <halsandi@cisco.com>
2024-02-12buffers: 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>
2024-02-12ip_session_redirect: export symbolsBenoît Ganne2-2/+5
Add/del functions can be used from external modules. Type: improvement Change-Id: I267bcfacd58970bcacae13744d8acc690b87d2fc Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-02-09ikev2: accept rekey request for IKE SAAtzm Watanabe4-48/+417
RFC 7296 describes the way to rekey IKE SAs: to rekey an IKE SA, establish a new equivalent IKE SA with the peer to whom the old IKE SA is shared using a CREATE_CHILD_SA within the existing IKE SA. An IKE SA so created inherits all of the original IKE SA's Child SAs, and the new IKE SA is used for all control messages needed to maintain those Child SAs. Type: improvement Signed-off-by: Atzm Watanabe <atzmism@gmail.com> Change-Id: Icdf43b67c38bf183913a28a08a85236ba16343af
2024-02-07udp: add cli to dump transport portsFlorin Coras1-0/+92
show udp transport ports Dumps list of ports registered by udp transport, as opposed to udp local, and their refcount. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: If3cbe51a7176cb89fa38b524defffbbd76af8f58
2024-02-02session: guard session lookup table allocsFlorin Coras2-0/+37
Session lookup tables could be allocated from workers, e.g., connects are done from first worker. Make sure consumers are not affected by stopping workers. Type: fix Change-Id: I63b53c58b41ce91b08f50a2325c69c9f9fd25ed3 Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-02-02vlib: flush rpcs on worker syncFlorin Coras1-0/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I89624254649089e497d119eb6cee2cecf3dc11f3
2024-02-02vlib api: move wrkr rpc flushing to vlibFlorin Coras5-21/+18
Move vlib worker rpc flushing to main worker from memclnt api into vlib. RPCs are no longer delivered via binary api queues Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I5b8761a57d1f4a1f2220e860cfb2e6b980f46f6d
2024-01-31tls: set app closed flag in frameworkFlorin Coras2-2/+1
Set the flag in tls framework as opposed to tls engines. This is similar to passive close. Type: improvement Change-Id: I0c2a774b1ef9d7ec6ba74daf1678ea449815184f Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-01-31tls: convert ctx fields to connection flagsFlorin Coras5-36/+40
Type: refactor Change-Id: I527bbc1cf2e7b6d06fd0c88b7563fb59ed28bc40 Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-01-30linux-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>
2024-01-29api: provide api definition over apiOle Troan10-29/+968
This patch allows a client to bootstrap itself by downloading the JSON API definitions over the API itself. This patch enables it for Python (probably need a dynamic language). Call VPPApiClient with the new bootstrapapi=True parameter. Example (Python): from vpp_papi import VPPApiClient vpp = VPPApiClient(bootstrapapi=True) rv = vpp.connect("foobar") assert rv == 0 print(f'SHOW VERSION: {vpp.api.show_version()}') vpp.disconnect() Type: feature Change-Id: Id903fdccc82b2e22aa1994331d2c150253f2ccae Signed-off-by: Ole Troan <otroan@employees.org>
2024-01-29hs-test: update docs on debuggingFilip Tehlar1-0/+15
Type: docs Change-Id: I3bd89feb53a35532c79283bcdac2c87635c60920 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2024-01-29hs-test: use relative paths for docker volumesFilip Tehlar7-17/+22
Type: test Change-Id: I9d5c15662e50ceea08d2ccc653db36c5e3df869e Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2024-01-29ip: don't export useless error counters for ip6 rewriteArthur de Kerhor2-2/+4
the error node is set to ip6_input in the inline funcition associated with ip6_rewrite. Thus, error counters defined for node ip6 rewrite are never used. Type: fix Change-Id: Id6bef633928b0fff9069498c2e39e9f5bea2cf9b Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2024-01-26hs-test: updated golang and packagesadrianvillin3-31/+38
ioutil.ReadFile is deprecated, replaced with os.ReadFile Type: test Change-Id: I9f8075796d05d47ea4dddd7e986026a267a7fe0c Signed-off-by: adrianvillin <avillin@cisco.com>
2024-01-25udp: update rx sw_if_index to ip-local selected oneFlorin Coras1-0/+4
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I0afd1b9ddbc17825aab3bfa3e5f9c6c0fbc561ca
2024-01-24misc: Initial 24.06-rc0 commitv24.06-rc0Andrew Yourtchenko2-1/+1
Type: docs Change-Id: Ia459d5ba6f7da3081192c6aba156e66fb2d6377c 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