12444 Commits

Author SHA1 Message Date
Florin Coras
309f7aac17 session: move connects to first worker
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I035e3fdbb52eca010ad7b2c20ca2930cb1645978
2022-12-02 22:59:13 +00:00
Dave Wallace
06bbab0c45 quic: update to quicly v0.1.4
Type: improvement

Change-Id: I707399b8ba617a659476bfd7d793f04a1283e694
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-12-02 21:38:41 +00:00
Maros Ondrejicka
11a03e972e hs-test: add test suite features
Test suite now supports assertions which on fail stop test case run,
also it allows to create docker containers which are going to be
stopped automatically after the test run is finished.

Type: improvement
Signed-off-by: Maros Ondrejicka <maros.ondrejicka@pantheon.tech>
Change-Id: I2834709b1efd17b8182d36cc0404b986b4ed595d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2022-12-02 21:35:10 +00:00
Benoît Ganne
b01efc557b buffers: revert protect against bad thread indices
This change was introduced to workaround a bug in the NAT code, but
we should not woraround plugin bugs in infra.

Type: fix
Fixes: f8631ce7e8886136b4543a7926ffdf1bc760fb11

Change-Id: Id6ee281cf1fe8466b6522905fc2a176716e3d52f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2022-12-02 15:58:39 +01:00
Andrew Yourtchenko
ea0b890cbf vlib: clib_panic if sysconf() can't determine page size on startup
Account for the potential of sysconf() returning -1 if it can not
get the page size and make it a fatal error.

Coverity: 277313
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I8cae6a35ec2f745c37f1fe6557e5fa66720b4628
2022-12-02 13:49:11 +00:00
Klement Sekera
5163d59810 vnet: fix trace flag copying in icmp4
Type: fix
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
Change-Id: I0a947b74e40499327910c1ed10923f7a869039d6
2022-12-02 13:46:41 +00:00
Steven Luong
7eba44d1ec vhost: convert vhost device driver to a plugin
convert vhost device driver to a plugin as described in
https://jira.fd.io/browse/VPP-2065

Type: improvement

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Ibfe2f351bcaed36a04b136d082ae414145dd37b5
2022-12-02 13:43:11 +00:00
Ting Xu
a6d16b7130 avf: support generic flow
Support generic flow in native avf.

Enable necessary RSS hash function for generic flow. Extend some
structures and functions from for FDIR only to for both RSS and FDIR
flows. Modify virtual channel message to align with ice kernel driver.

Add functions to parse generic flow patterns. The parsing results will
be delivered to the kernel driver and create corresponding flow rules.

Type: feature
Signed-off-by: Ting Xu <ting.xu@intel.com>
Change-Id: I82ce102a21993f1bae8a8bf23e491d5e1c261f61
2022-12-02 13:42:28 +00:00
Gabriel Oginski
583d4c94dc wireguard: add atomic mutex
The initiate handshake process can be called a numbers times for each
peers, then the main VPP thread called by Wireguard starting to
allocate memory. This behaviour can lead to out of memory when VPP has
a lot of Wireguard tunnels concurrently.

This fix add mutex to send only once handshake initiate at time for
each peers.

Type: fix
Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Change-Id: I13b4b2d47021753926d42a38ccadb36a411c5b79
2022-12-01 06:47:07 +00:00
Florin Coras
4afdfb4a06 hsa: session rpc for echo client cli notifications
Also, use connected udp for builtin echo apps

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie24d7e97f4f27b67df9ceff3c268954485255c2d
2022-11-30 17:48:42 +00:00
Ole Troan
5010bbd3c4 stats: add boot time in stats segment
Write time into /sys/boottime on VPP start.
This allows a stateless control plane agent to validate if it's reconnecting to the same
VPP instance.

Type: improvement
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Iba7f334339c46142045e43da6efab11612e7b9c0
Signed-off-by: Ole Troan <ot@cisco.com>
2022-11-30 11:55:44 +00:00
Florin Coras
e1f2058b54 udp: refactor port allocation and sharing
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4f7314ddf95d26f1939bd3772d29d011fb4cea47
2022-11-29 23:51:59 +00:00
Florin Coras
bf27ca8021 session: transport endpt cleanup on owner thread
Maintain a single writer multiple readers usage model for transport
endpoints pool.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I8555700ed725971341f145ea97f031042a298e83
2022-11-29 23:51:59 +00:00
Artem Glazychev
b9e391e7b0 wireguard: compute checksum for outer ipv6 header
Type: fix

Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: I477e92712e441c91789afdf9be389d967acfa799
2022-11-29 14:15:00 +00:00
Andrew Yourtchenko
3f885f97f0 stats: fix the memory leak in stat_client.c
The issue can be reproduced by running "vpp_get_stats tightpoll"

