13825 Commits

Author SHA1 Message Date
Denys Haryachyy
1b794cf1b6 linux-cp: populate mapping vif-sw_if_index only for default-ns
When custom netns is used we don't need to populate the mapping
ifindex->sw_if_index otherwise netlink events in default-ns can apply settings
to wrong interfaces. Most of the lcp functions however wasn't working for such
interfaces and neither it was fixed by this patch.

Type: fix
Change-Id: I74a8a4e332753f9a40fc291d489dfd7fc51cbef3
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
2024-06-25 18:49:05 +00:00
Damjan Marion
3eb91a5d62 dev: move bus code to bus/
Type: refactor
Change-Id: If3a195f1ea600bfd621717f333af1b1273ab0807
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-06-25 18:16:33 +00:00
Steven Luong
5677c8ac4b session: memory leak in mma rule table
When the rule table is allocated, the root node is allocated. But it
cannot be deleted by the add_del API, or the table is useless.

When the table is free, the root node is not free and there is memory
leak. Let's add pool_flush when the rule table is free.

Type: fix

Change-Id: I58c3e040cd101c7db501d99a373ad78d85321b8f
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-06-25 17:11:43 +00:00
Jeff Shaw
26574dcd4f ipsec: enable ipv6 udp checksum offload
RFC6935 section 5 states that, by default, the UDP checksum must be
computed when originating an IPv6 UDP packet. The default behavior
may be overridden when conditions defined by RFC6936 are satisfied.
However this implementation does not satisfy all the conditions so
the checksum must be computed.

After ESP encryption the packet is an IPv6 UDP packet so set the
l3_hdr_offset and l4_hdr_offset values, and set the UDP_CKSUM
offload flag in the buffer.

Type: improvement

Co-authored-by: Cian Ferriter <cian.ferriter@intel.com>
Change-Id: I9f8c434c9fe9dbddd8890d5ae366984bfcf34067
Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
2024-06-25 15:37:28 +00:00
Hadi Rayan Al-Sandid
0eccf453c6 hs-test: return error if connecting to vpp fails
Type: fix

Fix case where no error code would be returned if vpp was launched,
but then exited due to invalid configuration.

Change-Id: I54d526629a2ee0206227615ffb6cb658779f93a0
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-06-25 14:59:36 +00:00
Niyaz Murshed
290dc7b63e crypto: Add prefetching for src and dst
Adding prefetching to openssl plugin improves both sync and async mode
ipsec performance by more than 5% on N1 ampere.

Sync mode (1420b)
core count            old (MPPS)              new (MPPS) 	%diff
    1c                  0.972                   1.01            3.90
    2c                  1.91                    2.02            5.87
    3c                  2.86                    3.04            6.03

Async mode (1420b)
core count            old (MPPS)              new (MPPS)        %diff
    1c			1.296                   1.37		5.70
    2c			2.58			2.753		6.70
    3c			3.74			3.9		4.27
    6c			7.52			7.832		4.14

Type: improvement
Change-Id: Ieef22c37e1330ac9f8b7e09a25c24162516b6c26
Signed-off-by: Niyaz Murshed <niyaz.murshed@arm.com>
2024-06-25 10:32:55 +00:00
Matus Fabian
ed9843826a hs-test: move nginx tests into one file
Type: test

Change-Id: Ie525636c6299a8306cba45e72f8ee6c9da6d6e4f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-24 19:05:38 +02:00
Adrian Villin
1fde999eec hs-test: added interrupt mode tests
Type: test

Change-Id: I327fa1a4ea23a3af3aa33e5260367426a11e7b4f
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-24 16:06:40 +00:00
Ole Troan
228e195e11 build: conditional dependency handling of depfile
Older distributions like Ubuntu 20.04 uses an old version
of cmake that does not handle absolute paths.
Leave .api dependency handling like before, i.e.
not handle interdependency between .api files for those older
builds.

Type: fix
Change-Id: I3f15a4506f6c95fca7a5b00893dc354cbed42a29
Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-24 10:39:43 +00:00
Vladislav Grishenko
f876b69537 ip: mark IP_ADDRESS_DUMP as mp-safe
Since main thread is the only one thread that can modify address
hash, avoid barriers while IP_ADDRESS_DUMP api calls.

Type: improvement
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: I9c35400bdef9fb08e81d859c8f2e3bdaa5468f4b
2024-06-24 01:26:55 +00:00
Dave Wallace
5eaa15dd0e hs-test: cache docker build in local filesystem
- when running in the CI, cache the docker build layers
  in the local filesystem to allow docker executor images
  to contain cached docker build layers

Type: test
Change-Id: Ie728a8370d3fb8144d01dff566aaa846ca6fd81b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-06-21 19:30:54 +00:00
Florin Coras
d8efd6e310 http_static: fix reply data leak
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ica78044b044a78714dd9947620250f13c63320fb
2024-06-20 14:59:43 -07:00
Maxime Peim
d5fa6cca0f ip6: fix ip6-michain trace function
Type: fix
Change-Id: I3a5c04b14bf1156376e2acece69f8256d00f261a
Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-06-20 14:41:29 +00:00
Ole Troan
cbf3888ca8 dpdk: xstats vecor stuck at 0 elements
Fixes: dd6fb60f1794fc08ec40598a67dc70f942c200d1
Type: fix
Change-Id: I2429715a954361ceea969191493c15bef21e2040
Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-19 23:35:25 +00:00
Adrian Villin
b4516bbccf hs-test: fix LDPreloadIperfVppTest
- fixed ldpreload path (debug build)

