Commit Graph

10326 Commits

Author SHA1 Message Date
Matus Fabian 82ad9660be http: return more than url to server app
Provide all bytes as received from transport as data in the http
message to server. Additionally provide offset and length of target
path, target query, headers and body. Offers apis for parsing of
headers, percent decoding, target path/query syntax verification.

Type: improvement

Change-Id: Idbe6f13afa378650cc5212ea7d3f9319183ebbbe
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-13 06:35:26 +00:00
Florin Coras 6c37845a87 session: fix ho cleanup on forced reset
Avoid double free if app forces reset while half-open is cleaning up.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2311fb763076aa8a263c193f5967793402eedb6a
2024-06-12 10:14:40 -07:00
Florin Coras 7080294116 session: fix ho cleanup on active and passive close
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9e7011ff45f14e17fc0d0d63800184f404c29093
2024-06-12 14:56:51 +00:00
vinay tripathi 518bcc1028 ipsec: move ah packet processing in the inline function ipsec_ah_packet_process
This inline function is introduced to simplify code readability and consolidate AH packet
processing in separate API.

Type: improvement

Change-Id: Id98074d00aba277fed714ea9995655c9e84ec83b
Signed-off-by: vinay tripathi <vinayx.tripathi@intel.com>
2024-06-12 13:16:53 +00:00
Dau Do ea92116edf ipsec: Add option to configure the hand-off worker queue size
Type: improvement

Change-Id: I252951d3ec01497c049ca0ffb7cb42aaf2efb965
Signed-off-by: Dau Do <daudo@yahoo.com>
2024-06-12 13:02:35 +00:00
Klement Sekera 5c0aa7d0b4 papi: more detailed packing error message
'struct.error: required argument is not an integer'

is quite useless itself, so let's raise an error from it at least
saying what was the thing getting packed

Type: improvement
Change-Id: Icb762fbab98446d1e1331315e6c337f789cbba95
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-06-12 11:55:50 +00:00
Monendra Singh Kushwaha 68b8125dbf octeon: add clear counters for port and queues
Type: feature

Change-Id: Ie36be41694e7bd5341b4239dcba2ae6834c4a73f
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-06-11 09:50:54 +00:00
Monendra Singh Kushwaha 2ea1e2c361 dev: add port and queue counter clear operation
Type: feature

Change-Id: Ibd876c5251fc2f9d87816d235fff2de22be4b21c
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-06-11 09:50:54 +00:00
Florin Coras 3def24bc48 quic: initialize ooo lookup on fifos
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6a0493834c5b60bdb42865112c453157fdfeb87c
2024-06-10 15:56:53 +00:00
Benoît Ganne fa500e9854 vlib: fix gdb_show_traces()
When using gdb_show_traces() in debug mode, don't assert if workers are
not parked, as it is typically called from gdb.

Type: fix

Change-Id: Iabf175d96dc152da4d1abfbce9ccc9020d0b5d61
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-06-10 13:12:52 +00:00
Sriram Vatala 282f2ecd8e octeon: add support for vnet generic flow type
This patch adds vnet generic flow type support in OCTEON plugin, which
extends the existing vnet flow types supported. It allows users to
configure additional match patterns like 802.1q tag fields, 802.1ad tag
fields, MPLS fields, IP DSCP etc., if supported by the underlying hardware.
On OCTEON various match patterns including user defined custom protocol
types can be supported depending on the programmable classification profile.
Generic flows operate based on hexadecimal strings representing packet
data bytes and corresponding mask data bytes. The mask data bytes, with
bits set to '1', selectively identify the data bytes used for hardware
flow matching.

To configure generic flow rules, packetforge tool is recommended which
accepts inputs in a user readable and friendly format. This tool is
available in VPP tree under `extras/packetforge`. Detailed instructions
can be found in the documentation under `extras/packetforge`. Additionally
user can use existing vnet flow CLI and binary API interfaces to
configure rules manually.

Type: feature

Change-Id: I8198536cf1fe0a4719542a8b54c599230c7852e9
Signed-off-by: Sriram Vatala <svatala@marvell.com>
2024-06-10 13:07:01 +00:00
Monendra Singh Kushwaha b26b2bcd43 octeon: add counters support for port and queue
Type: feature

Change-Id: I5d52d78a93c7d0a12b9cee16fe7ebabdc2b19f0a
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-06-10 12:54:36 +00:00
Monendra Singh Kushwaha afd03ffff5 dev: fix counter_start in counter clear routine
This patch fixes counter_start value, as it should hold the cumulative
counter value whenever counter clear routine is called.

Type: fix
Fixes: 38c619115b