The root cause is that the control flow discards the "result" struct
being prepared, along with pointer its allocated name.
This results in a memory leak.

Type: fix
Change-Id: Ibf884e92314f19b983a0159fc1257b3fa0110443
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2022-11-29 13:48:45 +00:00
Jieqiang Wang
6db2758611 rdma: fix for-loop initialization in scalar path
When n_rx_packets is less then 16(VEC256) or 8(VEC128), code execution
will fall into scalar path of processing packets. But with a wrong
initialization value for n_left set to zero, i in the for-loop will
equal to n_rx_packets. This leads to the bypass of required ip4 checksum
validation and byte count endianness conversion in scalar path.
Besides, refactor the code using while instead of for-loop to keep
consistency with VPP code style.

Type: fix
Fixes: bf93670c515d ("rdma: fix ipv4 checksum check in rdma-input node")

Signed-off-by: Lijian Zhang <lijian.zhang@arm.com>
Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
Change-Id: Ib4e8cb5202735f8b060c99caddf26035657551e1
2022-11-29 12:58:51 +00:00
Vratko Polak
520cde4067 ipsec: use correct reply message
Type: fix
Fixes: 815c6a4fbcbb636ce3b4dc98446ad205a30670a6
Ticket: VPP-2068

Change-Id: I42d678b0e28ac4d0b524dfc2dbd01bbad020cf24
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2022-11-29 10:49:36 +00:00
Matthew Smith
d1c75063da vapi: write enumflag types to vapi headers
Type: fix
Fixes: a51f9b3747

Some IPsec message type definitions were not being written to
ipsec.api.vapi.h. These include ipsec_sad_entry_add_del_v3 and
ipsec_sad_entry_add.

The cause appears to be that tunnel_flags, which is defined in
tunnel_types.api is a special case of enum called an enumflag. These do
not appear to have been handled in the code that generates the vapi
header files.

This patch adds processing of enumflag objects for vapi.

Change-Id: Ie506c4fcb5a07fe97a330ba11c252d1df98adfd9
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2022-11-28 21:34:00 +00:00
Piotr Bronowski
14bf6a8fb0 ipsec: remove redundant policy array in fast path spd
Fast path spd was explicitely storing array of policy id vectors.
This information was redundand, as this inofrmation is already stored
in bihash table. This additional array was affecting performance
when adding and removing fast path policies.
The other place that needed refactoring after removing this array  was
cli command showing fast path policies.

Type: feature

Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Change-Id: I78d45653f71539e7ba90ff5d2834451f83ead4be
2022-11-28 21:20:28 +00:00
Florin Coras
797562c860 udp: preallocate ports sparse vec map
Not ideal. The sparse vector used to map ports to next nodes assumes
only a few ports are ever used. When udp transport is enabled this does
not hold and, to make matters worse, ports are consumed in a random
order.

This can lead to a lot of slow updates to internal data structures
which in turn can slow udp connection allocations until all ports are
eventually consumed.

Consequently, reallocate sparse vector, preallocate all ports and have
them point to UDP_NO_NODE_SET. We could consider switching the sparse
vector to a preallocated vector but that would increase memory
consumption for vpp deployments that do not rely on host stack.

For reference, populating one of the v4 or v6 sparse vectors in reverse
order takes about 9.8s on a skylake cpu.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id795e1805d0d3ba54f56a152a9506a7a2a06ecbc
2022-11-28 19:31:59 +00:00
Maros Ondrejicka
7943c90b2e hs-test: document host stack test framework
Type: docs
Signed-off-by: Maros Ondrejicka <maros.ondrejicka@pantheon.tech>
Change-Id: I47d2794283a85a644448e60538f543644a0edfdc
2022-11-26 01:51:25 +00:00
Mohsin Kazmi
530c5ee1fe interface: remove the pending interrupt from deleting interface
Type: fix

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I3138f97519d216b89a9c46865271db1f9ddd53cd
2022-11-25 12:43:40 +00:00
Filip Tehlar
1a9dc75fe8 hs-test: auto register test actions
Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Icb5db6f69eda93181aba69b1f8676a73c0a4561b
2022-11-25 00:37:20 +00:00
Julian Klaiber
b79d09bbfa sr: srv6 path tracing api
Implements the API for SRv6 Path Tracing

Type: feature

