12841 Commits

Author SHA1 Message Date
Xinyao Cai
648006b3c0 dpdk: code preparation for bumping to DPDK 23.03
This patch prepares code for bumping DPDK version to 23.03, but the DPDK version of this patch keeps at 22.11 for compatibility.

the "no-dsa" parameter in DPDK configuration is removed, the "blacklist" parameter can be used to block the related DSA devices.

Type: feature

Signed-off-by: Xinyao Cai <xinyao.cai@intel.com>
Change-Id: I589afba165e85138437e731531414a033f64f8d3
2023-05-09 21:23:39 +08:00
Dave Wallace
4141ded3ec dpdk: correct build to include rdma driver
Type: fix

Change-Id: I23ef347adc97d7d806acf98c3dcdbe80f2a03441
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-05-04 13:46:46 +00:00
Florin Coras
c9fb987a9d session: cleanup ho lookup table on close
Make sure half-open table is cleaned up on close and cleanup of
half-open.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id7ad177f364d6395f7379dc927e449a40547510e
2023-05-04 11:57:27 +00:00
Alexander Kozyrev
6f83352822 rdma: bump to 43.0
Update rdma-core library to 43.0 to work with DPDK 22.11.

Type: feature
Change-Id: Iad8bb9c7745dd5bc5f8c0935a31362fd92447ff6
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
2023-05-01 20:53:51 +00:00
Florin Coras
89627e8c58 vcl: inherit connected flag on accepted cl sessions
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2d1976cb8061534a7e93d4dd2283abaf70a33f7c
2023-04-28 15:57:09 +00:00
Nathan Skrzypczak
51f1b26e85 session: update due to clib_socket refactoring
After the clib_socket_init syntax changed, the behavior of VCL
socket creation was broken. This patch introduces app_namespace_add_del_v4
to address the behavioral change.

Type: refactor

Change-Id: Ice016bdb372233fd3317f166d45625e086e9b4df
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2023-04-28 03:00:59 +00:00
Ondrej Fabry
9db32048de api: Mark old message versions as deprecated
This change is part of VPP API cleanup initiative.

Type: refactor
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Change-Id: I9f0f786b50aa77383b16e0f844c85f236f7aa8d0
2023-04-27 13:09:14 +00:00
Xinyao Cai
efcf1befc5 dpdk: bump to DPDK 22.11
This patch bumps DPDK version from 22.07 to 22.11.

Type: feature
Signed-off-by: Xinyao Cai <xinyao.cai@intel.com>
Change-Id: I82df2c0678e1cc1b3739a5b0677f0c4a4180a489
2023-04-27 10:31:36 +00:00
Dave Wallace
d0df24dc47 hs-test: add missing make target for .deps.ok
Type: make

Change-Id: I8983778b4c2f5123b27aeeb1fdc4721c8e9c9160
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-04-26 18:04:41 -04:00
Filip Tehlar
e08fdf316a hs-test: remove untagged images after build
Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I55731fa546df01ac4bd327b444ac1a5c2052bed1
2023-04-26 18:03:35 +02:00
Ole Troan
ad92743925 build: plugin disable vat2 test2 plugin build
A plugin can set "VAT_AUTO_TEST_ OFF" to disable building of the autogenerated

Type: improvement
Change-Id: I856fbfd83bbc5c7df0759e550b20ac75df77d9d7
Signed-off-by: Ole Troan <otroan@employees.org>
2023-04-26 10:30:41 +00:00
Ole Troan
816b5d613c ip: change icmp4 throttle
traceroute sends 3 packets rapidly that triggers and depends on ICMP error
generation. The current ICMP4 throttle setting at 1-e3 throttles the last
ICMP error and makes traceroute sit in a timeout.

Type: fix
Change-Id: Ie886303600ad0374dcb6ae311e949154727a93d2
Signed-off-by: Ole Troan <otroan@employees.org>
2023-04-26 01:51:30 +00:00
Alexander Skorichenko
61cdc09810 crypto-sw-scheduler: fix interrupt mode
Type: fix

Currently sw_scheduler runs interchangeably over queues of one selected
type either ENCRYPT or DECRYPT. Then switches the type for the next run.
This works fine in polling mode as missed frames get processed on the
next run. In interrupt mode if all of the workers miss a frame on the
first run the interrupt flag is lowered so the frame remains pending in
queues waiting for another crypto event to raise the interrupt.

With this fix force sw_scheduler in interrupt mode check the second half
of the queues if the first pass returned no results. This guarantees a
pending frame gets into processing before interrupt is reset.

