vpp.git
2 months agovppinfra: fix float rounding in format function 95/42095/1
Pierre Pfister [Thu, 19 Dec 2024 15:49:21 +0000 (16:49 +0100)]
vppinfra: fix float rounding in format function

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>
2 months agobuild: Fix PATH shell export 85/42085/2
Renato Botelho do Couto [Thu, 2 Jan 2025 17:54:15 +0000 (17:54 +0000)]
build: Fix PATH shell export

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>
2 months agovppinfra: export full symbol set from serialize.c 91/42091/1
Dave Barach [Sun, 5 Jan 2025 14:06:55 +0000 (09:06 -0500)]
vppinfra: export full symbol set from serialize.c

Needed for an out-of-tree plugin under development

Type: improvement

Change-Id: Ie37f847607616d7f3f5de67550bef17f2afee17f
Signed-off-by: Dave Barach <dave@barachs.net>
2 months agosession: proxy session migration fix 81/42081/1
Matus Fabian [Mon, 30 Dec 2024 19:40:51 +0000 (20:40 +0100)]
session: proxy session migration fix

Type: fix

Change-Id: I487ee4e69d8885f46d7a4af2c66a710da66108c5
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2 months agovppinfra: fix time range conversion off-by-1s 78/42078/3
Dave Barach [Fri, 27 Dec 2024 17:33:21 +0000 (12:33 -0500)]
vppinfra: fix time range conversion off-by-1s

Type: fix

Change-Id: I869e657744e9bba81994ad426731a08e5f1bcad7
Signed-off-by: Dave Barach <dave@barachs.net>
2 months agosession: add auto sdl 46/41846/19
Steven Luong [Mon, 18 Nov 2024 20:08:57 +0000 (12:08 -0800)]
session: add auto sdl

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>
2 months agohsa: http connect proxy fix 67/42067/1
Matus Fabian [Mon, 23 Dec 2024 19:01:28 +0000 (20:01 +0100)]
hsa: http connect proxy fix

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>
2 months agohs-test: vpp connect proxy stress tests 60/42060/2
Matus Fabian [Sat, 21 Dec 2024 11:04:30 +0000 (12:04 +0100)]
hs-test: vpp connect proxy stress tests

Type: test

Change-Id: Ie0b4e2d5f6d8ac19e86599f5f9ecbb642c3027ea
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2 months agonsim: fix output feature node 52/42052/6
Florin Coras [Fri, 20 Dec 2024 10:32:35 +0000 (02:32 -0800)]
nsim: fix output feature node

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

2 months agohs-test: rebuild images when switching build type 61/42061/2
Matus Fabian [Sat, 21 Dec 2024 16:04:16 +0000 (17:04 +0100)]
hs-test: rebuild images when switching build type

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>
2 months agohs-test: display vpp version in the summary 62/42062/1
Matus Fabian [Sat, 21 Dec 2024 19:54:01 +0000 (20:54 +0100)]
hs-test: display vpp version in the summary

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>
2 months agohsa: http client honor configured timeout 46/42046/3
Florin Coras [Wed, 18 Dec 2024 21:50:19 +0000 (13:50 -0800)]
hsa: http client honor configured timeout

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I87cc6d2ba1a07751359c7276fe096eeae4e30a2e

2 months agohsa: fix http client connect failures 37/42037/2
Florin Coras [Wed, 18 Dec 2024 03:44:26 +0000 (19:44 -0800)]
hsa: fix http client connect failures

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie8b4ba2cfd2c7fc1e27d2a2eb763b31417bc0743

2 months agohs-test: fix readCpus 43/42043/3
Matus Fabian [Wed, 18 Dec 2024 13:20:31 +0000 (14:20 +0100)]
hs-test: fix readCpus

return error otherwise hst might panic

Type: test

Change-Id: Ib3ec8a2113af4594f2c2fc54ae72e358bfadaef2
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2 months agocrypto: move crypto engines outside of plugins 36/42036/7
Damjan Marion [Mon, 16 Dec 2024 09:06:42 +0000 (09:06 +0000)]
crypto: move crypto engines outside of plugins

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>
2 months agobuild: archive install-*-deps logs when run in ci 93/41993/2
Dave Wallace [Wed, 11 Dec 2024 19:42:47 +0000 (14:42 -0500)]
build: archive install-*-deps logs when run in ci