Change-Id: I50bf8ddcde419caf1170dfacdea03ff3d93a3327
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-06-10 12:54:36 +00:00
Monendra Singh Kushwaha a391de68ac octeon: update trace to use qid instead of q
This patch updates trace to use "qid" keywords instead of "q".

Type: feature

Change-Id: Ib0f41a8a1a93cbbbf8c59304924d4e68efff48fd
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-06-10 12:21:15 +00:00
Harish Malik 38f59c315b octeon: enable vf device promiscuous mode feature
This patch enables promiscuous mode on vf devices except SDP vf
and LBK devices

Type: feature

Change-Id: I2e18c63590f22f99c69500f10b42b64d899249ce
Signed-off-by: Kommula Shiva Shankar <kshankar@marvell.com>
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-06-10 14:17:16 +05:30
Lukas Stockner 63ff7a6325 buffers: support per-numa-domain buffer size
Currently, buffers-per-numa is used for all NUMA domains, and there's
no way to allocate different amounts for each domain.

Therefore, this adds a per-NUMA-domain buffer config section, which
currently has a single option to set the number of buffers.

If it's not specified or set to zero, the code falls back to
buffers-per-numa as before.

Type: improvement
Change-Id: If35d7a9eff6f8d1d78063ea7873dbf50780d0ec3
Signed-off-by: Lukas Stockner <lstockner@genesiscloud.com>
2024-06-05 12:28:27 +00:00
Fan Zhang e7901e8830 ipsec: fix missing udp port check
Type: fix

This patch fixes the missing UDP port check in IPsec NAT-T
case. As of RFC3948 UDP encapped ESP traffic should have
destination port ID of 4500, which was missing.

The related tests are updated with this port ID, too.

Change-Id: I73ecc6a93de8d0f4b642313b0f4d9c2f214a7790
Signed-off-by: Fan Zhang <fanzhang.oss@gmail.com>
2024-06-04 12:44:53 +00:00
Mohsin Kazmi 8c77c1930a ip: add support for drop route through vpp CLI
Type: improvement

Change-Id: Ib822f36ff7b3ecda162fc99bf3892f912d0649f0
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2024-06-03 12:29:37 +00:00
Mohsin Kazmi 5f694322a9 fib: set the value of the sw_if_index for DROP route
Type: fix

fib_api_path_decode() is utilized by the IP route API call
to translate the path from the API to the fib_route_path_t
structure. The ip_route_add_del_handler_t function initializes
the fib_route_path_t structure to zeros, consequently setting
the sw_if_index value to 0, which is a valid value in VPP.
Typically, the default VRF (Virtual Routing and Forwarding)
has a local interface at index 0, leading to normal functionality.
However, a custom VRF table without any interface will result
in a crash.

The issue arises because the DROP route in fib_api_path_decode()
does not override the sw_if_index value with the one provided
in vl_api_fib_path_t. Subsequently, when this sw_if_index is
attempted to be resolved in the VRF table where the interface
does not exist, it leads to a crash.

This patch addresses the problem by setting the sw_if_index of
fib_route_path_t to the sw_if_index value of the API path.

To reproduce the issue, please remove the fix and run the following command:
make test-debug TEST=test_ip4.TestIPv4RouteLookup.test_exact_match

Change-Id: I5d72e91e5c701e749a92873941bee7b7b5eabd41
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2024-06-03 12:22:10 +00:00
Dave Barach 9d5be6ae2a vlib: clean up r2 plugin registration relocator
Thanks, Eliot!

Type: fix
Change-Id: I3737f62d08d5cd2db803af86285f9a2e456bab72
Signed-off-by: Dave Barach <vpp@barachs.net>
2024-06-01 08:51:14 -04:00
Monendra Singh Kushwaha 2b671aa3e9 octeon: convert link speed from Mbps to Kbps
Type: fix
Fixes: 01fe7ab88e

Change-Id: I88d03adcd4ef2a585ed77834b3bf8ef9d50b15c9
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-05-29 21:48:11 +00:00
Damjan Marion 78925604e9 vlib: stack trace and signal handler improvements
- use libunwrap which seems to be industry standard
 - display traceback on console if running interactive or with syslog
   disabled (color output unless nocolor specified)
 - print hexdump of offending code
 - print library filename for each stack frame

Type: improvement
Change-Id: I61d3056251b87076be0578ccda300aa311c222ef
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-05-29 09:50:18 +00:00
Matus Fabian 5409d33002 http_static: sanitize path before file read
Romove dot segments from requested target path before start reading
file in file handler to prevent path traversal.

Type: fix