Change-Id: I7e91d125702336eba72c6a3abaeabcae010d396a
Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
2023-04-25 18:02:43 +00:00
Gabriel Oginski
980f3fb2d3 vpp-swan: assign src/dst port in udp encap
This patch add in missing src/dst port assignment in SA for udp port
if encap.

Type: fix
Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Change-Id: I84219c016c5a32590aba0371c01ad8d44cbf4c5c
2023-04-25 15:50:05 +00:00
Klement Sekera
c7d50475ec tests: fix parallel runs skipping some tests
Fix corner case when a test would be skipped if it was not possible to
start it due to insufficient cpus available in the middle of the loop.

Type: fix
Change-Id: Ie4580685ff55688375d649d7009131d9fe1e4f33
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2023-04-25 15:46:42 +00:00
Klement Sekera
cffeca4f1e tests: fix test-help formatting
Type: improvement
Change-Id: Ib7703359b998456bff88caee88c2734c7724bc09
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2023-04-25 15:44:53 +00:00
Klement Sekera
08c50e3b7a tests: support multiple filter expressions
Support multiple comma-delimited filter expressions,
e.g. to run both bfd and ip4 tests, it's now possible to do:

make test TEST=bfd,ip4

Same goes for wildcards, e.g.:

make test TEST=bfd,..test_longest_prefix_match,..test_icmp_error

Type: improvement
Change-Id: I0cceaa443cb612dca955f301c7407959f9a71a6e
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2023-04-25 15:44:13 +00:00
Ondrej Fabry
39d7699c20 api: Mark old message versions as deprecated
This change is part of VPP API cleanup initiative.

Type: refactor
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Change-Id: I26d13a697c9b70a75555c04e925e9d6aaf7ed755
2023-04-25 15:27:41 +00:00
Maxime Peim
2eb8d1ae0c perfmon: fix perfmon start type argument
When trying to start perfmon with a bundle that has a unique type while
specifying that type as argument, the command fails
(e.g. perfmon start bundle branch-mispred type node).
This error occurs because the returned value of
unformat_perfmon_active_type is actually a perfmon_bundle_type_t, but
it was treated as a perfmon_bundle_type_flag_t by a test in the CLI
function.

However, this test is useless and thus can just be removed.

Type: fix
Signed-off-by: Maxime Peim <mpeim@cisco.com>
Change-Id: I5d8b9815871621e8ee7b935586f4cedbc0e7a53d
2023-04-25 15:21:25 +00:00
Marvin Liu
cada0c5075 memif: support dma option
Introduce async model into memif by utilizing new DMA API. Original
process is broken down to submission stage and completion stage. As
multiple submissions may in flight simultaneously, per thread data is
no longer safe, now replace thread data into each dma data structure.

As slave side already support zero copy mode, DMA option is only added
in master side.

Type: feature

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Change-Id: I084f253866f5127cdc73b9a08c8ce73b091488f3
2023-04-25 15:18:27 +00:00
Xinyao Cai
efad24a84d dpdk: code preparation for bumping to DPDK 22.11
This patch prepares code for bumping DPDK version to 22.11, but the DPDK version of this patch keeps at 22.07 for compatibility.

the "no-dsa" parameter in DPDK configuration is removed, the "blacklist" parameter can be used to block the related DSA devices.

Type: feature
Signed-off-by: Xinyao Cai <xinyao.cai@intel.com>
Change-Id: I08787c6584bba66383fc0a784963f33171196910
2023-04-25 15:13:22 +00:00
Koki Kiriyama
140ca0fa95 build: correct variable name
Type: fix
Signed-off-by: Koki Kiriyama <kiriyama.kk@gmail.com>
Change-Id: I47c4c91aa6f973bd93dca352f470642e90aa70e0
2023-04-25 15:12:23 +00:00
Filip Tehlar
dda1f6871e hs-test: adjust performace testing parameters
Apache ab sometimes fails during extensive performace testing.
This patch makes sure hs-test perf tests always pass.

Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I0921682f0f07df3af45b342b9a7ddfa1af037ceb
2023-04-24 18:32:44 +02:00
Filip Tehlar
25ef5d3fc4 tcp: remove unused code
Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Ib188f3331696dff6357a18f5bac5f1db3cefaeab
2023-04-21 15:29:17 +00:00
Jieqiang Wang
26c7605243 rdma: fix rx CQ mask to calculate right next_cqe_index
Set the mask of calculating the next cqe index to the corresponding CQ
size instead of rxq size.

