Matus Fabian [Fri, 27 Jun 2025 11:43:09 +0000 (13:43 +0200)]
hs-test: h2 memory leak test
Type: test
Change-Id: Ib68aabecafc4e17acae9942b6791d4aeb4833f96
Signed-off-by: Matus Fabian <[email protected]>
Matus Fabian [Fri, 27 Jun 2025 11:40:51 +0000 (13:40 +0200)]
http: fix http header table hash keys leak
Type: fix
Change-Id: I60ebf767a1f96a1290b7738d6859241739ce452c
Signed-off-by: Matus Fabian <[email protected]>
Damjan Marion [Tue, 1 Jul 2025 15:28:31 +0000 (17:28 +0200)]
octeon: use plain strcmp
Some gcc versions have issues with clib_strcmp...
Type: fix
Change-Id: Idfdcb7d13f14eadb7a7f210743a783172e2d5774
Signed-off-by: Damjan Marion <[email protected]>
Damjan Marion [Mon, 30 Jun 2025 13:53:21 +0000 (15:53 +0200)]
vppinfra: avoid string truncation errors by some gcc versions
Type: fix
Change-Id: If33251e1eac7e437ae803363d960896da02ae567
Signed-off-by: Damjan Marion <[email protected]>
Florin Coras [Thu, 26 Jun 2025 03:16:36 +0000 (20:16 -0700)]
tls: fix coverity warning
Type: fix
Change-Id: I2505613734667ae59fc51bd42f8dcd15206cded1
Signed-off-by: Florin Coras <[email protected]>
Adrian Villin [Fri, 27 Jun 2025 12:18:43 +0000 (14:18 +0200)]
hs-test: individual http1 suite
- Http1Suite is the same as NoTopoSuite with some things removed
- renamed http related files
Type: test
Change-Id: Ifb0ff0ba9a1151ff025faa6edd208f183830d2f5
Signed-off-by: Adrian Villin <[email protected]>
Mohsin Kazmi [Thu, 26 Jun 2025 10:14:18 +0000 (10:14 +0000)]
gso: fix ip fragment support for gso packet
Type: fix
GSO packets must be fragmented if the egress interface does not
support GSO offload and its MTU is smaller than the combined
size of the GSO chunk and protocol headers.
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: I94dff39c475a6ba31b1d8f4517e84be3ab506607
Mohsin Kazmi [Fri, 20 Jun 2025 17:06:22 +0000 (17:06 +0000)]
ioam: remove use of local_next_by_ip_protocol struct
Type: fix
ioam plugin is using data structure which is specific
to ip4 and ip6 lookup nodes.
This patch also use the IP_PROTOCOL defines instead of
custom define in srv6 code.
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: Iafd2a8416dd1f44ef7afd07c92915cd7dd6400a6
Varun Rapelly [Mon, 30 Jun 2025 15:35:59 +0000 (15:35 +0000)]
tls: fix compilation issue with openssl-1.1
This patch fixes compilation issue observed with openssl-1.1
with 'SSL_CTX_set_async_callback'.
Type: fix
Change-Id: I3d65f69056034b4afcebd7813c34f9ecebd299e0
Signed-off-by: Varun Rapelly <[email protected]>
Damjan Marion [Wed, 25 Jun 2025 13:09:31 +0000 (15:09 +0200)]
ena: use snprintf instead of strncpy
.. and silence gcc-11
Type: fix
Change-Id: Iad2671baf7d29aa861e74aafe952591e7205732d
Signed-off-by: Damjan Marion <[email protected]>
Damjan Marion [Wed, 25 Jun 2025 12:20:57 +0000 (14:20 +0200)]
svm: don't use __WORDSIZE
It is glibc specific, breaks MUSL
Type: fix
Change-Id: I4f898ec14a9776e298bdf529545adef70f15ddf5
Signed-off-by: Damjan Marion <[email protected]>
Arthur de Kerhor [Tue, 17 Jun 2025 14:30:51 +0000 (16:30 +0200)]
policer: don't compute CPU clock frequency for each API call
In some virtualized environments, where we can't get TSC from
clib_get_cpuid, os_cpu_clock_frequency can take more than 1ms
to return. As the TSC value is invariant over time, it can be
cached in policer_init instead of being recalculated everytime
a policer is created/updated.
Type: improvement
Change-Id: Icfd00feac76f35d562546a17e4830efb91dba219
Signed-off-by: Arthur de Kerhor <[email protected]>
Semir Sionek [Wed, 18 Jun 2025 12:25:02 +0000 (12:25 +0000)]
hsa: introduce max-tx-chunk parameter to built-in echo client
...which enables the user to control the size of the data chunk being
written, unless the size needs to be reduced due to other reasons.
Type: improvement
Change-Id: I660e3482047ae2a13b337df1abb405ecef3cf0d0
Signed-off-by: Semir Sionek <[email protected]>
Andrew Yourtchenko [Wed, 11 Jun 2025 16:07:51 +0000 (18:07 +0200)]
misc: VPP 25.06 Release Notes
Type: docs
Change-Id: Id32389963ab02af9ee70dcc040505b12bbc0e9db
Signed-off-by: Andrew Yourtchenko <[email protected]>
(cherry picked from commit
1573e751c5478d3914d26cdde153390967932d6b)
Benoît Ganne [Wed, 25 Jun 2025 14:39:54 +0000 (16:39 +0200)]
dns: fix recursive locking
All callers to delete_random_entry() are already holding the lock to
the DNS cache. Thanks to Rain for the report.
Type: fix
Change-Id: Id051427016f9b7444b812019ccc0f5085fd3e469
Signed-off-by: Benoît Ganne <[email protected]>
Florin Coras [Wed, 25 Jun 2025 16:23:13 +0000 (09:23 -0700)]
hsa: fix echo client vm use for time
Type: fix
Change-Id: Iecabf8a8c6b0bd262be32ef144281a5f0c052381
Signed-off-by: Florin Coras <[email protected]>
Florin Coras [Wed, 25 Jun 2025 18:03:43 +0000 (11:03 -0700)]
http: fix h2 settings leak
Type: fix
Change-Id: I680eb6bafb4b6218e60523e2abc2962f2f5cbefc
Signed-off-by: Florin Coras <[email protected]>
Semir Sionek [Tue, 24 Jun 2025 12:19:04 +0000 (12:19 +0000)]
hsa: fix echo-bytes echo client runs over UDP
Previously counting received bytes didn't take into account the
datagram header size, leading to a bigger than expected size and an
overflow of es->bytes_to_receive.
Type: fix
Change-Id: If31d4ed5f989645388dbf9c1b9829c6f2e4e8c62
Signed-off-by: Semir Sionek <[email protected]>
Matus Fabian [Wed, 25 Jun 2025 09:53:23 +0000 (09:53 +0000)]
hsa: http client formatting of headers improvement
Do not print response headers as raw bytes recieved from http transport
but use format_http_header_table which will work nice with http/2 too.
Type: improvement
Change-Id: I48b75c024e361879b611588fc3345ef343cb4a1b
Signed-off-by: Matus Fabian <[email protected]>
Matus Fabian [Wed, 25 Jun 2025 17:38:45 +0000 (17:38 +0000)]
http: test code coverage improvement
Type: test
Change-Id: Iae1487d74db77c438b2fd531f4a675a5994f91af
Signed-off-by: Matus Fabian <[email protected]>
Mohammed Hawari [Tue, 24 Jun 2025 16:20:25 +0000 (18:20 +0200)]
vppinfra: introduce bihash_56_8
Change-Id: I4d3cb6194c02ae53ead8f5ede35c3204d336a25f
Type: improvement
Signed-off-by: Mohammed Hawari <[email protected]>
Brian Morris [Tue, 24 Jun 2025 20:55:29 +0000 (20:55 +0000)]
tls: check error when SSL_shutdown fails
this pulls the error from the per-thread error queue, which if not empty could cause the wrong error to be returned elsewhere
Type: fix
Change-Id: Ie8741f32de61ef1f469e694ac27ee937a45f5b01
Signed-off-by: Brian Morris <[email protected]>
Masih Nilforoush [Thu, 27 Feb 2025 13:44:44 +0000 (14:44 +0100)]
gre: Add support for GRE keys in the GRE plugin
The added feature enables the GRE plugin to create tunnels between the same endpoints,
distinguishing them by the "key" value. It uses the standard 'key'
parameter in the GRE header.
Changes have been made to add support for CLI and API to create tunnels with a "key" value.
The CLI syntax is as follows:
create gre tunnel src src_IP_Address dst dst_IP_Address key key_value
All existing GRE functionalities, such as tunnel type and mode, remain unchanged.
GRE key support has been implemented for all non-ERSPAN tunnel types, including both IPv4 and IPv6.
Additionally, modifications were made to the GRE packet header, data structure, and inbound/outbound
packet processing to accommodate key configuration through CLI and API.
Type: feature
Change-Id: I222d585007fa264e7cc12c79d6ba9c63c044f133
Signed-off-by: Masih Nilforoush <[email protected]>
Matus Fabian [Mon, 23 Jun 2025 17:15:04 +0000 (17:15 +0000)]
http: h2 decoding response
Type: improvement
Change-Id: I5e582e6fec972d6d61683a7a76c2a3f222a9030b
Signed-off-by: Matus Fabian <[email protected]>
Adrian Villin [Tue, 24 Jun 2025 08:23:22 +0000 (10:23 +0200)]
hs-test: support building master CalicoVPP (KinD)
- we can now build master CalicoVPP with master VPP using:
'make setup-cluster BASE=master'
- TODO: docs, use the same VPP build in CalicoVPP as in HST images
(so that VPP isn't built twice)
Type: test
Change-Id: If5ba154a2f6868db04c17742f4e531269e57a56e
Signed-off-by: Adrian Villin <[email protected]>
Florin Coras [Mon, 23 Jun 2025 20:22:02 +0000 (13:22 -0700)]
hs-test: fix mw tests that rely on tap interfaces
Make sure taps have multiple queues and consistent qp mode enabled.
Type: test
Change-Id: Icf00290fad1934adcbfcfe56530d37f0793b0bca
Signed-off-by: Florin Coras <[email protected]>
Signed-off-by: Matus Fabian <[email protected]>
Matus Fabian [Fri, 20 Jun 2025 17:03:59 +0000 (17:03 +0000)]
http: h2 encoding request
Type: improvement
Change-Id: I4609c3a89c4df0883aa25f07623dad68c539d70d
Signed-off-by: Matus Fabian <[email protected]>
Varun Rapelly [Sat, 21 Jun 2025 04:15:11 +0000 (04:15 +0000)]
tls: add async support for SSL client
This patch enables async processing support for SSL clients.
Type: improvement
Change-Id: I8d9462b439ff6e0962ee30cb8b596a2744a1aa33
Signed-off-by: Varun Rapelly <[email protected]>
Florin Coras [Sat, 21 Jun 2025 22:42:58 +0000 (15:42 -0700)]
vcl: add reattach spinlock
Avoid potential deadlock if app is sigtermed and wants workers lock to
cleanup worker while reattaching.
Type: improvement
Change-Id: I97f5935d309de83717e5a0a82055c91e07c4cb17
Signed-off-by: Florin Coras <[email protected]>
Florin Coras [Sat, 21 Jun 2025 02:04:43 +0000 (19:04 -0700)]
http_static: improve cli short help
- make sure all params are present in both create and add/del listener
- rename max-body-size to max-req-body-size as it should be easier to
glean the purpose of the config
Type: refactor
Change-Id: I0f30eebe0b001e48ff640552396087e5da35334d
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Fri, 20 Jun 2025 13:30:28 +0000 (13:30 +0000)]
http: fix path formatting in request templates
Client app pass path as data bytes and length, not null terminated
string. Fix also msg.data.target_path_len value in http client and http
cli client, set it to string length not vec_len.
Type: fix
Change-Id: Icab6d830812bbfc2e6df82564d6d087476769111
Signed-off-by: Matus Fabian <[email protected]>
Florin Coras [Wed, 18 Jun 2025 03:04:25 +0000 (23:04 -0400)]
hs-test: add udp mw test
Type: test
Change-Id: I30a2541bda71aae4cbf2be76f428d23309470631
Signed-off-by: Florin Coras <[email protected]>
Florin Coras [Wed, 18 Jun 2025 01:20:23 +0000 (21:20 -0400)]
vcl: improve vls locking for mt apps
For mt single vcl worker apps, only guard vcl session pool, as opposed
to vls pool, to allow workers to perform updates.
Also convert spool mutex into rwlock and make sure all operations that
interact with vcl session pools grab at least the reader lock.
Type: improvement
Change-Id: Ief41912bc84881772d2279cd84dabb983a91b4cb
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Thu, 19 Jun 2025 13:48:04 +0000 (13:48 +0000)]
http: client can receive response while sending
Client can receive response (error) from server while still sending
body bytes, handle this as exception in state machine instead of error.
Type: improvement
Change-Id: I6aa3f7f5aaa299ac781109dd75295a7eb3a42cf9
Signed-off-by: Matus Fabian <[email protected]>
Damjan Marion [Wed, 18 Jun 2025 12:26:47 +0000 (14:26 +0200)]
vppinfra: don't use internal __CPU_* macros
Breaks non-glibc builds...
Type: improvement
Change-Id: If48a444ff358ef85973504795c06287269ed5c55
Signed-off-by: Damjan Marion <[email protected]>
Mohammed Hawari [Tue, 3 Jun 2025 15:05:46 +0000 (17:05 +0200)]
vppinfra: install ring.h
Change-Id: I920bef41426c10a4560cc3e923ca747054a5aeec
Type: improvement
Signed-off-by: Mohammed Hawari <[email protected]>
Adrian Villin [Wed, 18 Jun 2025 15:49:55 +0000 (17:49 +0200)]
hs-test: change local registry port
- changed to 5001, CalicoVPP uses port 5000
Type: test
Change-Id: Ic45c613d684685f21e49612c4e6454c302bbabb6
Signed-off-by: Adrian Villin <[email protected]>
Florin Coras [Wed, 18 Jun 2025 19:18:08 +0000 (15:18 -0400)]
hsa: fix http client logging with file
Print response status and headers as vectors.
Type: fix
Change-Id: I7321776e4914c139d85cd3f45ee67afd0850caee
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Wed, 18 Jun 2025 19:34:01 +0000 (15:34 -0400)]
hsa: fix http client path formating for fopen
format full path into variable, null terminate and free it after use
in hc_session_connected_callback
Type: fix
Change-Id: I3ed64dd247bf5ac9af8fa65517b6308a98205fd4
Signed-off-by: Matus Fabian <[email protected]>
Damjan Marion [Wed, 18 Jun 2025 12:20:35 +0000 (14:20 +0200)]
build: add knob to disable vcl
VCL doesn't work with musl.
Type: improvement
Change-Id: I5cb69da680dc98d14d88e340b4db6b5a8584ff23
Signed-off-by: Damjan Marion <[email protected]>
Florin Coras [Mon, 16 Jun 2025 16:47:49 +0000 (12:47 -0400)]
vcl: improve vls pthread cleanup handling
Try to drop locks if interrupted with locks grabbed.
Type: fix
Change-Id: I8d4996b6f35a8a2610327fb11e80e9951808b535
Signed-off-by: Florin Coras <[email protected]>
Semir Sionek [Thu, 12 Jun 2025 11:21:01 +0000 (11:21 +0000)]
hsa: make http client do chunked reads/writes to file
When using the save-to arg, the http client saves the body of the
response to file. With the current mechanism it would allocate a buffer
as big as the body (up to the limit), iteratively fill it and dump
everything (along with the headers) into the file. This would limit how
big of a response can be saved due to memory constraints and settings,
as well as not reproduce it accurately (e.g the file would need to be
trimmed from the saved headers.
With the new approach, if the response is too big for the max-body-size
settings, we reduce the buffer size to the fifo size, fill it up and
write it to file. We keep the file pointer and write to it, until we have
the response fully saved. The headers are now being displayed through
the cli, similarly to the verbose mode.
Type: improvement
Change-Id: I6a72749bc9c1175aba7769d83984d1d4a40ee9f0
Signed-off-by: Semir Sionek <[email protected]>
Matus Fabian [Wed, 11 Jun 2025 15:02:25 +0000 (11:02 -0400)]
http: http/2 extended connect method
Type: feature
Change-Id: I42e94b6282fa693d3c69f938ec9d3a290b71b9fa
Signed-off-by: Matus Fabian <[email protected]>
Andrew Yourtchenko [Fri, 13 Jun 2025 14:13:27 +0000 (16:13 +0200)]
http: implement HTTP PUT method
This implements the HTTP PUT request with the ability
to stream the data in chunks, rather than sending
the entire request body at once.
Type: feature
Change-Id: Ib04103a4bacf76a3c0bf9483a63a2edb693276c6
Signed-off-by: Andrew Yourtchenko <[email protected]>
Florin Coras [Mon, 16 Jun 2025 03:50:26 +0000 (20:50 -0700)]
udp: add basic unit test
For now test if binds work as expected.
Type: improvement
Signed-off-by: Florin Coras <[email protected]>
Change-Id: I3227c5b298763dd8d48ef1bf4858cb66df9aeafd
Florin Coras [Sat, 14 Jun 2025 22:19:14 +0000 (18:19 -0400)]
vcl: validate ldp select bitmap only if bits set
Type: fix
Change-Id: Ic873cb9511cf70619722e7b0f58211ad2a2a6772
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Mon, 16 Jun 2025 12:17:02 +0000 (08:17 -0400)]
hs-test: WaitForCoreDump improvement
- multiple core files support
- choose correct app binary in gdb bt (before vpp only)
- paltform independent solib-search-path (before x86_64 only)
Type: test
Change-Id: I70f48defcdfc6821e321b4b15ba95ad245407db0
Signed-off-by: Matus Fabian <[email protected]>
Mohsin Kazmi [Mon, 17 Mar 2025 13:37:18 +0000 (13:37 +0000)]
interface: add support for proper checksum handling
Type: improvement
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: I035acc97abb1ce63ce09019b790ee81c803d5d90
Anna Neiman [Tue, 27 May 2025 12:28:53 +0000 (15:28 +0300)]
arp: checks for null in add neighbor
Type: fix
Details:
I have the situation that ip_neighbor_learn is called for an already deleted interface.
The reproduction sequence is following
1. arp_input -> arp_reply on some worker
2. call ip_neighbor_learn_dp , so request to perform ip_neighbor_learn on the vpp_main thread
3. the vpp_main thread is very busy - at the same moment we remove most of l2 interfaces and vrfs under barrier sync, including the TX interface of arp_reply
4. call ip_neighbor_learn in the main thread , when the appropriate interface is already deleted
Change-Id: I69b167ba919d57f19d6b941260243bca889c31c1
Signed-off-by: Anna Neiman <[email protected]>
Florin Coras [Fri, 13 Jun 2025 21:26:54 +0000 (17:26 -0400)]
hsa: mt support for cl udp test
Also add tests for
- multi worker cl connects/binds
- 2 multi worker servers binding the same port
Type: improvement
Change-Id: I222756b7664ffdba83cb69bb0c730526dad3065c
Signed-off-by: Florin Coras <[email protected]>
Steven Luong [Fri, 13 Jun 2025 18:07:47 +0000 (11:07 -0700)]
vcl: make vcl_evt code compile
To include vcl_evt code in the build,
make build VPP_EXTRA_CMAKE_ARGS=-DVPP_VCL_ELOG=ON
Type: fix
Change-Id: I45bd093001de6e3dd4d6894726a470cf1ded952b
Signed-off-by: Steven Luong <[email protected]>
Semir Sionek [Fri, 13 Jun 2025 13:16:47 +0000 (13:16 +0000)]
hsa: improve handling of SESSION_E_REFUSED in http client
In that case (e.g trying to connect on a closed port), a connection
is refused and no session is allocated. As such, we cannot use the
struct to obtain the worker or vlib_main_t.
Type: fix
Change-Id: I9b44ccb42ba56a75b8ecc39501a7386ba2e84981
Signed-off-by: Semir Sionek <[email protected]>
Dave Wallace [Fri, 13 Jun 2025 04:09:20 +0000 (00:09 -0400)]
tests: run docker login script hs-test jobs
- login to docker hub in the CI to avoid hitting
the docker hub rate-limiter
Type: test
Change-Id: I4f6a854136b9bae9da1493a2aaa88576a64b314d
Signed-off-by: Dave Wallace <[email protected]>
Sivaprasad Tummala [Wed, 11 Jun 2025 10:21:43 +0000 (10:21 +0000)]
vlib: increase CPU base frequency precision
Updated the 'show cpu' CLI command to print the base frequency with 4 decimal
places instead of 2 (e.g., 2.69 GHz → 2.6945 GHz) for improved accuracy when
inspecting CPU timing characteristics
Type: improvement
Change-Id: I8f3384204ddcb8033aae9a1e1f6d06bed46478ab
Signed-off-by: Sivaprasad Tummala <[email protected]>
Florin Coras [Thu, 12 Jun 2025 06:26:00 +0000 (02:26 -0400)]
af_packet: fix rx/tx queue cli config
Type: fix
Change-Id: I45da2ee461c9b0a76eaee341eacd1449e88b87c6
Signed-off-by: Florin Coras <[email protected]>
Hadi Rayan Al-Sandid [Fri, 6 Jun 2025 14:18:41 +0000 (16:18 +0200)]
docs: minor improvement to core-pinning documentation
Type: docs
Change-Id: I05691e77855832ebbd9a3f9ee7de8a4edc1d75fe
Signed-off-by: Hadi Rayan Al-Sandid <[email protected]>
Neil McKee [Mon, 9 Jun 2025 03:55:14 +0000 (20:55 -0700)]
sflow : documentation
Update sFlow plugin documentation to reflect the addition of
egress-sampling and drop-monitoring.
Link the plugin documentation into the table of contents.
Type: docs
Change-Id: I6bd0e57860ec569fe955fb3f844aa4f24e8d8e25
Signed-off-by: Neil McKee <[email protected]>
Semir Sionek [Tue, 3 Jun 2025 15:07:28 +0000 (15:07 +0000)]
hsa: in http client print the response body only for text/*
Type: improvement
Change-Id: I9a2e6b9344b64018b0c6872dbd051d7c39c7a0c3
Signed-off-by: Semir Sionek <[email protected]>
Adrian Villin [Thu, 12 Jun 2025 12:35:49 +0000 (14:35 +0200)]
hs-test: configurable Ginkgo timeout
- global Ginkgo timeout can now be set using GINKGO_TIMEOUT
- fixes coverage job timing out because of Ginkgo's default 1h timeout
Type: fix
Change-Id: Ie1386e3eab31ff843a94b991e43b5270772b7732
Signed-off-by: Adrian Villin <[email protected]>
Florin Coras [Thu, 12 Jun 2025 04:45:12 +0000 (00:45 -0400)]
vcl: avoid reading fifo if vcl detached from vpp
Type: fix
Change-Id: Ie357602140993244e81edb97fac48339a88ecbe8
Signed-off-by: Florin Coras <[email protected]>
Adrian Villin [Tue, 10 Jun 2025 13:33:35 +0000 (15:33 +0200)]
hs-test: support for multiple multi-core containers
- framework will now allocate multiple cores for every vpp container
when running an MTTest
- added missing test timeout in H2SpecSuite
Type: improvement
Change-Id: I31317560b54b494ab14c8b5f4d7caed9fd3315b0
Signed-off-by: Adrian Villin <[email protected]>
Florin Coras [Tue, 10 Jun 2025 05:14:30 +0000 (01:14 -0400)]
hs-test: support for multiple rx/tx af_packet queues
Type: test
Change-Id: I13d12ea2558fa6ef3849a69a85d970256af52031
Signed-off-by: Florin Coras <[email protected]>
Florin Coras [Thu, 12 Jun 2025 07:51:46 +0000 (03:51 -0400)]
af_packet: include if name in fanout id
Useful when running multiple vpps with veth interfaces with same device
ids and multiple rx/tx queues configured
Type: improvement
Change-Id: I9fd23ad941883850f694c973db8cb8345dd901c2
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Tue, 10 Jun 2025 22:35:09 +0000 (18:35 -0400)]
hs-test: ConnectUdpClient fix deadline in Dial
Type: test
Change-Id: If2c3061e2c7349c4fd785d6cf417e9b2f0b387a0
Signed-off-by: Matus Fabian <[email protected]>
Florin Coras [Wed, 11 Jun 2025 03:02:20 +0000 (20:02 -0700)]
http: remove spurious h2 init message
Type: improvement
Change-Id: I25b0911163a6b6bf8a4f013acc047e5ad3458dc6
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Fri, 30 May 2025 14:51:59 +0000 (10:51 -0400)]
http: http/2 connect method
Type: feature
Change-Id: I7dc27a93388a6d680f2a87ccbd2704bb76a91357
Signed-off-by: Matus Fabian <[email protected]>
Matus Fabian [Wed, 11 Jun 2025 11:27:54 +0000 (07:27 -0400)]
http_static: use authority in redirects
Use authority in redirects instead of IP address of the listener.
Type: improvement
Change-Id: Id6dedcb59f4d3e9775ce74be483395ee782ac5d5
Signed-off-by: Matus Fabian <[email protected]>
Matus Fabian [Wed, 11 Jun 2025 10:37:18 +0000 (06:37 -0400)]
http: fix Host header usage in http1_target_fixup
Type: fix
Change-Id: I034d40872515dcb192ea5cdd244737fafdb12217
Signed-off-by: Matus Fabian <[email protected]>
Florin Coras [Tue, 10 Jun 2025 21:53:47 +0000 (17:53 -0400)]
udp: regrab connected session after transport clone
Type: fix
Change-Id: Id8a23a14f9086a68bb235fec4e190a19447c109e
Signed-off-by: Florin Coras <[email protected]>
Signed-off-by: Matus Fabian <[email protected]>
Dave Wallace [Tue, 10 Jun 2025 23:19:13 +0000 (19:19 -0400)]
tests: update govpp version to 0.12.0 in hs-test
Type: test
Change-Id: Ibf9cd66a277f801451dc2132fd3a39c396f12b86
Signed-off-by: Dave Wallace <[email protected]>
Florin Coras [Tue, 10 Jun 2025 08:48:06 +0000 (04:48 -0400)]
vcl: fix read on closed sessions with mt apps
Apps like iperf can have a thread close a session that another thread
selects/epolls. Make sure to return error when that happens.
Type: fix
Change-Id: I586f8077431a28e7d8d3e4f21e45efcc035698ba
Signed-off-by: Florin Coras <[email protected]>
Florin Coras [Sun, 8 Jun 2025 22:15:37 +0000 (15:15 -0700)]
vcl: fix fifo private vpp sh on migration
Type: fix
Change-Id: I97a44a8b5619c30ab0e96785e31dd0e98448e8ed
Signed-off-by: Florin Coras <[email protected]>
Mohsin Kazmi [Wed, 4 Jun 2025 11:08:47 +0000 (11:08 +0000)]
virtio: conditionally set checksum offload based on TCP/UDP offload flags
Type: fix
Previously, the Virtio device node unconditionally set the checksum offload
flag and the checksum start offset, regardless of whether TCP/UDP checksum
offload flags were set.
This patch updates the logic to apply these settings only when the TCP/UDP
offload flags are explicitly set.
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: I9af37d03b388ff7d1e22ec125fae97fad50e64d2
Matus Fabian [Sun, 8 Jun 2025 17:38:13 +0000 (13:38 -0400)]
http: http2_handle_continuation_frame coverity fix
Type: fix
Change-Id: I05b4308dd689d1977b59c6ef5791561f7e45693c
Signed-off-by: Matus Fabian <[email protected]>
Florin Coras [Fri, 6 Jun 2025 20:18:09 +0000 (13:18 -0700)]
vcl: add flag to track need for locks in vls
Once an mt app with a single vcl worker adds more than one pthread,
set flag that locks are needed.
Avoids issues if in a 2 thread app, a pthread disappears while the other
holds vls locks.
Type: improvement
Change-Id: I1203a9060ea88c577f82226a7efd96d0557c7497
Signed-off-by: Florin Coras <[email protected]>
Florin Coras [Mon, 2 Jun 2025 04:12:36 +0000 (00:12 -0400)]
vcl: inject epoll functions into vcl from ldp
Instead of trying to detect in ldp if vcl is asking for real epoll, have
vcl use libc epoll directly. This is obtained either at startup or by
means of ldp/vls.
Type: improvement
Change-Id: Ia77d49aef33be7618aeeb1a1d6a618d7ef4bcc6c
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Sun, 8 Jun 2025 14:37:01 +0000 (10:37 -0400)]
http: h2 fix msg.data.len passed to server app
Type: fix
Change-Id: Iac4e5edf42280a3d6679e12e0dd338adfe16aaf3
Signed-off-by: Matus Fabian <[email protected]>
Florin Coras [Sat, 30 Sep 2023 19:56:13 +0000 (12:56 -0700)]
vcl: allow reads after transport cleanup
Type: improvement
Signed-off-by: Florin Coras <[email protected]>
Change-Id: Ia464aae418999cc09bc38fe9fadd3b164f4e0067
Matus Fabian [Fri, 6 Jun 2025 22:09:10 +0000 (18:09 -0400)]
http: http2_conn_cleanup_callback fix
Type: fix
Change-Id: Id31705fee59d5202ea6924bbd707310d46a0bff8
Signed-off-by: Matus Fabian <[email protected]>
Florin Coras [Fri, 6 Jun 2025 20:46:34 +0000 (13:46 -0700)]
http: mark req/streams as no lookup sessions
Type: fix
Change-Id: If5572fa4a9ac1a5d61867228cbd2a7e6ef3546d3
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Thu, 22 May 2025 17:45:08 +0000 (17:45 +0000)]
http: http/2 CONTINUATION frame support
We can now receive and send headers split into multiple frames.
Type: improvement
Change-Id: I3a2a21c67dbc7bbd0bc19b8c6a0ff1516bcfc6fd
Signed-off-by: Matus Fabian <[email protected]>
Mohsin Kazmi [Wed, 4 Jun 2025 11:14:05 +0000 (11:14 +0000)]
af_packet: conditionally set checksum offload based on TCP/UDP offload flags
Type: fix
Previously, the af_packet device node unconditionally set the checksum offload
flag and the checksum start offset, regardless of whether TCP/UDP checksum
offload flags were set.
This patch updates the logic to apply these settings only when the TCP/UDP
offload flags are explicitly set.
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: If0f98db5b654a22995e5c7a82b5f793aad83bb88
Mohsin Kazmi [Wed, 4 Jun 2025 10:34:16 +0000 (10:34 +0000)]
ipip: fix the offload flags
Type: fix
Packets with checksum offloading are not correctly handled
in the IPIP tunnel path under the new checksum offload support.
Only GSO packets were being processed correctly.
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: Iaca00a68708bd11cb81951768d7437dc63523d8d
Adrian Villin [Thu, 5 Jun 2025 09:06:42 +0000 (11:06 +0200)]
hs-test: simplify KinD deps installation
Type: test
Change-Id: Icc4eb31fc04dbc2675c4e93b4e99290afb862f36
Signed-off-by: Adrian Villin <[email protected]>
Adrian Villin [Thu, 5 Jun 2025 12:10:10 +0000 (14:10 +0200)]
hs-test: run redis in app containers
- set redis output to quiet mode
- 'vol' directory is no longer copied to CI archives
Type: fix
Change-Id: I307e60e0789af740f245e2c6729cd844fab47e21
Signed-off-by: Adrian Villin <[email protected]>
Damjan Marion [Wed, 21 May 2025 09:28:32 +0000 (11:28 +0200)]
vnet: add vnet_buffer_get_opaque() inline
gives back pointer to vnet opaque area...
Type: improvement
Change-Id: Iab15278ee85f1cfda89522c72cf6e012e0b21dc1
Signed-off-by: Damjan Marion <[email protected]>
Mohsin Kazmi [Thu, 22 May 2025 19:34:42 +0000 (19:34 +0000)]
ip: compute checksums before fragmentation if offloaded
Type: fix
When a packet with checksum offloading enabled is
fragmented into multiple IP fragments, due to the
egress interface's MTU being smaller than the original
packet size, it gets dropped after reassembly because
the reconstructed packet contains an invalid checksum.
This patch addresses the issue by computing the checksum
in the IP fragmentation logic before the packet is
fragmented, ensuring the resulting fragments carry a
valid checksum upon reassembly.
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: I202f169887ae9594f9580a4c7901d7b4483ef5f9
Mohsin Kazmi [Wed, 4 Jun 2025 10:32:20 +0000 (10:32 +0000)]
interface: clear flags after checksum computation
Type: fix
Signed-off-by: Mohsin Kazmi <[email protected]>
Change-Id: I8f193f03176fa6c8a4f426c009d2978bb8f142fe
Semir Sionek [Mon, 2 Jun 2025 11:34:15 +0000 (11:34 +0000)]
hsa: introduce a configurable body limit for http client
Added a limit for returned body sizes, to make sure we're
not allocating too much memory. Configurable with the
max-body-size cli parameter.
Type: improvement
Change-Id: I732d2cfbc8c02ec85c052505b98177554960da88
Signed-off-by: Semir Sionek <[email protected]>
Adrian Villin [Wed, 28 May 2025 14:47:49 +0000 (16:47 +0200)]
hs-test: improvements and cleanup
- removed remaining 0.0.0.0 binds
- ip address files are now removed on suite teardown
(parallel testing should now be more reliable)
- removed unused Iperf helper functions
Type: test
Change-Id: I3af630b11a2713b3d5d2828ba6efbabfad571e1e
Signed-off-by: Adrian Villin <[email protected]>
Adrian Villin [Mon, 2 Jun 2025 10:12:03 +0000 (12:12 +0200)]
hs-test: fix incorrect volume mounts
- shortened volume names to avoid hitting unix socket character limit
- volume paths are updated upon container creation
Type: fix
Change-Id: I601060a902cbba930c324653a600a98c603986c2
Signed-off-by: Adrian Villin <[email protected]>
Adrian Villin [Mon, 2 Jun 2025 14:53:41 +0000 (16:53 +0200)]
hs-test: improve teardown reliability
- added defer to some teardown functions
- framework now recovers when Vppctl() is used before vppinstance
is created
Type: test
Change-Id: Ia37cca0ef24f8936cbf350636e249efbf78b13ec
Signed-off-by: Adrian Villin <[email protected]>
Adrian Villin [Wed, 4 Jun 2025 06:08:44 +0000 (08:08 +0200)]
hs-test: adjust timeouts when testing COV build
- TestTimeout is set to 30 minutes unless overridden with TIMEOUT arg
- AssertChannelClosed() timeout is set to TestTimeout-30s
Type: test
Change-Id: Ic321ad5baf3bf2c52ed872c58abc8ad577d82397
Signed-off-by: Adrian Villin <[email protected]>
Neil McKee [Sun, 23 Mar 2025 22:57:13 +0000 (15:57 -0700)]
sflow: add feature-arc at error-drop, drop-monitoring, egress-sampling
(First submitted as two separate commits, but is now one).
This turns the "error-drop" --> "drop" arc into a feature-arc
so that any plugin can insert a step and examine condemned packets
before they are freed. The immediate goal is for the sflow
plugin to be able export the headers of dropped packets to the sflow
collector, as per the sflow standard. However it seems clear that the
existing pcap-drop code could also be moved to a plugin, which
would help to simplify the core vnet/interface_output.c.
The sflow agent is rounded out to support egress-sampling and
packet-drop monitoring. The egress-sampling is achieved by
inserting a node on the interface-output feature arc. Packet
samples taken here are forwarded on the same FIFO to the
main thread, but marked as egress samples so that the samples
are written to a separate netlink PSAMPLE group number, which
indicated to hsflowd that these are egress samples.
Note that when you random-sample both ingress and egress packets at
1:N it is statistically the same as if you were sampling ingress packets
at 1:N and egress packets at 1:N independently. The sflow standard
does not allow a different value of N for ingress and egress on
the same interface, so we are free to take advantage of this.
The new node on the newly introduced "error-drop" feature-arc is
responsible for passing the headers of dropped packets to the main
thread too. These are not sampled. Instead we use a deliberately
shallow FIFO to ensure that under chronic conditions of high
packet loss these discard events will have negligible impact if
the main thread is not servicing the FIFO. The sflow standard
sets a rate-limit for the export of discard events which will
almost certainly be much lower (typically around 100 per second)
so even if we can only sustain a peak of, say, 1000 per second being
written to netlink DROPMON that is more than enough. The hsflowd
mod_dropmon will apply the configured sflow rate-limit and throw
away the excess messages before they are actually sent to the sflow
collector. For this reason it is not considered necessary for the
vpp CLI to set an explicit rate-limit.
The netlink PSAMPLE, DROPMON and USERSOCK code has been factored
and corrected for style, but the new implementation behaves the
same way in that there is no heap allocation, and iovectors are
used to assemble the netlink messages from their headers and
attributes.
New tests are added to confirm that (1) a single dropped packet is
delivered to the sflow_drop node, send to the DROPMON
netlink channel, and counted correctly when sflow drop-monitoring
is enabled, and that (2) when bidirectional packet-sampling is
enabled samples are taken both at ingress and at egress.
The terms "rx" for ingress, "tx" for egress and "both" for
bidrectional were settled on for brevity and because they appear
elsewhere in VPP, however the code still uses terms like
"ingress", "egress" and "bidirectional" to be consistent with
sFlow standard documents.
The new CLI options are:
vpp> sflow drop-monitoring enable|disable
vpp> sflow direction rx|tx|both
And the "show sflow" output has been enhanced to reflect this.
The defaults are as follows:
vpp> show sflow
show sflow
sflow sampling-rate 10000
sflow direction rx
sflow polling-interval 20
sflow header-bytes 128
sflow drop-monitoring disable
Status
interfaces enabled: 0
packet samples sent: 0
packet samples dropped: 0
counter samples sent: 0
counter samples dropped: 0
drop samples sent: 0
drop samples dropped: 0
(rebased on 5/12/2025)
Type: improvement
Change-Id: I831e803fa41874965bc9c32516f655b7ae837719
Signed-off-by: Neil McKee <[email protected]>
Florin Coras [Mon, 2 Jun 2025 17:58:46 +0000 (13:58 -0400)]
hs-test: use base image container for container builds
Avoid multiple updates/downloads of dependencies.
Type: improvement
Change-Id: Ic770dc00a42cb5aa8c780aebb72beef390200363
Signed-off-by: Florin Coras <[email protected]>
Signed-off-by: Matus Fabian <[email protected]>
Damjan Marion [Wed, 21 May 2025 09:23:41 +0000 (11:23 +0200)]
hash: add ipv4 and ipv6 only hash
Type: improvement
Change-Id: Ia210a7a128521d4d81dba0fe3f09c87e0bec7dd8
Signed-off-by: Damjan Marion <[email protected]>
Florin Coras [Mon, 2 Jun 2025 04:31:22 +0000 (00:31 -0400)]
vcl: handle pthread cleanups in vls
For historic reasons vcl registers for atexit and pthread exit cleanup
callback functions. Since vls is the one handling thread detection, move
thread cleanup logic there as well.
This also avoids potential issues if main/first pthreads exists before
the subsequent spawned ones as it may lead to premature vcl worker
cleanup.
Type: improvement
Change-Id: Id7a5c186b48f1e4c60ced635d918b5d4b4143fa6
Signed-off-by: Florin Coras <[email protected]>
Florin Coras [Sat, 31 May 2025 21:42:38 +0000 (17:42 -0400)]
hs-test: ldp test server logging improvements
- dump stderr and stdout to a file instead of asking iperf to dump to
file
- handle vcl/ldp debug logs when parsing iperf json output
Type: improvement
Change-Id: I535915315416e83c569f668f984ea9204d744174
Signed-off-by: Florin Coras <[email protected]>
Matus Fabian [Mon, 2 Jun 2025 07:35:49 +0000 (03:35 -0400)]
hs-test: fix show error in ldp test
Type: test
Change-Id: I5c690c374d8089b231c0029d25bd352aba113893
Signed-off-by: Matus Fabian <[email protected]>
Benoît Ganne [Wed, 28 May 2025 12:09:45 +0000 (14:09 +0200)]
ipsec: fix debug assert with ipv6 checksum offload
Since adding ASSERT() for checksum offload flags we need to make sure
the relevant flags are set before calling vnet_buffer_offload_flags_set()
Type: fix
Fixes:
7e00099480ab4d2c9353b8b5ed8d516e33abdd24
Change-Id: I521ae77f1d2e6a73deef5168473dd3e857257101
Signed-off-by: Benoît Ganne <[email protected]>