aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
3 dayspolicer: 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>
3 dayspolicer: 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>
3 dayspapi: 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>
3 daysnat: add clear session for nat44-edOle Troan1-0/+22
Type: improvement Change-Id: Ie8568999821f6dd5025fd5343670a8969a3e634e Signed-off-by: Ole Troan <otroan@employees.org>
3 daysmap: 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>
6 dayshs-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>
6 dayshs-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>
6 dayshs-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>
6 dayshs-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>
6 daysvapi: 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>
6 dayshs-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>
7 daysbuild: 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>
7 daysarmada: 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
7 dayspg: 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>
7 dayssession: disable fifo tuning on app closeFlorin Coras1-0/+3
Type: fix Change-Id: Id6aa410a75356ece1d114a2970f70cf32203997f Signed-off-by: Florin Coras <fcoras@cisco.com>
7 dayshs-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>
7 dayshs-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>
8 daysbpf_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>
8 dayshs-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>
8 dayshs-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>
8 dayshttp: fix http_free_header_tableMatus Fabian2-1/+10
Type: fix Change-Id: I014aebc84d0c219cc0c99120e9cd51fcc520a41c Signed-off-by: Matus Fabian <matfabia@cisco.com>
9 daysip: 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>
9 dayshttp: 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>
9 dayshs-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>
9 dayshs-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>
9 dayshs-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>
10 dayscnat: add support for icmp tracerouteMohsin Kazmi2-35/+278
Type: improvement Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: Ief1e97d03b7a934547add35ac3ed1f93f2499a20
10 dayssession: 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>
10 dayssession: enhance display for show appSteven Luong4-10/+72
Display segment manager information for show app <index> verbose Mark segment manager as listener if it is a listener segment. Type: improvement Change-Id: I8d91f4c2ed5b8f39620f2c8b06950c0e7ee2225e Signed-off-by: Steven Luong <sluong@cisco.com>
10 dayshttp: http_decap_udp_payload_datagram fixMatus Fabian3-4/+32
Properly handle incomplete capsule. Type: fix Change-Id: Ied7fca861f02e401451beaff09e612bcf471d8e0 Signed-off-by: Matus Fabian <matfabia@cisco.com>
10 daysvcl: fix ldp getsockopt tcp_info length checkFlorin Coras1-3/+7
netinet/tcp.h and linux/tcp.h have different lenghts but overlap. LDP uses the former while iperf the latter. Accept both lengths for now as we do not support exposing tcp metrics via ldp. Type: improvement Change-Id: I13a149d68715ed9451773630a3595c09c421aa29 Signed-off-by: Florin Coras <fcoras@cisco.com>
11 daysvcl: improve handling of thread cancelation in vlsFlorin Coras1-0/+7
Meant for multi-threaded applications that share a vls and vcl worker. Disable thread cancelation on thread new thread detection and add a new pthread cancelation point in vls_mt_mq_lock Type: improvement Change-Id: I21b16ee7c6a5ec31b8f6363325cc7ffa463c7b5c Signed-off-by: Florin Coras <fcoras@cisco.com>
11 daystls: add async processing supportVarun Rapelly5-70/+783
Adds support for tls async processing using OpenSSL. Adds new CLI command to configure OpenSSL TLS configurations used by OpenSSL context and session. New CLI format is: tls openssl set-tls [record-size <size>] [record-split-size <size>] [max-pipelines <size>] Sets default values to below TLS configuration parameters: - first_seg_size: 32MB - add_seg_size: 256MB Type: feature Signed-off-by: Varun Rapelly <vrapelly@marvell.com> Change-Id: I990be31fced9e258fdb036f5751cd67594b0bce7
12 daysvcl: fix epoll wait assertFlorin Coras1-1/+1
Type: fix Found by Lucas. Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3e10d3a9f40ef28cb9bda58f199a04dfc3e41d27
12 daysmisc: move ppp to a pluginJoel Ahn18-40/+105
Type: refactor Move PPP folder under vnet to the plugin folder, and modify some of path of the #inlude<header> to the new path. Add a plugin.c file to register a plugin. Resolve ip4_input and ip6_input's dependency on PPP functions by moving those calls to PPP's initialization. Resolve osi's inter-plugin dependency on PPP by having it retrieve the function pointer Add ppp to the list of valid spelling words JIRA: VPP-2052 Change-Id: I1a26ef0663a91857d13f7d87a3bb14bc38893194 Signed-off-by: Joel Ahn <joeahn@cisco.com>
12 dayssession: clean up session table when re-adding an existing application namespaceSteven Luong1-0/+13
The app ns semantics allows the same app ns to be re-added with different interface. For example, app ns add id blue secret 1 if tap0 app ns add id blue secret 1 if tap1 If tap0 is bound to table 0 and tap1 is bound to tap1, we need to clean up the existing session table and possibly allocate a new session table for the app ns. Type: fix Change-Id: I566d621081b7cdbd7d0c481fda53953b39c26001 Signed-off-by: Steven Luong <sluong@cisco.com>
13 daysmemif: add num pkts received/sent per queueDau Do3-3/+69
Add memif stats per queue for performance tuning. Type: improvement Change-Id: Ifacc80c0adfe92075d91179857c8956d1cbf3a70 Signed-off-by: Dau Do <daudo@yahoo.com>
13 daysbuild: upgrade to openssl 3.4.0 in vpp-opts-deps packageDave Wallace1-2/+2
Type: make Change-Id: I8f801057f9f4b10d50f6ace5541e726f75f262e8 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
13 dayshsa: fix proxy udp issueAdrian Villin2-4/+5
- when testing multithreaded proxy with udp iperf, iperf wouldn't connect -> made client_sep a vector so multiple transport protocols can be saved Type: fix Change-Id: I91936bd3214f40deb914792c02783112ae59942c Signed-off-by: Adrian Villin <avillin@cisco.com>
13 daystap: update tap_flagsAdrian Villin1-0/+1
- added TAP_API_FLAG_CONSISTENT_QP = 256 Type: improvement Change-Id: I57d95503395baf265c29d48a92bd69347f0a7333 Signed-off-by: Adrian Villin <avillin@cisco.com>
14 dayscrypto: add config option to adjust crypto sw scheduler queue sizeDau Do2-37/+73
Type: improvement Change-Id: I63c16365a0d4a26b8ecb05bde81ad7b532df50a0 Signed-off-by: Dau Do <daudo@yahoo.com>
2024-12-04misc: VPP 24.10 Release NotesAndrew Yourtchenko2-0/+508
Type: docs Change-Id: I3774ed636671c3e7f2cacc8ef910c1f3476e7933 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com> (cherry picked from commit cfa0953251cbab435307baf3dcd249fd95afaf1f)
2024-12-04dev: include limits.h for PATH_MAXRenato Botelho do Couto1-0/+1
Type: fix Change-Id: I66607164b1552011b39808bafc8e02b5a24f883c Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-12-04docs: mention command to display nodes supporting tracingHadi Rayan Al-Sandid1-0/+7
Type: docs Change-Id: Id94539cae001059d1acdde6a90c3b2f16990bd47 Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-12-04tests: remove decorator tag_fixme_ubuntu2204Ivan Ivanets5-35/+7
Type: test There is no need to use the tag_fixme_ubuntu2204 decorator. All tests that previously used it are now stable. The neighbor test has been moved to the extended suite because it is not related to the type of operating system. Change-Id: Ifa0a30cbeeeaabb2bbe4d213fa61e6fbde8789ca Signed-off-by: Ivan Ivanets <iivanets@cisco.com>
2024-12-02vcl: fix poll supportFlorin Coras3-2/+24
Type: fix Change-Id: I827f19d893153277baba3c2d0efde5f2827eb0ff Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-11-29svm: fix overflow when no region is big enoughBenoît Ganne1-32/+20
- if no region is big enough to accommodate need_n_bits, we can scan past the end of the bitmask - rewrite the search loop for clarity Type: fix Change-Id: I82637bc91eb7e7ae922785bc626fa224638cb4e4 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-11-29vapi: fix vapi_ctx_allocBenoît Ganne1-5/+4
clib_time_init() may use clib main heap when it needs to parse /proc or /sys. Make sure the main heap is initialized early. Type: fix Change-Id: I891504f3455b97c06da25e4833a8fb6941eb428a Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-11-28vcl: store libc_epfd in vls instead of vclFlorin Coras6-36/+59
ldp stores the libc epfds it uses in conjunction with vcl epfds in vcl attributes. Apart from being an ldp, as opposed to vcl, specific attribute, the epfd is retrieved on session close with vls locks that could be acquired from multiple threads. Avoid grabbing locks when retrieving the attribute. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I5fc52d72667a7693b1557d209c3890a968422f1e
2024-11-27hs-test: added ldp iperf tcp testAdrian Villin2-6/+13
- renamed other iperf tests Type: test Change-Id: I9cc7b49f23e9e0c6a01d2f74aef722d580478f75 Signed-off-by: Adrian Villin <avillin@cisco.com>