Type: make

Change-Id: Id779d7c90a920926d40d241afb89bcb9312bcfc1
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2 months agodns: cli support enable dns and config server addr 64/41864/2
fenglei [Thu, 21 Nov 2024 12:32:25 +0000 (20:32 +0800)]
dns: cli support enable dns and config server addr

Type: improvement

cli support enable dns node and config name server addr

Change-Id: I4fcef28876b916bd5eac026f20afb0b0dda38fa2
Signed-off-by: fenglei <1579628578@qq.com>
2 months agodocs: add examples for BPF trace filtering 92/41992/5
Hadi Rayan Al-Sandid [Wed, 11 Dec 2024 15:22:59 +0000 (16:22 +0100)]
docs: add examples for BPF trace filtering

Type: docs

Change-Id: Ia2f9f94ebdf55d435559f6615da61efb1d2f9616
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2 months agopolicer: Add return_dsc for policer_add_command_fn 24/42024/2
fenglei [Sat, 14 Dec 2024 03:56:01 +0000 (11:56 +0800)]
policer: Add return_dsc for policer_add_command_fn

Type: improvement

add return_desc for except failure

Change-Id: Idcec0f8833fc264f66d2e0a784ece2a62c425263
Signed-off-by: fenglei <1579628578@qq.com>
2 months agopolicer: fix policer_input coredump 23/42023/2
fenglei [Sat, 14 Dec 2024 03:12:27 +0000 (11:12 +0800)]
policer: fix policer_input coredump

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>
2 months agopapi: vpp_papi asyncio support 72/41972/3
Ole Troan [Fri, 6 Dec 2024 15:49:25 +0000 (16:49 +0100)]
papi: vpp_papi asyncio support

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>
2 months agonat: add clear session for nat44-ed 17/41717/3
Ole Troan [Thu, 17 Oct 2024 08:43:34 +0000 (10:43 +0200)]
nat: add clear session for nat44-ed

Type: improvement
Change-Id: Ie8568999821f6dd5025fd5343670a8969a3e634e
Signed-off-by: Ole Troan <otroan@employees.org>
2 months agomap: map_domain_dump fails for empty tag 71/41971/3
Ole Troan [Fri, 6 Dec 2024 15:42:16 +0000 (16:42 +0100)]
map: map_domain_dump fails for empty tag

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>
2 months agohs-test: always build when running 'make build' 11/41911/3
Adrian Villin [Fri, 13 Dec 2024 08:12:07 +0000 (09:12 +0100)]
hs-test: always build when running 'make build'

- 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>
3 months agohs-test: skip building images if no new changes 10/41910/2
Adrian Villin [Thu, 12 Dec 2024 14:30:15 +0000 (15:30 +0100)]
hs-test: skip building images if no new changes

- 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>
3 months agohs-test: update docs, makefile, maintainers 09/41909/4
Adrian Villin [Thu, 12 Dec 2024 12:18:28 +0000 (13:18 +0100)]
hs-test: update docs, makefile, maintainers

- don't run 'make list-tests' after 'make help'

Type: docs

Change-Id: I1b2ae02faf53b072b96c91f2e1fead52128f4710
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agohs-test: added a test counter and time elapsed 06/41906/2
Adrian Villin [Wed, 11 Dec 2024 08:56:29 +0000 (09:56 +0100)]
hs-test: added a test counter and time elapsed

- only works when not running in parallel

Type: test

Change-Id: Iab9881f8a2a93c6ef5129742e3c0ad950f9e5328
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agovapi: remove directory name from include guards 99/41499/3
Oleksandr Hnatiuk [Thu, 29 Aug 2024 04:20:04 +0000 (21:20 -0700)]
vapi: remove directory name from include guards

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>
3 months agohs-test: fix a runtime error 08/41908/2
Adrian Villin [Thu, 12 Dec 2024 08:16:22 +0000 (09:16 +0100)]
hs-test: fix a runtime error

