13453 Commits

Author SHA1 Message Date
hsandid
3e147f08ef misc: deprecate lawful-intercept
Type: refactor
Change-Id: Ifd7f5b351401cdcaaaf57fefc5dbbfdaf235054e
Signed-off-by: hsandid <halsandi@cisco.com>
2024-03-29 13:31:50 +00:00
Mohammed Hawari
dcb5eb5a18 acl: rework headers to enable out-of-tree usage
Change-Id: I1f8adf1f5650ab6c04e03c95d7a8d0bfa39b5f2d
Type: improvement
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2024-03-28 16:56:32 +00:00
Florin Coras
7c2a3357f3 tls: init session for accepted ctx
Make sure session is marked as invalid.

Type: improvement

Change-Id: I1c861645de95ef15a24acd4fe6dd5364a55b4fb8
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-03-26 19:48:33 -07:00
Florin Coras
e8ea6be8df tcp: avoid fr segments less than mss if possible
Type: improvement

Change-Id: I958e059384db3c13a29f64be96877f57617bbae2
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-03-26 17:24:07 +00:00
Tom Jones
4941afb4f9 tests: Add support for getting corefile patterns on FreeBSD
Type: improvement
Change-Id: I960edc05a9a77eb55f67cb1ec01d2b3122298ef8
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:15:02 +00:00
Tom Jones
e49e75a4b5 tests: Add platform handling for FreeBSD
FreeBSD doesn't have an easy mechanism to discover CPU features
currently. For tests declare we don't support anything we are asked
about.

Add the FreeBSD spelling of amd64 while we are here.

Type: improvement
Change-Id: I3eb5db856ee5cbc71250e47eee619e2f620de33a
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:14:29 +00:00
Tom Jones
ebe3a11ca7 tests: Add missing struct import
Type: fix
Change-Id: I957877d7a82dea437c072e493561894f11321aaf
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:14:05 +00:00
Tom Jones
853cc9f2ad tests: Use errno value rather than a specific int
For portability we use errno defines rather than explicit int values
when checking for errors.

Type: improvement
Change-Id: Ib5fc1db357da150d008d5a11bef5dbc7ec354cfb
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:13:34 +00:00
Tom Jones
b3ee84d0bb tests: Add a socket timeout
On FreeBSD a races seems to occur between the states socket connecting
and VPP accepting the connection and calling getpeername. The recv_fd
call here will fail with no fds before the VPP process has time to
handle the connection.

Introducing a socket timeout removes this failure on FreeBSD and allows
the test suite to run. Add a timeout on all platforms to try to avoid
this race everywhere.

Type: improvement
Change-Id: I96f77f924a9491222bc213b534cb17001d081f3f
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:12:48 +00:00
Tom Jones
26eec75f2b build: Detect number of CPUs for build processes on FreeBSD
Type: improvement
Change-Id: Ia3a00266f47f0c3e567efa143ef08bf4e8cffe35
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:09:39 +00:00
Tom Jones
b10561bbec papi: Use CMSG_SPACE for sizing ancillary buffer space
CMSG_LEN provides the length required to store an ancillary item, but it
does not consider padding. RFC 3542 requires portable applications to
use CMSG_SPACE(), this is documented in the python API:

https://docs.python.org/3/library/socket.html#socket.CMSG_LEN

Type: improvement
Change-Id: I0eab470585f2f39bea38639db95d6b0e047d2cff
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:09:29 +00:00
Tom Jones
dfd426c2c8 nat: Include platform specific headers on FreeBSD
Type: improvement
Change-Id: I43f59037181ec6b76499e8ee1d82c04670119dc9
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-26 15:08:49 +00:00
luoyaozu
4f30bc7457 vrrp: fix vrrp_garp_or_na_send()'s memory leak
need free bi after send packets

Type: fix

Signed-off-by: luoyaozu <luoyaozu@foxmail.com>
Change-Id: I98d03820366c3d106df212c4eb353ec6a228e20e
2024-03-26 14:25:39 +00:00
Florin Coras
8ae63db020 vcl: add api to retrieve num bytes for tx
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iaa1b026e2baea1c03f8c75e7d6879d0ff6d379d6
2024-03-25 18:53:05 +00:00
Florin Coras
a8d266a7a4 tls: pass session state to engine on client init
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ibe218a922ab656b8362e3c085193cb848783c255
2024-03-24 00:03:49 +00:00
Dmitry Valter
5f22f7d11c fib: fix vectorized impl buffer typo
Fix copy-paste typo with an incorrect index.