Signed-off-by: Julian Klaiber <julian@klaiber.me>
Change-Id: Iefa7e512c8e1894595a9e3f5d42eab4160db1f28
2022-11-24 11:51:02 +00:00
Mohsin Kazmi
0036dcf6b2 gso: add gso documentation
Type: docs

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I8a96e6cc73b5f7ab3049fef37aafba43f3ef4d84
2022-11-23 19:28:36 +00:00
Timur Celik
20721177ec vpp-swan: Fix segfault for multiple addresses
In order to loop over the list of `vl_api_ip_address_details_t`,
increment the pointer by one instead of `i`.

Type: fix
Change-Id: I8554d1388d67bb95e029eddf444d383fb85ecac7
Signed-off-by: Timur Celik <mail@timurcelik.de>
2022-11-23 14:46:32 +00:00
Alexander Skorichenko
f0781829d5 linux-cp: fix FIB_ENTRY_FLAG_ATTACHED
Type: fix
   
Fib entries for attached routes when sourced from
FIB_SOURCE_API or FIB_SOURCE_CLI
get the FIB_ENTRY_FLAG_ATTACHED flag raised on the source.
Such a route added from linux-cp doesn't get this flag.
   
Fix this flag for linux-cp sources by passing it to the
fib entry's update/create function in lcp_router_route_add().

Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
Change-Id: I24278ef86886cfee8a14acb250fb6992a754cc3c
2022-11-23 00:33:24 +00:00
Maxime Peim
ed5f291a22 policer: adding documentation
Type: docs

Several kinds of policers are implemented in VPP.
However, they could differ from the RFCs it is
said they are from.

Additionally, the CLI command's help has been
updated with the current list of acceptable
parameters.

Signed-off-by: Maxime Peim <mpeim@cisco.com>
Change-Id: Ic9bf94e1094bea0fcc87ccaa882c2c5f88824041
2022-11-22 19:21:25 +00:00
Huawei LI
9a8d12d9b3 acl: fix set acl-plugin cli unformat free.
Type: fix

Signed-off-by: Huawei LI <lihuawei_zzu@163.com>
Change-Id: Icb5450f4bd0eaef7684eb7e3816d1d6051e889d7
2022-11-22 16:13:25 +00:00
Filip Tehlar
99a66f4b7f tests: add VCL Thru Host Stack TLS in interrupt mode
Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I7d5a9e9fedfc85bd7fad88f8eae1e46476ec0b7b
2022-11-21 17:51:54 +00:00
Xiaoming Jiang
e479eae29a ipsec: improve ipsec policy adding performance
Type: improvement
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: I91ba1ff4c1085f4aca60ca111cbbaf14a3b4d761
2022-11-21 15:33:21 +00:00
Steven Luong
dfd169816e tls: memory leak due to missing call to vnet_crypto_key_del
We add the crypto key to the vnet crypto library via vnet_crypto_key_add.
However, when the session is disconnected, we don't call
vnet_crypto_key_del and the memory is leaked in vnet_crypto library
as well as in pico tls key store.

It seems dispose crypto is the appropriate place to add
vnet_crypto_key_del.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: If6d1266baf686fefe5bb81330ce60b35c8ff574e
2022-11-18 14:23:08 -08:00
Neale Ranns
fe2d23f916 ipsec: Failure at the start of the batch should not invalidate the rest of the batch
Type: fix

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Icd1e43a5764496784c355c93066273435f16dd35
2022-11-18 08:09:29 +00:00
Florin Coras
0b466ad75d session: add transport main structure
Leave tp_vfts vector out for now.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic20a1671be9424280d0645f48ef2131a694cd16f
2022-11-15 16:21:16 +00:00
Maros Ondrejicka
568ef46866 crypto-ipsecmb: fix plugin crash in VirtualBox
Plugin checks just for AVX2 instruction set, while the v1.3 of IPsec
Multi-Buffer library checks for both AVX2 and BMI2 sets during init.
VirtualBox VM doesn't provide BMI2 by default to guest operating system.

Result is that VPP plugin decides to use AVX2 initialization and library
then doesn't do it. Since flush_job remains empty, the self-check fails
and with that the whole VPP crashes on start-up.

Type: fix
Signed-off-by: Maros Ondrejicka <maros.ondrejicka@pantheon.tech>
Change-Id: I6b661f2b9bbe6dd03b499c55c38a9b814e6d718a
2022-11-14 21:03:02 +00:00
Filip Tehlar
468d7876b9 hs-test: skip vcl reattach test
Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I594ecc347f367887890a3182e7c24028bf9a7f50
2022-11-14 20:59:01 +00:00
Huawei LI
abf81c3add build: fix lib install dir and add vat2 lib install when build rpm.
Type: fix