- framework panicked if core_pattern was set to "core"

Type: test

Change-Id: I14211cc59779090a61e6e08a18d16fd7399b2bed
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agobuild: use VPP_BUILD_TOPDIR from environment if set 01/41501/2
Oleksandr Hnatiuk [Thu, 29 Aug 2024 04:20:04 +0000 (21:20 -0700)]
build: use VPP_BUILD_TOPDIR from environment if set

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>
3 months agoarmada: fix feature arc for secondary interfaces 39/41839/2
Guillaume Solignac [Fri, 15 Nov 2024 10:37:40 +0000 (11:37 +0100)]
armada: fix feature arc for secondary interfaces

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

3 months agopg: misc improvements and fixes 46/41246/5
Benoît Ganne [Fri, 5 Jul 2024 12:09:35 +0000 (14:09 +0200)]
pg: misc improvements and fixes

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>
3 months agosession: disable fifo tuning on app close 82/41982/4
Florin Coras [Tue, 10 Dec 2024 00:45:54 +0000 (19:45 -0500)]
session: disable fifo tuning on app close

Type: fix

Change-Id: Id6aa410a75356ece1d114a2970f70cf32203997f
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 months agohs-test: fix nginx http3 dockerfile 07/41907/2
Adrian Villin [Wed, 11 Dec 2024 09:39:05 +0000 (10:39 +0100)]
hs-test: fix nginx http3 dockerfile

- now working with UBUNTU_VERSION=24.04

Type: test

Change-Id: I60aa62b8dcf3e96392af7179925e0f0fa3e15f11
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agohs-test: replaced container/interface getter func 04/41904/4
Adrian Villin [Mon, 9 Dec 2024 13:18:31 +0000 (14:18 +0100)]
hs-test: replaced container/interface getter func

- 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>
3 months agobpf_trace_filter: allow pcap filtering without classifier 33/41933/5
Hadi Rayan Al-Sandid [Tue, 26 Nov 2024 14:58:40 +0000 (15:58 +0100)]
bpf_trace_filter: allow pcap filtering without classifier

Type: improvement

Change-Id: I7ca860dbee0d0a24b7f00943142d8c878ed90e80
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
3 months agohs-test: added multi-threaded proxy tests 99/41899/14
Adrian Villin [Fri, 29 Nov 2024 15:33:14 +0000 (16:33 +0100)]
hs-test: added multi-threaded proxy tests

- TCP and UDP iperf proxy tests added

Type: test

Change-Id: Ic6f429cc6d48388ce9a17f8b9cd7c4b54b9a7e4d
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agohs-test: skip vppctl assert on teardown 05/41905/2
Adrian Villin [Tue, 10 Dec 2024 12:36:33 +0000 (13:36 +0100)]
hs-test: skip vppctl assert on teardown

- 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>
3 months agohttp: fix http_free_header_table 84/41984/2
Matus Fabian [Tue, 10 Dec 2024 09:07:11 +0000 (10:07 +0100)]
http: fix http_free_header_table

Type: fix

Change-Id: I014aebc84d0c219cc0c99120e9cd51fcc520a41c
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agoip: add enable ip4 api 69/41869/6
Ole Troan [Fri, 22 Nov 2024 08:22:20 +0000 (09:22 +0100)]
ip: add enable ip4 api

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>
3 months agohttp: connection upgrade mechanism 18/41918/8
Matus Fabian [Thu, 21 Nov 2024 16:01:45 +0000 (17:01 +0100)]
http: connection upgrade mechanism

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>
3 months agohs-test: arm support 77/41977/2
Matus Fabian [Sun, 8 Dec 2024 14:13:44 +0000 (15:13 +0100)]
hs-test: arm support

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>
3 months agohs-test: improved iperf testing 03/41903/5
Adrian Villin [Fri, 6 Dec 2024 15:00:25 +0000 (16:00 +0100)]
hs-test: improved iperf testing

- 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>
3 months agohs-test: remove client app retries 02/41902/4
Adrian Villin [Fri, 6 Dec 2024 09:26:48 +0000 (10:26 +0100)]
hs-test: remove client app retries