Type: fix
Signed-off-by: Dmitry Valter <d-valter@yandex-team.com>
Change-Id: I463e6f016df9cd24e96defcd30c1b442b8809416
2024-03-23 12:13:28 +00:00
Fan Zhang
a4df00f651 ipsec: esp_decrypt code clean up
Type: improvement

Change-Id: Icac31a8a3da71334e2b877f3b8e5d5a7cc5e76b8
Signed-off-by: Fan Zhang <fanzhang.oss@gmail.com>
2024-03-22 14:30:40 +00:00
Dmitry Valter
b300180082 dpdk-cryptodev: fix coverity issues
Copy v23.10-rc0-154-gfeda2ff64 fix to the unbatched path

Type: fix
Signed-off-by: Dmitry Valter <d-valter@yandex-team.com>
Change-Id: I2f58ed9a39439b22918946f328f96e676c68add9
2024-03-22 13:40:47 +00:00
Maxime Peim
e119586138 mss_clamp: fix next layer in ipv6
Type: fix
Change-Id: I06d56e6d4be2e728e13053a66273a71656ac14c4
Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-03-22 10:15:55 +00:00
Florin Coras
5bd96b7733 session: fix workers race to allocate lookup table
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I60600452c91184da571d4630bf2f0d9c24a3e85e
2024-03-21 18:01:32 +00:00
Arthur de Kerhor
2f4586d9b3 ip: add support for buffer offload metadata in ip midchain
The offload should be handled by gso node or by the NIC
if the latter has the relevant capabilities. But ip midchain
is missing the support for buffer offload metadata in case
of GSO packet.

This patch adds the relevant support to add the buffer metadata
if the packet is GSO/IPIP to be handled accordingly.

Type: improvement

Change-Id: I17f5d71bf4c5f43a85ca3f2fbebfa1426b42ef69
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2024-03-21 14:38:49 +00:00
Fan Zhang
b8cb22318c ipsec: remove unused parameter for esp_add_footer_and_icv
Type: improvement

Change-Id: Ib6c4e6bc42dd63cb2fdb2dfa7e94baa709e7185b
Signed-off-by: Fan Zhang <fanzhang.oss@gmail.com>
2024-03-21 13:34:18 +00:00
Florin Coras
e565902654 tls: avoid app session preallocation
Since async rx event infra decouples notification event generation from
delivery we no longer run the risk of having tls realloc session pools
while session layer still holds a pointer to the accepted/connected tcp
session.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1bb429a058707aba1d4f32ea33615a2367e66969
2024-03-20 20:07:05 +00:00
Tom Jones
40c95f50ba vppinfra: Define EBADFD on FreeBSD
Type: improvement
Change-Id: I303a8a7333d44f6eab902d4d61023cfa96760dd2
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-20 16:44:20 +00:00
Tom Jones
3076c69a9e vcl: Only build vcl_ldpreload on Linux
vcl_ldpreload requires some additional porting for FreeBSD, until that
can be completed only build on Linux.

Type: improvement
Change-Id: I9b0942114252a0c6241640d2e454861c2b5d4304
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-19 15:21:05 +00:00
Florin Coras
ac60efd523 tls: handle attepts to renegotiate hs
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I549d0c8715e5c06bfc22be26ca1dc78ec3c29a61
2024-03-18 19:20:38 +00:00
Stanislav Zaikin
dc4d21e9ce vapi: uds transport support
introduce ability to connect over unix socket instead of shared memory

Type: improvement

Change-Id: Id9042c74e33ad4e418896c4d7ae48bb9106195c9
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-03-18 17:30:07 +00:00
Damjan Marion
3eb6cbec50 vppinfra: os agnostic api for getting CPU information
Avoid direct sysfs reads when possible...

Type: improvement
Change-Id: I2b84cd18f3da47925d068951f24b79b5b6e20bb1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-03-18 16:01:35 +00:00
Damjan Marion
8799bf6ca6 build: add option to specify supported OS list for plugin
Type: improvement
Change-Id: I0d6f11d5ece19c5e0e00dfdadc9d4c09274ae8e1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-03-18 16:01:25 +00:00
Klement Sekera
99c317a606 ip: reassembly - return correct value
If already enabled, return 0 to indicate success.

Type: fix
Change-Id: I4a182e14df9b05698ad93d596a97c46a020fd54b
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-03-15 19:05:18 +00:00
Tom Jones
8942e07332 misc: Add platform specific header on FreeBSD
Type: improvement
Change-Id: Ia23414e87d64567d5124b8297315ed7a426c3651
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-03-15 17:48:08 +00:00
Florin Coras
39e7f2e650 vcl: fix bitfield truncation with clang16
Reported by phlax while building Envoy with clang16