Type: test

Change-Id: Ib2ab58b32ffd87a78189464b599f7bbc4f05c175
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-19 16:14:12 +00:00
Matus Fabian
05fbc3569c http: fix app name formatting in template
app name is vector without null termination

Type: fix

Change-Id: Iaa50770c84f23a71165d76a63c29b76e90006ac6
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-19 15:30:31 +00:00
Ole Troan
ed61b20ad7 build: vppapigen dependency handling
Add dependency generation to the vppapigen compiler, so that
when an API file depends on another, that's registered as a dependency
with the build system.

Add a build dependency on vppapigen submodules so that all api files
are regenerated if the compiler itself changes.

Type: improvement
Change-Id: I392853754129778ef15532d1b04813786b943b44
Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-19 13:18:36 +02:00
Dmitry Valter
e95687b0d6 fib: fix ip drop path crashes
Do not mark drop paths as imported to avoid crashes on invalid table lookup.

```
vpp[8478]: /build/Vpp2310/source/src/vnet/fib/fib_table.c:35 (fib_table_get) assertion `! pool_is_free (ip4_main.fibs, _e)' fails
 #9  0x00007ff21785da1d in _clib_error () from /lib/x86_64-linux-gnu/libvppinfra.so.23.10
 #10 0x00007ff218087698 in fib_table_get (index=4294967295, proto=FIB_PROTOCOL_IP4) at /build/Vpp2310/source/src/vnet/fib/fib_table.c:35
 #11 0x00007ff218087a37 in fib_table_lookup_exact_match (fib_index=4294967295, prefix=0x7ff0eae0d354) at /build/Vpp2310/source/src/vnet/fib/fib_table.c:100
 #12 0x00007ff2180bc938 in fib_attached_export_import (fib_entry=0x7ff0eceac3e0, export_fib=4294967295) at /build/Vpp2310/source/src/vnet/fib/fib_attached_export.c:264
 #13 0x00007ff218098ade in fib_entry_post_flag_update_actions (fib_entry=0x7ff0eceac3e0, old_flags=FIB_ENTRY_FLAG_NONE, new_fib_index=4294967295) at /build/Vpp2310/source/src/vnet/fib/fib_entry.c:624
 #14 0x00007ff218098b90 in fib_entry_post_install_actions (fib_entry=0x7ff0eceac3e0, source=FIB_SOURCE_API, old_flags=FIB_ENTRY_FLAG_NONE) at /build/Vpp2310/source/src/vnet/fib/fib_entry.c:674
 #15 0x00007ff218098cce in fib_entry_create (fib_index=1, prefix=0x7ff0d3244d80, source=FIB_SOURCE_API, flags=FIB_ENTRY_FLAG_NONE, paths=0x7ff0eac15ab8) at /build/Vpp2310/source/src/vnet/fib/fib_entry.c:712
 #16 0x00007ff218088db4 in fib_table_entry_update (fib_index=1, prefix=0x7ff0d3244d80, source=FIB_SOURCE_API, flags=FIB_ENTRY_FLAG_NONE, paths=0x7ff0eac15ab8) at /build/Vpp2310/source/src/vnet/fib/fib_table.c:799
 #17 0x00007ff2180c026c in fib_api_route_add_del (is_add=1 '\001', is_multipath=0 '\000', fib_index=1, prefix=0x7ff0d3244d80, src=FIB_SOURCE_API, entry_flags=FIB_ENTRY_FLAG_NONE, rpaths=0x7ff0eac15ab8) at /build/Vpp2310/source/src/vnet/fib/fib_api.c:485
 #18 0x00007ff217d4b6dd in ip_route_add_del_t_handler (mp=0x7ff0eb08b998, stats_index=0x7ff0d3244dc8) at /build/Vpp2310/source/src/vnet/ip/ip_api.c:718
 #19 0x00007ff217d4b986 in vl_api_ip_route_add_del_t_handler (mp=0x7ff0eb08b998) at /build/Vpp2310/source/src/vnet/ip/ip_api.c:789