- 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>
3 months agocnat: add support for icmp traceroute 54/41654/5
Mohsin Kazmi [Thu, 5 Dec 2024 20:38:56 +0000 (20:38 +0000)]
cnat: add support for icmp traceroute

Type: improvement

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ief1e97d03b7a934547add35ac3ed1f93f2499a20

3 months agosession: add ip4-fib-id and ip6-fib-id to app ns CLI 15/41815/4
Steven Luong [Fri, 8 Nov 2024 16:35:14 +0000 (08:35 -0800)]
session: add ip4-fib-id and ip6-fib-id to app ns CLI

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>
3 months agosession: enhance display for show app 67/41967/4
Steven Luong [Thu, 5 Dec 2024 21:16:04 +0000 (13:16 -0800)]
session: enhance display for show app

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>
3 months agohttp: http_decap_udp_payload_datagram fix 73/41973/2
Matus Fabian [Fri, 6 Dec 2024 16:45:53 +0000 (17:45 +0100)]
http: http_decap_udp_payload_datagram fix

Properly handle incomplete capsule.

Type: fix

Change-Id: Ied7fca861f02e401451beaff09e612bcf471d8e0
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agovcl: fix ldp getsockopt tcp_info length check 76/41976/3
Florin Coras [Sat, 7 Dec 2024 22:28:46 +0000 (17:28 -0500)]
vcl: fix ldp getsockopt tcp_info length check

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>
3 months agovcl: improve handling of thread cancelation in vls 75/41975/3
Florin Coras [Sat, 7 Dec 2024 21:20:46 +0000 (16:20 -0500)]
vcl: improve handling of thread cancelation in vls

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>
3 months agotls: add async processing support 91/41591/11
Varun Rapelly [Sat, 17 Aug 2024 16:19:29 +0000 (16:19 +0000)]
tls: add async processing support

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

3 months agovcl: fix epoll wait assert 74/41974/2
Florin Coras [Sat, 7 Dec 2024 00:50:43 +0000 (16:50 -0800)]
vcl: fix epoll wait assert

Type: fix

Found by Lucas.

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3e10d3a9f40ef28cb9bda58f199a04dfc3e41d27

3 months agomisc: move ppp to a plugin 56/41956/7
Joel Ahn [Thu, 28 Nov 2024 21:54:10 +0000 (13:54 -0800)]
misc: move ppp to a plugin

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>
3 months agosession: clean up session table when re-adding an existing application namespace 37/41837/2
Steven Luong [Thu, 14 Nov 2024 22:28:34 +0000 (14:28 -0800)]
session: clean up session table when re-adding an existing application namespace

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>
3 months agomemif: add num pkts received/sent per queue 47/41947/8
Dau Do [Sun, 1 Dec 2024 01:47:50 +0000 (01:47 +0000)]
memif: add num pkts received/sent per queue

Add memif stats per queue for performance tuning.

Type: improvement
Change-Id: Ifacc80c0adfe92075d91179857c8956d1cbf3a70
Signed-off-by: Dau Do <daudo@yahoo.com>
3 months agobuild: upgrade to openssl 3.4.0 in vpp-opts-deps package 68/41968/1
Dave Wallace [Fri, 6 Dec 2024 03:38:33 +0000 (22:38 -0500)]
build: upgrade to openssl 3.4.0 in vpp-opts-deps package

Type: make

Change-Id: I8f801057f9f4b10d50f6ace5541e726f75f262e8
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 months agohsa: fix proxy udp issue 01/41901/2
Adrian Villin [Thu, 5 Dec 2024 13:58:39 +0000 (14:58 +0100)]
hsa: fix proxy udp issue

- 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>
3 months agotap: update tap_flags 00/41900/2
Adrian Villin [Tue, 3 Dec 2024 10:12:53 +0000 (11:12 +0100)]
tap: update tap_flags

- added TAP_API_FLAG_CONSISTENT_QP = 256

Type: improvement