error: implicit truncation from 'int' to a one-bit wide bit-field
changes value from 1 to -1
[-Werror,-Wsingle-bit-bitfield-constant-conversion]

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ib1b731780cf27a9498299f0424a06000dc67e81e
2024-03-13 17:06:32 +00:00
Andrew Yourtchenko
e574736322 misc: fix the static vppctl build
Change I58e1ae1c91f4a62e80eaf4e16e9932d8bab17c74 has introduced a reference to config.h,
which is not there in a case of building a static standalone vppctl.

Solution: add a variable STATIC_VPPCTL which, when defined, avoids including
the missing include file. Thanks a lot to Damjan for the suggestion.

Type: fix
Change-Id: I133235ba07e5c2e0d5669be9c2292cab0fdf436f
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-03-13 13:39:22 +01:00
Klement Sekera
e45fac02fd papi: use correct size for fixed length strings
This is required for correct packing of unions.

Type: fix
Change-Id: I92d04b1bbcb3fc3fe06474d8f2c59ed3502e6bd6
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-03-13 07:57:44 +00:00
Klement Sekera
ceed1e3b81 tests: use proper unit test skip instead of prints
Using unittest skip instead of print unclutters display by not printing
skip messages when not applicable, e.g. when somebody runs tests which
are unrelated to netns tests, e.g. with FILTER=vapi.

Type: fix
Fixes: e416893a59
Change-Id: Ie09e213249aa47da7e4ff484c3d072fbce3c2001
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-03-12 19:33:12 +00:00
Damjan Marion
c3148b1be8 misc: remove GNU Indent directives
Type: refactor
Change-Id: I5235bf3e9aff58af6ba2c14e8c6529c4fc9ec86c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-03-12 19:29:56 +00:00
Dmitry Valter
e2ed599331 vpp: set asan default options
set asan default options in vppctl and vpp_get_stats

Type: improvement
Signed-off-by: Dmitry Valter <d-valter@yandex-team.com>
Change-Id: I58e1ae1c91f4a62e80eaf4e16e9932d8bab17c74
2024-03-12 16:52:01 +00:00
adrianvillin
28bd8f07d3 hs-test: experimental support for multiple test instances
- appending PID to interface and container names
- added a check for used IP addresses
- TestEnvoyProxyHttpTcp and TestTcpWithLoss are broken when running multiple instances

Type: test

Change-Id: Ib917079ec7cf851dee59ff9c67e74f48c7c5e3c6
Signed-off-by: adrianvillin <avillin@cisco.com>
2024-03-12 16:48:46 +00:00
Maxime Peim
7a2961523e urpf: fix uprf_update prototype
Type: fix
Change-Id: Idc325a096903dcdfad5157db2eb728f2e61ce974
Signed-off-by: Maxime Peim <mpeim@cisco.com>
2024-03-11 10:54:24 +01:00
Florin Coras
236534136d session: use no for ports in transport port allocator
Type: improvement

Change-Id: Ia1d8aaa3c51938cfa15dd09102471f52ebe67a3d
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-03-10 00:13:01 +00:00
Florin Coras
91bfe5b658 session: fix port alloc for fixed lcl port reuse
Type: fix

Change-Id: If30d1aa8aa752ae4bddde776832a3009ebc7e316
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-03-09 04:29:33 +00:00
Alexander Chernavin
4c7305f124 flowprobe: fix flush callbacks when multiple workers
IPFIX buffers are stored on a per worker thread basis. Currently, the
flush callbacks will flush only buffers stored for the main thread. And
buffers for worker threads will not be sent until their size reach the
path MTU configured for the exporter. So if traffic is constant, the
problem will unlikely to be visible. Buffers will be sent once they
reach the maximum size. However, if traffic stops at some point and
flush is triggered in order to make the plugin send all currently
buffered data, this will not happen. And collectors will not receive
that data. The plugin will keep the remaining data until traffic starts
again, the buffers reach the maximum size, and be sent.

With this fix, flush buffers for worker threads and for the main thread
when the flush callbacks are triggered.

This will allow to remove @tag_fixme_vpp_workers from the unit tests
that don't set timers. The tests that set timers will still be failing
for other multi-worker related problems.

