aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2025-01-08build: allow to redefine max_lcores for DPDKVladimir Smirnov1-1/+9
In current versions of DPDK (at least as of 24.11), max amount of cores available determined at compile_time. Unless machine type 'native' is used, it is statically set per platform and for most of them equals to 128. Add a new option to allow user to redefine max amount of lcores available to DPDK. Type: make Change-Id: Ic4356e12ca75a5c84aeb3bee72de432a23aa6f8a Signed-off-by: Vladimir Smirnov <civil.over@gmail.com>
2025-01-08tests: reduce sleep interval in ikev2 sa rekey testIvan Ivanets8-5/+230
Type: test The sleep interval for this test is set to 0.1 seconds instead of the default 2 seconds. This change is necessary because the test verifies the expiration of old IPsec SAs (self.fail("old IPsec SA not expired")) within a strict timeframe. A longer sleep interval, such as 2 seconds, would significantly delay the loop iterations, reducing the granularity of checks for SA expiration and increasing the risk of false failures. By setting the sleep interval to 0.1 seconds: - The test can perform frequent checks for the status of IPsec SAs - It reduces the likelihood of the test prematurely failing Change-Id: I92ac3de0f33838620b51083d240043e62f37c490 Signed-off-by: Ivan Ivanets <iivanets@cisco.com>
2025-01-07vcl: support pre/post cb before mq waitFlorin Coras7-60/+284
Allow vls to register cb functions with vcl pre/post mq sleep. These can be used to drop/reacquire locks prior/after waiting on vcl mq events. This then allows multi-thread, as opposed to multi-worker, applications to share sessions between threads without deadlocking, e.g., multiple threads trying to read/write/close non-blocking sessions. Caveat: connects still need to be improved. Type: improvement Change-Id: I589aa9dfd0553b0fad54f02ed16c3cda9761a83d Signed-off-by: Florin Coras <fcoras@cisco.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2025-01-07hs-test: cleanup nsim testFlorin Coras1-6/+0
After nsim fixes in gerrit 42052 echo tests with nsim should be stable with multiple workers and should no longer require a ping to work. Type: improvement Change-Id: Ice4b353153c57b547df60d21723fa8cf953ca5d0 Signed-off-by: Florin Coras <fcoras@cisco.com>
2025-01-07vppinfra: fix float rounding in format functionPierre Pfister1-5/+6
The current VPP formating for floats tries to round number to the closest value (depending on the number of requested digits), but fails to do so when the last printed digit is 9 (because carries are hard...). This commits fixes this by adding 0.5 * 10^n_fraction_digits to the value and then ignoring digits past the printed ones. Note that when the number is exactly midway, like 9.5, the value is rounded up, as this seems to be the clib behavior as well. Type: fix Change-Id: I03ce04ea6a24b84eeffd548d3f7bd306c58ce36d Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2025-01-06build: Fix PATH shell exportRenato Botelho do Couto1-1/+1
When $(wildcard /usr/lib*/ccache) returns more than one directory, they are separated by space and it ends up setting only first one to PATH variable while the rest of the string is just throwed to bash and it ends up breaking the build. This change replaces space by colon to keep desired PATH string syntax. Type: fix Change-Id: I94ba3465a46fa3c4fbb50c9668f0afd97e8c4f91 Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2025-01-05vppinfra: export full symbol set from serialize.cDave Barach1-102/+102
Needed for an out-of-tree plugin under development Type: improvement Change-Id: Ie37f847607616d7f3f5de67550bef17f2afee17f Signed-off-by: Dave Barach <dave@barachs.net>
2024-12-30session: proxy session migration fixMatus Fabian5-21/+82
Type: fix Change-Id: I487ee4e69d8885f46d7a4af2c66a710da66108c5 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-27vppinfra: fix time range conversion off-by-1sDave Barach1-3/+3
Type: fix Change-Id: I869e657744e9bba81994ad426731a08e5f1bcad7 Signed-off-by: Dave Barach <dave@barachs.net>
2024-12-23session: add auto sdlSteven Luong20-35/+1982
New CLI to enable/disable auto-sdl (requires session enable rt-backend sdl) auto-sdl <enable|disable> [threshold <n>] [remove-timeout <t>] threshold is defined as the number of packets before the SDL entry is created to deny the source. remove-timeout is defined as the duration to remove the SDL entry which was created earlier. Type: feature Change-Id: I513094a59663970beae33257006c652674643764 Signed-off-by: Steven Luong <sluong@cisco.com>
2024-12-23hsa: http connect proxy fixMatus Fabian2-16/+35
Send rpc evt from ao thread to po thread so http response is generated on correct thread. Type: fix Change-Id: I3b9a651a1935e5b623033902f9cf9ec1daf05617 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-22hs-test: vpp connect proxy stress testsMatus Fabian2-2/+190
Type: test Change-Id: Ie0b4e2d5f6d8ac19e86599f5f9ecbb642c3027ea Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-21nsim: fix output feature nodeFlorin Coras3-9/+34
Interface tx nodes want frames with scalar data populated by output nodes. This is not supported by nsim output feature. To avoid reimplementing output node logic and/or future incompatibilities, recirculate buffers through interface output after tagging. Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ib8865798d8e7dc0d2f34b3e13ce29b683e490ceb
2024-12-21hs-test: rebuild images when switching build typeMatus Fabian2-4/+5
Rebuild hst docker images when the previous test run had different vpp build type, e.g. 1) make test 2) make tes-debug Type: test Change-Id: If3a6f11f4f50bbfa88ef3808f98dcba3ab61d348 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-21hs-test: display vpp version in the summaryMatus Fabian2-0/+15
Display output of 'show version verbose' from vpp in the summary report at the end of a test run. Type: test Change-Id: Iae3d886dd4106678b60389ec42ba42a159940403 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-18hsa: http client honor configured timeoutFlorin Coras1-2/+3
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I87cc6d2ba1a07751359c7276fe096eeae4e30a2e
2024-12-18hsa: fix http client connect failuresFlorin Coras1-2/+2
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ie8b4ba2cfd2c7fc1e27d2a2eb763b31417bc0743
2024-12-18hs-test: fix readCpusMatus Fabian1-2/+5
return error otherwise hst might panic Type: test Change-Id: Ib3ec8a2113af4594f2c2fc54ae72e358bfadaef2 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-18crypto: move crypto engines outside of pluginsDamjan Marion24-305/+497
This is first step in process of making crypto engine binaries less dependant on specific VPP version. Type: improvement Change-Id: Ib08135688be409049b660e2b2ac435578b63be65 Signed-off-by: Damjan Marion <dmarion@me.com>
2024-12-18build: archive install-*-deps logs when run in ciDave Wallace1-1/+4
Type: make Change-Id: Id779d7c90a920926d40d241afb89bcb9312bcfc1 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-12-18dns: cli support enable dns and config server addrfenglei1-0/+81
Type: improvement cli support enable dns node and config name server addr Change-Id: I4fcef28876b916bd5eac026f20afb0b0dda38fa2 Signed-off-by: fenglei <1579628578@qq.com>
2024-12-16docs: add examples for BPF trace filteringHadi Rayan Al-Sandid2-1/+65
Type: docs Change-Id: Ia2f9f94ebdf55d435559f6615da61efb1d2f9616 Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-12-16policer: Add return_dsc for policer_add_command_fnfenglei1-2/+5
Type: improvement add return_desc for except failure Change-Id: Idcec0f8833fc264f66d2e0a784ece2a62c425263 Signed-off-by: fenglei <1579628578@qq.com>
2024-12-16policer: fix policer_input coredumpfenglei1-0/+3
Type: fix policer_input didn't check policer_index will lead to coredump when refer to cm->counters[thread_index] variable, cm->counters[thread_index] is null. Change-Id: I8c6ef6c4c2bc96f23ab806327cb6f179c958cee2 Signed-off-by: fenglei <1579628578@qq.com>
2024-12-16papi: vpp_papi asyncio supportOle Troan2-1/+769
An asyncio version of the VPP Python API. A API call returns a awaitable future. In comparision to the legacy API, the extra message receive thread is no needed. from vpp_papi.vpp_papi_async import VPPApiClient async def process_events(event_queue): while True: event = await event_queue.get() print(f"*** Processing event: {event}") if event is None: return async def test(): vpp = VPPApiClient() event_queue = asyncio.Queue() event_processor_task = asyncio.create_task(process_events(event_queue)) rv = await vpp.connect("foobar", event_queue) assert rv == 0 rv = await vpp.api.show_version() rv = await vpp.api.sw_interface_dump() await event_queue.put(None) # Send sentinel to stop the event processor await asyncio.gather(event_processor_task) # Wait for them to finish await vpp.disconnect() Example of sending multiple requests and gather replies asynchronously async def test_bulk(): futures = [] for i in range(n): futures.append(vpp.api.show_version()) rv = await asyncio.gather(*futures) def main(): asyncio.run(test()) Type: feature Change-Id: Ie6bcb483930216c21a45658b72e87ba4c46f43ad Signed-off-by: Ole Troan <otroan@employees.org>
2024-12-16nat: add clear session for nat44-edOle Troan1-0/+22
Type: improvement Change-Id: Ie8568999821f6dd5025fd5343670a8969a3e634e Signed-off-by: Ole Troan <otroan@employees.org>
2024-12-16map: map_domain_dump fails for empty tagOle Troan1-6/+13
Fix API to handle map_domain_dump for domains with an empty tag. Type: fix Change-Id: Ie065c5863538d5851cd8f8907400255f51a2e90f Signed-off-by: Ole Troan <otroan@employees.org>
2024-12-13hs-test: always build when running 'make build'Adrian Villin2-10/+16
- running 'make build' will now always build docker images, 'make test' will try to skip building them unless FORCE_BUILD=true - now also checking ubuntu version Type: make Change-Id: Ie16e8dc4712963de19e2450e058b867c1cede7ee Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-12hs-test: skip building images if no new changesAdrian Villin2-0/+21
- skip building if new changes are .go, .sum, .mod, .txt, .test, IP address files or dotfiles Type: test Change-Id: Ib041a077fa34120e86ebb43cd19e50142ef01f16 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-12hs-test: update docs, makefile, maintainersAdrian Villin5-18/+32
- don't run 'make list-tests' after 'make help' Type: docs Change-Id: I1b2ae02faf53b072b96c91f2e1fead52128f4710 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-12hs-test: added a test counter and time elapsedAdrian Villin1-0/+14
- only works when not running in parallel Type: test Change-Id: Iab9881f8a2a93c6ef5129742e3c0ad950f9e5328 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-12vapi: remove directory name from include guardsOleksandr Hnatiuk1-1/+1
Script vapi_c_gen.py uses full paths to source files to generate include guards in files with `.vapi.h` extension. This makes the content of header files depend on build directory which causes reproducibility issues (cannot get identical build output when building in a different directory). Commit 4c64b6edc86f7 fixes this for .hpp files, but seems to forget about .h files. Use its fix for these as well. Type: fix Change-Id: Ida638c7b4630fac1f6d968a9203a409648bef55c Signed-off-by: Oleksandr Hnatiuk <ohnatiuk@cisco.com>
2024-12-12hs-test: fix a runtime errorAdrian Villin1-2/+6
- framework panicked if core_pattern was set to "core" Type: test Change-Id: I14211cc59779090a61e6e08a18d16fd7399b2bed Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-12build: use VPP_BUILD_TOPDIR from environment if setOleksandr Hnatiuk1-1/+2
Commit 3d14f036199d added the possibility to use `VPP_BUILD_USER` and `VPP_BUILD_HOST` from environment (if they are set) to avoid reproducibility issues by hard-coding such data in the build system. However, there's no way to provide VPP_BUILD_TOPDIR externally. Add this feature to improve binary reproducibility. Type: improvement Change-Id: I3a7ee47d75af9635b636fa3750a3688314eaa60d Signed-off-by: Oleksandr Hnatiuk <ohnatiuk@cisco.com>
2024-12-12armada: fix feature arc for secondary interfacesGuillaume Solignac1-1/+1
Fixes an issue preventing a feature to be configured on a secondary interface. Type: fix Signed-off-by: Guillaume Solignac <gsoligna@cisco.com> Change-Id: I8ecd80988d22291013cd0addae6dc25043aaea98
2024-12-12pg: misc improvements and fixesBenoît Ganne7-86/+327
1) pg can typically injects packets in ethernet-input, ip4-input or ip6-input. Make sure offload offsets are correctly set for ip4-input and ip6-input. 2) add hw-addr support for ethernet mode (only available through cli) 3) refactor pg creation code to improve the readability by using data structure pg_interface_args_t 4) fix the pg input and output traces to use headers according to pg interface mode 5) introduce pg interface flags i.e. checksum, gso, gro Type: improvement Change-Id: Iffed502e9c6357d7ef8e8a72217867e8297236aa Signed-off-by: Benoît Ganne <bganne@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2024-12-12session: disable fifo tuning on app closeFlorin Coras1-0/+3
Type: fix Change-Id: Id6aa410a75356ece1d114a2970f70cf32203997f Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-12-11hs-test: fix nginx http3 dockerfileAdrian Villin1-1/+1
- now working with UBUNTU_VERSION=24.04 Type: test Change-Id: I60aa62b8dcf3e96392af7179925e0f0fa3e15f11 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-11hs-test: replaced container/interface getter funcAdrian Villin22-374/+378
- replaced s.GetContainerByName("xyz") with s.Containers.Xyz in tests and suites - same thing for interfaces - each suite has its own structs with containers/interfaces - structs are initialized in SetupSuite Type: test Change-Id: I5bd99605b40921b7b8c844e8650f6fb0915e9e99 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-11bpf_trace_filter: allow pcap filtering without classifierHadi Rayan Al-Sandid5-13/+89
Type: improvement Change-Id: I7ca860dbee0d0a24b7f00943142d8c878ed90e80 Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-12-10hs-test: added multi-threaded proxy testsAdrian Villin8-52/+176
- TCP and UDP iperf proxy tests added Type: test Change-Id: Ic6f429cc6d48388ce9a17f8b9cd7c4b54b9a7e4d Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-10hs-test: skip vppctl assert on teardownAdrian Villin1-1/+18
- core dump check would get skipped if vpp crashed and vppctl was called on teardown Type: test Change-Id: I9dda7036042158332c8ec815f6eb4bb3c2f7000f Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-10http: fix http_free_header_tableMatus Fabian2-1/+10
Type: fix Change-Id: I014aebc84d0c219cc0c99120e9cd51fcc520a41c Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-10ip: add enable ip4 apiOle Troan4-0/+78
A philosophical question. Do an interface have to have an IPv4 address to process IPv4 packets? For ICMP error generation it's sufficient that it has an address available on the node. More concretely this patch is to allow an extern DHCP client to process IP packets before it configures an address on the interface, without having to have an node early in the ip4-unicast feature-arc like ip4-dhcp-client-detect to intercept the packets. Type: improvement Change-Id: I780c579eec28ba564cf8417fbcc87e7a7876fdd2 Signed-off-by: Ole Troan <otroan@employees.org>
2024-12-10http: connection upgrade mechanismMatus Fabian7-206/+480
Handle "Connection" and "Upgrade" headers in http transport layer which are used to create a tunnel for some other protocol on the same connection. Type: improvement Change-Id: Icf5479f36fbcc7259b157eaad957211be5ea2aae Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-10hs-test: arm supportMatus Fabian13-23/+44
CPU arch dependencies cleanup. Everything works fine apart from redis-benchmark test. Type: test Change-Id: I4a1e7d3bce994f6ea0681e06955ef9c621468642 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-12-10hs-test: improved iperf testingAdrian Villin4-11/+125
- set iperf to json output - added iperf json parsing function - we can now check if iperf transferred more than X megabytes (other asserts can be added) Type: test Change-Id: I560104a153456b46f22a1affee4301018063b99d Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-10hs-test: remove client app retriesAdrian Villin1-22/+12
- simple fix to avoid apps trying to start after a test timeout/interrupt Type: test Change-Id: I4e6fcbb2bb00c07e35cda1ebf6fcb76a913f7a32 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-09cnat: add support for icmp tracerouteMohsin Kazmi2-35/+278
Type: improvement Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: Ief1e97d03b7a934547add35ac3ed1f93f2499a20
2024-12-08session: add ip4-fib-id and ip6-fib-id to app ns CLISteven Luong4-12/+312
Problem The API app_namespace_add_del allows specifying ip4_fib_id and ip6_fib_id. But the CLI does not. It only allows interface. Interface binding may change after the application namespace is created and there is no registration for the callback when the interface binding changes. Fix Add ip4-fib-id and ip6-fib-id to app ns CLI. When both interface and fib-id's are specified, interface takes precedence. When interface is not specified, either ip4-fib-id or ip6-fib-id or both ip4 and ip6 fib-id's may be specified. If only ip4-fib-id is specified, ip6 is disable for this particular app namespace. If only ip6-fib-id is specified, ip4 is disable for this namespace. When the interface binding changes to different vrf and the application namespace was created via interface option, we delete the application namespace and recreate the application namespace with the new interface binding. Notice when the application namespace is removed, all session rules and sdl rules previously created for the deleted application namespace will be deleted. However, if the fib table/session table was shared by another namespace, the other namespace will still contain the session rules and sdl rules. Type: improvement Change-Id: I76eb30da1ed8a39d06694c1e66d0675bf03516bf Signed-off-by: Steven Luong <sluong@cisco.com>