Change-Id: I57d95503395baf265c29d48a92bd69347f0a7333
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agocrypto: add config option to adjust crypto sw scheduler queue size 48/41948/4
Dau Do [Sun, 1 Dec 2024 02:07:29 +0000 (02:07 +0000)]
crypto: add config option to adjust crypto sw scheduler queue size

Type: improvement
Change-Id: I63c16365a0d4a26b8ecb05bde81ad7b532df50a0
Signed-off-by: Dau Do <daudo@yahoo.com>
3 months agomisc: VPP 24.10 Release Notes 84/41784/2
Andrew Yourtchenko [Thu, 24 Oct 2024 18:54:30 +0000 (20:54 +0200)]
misc: VPP 24.10 Release Notes

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)

3 months agodev: include limits.h for PATH_MAX 43/41943/2
Renato Botelho do Couto [Fri, 29 Nov 2024 12:55:05 +0000 (12:55 +0000)]
dev: include limits.h for PATH_MAX

Type: fix
Change-Id: I66607164b1552011b39808bafc8e02b5a24f883c
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
3 months agodocs: mention command to display nodes supporting tracing 45/41945/3
Hadi Rayan Al-Sandid [Fri, 29 Nov 2024 13:29:49 +0000 (14:29 +0100)]
docs: mention command to display nodes supporting tracing

Type: docs
Change-Id: Id94539cae001059d1acdde6a90c3b2f16990bd47
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
3 months agotests: remove decorator tag_fixme_ubuntu2204 53/41953/2
Ivan Ivanets [Mon, 2 Dec 2024 20:38:42 +0000 (20:38 +0000)]
tests: remove decorator tag_fixme_ubuntu2204

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>
3 months agovcl: fix poll support 82/40882/3
Florin Coras [Sat, 11 May 2024 03:28:12 +0000 (20:28 -0700)]
vcl: fix poll support

Type: fix

Change-Id: I827f19d893153277baba3c2d0efde5f2827eb0ff
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 months agosvm: fix overflow when no region is big enough 57/41857/3
Benoît Ganne [Wed, 20 Nov 2024 13:54:55 +0000 (14:54 +0100)]
svm: fix overflow when no region is big enough

 - 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>
3 months agovapi: fix vapi_ctx_alloc 44/41944/1
Benoît Ganne [Fri, 29 Nov 2024 13:14:16 +0000 (14:14 +0100)]
vapi: fix vapi_ctx_alloc

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>
3 months agovcl: store libc_epfd in vls instead of vcl 27/41927/4
Florin Coras [Tue, 26 Nov 2024 08:29:24 +0000 (00:29 -0800)]
vcl: store libc_epfd in vls instead of vcl

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

3 months agohs-test: added ldp iperf tcp test 98/41898/3
Adrian Villin [Wed, 27 Nov 2024 08:47:44 +0000 (09:47 +0100)]
hs-test: added ldp iperf tcp test

- renamed other iperf tests

Type: test

Change-Id: I9cc7b49f23e9e0c6a01d2f74aef722d580478f75
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agohs-test: don't use reserved UDP ports for binding 97/41897/3
Adrian Villin [Wed, 27 Nov 2024 07:23:43 +0000 (08:23 +0100)]
hs-test: don't use reserved UDP ports for binding

Type: test

Change-Id: Ief0d238bbbf533779618b971f01099aa113c1c08
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agoapi: fix bug in pcap capture api 36/41936/3
Hadi Rayan Al-Sandid [Tue, 26 Nov 2024 16:25:27 +0000 (17:25 +0100)]
api: fix bug in pcap capture api

pcap api cleanup can cause crash in certain scenarios
e.g.missing/invalid 'filename' parameter.

Type: fix

Change-Id: I92417765960de84e30ed7cb945d40c50d722fb6c
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
3 months agotests: remove use of python 2.7 compatibility module 'six' 57/41457/5
Dave Wallace [Tue, 20 Aug 2024 19:15:22 +0000 (15:15 -0400)]
tests: remove use of python 2.7 compatibility module 'six'

- python 2.7 is no longer supported, clean up technical
  debt with use of 'six' module in test code

Type: test