Type: fix
Change-Id: I9a7d9cef8ddbec7ee68c79309e48e7bc0953d488
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
2024-03-07 21:18:03 +00:00
Andrew Yourtchenko
93d38823f9 misc: VPP 24.02 Release Notes
Type: docs
Change-Id: I4209b4edf387f2d7b88ecc338cca3b4901210ed2
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 455960759b5417c767ed331748c7ee76662ffd18)
2024-03-06 01:01:23 +00:00
Matthew Smith
205ed8f884 ip: force full reassembly before virtual
Type: improvement

The vnet buffer metadata for full IP reassembly and shallow virtual
reassembly overlaps. If you have full reassembly and virtual reassembly
enabled on the same interface and virtual reassembly happens to process
packets first, full reassembly will stomp on the metadata populated by
virtual reassembly.

Virtual reassembly gets enabled implicitly when NAT feature nodes
are enabled. Those NAT feature nodes rely on the virtual reassembly
metadata being populated correctly in order to find L4 proto & ports.
When NAT and IP full reassembly are both enabled on an interface, NAT
can drop fragmented packets because the virtual reassembly metadata
can be overwritten by full reassembly.

Ensure that full reassembly runs before virtual reassembly. Add a
runs_before dependency to ensure that ip4-full-reassembly-feature
runs before ip4-sv-reassembly-feature.

There was a duplicate VNET_FEATURE_INIT() for
ip4-full-reassembly-feature. It seems to have been intended for enabling
ip4-full-reassembly-custom as a feature node, but its contents are
identical to the earlier VNET_FEATURE_INIT() for
ip4-full-reassembly-feature. Removed the duplicate.

Change-Id: Ie600b854d4ceb90a7cb736810140d410b8f72447
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2024-03-05 23:31:40 +00:00
Georgy Borodin
904459ff32 dpdk: correct waiting times
When link state interval is 3 and stats interval is 10, updates
for stats will be made every 12 seconds (next number after 10,
that divisible by 3). And if you get counters every 30 secs, you
will get ideal "saw"-line instead of real smooth chart.

This commit makes smooth line on stats intervals that are divisors
of the charts update interval (regardless of link state interval),
and makes it possible to configure them.

Type: fix
Fixes: cb9cadad578297ffd78fa8a33670bdf1ab669e7e
Change-Id: Ia4350467be2b0ec0c1be37c7fda63f43b3330f44
Signed-off-by: Georgy Borodin <bor1-go@yandex-team.ru>
2024-03-05 18:53:01 +00:00
Vladislav Grishenko
29e916a07c vpp: fix stdin vs non-interactive command clash
In case of both stdin and non-interactive inputs are there
vppctl parses them all, causing mixed corrupted output:
  $ echo foo | vppctl sh bar
  show: unknown input `bar'
  unknown input `foo'

This is not desired, stdin should be ignored if there's a command
but still allow stdin commands - following cases are still equal:
  $ vppctl foo
  $ echo foo | vppctl

Type: fix
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: I98667391627150c98a57d49ae544e48ef3351f34
2024-03-05 18:51:37 +00:00
Monendra Singh Kushwaha
09c6cae8c8 octeon: add support for VF device
This patch adds support for VF and loopback device.

Type: feature

Change-Id: I1ea92f3a1161851957206300ab921c27290b0305
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-03-05 18:50:36 +00:00
Vladislav Grishenko
3026ffa091 vlib: fix initial stats time for the process nodes
Uninitialized stats time for new dynamic processes (like unix
cli) leads to invalid and too high clocks diff, breaking the
stats collecting.

  $ sudo vppctl sh runtime | grep unix
  unix-cli-new-session  any wait      0  0  30   2.72e3  0.00
  unix-cli-process-0      active     14  0  27  3.73e15  0.00
  unix-epoll-input       polling   6464  0   0   3.56e6  0.00
  unix-epoll-input       polling  68360  0   0   1.31e3  0.00

Type: fix
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: Ic70678b67a3fb3f78ed4a1a03077ae243ed5d7cd
2024-03-05 18:49:49 +00:00
Vladislav Grishenko
fb9d1ac843 vnet: fix format of deleted sw interfaces
As similar 535364e90459566b603661c3dbe360c72f59ad71 is
merged, printing possibly deleted interfaces by index
only in all the rest cases.

Type: improvement
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: I4fa58b382c0279ff893523ba0188fdb9b09e10af
2024-03-05 18:48:28 +00:00
Damjan Marion
7ad751ba53 vppinfra: SHA2-256 ARM ISA support
Change-Id: I0fcda3e7afaab037bd12d0079d6639c6cbe8647e
Type: improvement
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-03-04 14:07:25 +00:00