Change-Id: I3bdd3e9d7fffd33c9c8c608169c1dc73423b7078
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-28 20:42:30 +00:00
Monendra Singh Kushwaha a93c85a579 octeon: add support for Marvell Octeon9 SoC
Type: feature

Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
Change-Id: I5db58b8ec41b45596bc03b4a336a184c17871294
2024-05-28 15:59:22 +00:00
Monendra Singh Kushwaha b2c8c481cc octeon: fix lbk vf initialization
Type: fix
Fixes: 0a2fdc56

Change-Id: I5d232a86be66edeec8b740a883104f5a22516697
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-05-28 15:58:14 +00:00
Maxime Peim 0720d65c7b urpf: export to use it externally
Type: improvement
Change-Id: Ia70f16c92dfc153256db6dcdf23f5487d5a7b678
Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-05-28 11:56:46 +00:00
Maxime Peim 7624083c27 urpf: node refactor
Type: refactor
Change-Id: Icb3c6cbe1425331c7a8a4b0dd583389f2257befa
Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-05-28 11:56:15 +00:00
Florin Coras fc42280434 udp: fix csum computation when offload disabled
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I11de9e1156420e0a37d637d8611bb3cf9788d699
2024-05-24 17:28:16 +00:00
Maxime Peim fe736b2af9 ip6: fix icmp throttling error index
Type: fix
Change-Id: I57ce42c193fd9408b9d4790482ea76d784148c30
Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-05-24 15:29:50 +02:00
hsandid 0b0468cb0f vlib: improvement to automatic core pinning
Type: feature

If 'main-core' is not specified, the main thread is pinned
by default to the cpu it is running on during initialization.
This change does not impact manual core-pinning, which
requires the 'main-core' argument
e.g. 'cpu {main-core x corelist-workers n}.

Change-Id: I874034591bf0acf4d71b231dfbbb0f6de8fe6060
Signed-off-by: hsandid <halsandi@cisco.com>
2024-05-24 08:21:14 +00:00
Steven Luong 1b053782a5 virtio: Add RX queue full statisitics
In production network, often the host and the vm are managed by different
groups. The host statistics may not be readily available to the folks who
manage the VM. Having the RX queue full statistics in VPP can inform
that there might possibly be drops in the host.

Type: improvement

Change-Id: I43206647ac0d8092968c4187236d9696ae0acccd
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-05-23 17:50:50 +00:00
Guillaume Solignac f5df854389 vppinfra: support libunwind for backtrace
On non-glibc systems, execinfo is the only option available, but the lib
is old and can crash when unwinding. We now can use libunwind to unroll
it instead of using execinfo.h.

Type: improvement
Signed-off-by: Guillaume Solignac <gsoligna@cisco.com>
Change-Id: I8b55f7aca97261a2efb5dca998889d5e0645939a
2024-05-23 13:56:28 +02:00
Guillaume Solignac 5444973bd0 vlib: prevent some signals from being executed on workers
Before this commit, SIGINT, SIGHUP and SIGTERM could be executed on the
workers. Since those signals don't stop execution, it meant that atexit
handlers (like the `vl_unmap_shmem`) could run while the main thread was
still running, which can cause race conditions. To avoid that, we
prevent workers from handling those signals.

Type: fix
Signed-off-by: Guillaume Solignac <gsoligna@cisco.com>
Change-Id: I27a87d96a027d7423ced881a614427af4ab0f969
2024-05-22 12:52:31 +00:00
Brian Morris f03d448142 session: remove ipv6 lookup threading assert
This makes session_lookup_connection_wt6 consistent with session_lookup_connection_wt4 -
they both just return an error for wrong thread.

Type: fix
Change-Id: Ide38976e9a7274b53311e65711098e6b22a3f8d5
Signed-off-by: Brian Morris <bmorris2@cisco.com>
2024-05-21 15:30:08 +00:00
Matus Fabian a5668eb055 builtinurl: mark api as deprecated
Plugin will be removed since it is incorporated in http_static plugin
for longer time.

Type: refactor
Change-Id: I6ed99d1b118fb5951aafceb05a953f39d325e87e
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-20 20:01:04 +02:00
Maxime Peim f66702df6b ip-neighbor: show age instead of time in cli
To match the API behavior, and as it is more useful to have an entry
age than its time last probe.

Type: fix
Change-Id: I07680cd713d0d2b6208a58208b032af7f6a92825
Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-05-15 17:55:27 +00:00
Matus Fabian fec709125b http: fix unsupported client app method
HTTP client app code currently support only GET method but method
set in message from client app was silently ignored.

Type: fix