Type: fix
Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
Change-Id: I67494f029967af64051f51452eba1fd699984cd9
2023-04-21 09:13:43 +00:00
Vratko Polak
2cebd4270d lb: improve formatting in lb_types.api
Type: style

Change-Id: I969bc72185d3675a35cf227c60bedca20e09fdf5
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2023-04-21 08:46:38 +00:00
Florin Coras
9f1ae220d0 session svm: fix mq cleanup
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I8519bcd76a0ade2f24b62bf69f6a103379639cb7
2023-04-20 22:33:08 +00:00
Matthew Smith
5b32d3a13b api: fix trace_plugin_msg_ids segv in trace dump
With 'api-trace { on }' in startup.conf, running 'api trace dump' in
vppctl was causing VPP to seg fault. vl_msg_print_trace() was calling
m->endian_handler() without checking whether its null.

Checking if its non-null prevents a crash, but the trace dump prints
the message IDs for trace_plugin_msg_ids in network byte order. There is
an auto-generated endian function for that message. Set it on the call
to vl_msg_api_config() for trace_plugin_msg_ids so the IDs will be
printed in host byte order in trace dump output.

Type: fix
Fixes: fe45f8f5

Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Change-Id: I0ab463985e9a983155feba13ac4eb99ab883ace6
2023-04-20 21:11:41 +00:00
Filip Tehlar
bc4dc16a5c tcp: fix tcp packet trace
Type: fix

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Id4ca9a749a343c55b24f6eb4b5eb0909a57e0c23
2023-04-20 17:43:23 +00:00
Xiaoming Jiang
1f7042506c session: fix app_listener memory leak if session listen failed
Type: fix
Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
Change-Id: Iaa3ad87d56163396476bcaaa34e52948b9032f4e
2023-04-19 15:38:03 +00:00
Vratko Polak
9339af358f lb: initialize lb_vip_add_args_t
Previously, .src_ip_sticky may have been left uninitialized.

Type: fix
Fixes: 613e6dc0bf928def5d337312d522e1a15df87b00

Change-Id: Ifd866d6322fe9ff723f92b7ab3fd77e720a3cfa4
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2023-04-19 12:38:15 +00:00
Ole Troan
f00cb43190 vpp: install version.h
To make out of tree plugins require a particular version, they need
access to the version they are built with. Install version.h.

Type: fix
Change-Id: I5916d0a16aed7e054ede452af956fee56cd078f0
Signed-off-by: Ole Troan <ot@cisco.com>
2023-04-18 20:18:24 +00:00
Filip Tehlar
5811356a40 hs-test: filter relevant data from perf tests output
Type: test
Change-Id: I90faed91639ce1792646531cfc0cac649d737f16
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2023-04-18 18:34:40 +00:00
Sivaprasad Tummala
206592bb73 vppinfra: Multiarch support for AMD EPYC processors
Type: feature

- Added multiarch support for AMD Zen architectures

Change-Id: I65d3fe94b6cc622ebecbe1ac803efa674e87c87a
Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
2023-04-18 12:12:05 +00:00
Damjan Marion
b1c5c3fc34 vppinfra: missing static_always_inline in crc32c.h
Change-Id: Ie7ee71af7dbbc23de3f413423070ea87fb36ed8c
Type: fix
Signed-off-by: Damjan Marion <damarion@cisco.com>
2023-04-18 02:35:26 +00:00
Damjan Marion
687823f017 vppinfra: SFENCE requires SSE2 to be enabled
Change-Id: I0469bb91107cf0acced3cd19820db8d3712701c0
Type: fix
Fixes: eaabe07
Signed-off-by: Damjan Marion <damarion@cisco.com>
2023-04-17 15:45:26 +00:00
Sivaprasad Tummala
6a1a832346 vppinfra: add AMD EPYC cpu family details
Type: feature

- Added support for AMD EPYC processor family

Change-Id: I60da87cca429117c209d240e5a5f3b4d9f4981d8
Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
2023-04-17 14:36:10 +00:00
Ole Troan
22ca0d03db stats: check if stats vector entry is empty
When a stats entry is removed it is marked empty.
The stats client did not check for that and returned an empty string.
This resulted in blank lines in vpp_get_stats. Fix by returning null instead
and checking value.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I08a39ba3ef4421bf275747a6300f97fe36791b50
2023-04-17 14:04:06 +00:00
Damjan Marion
003330c55a vppinfra: native poly1305 implementation
Type: feature
Signed-off-by: Damjan Marion <damarion@cisco.com>
Change-Id: Ic170464d7c63f243e7e676567d41d800647ebec3
2023-04-17 12:40:17 +00:00
Damjan Marion
98f7f0a873 build: add scalar (no-simd) march variant
for testing purposes, disabled by default