Change-Id: I70e737920a6048c5e9caa20fece5ee21b91bb353
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 months agotests: use v3 version of session sdl dump api in ip6 test 49/41849/4
Dave Wallace [Wed, 20 Nov 2024 03:32:02 +0000 (22:32 -0500)]
tests: use v3 version of session sdl dump api in ip6 test

- session_sdl_v2_dump api command is deprecated

Type: fix

Change-Id: I4f7a140e7e39fae8076caa54fd8bfb0c755c6767
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 months agovapi: only wait if queue is empty 83/40983/2
Matthew Smith [Fri, 24 May 2024 19:53:55 +0000 (19:53 +0000)]
vapi: only wait if queue is empty

Type: fix
Fixes: 4b9935cd54

In vapi_wait(), check that the queue is empty before waiting. The
condvar is only signaled on addition of the first message.
pthread_cond_wait() will block approximately forever if there are
already messages in the queue.

Change-Id: Ic52befe443509f3c53aa9a872ba62bb05aaac25e
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
3 months agovapi: remove plugin dependency from tests 61/40861/5
Stanislav Zaikin [Fri, 3 May 2024 11:35:39 +0000 (13:35 +0200)]
vapi: remove plugin dependency from tests

replace unnecessary dependency on mss_clamp plugin
with ip_path_mtu_get streaming rpc.

Type: fix

Change-Id: I50538e40697b7f463be5fa25319e2bcd40b2f13f
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
3 months agobuild: Add FreeBSD install-dep support 55/41355/2
Tom Jones [Mon, 5 Feb 2024 09:50:00 +0000 (09:50 +0000)]
build: Add FreeBSD install-dep support

Type: improvement
Change-Id: I265ea61844bebdf086442fb334de20c1909a6683
Signed-off-by: Tom Jones <thj@freebsd.org>
3 months agovat2: docs 78/41378/3
Bence Romsics [Wed, 7 Aug 2024 08:55:39 +0000 (10:55 +0200)]
vat2: docs

Add a bit of documentation for vat2 - mostly through examples.

Type: docs
Change-Id: I1a95047b2bd33522f562c9c1a6a7e9e639ab1a47
Signed-off-by: Bence Romsics <bence.romsics@gmail.com>
3 months agobuild: add SHA256 checksums for downloaded dependencies 71/40971/7
Andrew Yourtchenko [Mon, 17 Jun 2024 18:22:11 +0000 (20:22 +0200)]
build: add SHA256 checksums for downloaded dependencies

- Replace md5sum with sha256sum for verification of downloaded
  external and optional dependencies.

Type: improvement
Change-Id: I52c96098d3cfd4c1eaf599da44a7b859ad24f1a4
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 months agohs-test: added multithreaded vpp proxy tests 55/41655/8
Adrian Villin [Wed, 20 Nov 2024 10:11:35 +0000 (11:11 +0100)]
hs-test: added multithreaded vpp proxy tests

- if a test is named '...MTTest', 3 cpus will be allocated to vpp
- updated docs

Type: test

Change-Id: I756dfb6cdbff4368d606ca3abbc1a510cd1d6b51
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agopg: fix the buffer deletion 48/41648/4
Mohsin Kazmi [Wed, 30 Oct 2024 15:00:46 +0000 (15:00 +0000)]
pg: fix the buffer deletion

Type: fix

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I8f0a67706399dad1e5296aafd1cfa92958b2fe82

3 months agopapi: remove deprecated pkg_resources 34/41834/3
Ole Troan [Thu, 14 Nov 2024 09:41:17 +0000 (10:41 +0100)]
papi: remove deprecated pkg_resources

Replace use of pkg_resources with new supported APIs under importlib.

Type: fix
Change-Id: I67a7d936c634107c1ae87c0a06bea2355d906739
Signed-off-by: Ole Troan <otroan@employees.org>
3 months agobuild: separate package suffixes for vpp-ext-deps and vpp-opt-deps 67/41867/2
Dave Wallace [Thu, 21 Nov 2024 21:00:12 +0000 (16:00 -0500)]
build: separate package suffixes for vpp-ext-deps and vpp-opt-deps

Type: make