Change-Id: I99dc6323d9783ee5a20623e7923cfdbf31474a4f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-14 22:39:38 +00:00
Matus Fabian 3d00893c37 http: notify client when connection failed
Type: fix

Change-Id: I87054e9667fe990d9a2dc3950bc3ce348460018a
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-14 22:38:23 +00:00
Matus Fabian b7a9ed75fb http: fix server sending all status codes
Type: fix

Change-Id: I4bc748e3091c2fbe0142d1b74d21a543a62c4ce0
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-14 22:36:31 +00:00
Scott Hutton 182d8b2ddb sr: move srmpls to a plugin
Move sr_mpls folder under vnet to the plugin folder, update cmake configuration
and header paths, and add plugin.c to register plugin.

JIRA: VPP-2054

Type: improvement
Change-Id: I1ad6f287f67eb0c35588c339bcd51218fadf5f8e
Signed-off-by: Scott Hutton <schutton@cisco.com>
2024-05-14 07:53:35 +00:00
lajoskatona 9850d301b0 marvell: remove uses of uint
This change changes all instances of `uint` to `unsigned int` to avoid
use of the non-standard type. This fixes problems that some versions of
GCC may have.
For similar patch see: https://gerrit.fd.io/r/c/vpp/+/40762

Type: fix
Change-Id: I0c666de788ac5b3c457e0a073e3e279f2fb99a4f
Signed-off-by: lajoskatona <katonalala@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-05-14 07:52:19 +00:00
Tom Jones 2e87d942ab vppinfra: Add platform cpu and domain get for FreeBSD
Type: improvement
Change-Id: I5253f2b1b51493f2d4d0f451ad4c2208fd8f6bf2
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-05-14 07:46:44 +00:00
Vladislav Grishenko 703289224c vppinfra: fix mhash oob after unset and add tests
Fix out of buffer access after mhash_unset
Add format mhash pair functions
Add related mhash tests, similar to hash ones

Type: fix
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: Idbefd7d32c4cd16b55d84ad4006c38251b4e2c33
2024-05-14 07:37:50 +00:00
Tom Jones 2f5d094ddd dpdk: Only prealloc huge pages on Linux
Type: improvement
Change-Id: I4d9c0f96d81c8b510086a54990b3fcd3d5fdb695
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-05-14 07:34:25 +00:00
Tom Jones 16cc51b88a netmap: Reinstate and update netmap plugin
Thet netmap plugin was moved to depreciated in commit 998b8fe.

On FreeBSD netmap offers a natively supported kernel interface for
userspace networking and enables VPP without the use of DPDK.

Reinstate the netmap plugin and adapt it to the newer plugin interface.

Type: improvement
Change-Id: I113daa33a490f04cbb29909f9789fa66284ac80e
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-05-14 07:15:12 +00:00
Matus Fabian 2516b1ac73 http: fix user agent in request
App name is used in HTTP request User-Agent header.

Type: fix

Change-Id: Ib761e8a8e793e04e8d77141cc8c0f8514ed0e547
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-05-13 15:06:26 +00:00
Vladimir Zhigulin 05c625f1f6 vlib: avoid pci scan without registrations
Type: improvement
Signed-off-by: Vladimir Zhigulin <scripath96@gmail.com>
Change-Id: Id1d78a36cec10a01fbf266b016ba364519e5cb66
2024-05-13 15:03:18 +00:00
Alok Mishra 5233ee29cc dev: fix mac address dump in trace output
"port->attr.hw_addr" is set during the port initialization. It won't be
updated if the mac address of the port is changed via the vpp command
line.
Use "port->primary_hw_addr" to dump the updated mac address correclty.

Type: fix
Fixes: 38c619115b

Change-Id: I6c99fcfdfae67efb3606e17f36781c56716ff7ea
Signed-off-by: Alok Mishra <almishra@marvell.com>
2024-05-13 14:59:38 +00:00
Guillaume Solignac 9e45a5732b wireguard: use clib helpers for endianness
In some cases, the Linux helpers for endianness conversion are not
present. We use clib helpers to fix this.

Type: fix

Signed-off-by: Guillaume Solignac <gsoligna@cisco.com>
Change-Id: I4d21fb5edae6fa6413b10f298a84ff4b88bda5db
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-05-13 14:57:50 +00:00
Guillaume Solignac 9d5fed08ae nat: fix unitialized variable
Fixes an unitialized variable.

Type: fix
Change-Id: I636dc8433679606262d9a974c01f81d8721634f2
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Signed-off-by: Guillaume Solignac <gsoligna@cisco.com>
2024-05-13 14:57:50 +00:00