Type: improvement
Signed-off-by: Damjan Marion <damarion@cisco.com>
Change-Id: Id616e2b3b21ae0f0b44e2b55ecefd501afacc7f2
2023-04-17 10:54:34 +00:00
Damjan Marion
b42d27ad48 vppinfra: table based crc32c for targets without crc32c instructions
Type: improvement
Signed-off-by: Damjan Marion <damarion@cisco.com>
Change-Id: I45cef390c72f2102c8c3d94f49bed7d0e0e0d7b2
2023-04-17 10:54:14 +00:00
Damjan Marion
cbc0410d62 vppinfra: add format_hexdump_u{16,32,64}
Change-Id: I0eeccfc5739276d58a81a6552a043c6c105fe67a
Type: improvement
Signed-off-by: Damjan Marion <damarion@cisco.com>
2023-04-17 10:53:27 +00:00
Damjan Marion
4621966638 build: few more .gitignore entries
Change-Id: I833151c077bf054de6b09fff1180570e32a1ecaa
Type: improvement
Signed-off-by: Damjan Marion <damarion@cisco.com>
2023-04-17 10:53:08 +00:00
Adrian Pistol
8f78c935f8 linux-cp: Handle RTA_VIA routes.
RTA_VIA allows routes to have a next-hop in a different address family.
This commit makes linux-cp import those types of routes correctly,
instead of importing the routes without a gateway.

This uses rtnl_route_nh_get_gateway, which is available since libnl
3.4.0 (Oct. 9, 2017). Even Debian Stretch has it via backports.

Type: fix
Change-Id: I06297c700461ba7874eb8baf9355bd40990b3121
Signed-off-by: Adrian Pistol <vifino@posteo.net>
2023-04-14 21:12:12 +00:00
Vladislav Grishenko
b8a663c56d nat: distribute nat44-ed in2out sessions by rx vrf
Nat in2out sessions are distributing among workers by client
addresses. In case there's multiple client vrfs with very
similar client addresses (usually from rfc1918), session
distribution/load can be unfair just due similar hash.
Let's take dynamic client fib_index into account, it'll affect
external port range only, outside address picking has own
address-based hash therefore not affected.

Type: improvement
Change-Id: I56ab2e1ce8dd27f2b1f9e7f22839ccf7774bfb82
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
2023-04-13 08:04:22 +00:00
Ted Chen
407b1488d5 nat: fix the wrong unformat type
The unformat type for "%d" should be u32 or int.

Type: fix
Signed-off-by: Ted Chen <znscnchen@gmail.com>
Change-Id: I2483df6259ed8d3c7648c8db6345e5063ac8b57e
2023-04-13 08:04:12 +00:00
Daniel Béreš
d9df165038 nat: adding a new api nat44_ed_vrf_tables_v2_dump
Adding api nat44_ed_vrf_tables_v2_dump which may replace
nat44_ed_vrf_tables_dump in the future.
 - fixing endianess

Type: improvement

Signed-off-by: Daniel Béreš <daniel.beres@pantheon.tech>
Change-Id: I40d09ea3252589bdcb61db9f1629dacd87f69978
2023-04-13 08:03:59 +00:00
Florin Coras
6bec05b56d vlib dhcp: default to logging without elogs
Some components, like dhcp, log constantly changing strings which in
turn forces elog string table to grow unbound.

To avoid this, as a workaround, only turn on elog logging if requested.
Actual fix that adds configuration for logging subclasses should come in
a later patch.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie8b26251fb7115d866c2bd65353daa33cdab1ab6
2023-04-12 21:49:15 +00:00
Andrew Yourtchenko
feb77422a3 ip: punt socket - take the tags in Ethernet header into consideration
The punt socket code rewinds the current_data pointer by sizeof (ethernet_header_t),
which is incorrect if the header is tagged - resulting in truncated destination MAC
address. Use ethernet_buffer_header_size() instead, which takes tags into account.

Also add the unittest that verifies the issue and the fix.

Type: fix
Change-Id: I6352a174df144ca1e4230390c126f4b698724ebc
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2023-04-12 15:26:23 +00:00
Mohsin Kazmi
393a05f289 misc: change of address
Type: style

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ie02d068122ab8f2c6049754f28722d851ae9b3f1
2023-04-12 15:05:04 +00:00