Change-Id: Icc8b4937ed98474da9d27668318a2a9e3d4a3ae5
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 months agofib: fix `show ip fib memory` output error 61/41861/2
Jay Wang [Tue, 12 Nov 2024 10:20:39 +0000 (10:20 +0000)]
fib: fix `show ip fib memory` output error

Put `memory` before `mem` when parsing `show ip fib` CLI command to
avoid the following annoying output error.

vpp# show ip fib memory
ipv4-VRF:0 mtrie:343808 hash:4687
totals: mtrie:343808 hash:4687 all:348495
unknown input `ory'

Type: fix
Signed-off-by: Jay Wang <jay.wang2@arm.com>
Change-Id: I5f990243309d6e6ea339e8442f5e68ae90a98814

3 months agohs-test: added tls tcp iperf test 96/41896/2
Adrian Villin [Thu, 21 Nov 2024 11:21:24 +0000 (12:21 +0100)]
hs-test: added tls tcp iperf test

Type: test

Change-Id: I7ed1a6dea644eb19b8022db07344503121e61517
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agovcl: make ldp workers thread local 98/41798/7
Florin Coras [Thu, 31 Oct 2024 07:55:04 +0000 (00:55 -0700)]
vcl: make ldp workers thread local

Multi-threaded apps that do not allocate per-thread workers
(multi-thread workers vcl config) ended up sharing worker state like the
select bitmaps and time among others. Those should not be shared.

To avoid this, make ldp workers thread local variables.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iabdcc413991dbaafff33f24187f7053a9c5a1270

3 months agohsa: added request repeating to http client 49/41649/10
Adrian Villin [Mon, 4 Nov 2024 12:16:24 +0000 (13:16 +0100)]
hsa: added request repeating to http client

- added request repeating (repeat <count>|duration <seconds>)
- added basic stats

Type: feature

Change-Id: Ic69eac8029eac31ea5ace5b5c0da1ce7a3543ac0
Signed-off-by: Adrian Villin <avillin@cisco.com>
3 months agosession: fix ct get peer if peer freed 59/41859/2
Florin Coras [Wed, 20 Nov 2024 23:04:20 +0000 (15:04 -0800)]
session: fix ct get peer if peer freed

Type: fix

Change-Id: Iae00637ab843121651f187436bf849f41874f48c
Signed-off-by: Florin Coras <fcoras@cisco.com>
3 months agobuild: add vpp-opt-deps package 91/40891/31
Dave Wallace [Wed, 15 May 2024 22:16:40 +0000 (18:16 -0400)]
build: add vpp-opt-deps package

- Build an optional vpp package for optional
  dynamically linked dependencies for vpp plugins.
  Initial package contents include openssl 3.3.2.
- Refactor $WS_ROOT/build makefile structure
- Remove vpp-ext-deps debian control replacement
  of vpp-dpdk-dev package

Type: make

Change-Id: I1af0eff4a0c009c9d9061362f79e2013d8bf1a93
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 months agohttp: track requests as independent objects 47/41847/2
Matus Fabian [Tue, 19 Nov 2024 14:03:26 +0000 (15:03 +0100)]
http: track requests as independent objects

Type: improvement
Change-Id: I6c1808a82f61c71f34eab12ae5f99cca5fee8854
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agohttp: HTTP Datagrams and the Capsule Protocol 23/41823/4
Matus Fabian [Tue, 12 Nov 2024 14:15:26 +0000 (15:15 +0100)]
http: HTTP Datagrams and the Capsule Protocol

Type: improvement

Change-Id: I45de69172eec54578ceebe87f655701830af1a3d
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agotests: vpp_qemu_utils with concurrency handling 99/41799/48
Ivan Ivanets [Thu, 31 Oct 2024 18:55:27 +0000 (18:55 +0000)]
tests: vpp_qemu_utils with concurrency handling

Type: test

Enhance vpp_qemu_utils functions with mutex locking, handle namespace
and
host interface existence, unique namespace/interface name, error
handling and retries, check error code explicitly.

Change-Id: I1ea66eeefbc1fee9b58e8b9886f4dd6fd8d33444
Signed-off-by: Ivan Ivanets <iivanets@cisco.com>
3 months agoquic: update to quicly version 0.1.5 42/41842/8
Dave Wallace [Sat, 16 Nov 2024 06:26:42 +0000 (01:26 -0500)]
quic: update to quicly version 0.1.5

Type: improvement

Change-Id: I7c9c91a9c4d3ac2499e42eedda0a5d395bdf5912
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
3 months agoapi: support api clients with real-time scheduling 57/41257/2
Florin Coras [Fri, 12 Jul 2024 08:42:56 +0000 (01:42 -0700)]
api: support api clients with real-time scheduling

Type: improvement

Signed-off-by: Tatsushi Kanemoto <t-kanemoto@fujitsu.com>
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ib97b778f6a1aac95573f1258ff806282dc995331

3 months agohs-test: udp proxy testing infra 40/41840/2
Matus Fabian [Fri, 15 Nov 2024 11:32:07 +0000 (12:32 +0100)]
hs-test: udp proxy testing infra

Type: test

Change-Id: Ib32a48429312a771c6ebe8022c7bdbccdde3a36f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agosession: track number of tries to alloc lcl port 30/41830/4
Florin Coras [Thu, 14 Nov 2024 06:54:14 +0000 (22:54 -0800)]
session: track number of tries to alloc lcl port

Track number of tries to alloc local port and report it in stats
segment. Could be used to gauge how busy the port allocator is.

Also add cli to dump trasport sub-layer state.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3736a48488c491dee85aa2b074b87519a3857057

3 months agohs-test: reduce curl image size 35/41835/2
Matus Fabian [Thu, 14 Nov 2024 09:56:19 +0000 (10:56 +0100)]
hs-test: reduce curl image size

before:
REPOSITORY    TAG      IMAGE ID       CREATED          SIZE
hs-test/curl  latest   4eededa5f68a   27 minutes ago   973MB

now:
REPOSITORY    TAG      IMAGE ID       CREATED              SIZE
hs-test/curl  latest   1a8faf0cbf8b   About a minute ago   110MB

Type: improvement

Change-Id: I7da5f5f26c3738e022225b1bb66d75f748074496
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agohsa: configurable connect-proxy idle timeout 33/41833/2
Matus Fabian [Thu, 14 Nov 2024 09:21:20 +0000 (10:21 +0100)]
hsa: configurable connect-proxy idle timeout

Added cli option idle-timeout to specify connect-proxy timeout for
idle connections, default value 10 minutes.

Type: improvement

Change-Id: I3ced83f28d3aabcc70fbd3ca1ef10b8a0336ffb1
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agohttp: state machine improvement 28/41828/3
Matus Fabian [Wed, 13 Nov 2024 15:31:53 +0000 (16:31 +0100)]
http: state machine improvement

Split in two, one for rx and second for tx, which is more suitable for
http tunnels. Updated state names too, some of them were bit confusing.

Type: improvement

Change-Id: I2310deaa49196819f9d8147a5d9af188465dbd65
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agohs-test: fix memleak testing 29/41829/2
Matus Fabian [Wed, 13 Nov 2024 17:23:39 +0000 (18:23 +0100)]
hs-test: fix memleak testing

Type: fix

Change-Id: I8d88fc5ccb37cc18c785b5dca47c7f66afefb73a
Signed-off-by: Matus Fabian <matfabia@cisco.com>
3 months agomss_clamp: export functions 27/41827/7
Maxime Peim [Wed, 13 Nov 2024 11:03:38 +0000 (12:03 +0100)]
mss_clamp: export functions

Type: fix

Change-Id: If2b3e580c038064eca4edcdfd2fd432c8b813a6d
Signed-off-by: Maxime Peim <mpeim@cisco.com>
3 months agohttp_static: api add keepalive-timeout 24/41824/2
Matus Fabian [Tue, 12 Nov 2024 14:48:16 +0000 (15:48 +0100)]
http_static: api add keepalive-timeout

Type: improvement

Change-Id: Ia1e0dcf562fd1538794542207ac2cad97d168c6c
Signed-off-by: Matus Fabian <matfabia@cisco.com>