12971 Commits

Author SHA1 Message Date
Klement Sekera
d3e0d104ad tests: refactor extra_vpp_punt_config
Rename extra_vpp_punt_config to a more generic name extra_vpp_config to
better fit its purpose. It's fit for general use and already used that
way by quic and vcl tests anyway.

Type: refactor
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
Change-Id: Ib0a5789b0dbb3a8c3cae654dea4e32ac5e56dd41
2023-05-19 21:29:39 +00:00
Duncan Eastoe
cf214cc600 stats: fix memory leak in stat_segment_dump_r()
The built stat_segment_data_t is leaked if stat_segment_access_end()
returns false.

Type: fix
Signed-off-by: Duncan Eastoe <duncan@graphiant.com>
Change-Id: I70adabbe7947d3e8a798cdfb3eaa14c683dce9da
2023-05-19 21:17:37 +00:00
Benoît Ganne
e211ac4886 fib: fix load-balance and replicate dpos buckets overflow
load-balance and replicate dpos both store their number of buckets as
u16, which can overflow if too many paths are configured. For
load-balance it can happens quite quickly because of weights
normalization.

Type: fix

Change-Id: I0c78c39fc3d40626dfc58b49e7d99d71f9852b50
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2023-05-19 21:14:52 +00:00
Andrew Ying
168bb1d55e dpdk: fix compatibility with DPDK < 21.11
Signed-off-by: Andrew Ying <hi@andrewying.com>
Type: fix
Change-Id: I3c428c90146387ad9ce291c7f646d74f06952b40
2023-05-19 20:56:15 +00:00
Florin Coras
d35c71c2f1 tls: flag no app session on handshake failure
If openssl tls server handshake fails, track the fact that the context
does not have an app session.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I5f493059a3610067b59caffbbe441ce9e0868252
2023-05-19 20:46:06 +00:00
Daniel Ding
fc70a66456 dpdk: fix format device name using wrong index
When I setup vpp by netvsc driver, occurs the following crash:

(format_dpdk_device_name) assertion `(i) < vec_len (dm->devices)' fails

vnet[100166]: #6  0x00007f434d651f6a _clib_error + 0x2da
vnet[100166]: #7  0x00007f430b4bef64 format_dpdk_device_name + 0xf4
vnet[100166]: #8  0x00007f434d6555f3 do_percent + 0xee3
vnet[100166]: #9  0x00007f434d654359 va_format + 0xb9
vnet[100166]: #10 0x00007f434d7ac16e vlib_log + 0x3ce
vnet[100166]: #11 0x00007f430b49ebe3 dpdk_device_start + 0x193
vnet[100166]: #12 0x00007f430b4aa233 dpdk_interface_admin_up_down + 0x163
vnet[100166]: #13 0x00007f434d988fc8 vnet_sw_interface_set_flags_helper + 0x378
vnet[100166]: #14 0x00007f434d989338 vnet_sw_interface_set_flags + 0x48

This patch fix it by device_index as a index for devices vec, and not
dpdk port_id.

Type: fix
Change-Id: I84c46616d06117c9ae3b2c7d0473050f1b8ded5f
Signed-off-by: Daniel Ding <danieldin95@163.com>
2023-05-19 19:53:08 +00:00
Florin Coras
bc4d5b0ace vcl: set want deq flag earlier in epoll ctl mod
On epoll ctl mod, set want deq flag before checking if unhandled events
are needed.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id1491837c7156a66c21e0e45af60b04b1c18601c
2023-05-19 19:31:49 +00:00
Florin Coras
4817855115 vcl: always reset deq ntf flag in epoll evt handler
Reset deq notification flag even if session is no longer epolled.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4e9aed1849aa2817176f3a54ae41910df5e704a0
2023-05-19 19:31:30 +00:00
Mohsin Kazmi
7869985758 interface: add the transmit queue infrastructure document
Type: docs

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I57f27f8ec4be7f3d8dc3d13ff4ea6b1b21c3cf6b
2023-05-19 19:08:17 +00:00
Filip Tehlar
84fd6493b3 hsa: make http cli client thread safe
Type: fix

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I9e6fd29c0e09406e48215f06977b2d4678650669
2023-05-19 12:54:18 +02:00
Filip Tehlar
4810e5b483 hsa: detach app on unsuccessful listen
Type: fix

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Idba74f880a251dbeec2205ee41e16b40d4799b06
2023-05-16 22:07:03 +00:00
Florin Coras
7ff7274c6b vcl: avoid skipping last event in epoll lt
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic89256d16230593b61a7b3e29582444fb3f93e4d
2023-05-16 13:05:28 -07:00
Benoît Ganne
83e73709c3 ip_session_redirect: add session redirect plugin
This feature enables the use of the classifier and ip-in-out-acl nodes
to redirect matching sessions via arbitrary fib paths instead of relying
on additional VRFs.

Type: feature

Change-Id: Ia59d35481c2555aec96c806b62bf29671abb295a
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2023-05-16 13:29:04 +00:00
Xiaoming Jiang
5b55526da4 dpdk: fix format rx/tx burst function name failed
Type: fix
Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
Change-Id: I9971e69135e0652a36e4b4754774a43ea1d92e8b
2023-05-16 09:30:12 +00:00
Xiaoming Jiang
e10c524206 ethernet: fix adding p2p ethernet crash
Type: fix
Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
Change-Id: Ib0ca3379439d6ee23e696f8f0840e6ddf42430b8
2023-05-16 09:28:47 +00:00
Marvin Liu
754f79c36a memif: fix coverity warnings
Type: fix

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Change-Id: Ie3f390be16df81f6824344034377f9a6f4fa9f92
2023-05-16 09:28:07 +00:00
Benoît Ganne
00c37199d7 misc: make format_hexdump length u32
format_hexdump currently requires the length parameter to be uword
(64-bits) hence all callers must make sure to cast the length to uword.
Use u32 instead to benefit from C automatic integer promotion: any
length smaller or equal to u32 will be promoted to int fitting in u32).
Only callers using a length of u64 needs to downcast.
It also makes it similar to other variants.

Type: fix

Change-Id: I09b52fdde3970cec0be4150a29126ff63106c75b
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2023-05-16 09:27:41 +00:00
Yulong Pei
24d7e72aa5 flow: fix wrong to use ntohl function to u64 type variable
This caused that failed to create flow rule with rss types.

Type: fix

Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Change-Id: I77696286a32804cbe884075cb027eec19eb5c7cb
Signed-off-by: Yulong Pei <yulong.pei@intel.com>
2023-05-16 09:27:16 +00:00
Tianyu Li
c405f755e3 vppinfra: add aarch64 support for format_ucontext_pc
Add the missing AArch64 support for printing program counter.

Type: improvement
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: Idb63737ed72e10fa29fd61e1eab5af059e2b8e28
2023-05-16 09:26:04 +00:00
Florin Coras
4add3f4c8b hsi: interop with ip reassembly
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I8d3a1939870601297ecccf4cda6767510c2abfa5
2023-05-15 22:04:55 +00:00
Ting Xu
f34420ff11 packetforge: add option to show spec and mask only
In some cases with Generic FLow, it is only required to show the pattern
of spec and mask, but no need to add the flow. Therefore, add an option
in packetforge so that users can show spec and mask only.

Type: improvement

Signed-off-by: Ting Xu <ting.xu@intel.com>
Change-Id: I7b3040689eb82d0b58924712ee6fc9cfa0a42fa1
2023-05-15 20:20:12 +00:00
Florin Coras
9794326125 udp: improvements to connection format fn
Print fib-index, next node index and opaque.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id2ff265c9acffc75f8b04fb9f26c6d571fc2ef98
2023-05-15 17:54:49 +00:00
Florin Coras
639beb91f6 ip: allow overriding fib index in reass
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic28da52b9c8286f71e472ef6c3afc23d464f85b0
2023-05-15 17:11:43 +00:00
Steven Luong
e77af765e2 dpdk: Be wary of the return value from rte_eth_dev_socket_id
Prior to dpdk-22.11, VPP can count on rte_eth_dev_socket_id to return
numa node 0 if the device didn't set it. Ever since below patch is
committed in dpdk
https://patchwork.dpdk.org/project/dpdk/patch/20220929120512.480-1-olivier.matz@6wind.com/#152498
the aforementioned assumption is no longer true. If the device didn't
set the numa node, VPP gets -1 from the aforementioned API call. This
causes VPP to crash.

This fix is to set the numa node to 0 if the API returns -1, or SOCKET_ID_ANY

Type: fix

Change-Id: I2fde2870e5a3eb98473fe8d119fef594bfba9a8d
Signed-off-by: Steven Luong <sluong@cisco.com>
2023-05-15 04:58:40 +00:00
Florin Coras
4a0e08eb60 vcl: fix ldp ioctl FIONBIO handler
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ife5f72dc9587c9f6b8aa513cd039fa28bb22fca3
2023-05-12 23:59:38 +00:00
Chuhao Tang
cefb178aa4 gre: move to a plugin
Move GRE 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.

JIRA: VPP-2044

Type: improvement
Change-Id: I7f64cecd97538a7492e56a41558dab58281a9fa5
Signed-off-by: Chuhao Tang <nicotang@cisco.com>
2023-05-12 06:59:09 +00:00
Ole Troan
683bdb6743 vppapigen: support counters only .api
In some cases an .api file may contain only counter definitions.
If so do not generate the setup_msg functions.

Type: improvement
Change-Id: Idf89a7a5ab135428e9577726bc356acfd7c30113
Signed-off-by: Ole Troan <otroan@employees.org>
2023-05-11 22:04:46 +02:00
Dave Wallace
0b7200f7ee api: clean up error message
- remove non-inclusive language in message and improve
  clarity of the error message

Type: style

Change-Id: I3f4895d6a502c2583a8b6b3c325a3f30ced03f84
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-05-10 20:00:36 +00:00
Dave Wallace
0e8ec6468b rdma: bump version to 45.0
- Update rdma-core library to 45.0 to work with DPDK 23.03

Type: feature

Change-Id: I6bd54c509b93de905e1b0194dce414e4a6e11990
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-05-09 20:42:17 -04:00
Xinyao Cai
df6a00f581 dpdk: bump to DPDK 23.03
This patch bumps DPDK version from 22.11 to 23.03.

Type: feature

Signed-off-by: Xinyao Cai <xinyao.cai@intel.com>
Change-Id: I10203a6408ceb5a40fe392924130652b91ebc993
2023-05-09 21:29:30 +08:00
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