```

Type: fix
Fixes: 4b08632748727486e7ebfdcf4d992743595bc500
Signed-off-by: Dmitry Valter <d-valter@yandex-team.com>
Change-Id: I647899533771c35f44c9ecde517a30f111b36ad9
2024-06-19 00:50:49 +00:00
Ole Troan
dd6fb60f17 dpdk: expose xstats in stats segment
Expose DPDK xstats in the stat segment.
Represented as a 2D array. Thread by sw_if_index.
Each counter has the same name as the corresponding xstats counter,
under /if/<driver-name>/<xstats-name>

Type: improvement
Change-Id: Icd34b46e2b4d708f1c9a7063d6afd4ced3dfa4f5
Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-18 17:13:16 +00:00
Benoît Ganne
32dc913e6f vnet: move format_vl_api_address_union() from vpp to vnet
format_vl_api_address_union() is used by vnet, creating a linkage
dependency from vnet to vpp.

Type: fix

Change-Id: I298a90d521e51b7527ef140d66130062824e1d16
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-06-17 18:44:59 +00:00
Benoît Ganne
448f08b685 vppinfra: export os_exit and os_puts
os_exit() and os_puts() are not exported, preventing linkage with
libvppinfra if those are not defined.

Type: fix

Change-Id: I7e3b583147e1348f078afeac3f793fe150405009
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-06-17 15:36:28 +02:00
Florin Coras
1c30d2d8bc tcp: make syn-rcvd timeout configurable
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic89570315a5c3c00e0e89c5535929313916869eb
2024-06-14 23:27:49 +00:00
Dave Wallace
bee28afbb2 hs-test: output docker build command for ci console log
- clean up shellcheck warnings
- rename extras/hs-test/test script
- add -x attribute to compress script for consistancy

Type: test

Change-Id: I5d1a9d16eeaff18562461b1e445e32ac696266d3
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-06-14 20:14:59 +00:00
Dau Do
10dbb372cc vapi: Add option to dispatch with timeout
Type: improvement

Change-Id: I606efc90d9b1b8e2a2590a8b4e0021e2508642b2
Signed-off-by: Dau Do <daudo@yahoo.com>
2024-06-14 19:16:18 +00:00
Adrian Villin
4677d920c0 hs-test: separate infra from tests
- most functions and vars now start with a capital letter:
  needed to access them outside the package that declares
  them
- updated README.md
- very minor changes in MAKEFILE

Type: test

Change-Id: I4b5a194f08f09d59e372e57da6451fbb5a1de4da
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-14 18:10:26 +00:00
Damjan Marion
2aa0f0da5d crypto-native: fix CPU detection for SHA2 code
Type: fix
Fixes: 9f2799f
Change-Id: Ib2b2df17507c536350ec92eeb1eea58f3a240c76
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-06-14 08:40:20 +00:00
Dau Do
75e8ffb261 vnet: export header files to build the plugins
Type: improvement

Change-Id: I86e8616a134829a66a9c9bb4313bbf95f835e7c0
Signed-off-by: Dau Do <daudo@yahoo.com>
2024-06-13 18:52:52 +00:00
Adrian Villin
7d1e4a4ddb hs-test: added cleanup target
- Also added checkstyle-go and fixstyle-go to 'make help'

Type: make

Change-Id: I5402efa02bbbc54a20db8f54b0488c58a62ffaa1
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-13 16:28:56 +00:00
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
Adrian Villin
eaa7d91ad7 hs-test: improved suite teardown and replaced PIDs with PPIDs
- Fixed an issue where containers wouldn't stop and get removed when
  a test run is interrupted
- Replaced PIDs with Ginkgo process indexes + PPIDs
- Fixed CPU allocation for envoy and nginx-ldp containers
- All container logs should now get saved properly

Type: test

Change-Id: I4c737c1d326390494c0dda1ec6d3fc1f04f51663
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-12 23:38:25 +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
Adrian Villin
56387407c3 hs-test: added go style targets
- added checkstyle-go and fixstyle-go
- comments in stats_fs.go were missing a space

Type: make

Change-Id: I520acab5ff61eaf9d0ccfd9425bdc41f74559198
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-12 16:08:49 +00: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
Adrian Villin
681ff3a02a hs-test: added filenames to test names
- It is now possible to only run tests that are in a certain file

Type: test

Change-Id: I41665dd2bc0942c283be36a5af3e560fd65e9d03
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-06-10 16:42:38 +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
Matus Fabian
2d1f0e6c73 hs-test: HTTP download benchmarking
HttpTpsTest now use Gomega's gmeasure package and go internal http
client. With gmeasure you can create "Experiments" which can produce
reports to show the statistical distribution of measurement.
Potentially experiments can also be cached and used to identify
regression in performance.

Type: test

Change-Id: Id049fb0344d8ebed71b15e706b053b5c2a18e0de
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-06-10 15:28:53 +00:00
Renato Botelho do Couto
8a424338ad build: Fix makefile syntax
Type: fix

Change-Id: I29f679ffbc14242d9e7e5284b698b86a70fbbef6
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-06-10 13:14:04 +00:00
Renato Botelho do Couto
893dacae3f build: Use $(MAKE) instead of direct call to make
No functional changes, just make it to respect original make binary
name used to start building

Type: improvement

Change-Id: Ic8568237fbb39c6a0d3b7405a9670e9410aeb752
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-06-10 13:13:31 +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
Monendra Singh Kushwaha
81f0f16b09 build: bump octeon-roc version to 0.5
This patch enables vf device promiscuous mode feature in
octeon-roc except SDP vf and LBK devices.

Type: feature

Change-Id: I221f64ba0bb768191e2228dab132166a8a3326c3
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-06-10 14:16:58 +05:30