Signed-off-by: Huawei LI <lihuawei_zzu@163.com>
Change-Id: I5ac557756ff2b3de13ce328a27ffdd289ab3173e
2022-11-13 01:29:07 +00:00
Florin Coras
6af9330c63 http: use safe pool realloc
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I572017433a1ba0f8576522f02138928e303e10ab
2022-11-11 18:01:31 +00:00
Florin Coras
ec315bf7b4 srtp: use safe pool reallocs
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I15fea1f90640ea54cafe3ea929e871ec6e86fc67
2022-11-11 18:01:21 +00:00
Florin Coras
9688b3bda2 session: safe pools for cut-through sessions
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6dd400285ae475974c416f9b94e8a5b4b6257ca1
2022-11-11 01:01:50 +00:00
Florin Coras
e8d8d47dca session: reduce safe pool expand rate
Make sure they only double in size.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I18d5508c7f32836deb3b25943e8e3af39d0dbc33
2022-11-10 19:51:42 +00:00
Maros Ondrejicka
406f4840a8 misc: ignore clangd cache folder
Type: make
Signed-off-by: Maros Ondrejicka <maros.ondrejicka@pantheon.tech>
Change-Id: Id6ee2cbf3bf14083a470ef45ef1b6ff3ff8d03aa
2022-11-10 19:29:03 +00:00
luoyaozu
37b5cccb93 linux-cp: fix lcp_itf_pair_create()'s memory leak
need free args.error if args.rv < 0

Type: fix

Signed-off-by: luoyaozu <luoyaozu@foxmail.com>
Change-Id: I8ceebfc36f51798d8d1a8e4c41bec33d74344396
2022-11-10 18:48:09 +00:00
Filip Tehlar
b15a0000ff hs-test: add http client connect test
Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: If705d311065e128b4b6df7d8d80910e4be72d3e6
2022-11-10 18:35:31 +00:00
Filip Tehlar
ee4172ef0a http: support client connect
Type: feature

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I0738c0aefb41ab6c0ff717cfccd1df75ddb481fa
2022-11-10 18:35:31 +00:00
Filip Varga
ea6c878d5f nat: updating my maintainer email address
Type: fix

Signed-off-by: Filip Varga <filipvarga89@gmail.com>
Change-Id: I1f5069df2dc743ecd1269e947dd375cb1b84970f
2022-11-10 16:12:18 +00:00
Pratikshya Prasai
657bdf781a tests: initial asf framework refactoring for 'make test'
Type: refactor

Change-Id: I41455b759a5d302ad5c4247c13634c471e7d49a8
Signed-off-by: Pratikshya Prasai <pratikshyaprasai2112@gmail.com>
Signed-off-by: Saima Yunus <yunus.saima.234@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-11-09 21:22:33 -05:00
ChinmayaAgarwal
4dbd641136 sr: fix added for configuring vlan sub interface as iif interface in End.AD.Flow localsid
Type: fix
Signed-off-by: ChinmayaAgarwal <chinmaya.agarwal@hsc.com>
Change-Id: Ifad23978b98c5e05d86f6254bfb65baa0b380436
2022-11-09 15:56:48 +00:00
Andrew Yourtchenko
80c5fb76fc acl: verify that src and dst have sane and same address family
API refactoring moved the address-family tag from rule
level down to prefix level.

This necessarily warrants the check that they are the same.

Also, add a check that the address family is sane.

Change-Id: Ia63b688cc9e7c9e9cc773e89708d9e9f99185fb7
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2022-11-09 15:37:36 +00:00
Andrew Yourtchenko
90943e5a04 ip: fix unformat_ip_address forcing version to IP4 for some IP6 addresses
dd2f12ba made use of ip46_address_is_ip4() in order to determine whether
the address is ipv4 or ipv6 within unformat_ip_address - however, its
logic is correct only for some addresses. e.g. a valid IPv6 address of :: (unspecified)
will result in "true" result. This is probably not an issue for most
of the cases (the unspecified address is quite rare),
however if the unformat_ip_address is used as part of the
prefix parsing, the ::/0 is a fairly often utilized construct,
which gets parsed as 0.0.0.0

Solution: return the old logic, but use a temporary
variable to avoid overwriting the target memory on failure.

Type: fix
Fixes: dd2f12ba6ab952d9d66f4d9ba89ffde6309b1ff2.
Change-Id: I272f740dfdf07036cec68516e153f0701a53233d
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2022-11-09 13:07:20 +00:00