13949 Commits

Author SHA1 Message Date
Matus Fabian
a67da25008 http_static: web app doc update
Type: docs
Change-Id: I0d3395c1de51c086b2ac68cd92c97efe36665b62
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-01 22:13:46 +00:00
Aritra Basu
119cbf2651 vcl: handle EINTR in epoll_wait calls
Type: improvement

Change-Id: I71a987b8871988d38e4a752c7f93f52a27bce6a3
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-08-01 22:06:37 +00:00
Aritra Basu
80a16d134e tcp: add establish timer pops to stats
Type: improvement

Change-Id: Ibc1e391356cef415b992b65c00f3d365fc97386d
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-08-01 11:46:59 -07:00
Matus Fabian
519983b44d misc: remove deprecated builtinurl plugin
Plugin code is incorporated in http_static plugin for longer time.

Type: refactor
Change-Id: Ib74adb2a79d3ee715bbc994d77bc7718faf7184f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-08-01 16:02:14 +02:00
Ole Troan
01ea72bc49 ip6: set buffer->error in ip6_input_check
When packets are dropped and this field is not set, then
trace shows the packet being dropped by the null-node instead
of the correct reason.

Type: fix
Change-Id: I3ed9186285d0db7fa6a1e5b739a28ee625968f30
Signed-off-by: Ole Troan <otroan@employees.org>
2024-07-31 13:40:11 +00:00
Ole Troan
f726ebd174 npt66: replace clib_warnings() with error counters
Replace clib_warnings() in the forwarding path with
error counters.

Change-Id: Ie679d940f056eeddeb8a032c77fe9c2195490cfc
Signed-off-by: Ole Troan <otroan@employees.org>
Type: fix
Signed-off-by: Ole Troan <otroan@employees.org>
2024-07-31 12:24:11 +02:00
Aritra Basu
4a65e0166b tcp: fix typo in show tcp config CLI command
Type: fix

Change-Id: I844539af3a283c8ec12498dbfd4857b8b533d7c1
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-07-29 10:59:12 -07:00
Matus Fabian
a330856f73 hs-test: disable color output only in CI
Type: test
Change-Id: I2ca7c8e714996b1badb59253b9b856fc623ab0c3
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-29 16:02:13 +00:00
Matus Fabian
d464338c19 hs-test: save VPP logs with timestamps
Type: test

Change-Id: Ia76d23a8d57dfb5570eaf44a9fdb3eabeba01a4d
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-29 16:01:24 +00:00
Matus Fabian
ba9ea13e26 http: client code improvement
Client app can sends request target, custom header and body to
HTTP layer. In response it receives all bytes as received from
transport, aditionally we provide offset and length of headers
and body.
In addtion client app is now able to receive response with all
status codes and Host header field is set in request at protocol
layer.

Type: improvement

Change-Id: I8c8e2c8f99cdf500126b7c2c722aebc254aa0d9f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-29 14:21:12 +02:00
Aritra Basu
dd4356dc97 tcp: CLI command to print tcp_cfg
Type: improvement

Change-Id: Ie8f6ddc96fd3f5d44827ace834f8f6baa330d37d
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-07-27 00:40:57 +00:00
Aritra Basu
e30f7122b7 tcp: improve tcp listener CLI
Type: improvement

Change-Id: I11dc43bdf65cecfa5c48ac734a4727b377023c80
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-07-26 15:13:27 -07:00
Adrian Villin
6a8f26c3ab hs-test: fix docker warning message
Type: test

Change-Id: I156b6d9e0759bc7d324ac7d618a195ee5803ca75
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-25 13:17:31 +02:00
Adrian Villin
007be4fa7f hs-test: check container state after startup
- tests will now fail if a container exits right after startup
- fixed MirroringTest (still broken with multiple workers)

Type: test

Change-Id: I47b51c2bcf53f535aa2d06c2f5b09a9559631117
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-24 23:41:04 +00:00
Adrian Villin
d9da4eeb79 hs-test: fix logs once again
- "/dev/null" and "tail: ..." messages should now be
  removed properly

Type: test

Change-Id: I4aa1f1a1cab17dab73f727e40c80a44d6e753bd5
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-24 21:16:21 +00:00
Matus Fabian
f95c4d81fc prom: test_prom fix
Type: test
Change-Id: I022a3435429976590b8e8e2e1abe924188d1c3f9
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-24 21:14:55 +00:00
Adrian Villin
2a2c653169 hs-test: update envoy
- v1.21 -> 1.30

Type: test

Change-Id: Ib79a4addc0a93089c41c13abffc3e8f0af4c0d91
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-24 15:54:02 +00:00
Matus Fabian
c712de5a8e prom: mem leak test
Type: test
Change-Id: Ibca5680778c9e27eb7b1ddbdba52f870852452fe
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-24 15:38:46 +00:00
Matus Fabian
936c83db95 http_static: fix coverity warning
Type: fix

Change-Id: Ie4af8ec0c6089b5719899f3d0b670f8a2de7f8a2
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-24 10:16:47 +02:00
Steven Luong
5682ca8ef6 session: delete and add application namespace do not create the global session table
When an application namespace is added, we call session_table_is_alloced
to see if we need to allocate a new session table. That check returns true
even if we removed the session table.
The fix is when we delete an application's global session table,
we need to invalidate fib_index_to_table_index.

Fixed test_vcl test script to run two tests back to back.
The 1st test deletes the application namespace at the end.
The 2nd test adds the application namespace in the beginning.

Type: fix
Fixes: 67bae20b05cb46e5f6d19afeaf1f7a52a5309d59

Change-Id: I67f5cc1b726a07659597a9479df011717db08d0a
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-24 04:20:08 +00:00
Matus Fabian
5c4c1b63b9 prom: concurrent connections fix
Type: fix

Change-Id: I57814edb735e9dac916f2e01de95ccfb739ce655
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-23 20:37:29 +00:00
Matus Fabian
d086a3650e http: state machine fix
When client sends second request without waiting for response of the
first request http_ts_rx_callback should drop request (pipelining is
not supported) instead of invoking return to state machine which can
lead to erroneous state, e.g. reading random data from server app
fifo.

Added simple http static server url handler for testing to simulate
long running request processing, for now hardcoded delay 5 seconds.

Type: fix

Change-Id: Ied9f7e2e4ee64c982f045c0f7f99a2dc5d7a2108
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-23 20:37:16 +00:00
Matus Fabian
8ca6ce6fe1 http: return more than data from server app
Server app could return headers in front of body/data buffer.
Offers apis for building and serialization of headers section.
HTTP layer now only add Date, Server and Content-Lengths headers,
rest is up to app. Well known header names are predefined.

Type: improvement

Change-Id: If778bdfc9acf6b0d11a48f0a745a3a56c96c2436
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-23 15:22:34 +00:00
Florin Coras
1f870c9bdc vppinfra: get_mempolicy instead of move_pages for mem init
Use get_mempolicy instead of move_pages to detect numa nodes. Avoids
issues whereby move_pages could stall if another rt thread spin waits
instead of yielding the cpu.

Type: improvement

Signed-off-by: Tatsushi Kanemoto <t-kanemoto@fujitsu.com>
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I7db2073ed82bb0b1e707130d9bd8f54bea333840
2024-07-23 07:41:56 +00:00
Steven Luong
3ac2ac5324 ip: crash in ip4_sas_commonlen
ip4_sas_commonlen may be called with null a2 argument from
ip4_neighbor_advertise -> ip4_sas_by_sw_if_index.
If a1 or a2 is null, there is no common length, shortest mask
between a1 and a2, return 0 instead of crashing.

Type: fix

Change-Id: I307509ee7dedafac76d8877a1ef76ab8bbafef59
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-23 07:30:03 +00:00
Matus Fabian
e99d266612 hs-test: memory leak testing
add infra for memory leak testing

Type: test

Change-Id: I882e8dbb360597cdb82ad52682725f7d39b2df24
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-22 17:44:42 +00:00
Matus Fabian
7f163b682a misc: replace index() with strchr()
Type: improvement
Change-Id: I471e514ebef0b4c1f86067115b2ebe5a5517c6fb
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-22 17:07:02 +00:00
Matus Fabian
7561c45bcc vlib: add "save memory-trace" debug CLI
Save memory traces of the currently traced heap in JSON format to file
which can be used as machine-readable data for memory leak diagnose.

Type: improvement

Change-Id: I277f5be5838510e907c4dd7a8a4e9a883cb67bc3
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-22 15:50:22 +00:00
Matus Fabian
ef827b3efc vppinfra: expose raw memory traces
Add clib_mem_trace_dup which return copy of memory traces and
can be used to save memory trace in different formats.

Type: improvement

Change-Id: I731860cdc65e6c5255620a6778ce6c893a493b1d
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-07-22 15:50:22 +00:00
Steven Luong
e87a03f7a6 session: show session rules does not display ip6 entries
1. Adding an ip6 rule entry
session rule add proto tcp ee80::/10 0 ee80::/10 0 action 2

2. show session rules does not display the entry.
show session rules tcp

3. However, show session rules for a specific entry shows the entry
show session rules tcp ee80::/10 0 ee80::/10 0

Type: fix

Change-Id: I65c881665d3698a2a9452a186ed657eee0bf13e0
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-19 17:05:29 +00:00
Adrian Villin
09b19fe8a3 hs-test: fix docker log output when logs are empty
- removed "==> /dev/null <==" and "tail: cannot open..." lines
  when docker logs are empty

Type: test

Change-Id: Ia51f7aa41d2c6c04c0adcb82142abfd45fbe2728
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-19 14:08:19 +00:00
Fan Zhang
b753554e25 ipsec: fix integer overflow
Type: fix
Coverity issue: 394440

Change-Id: I915a088145ee1317a7c8746b517f4af50323aa11
Signed-off-by: Fan Zhang <fanzhang.oss@gmail.com>
2024-07-19 12:24:22 +00:00
Dave Wallace
6ce5d5bcbb pg: fix pcap packet type when writing pcap file
- fixes incorrect pcap packet type for packet
  generator interfaces configured in ip mode.
- corrects pcap file decode for pg output files
- fixes scapy versions > 2.4.3 which now appear to
  use the packet type in the pcap file header which
  had been ignored in earlier versions

Type: fix

Change-Id: Idb1e3f8fbc7ca938fb5d2aaa72365e333c0ea2e9
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-07-18 14:46:07 +00:00
Dave Wallace
0da0883453 tests: output raw packet data when decoding pcap files
Type: test

Change-Id: I4e945b2bd067466afdaa58a6f07a1ab2c567bc2b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-07-18 14:45:49 +00:00
Xiaoming Jiang
04da324260 vppinfra: fix cpu freq init error if cpu support aperfmperf
After linux-v4.15, 'cpu MHz' in /proc/cpuinfo is CPU
real frequency on x86 if cpu support aperfmperf flags

more see linux commit: 
7d5905dc14

Type: fix
Change-Id: Ib655a9a1c519104142120b343cd8ddbe0b6e50e6
Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
2024-07-18 08:46:14 +00:00
Klement Sekera
357291142b vnet: print Success for API errno 0 instead of UNKNOWN
Type: improvement
Change-Id: I8c5bfc82c1db1213eb43072853f8500ce1d2ee92
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-07-18 02:25:41 +00:00
Adrian Villin
2514001377 hs-test: use docker sdk
Type: test

Change-Id: I9d6b15ca6a9aac3343e10f480dec43c4c538f1b7
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-17 18:20:54 +02:00
Adrian Villin
b69ee00c34 hs-test: minor cpu pinning suite improvements
- added max cpu check for CI
- added a check for Ip4AddrAllocator: fixes a case where teardown panics
  if a test crashes before allocator gets initialized

Type: test

Change-Id: Ica12366cd79d77801964dfbdc8ee7c9969b4a9ce
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-17 16:10:29 +00:00
Adrian Villin
aedfd7ca3d hs-test: exit immediately if docker build fails
Type: test

Change-Id: I299d023ce59b931697352c54e4796ba0af2ab1af
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-07-17 16:07:32 +00:00
Niyaz Murshed
1d3faf0c57 vppinfra: Add macro for targeted prefetching
In Arm platform, targeted prefetching[1] is supported. Adding this in infra
to use it in future optimisation.

[1] https://developer.arm.com/documentation/101458/2404/Optimize/Prefetching-with---builtin-prefetch

Type: improvement
Change-Id: Id3e2a274628289707840a6b2ba4b83c5e4add60b
Signed-off-by: Niyaz Murshed <niyaz.murshed@arm.com>
2024-07-17 14:59:26 +00:00
Steven Luong
99213e0836 session: memory leak on rule tag
Type: fix

Change-Id: If07a6a420d467e6305f166ed250f84befe9f983d
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-17 07:29:32 +00:00
Steven Luong
d1aeac5b7f session: memory leaks on rule tag hash tables
Type: fix

Change-Id: Id8542ad74389eca4cc7903cd455f556743a5e0cf
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-16 15:35:42 -07:00
Florin Coras
3a2cf84fa5 tls: track app owner of transport session
Allow other apps to own transport sessions for tls.

Type: improvement

Change-Id: Ida04cef1dc49acb7117cbed8657e26890bf43d2a
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-07-16 15:50:30 +00:00
Steven Luong
2da273ace8 session: crash in session_rule_add_del if session is not enable
Invoking the API session_rule_add_del to add a rule causes VPP to crash
if session is not enable.

Type: fix

Change-Id: If8de83f1064bc60d20461e87889b7c3393ad2af1
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-15 21:11:00 +00:00
Steven Luong
67bae20b05 session: application namespace may reference a deleted vrf table
lock the vrf table when adding an application namespace and
unlock the vrf table when deleting an application namespace.

Free the session table when no more application namespace
uses it anymore to avoid memory leaks.

Type: fix

Change-Id: I10422c9a3b549bd4403962c925e29dd61a058eb0
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-07-15 20:57:35 +00:00
Klement Sekera
ca2f2e1ec9 tests: more options for decoding pcaps
Introduce "none", "all" and "failed" options for --decode-pcaps
parameter. Keep "failed" as default to be consistent with current
behaviour. Add missing documentation to test/Makefile and passthrough to
Makefile.

Rationale: running tshark binary takes about 100-150ms and if there are
thousands of pcap files, it takes minutes to decode them. This might not
be desirable if rerunning the tests repeatedly during development.

Type: improvement
Change-Id: Ie033521d51d18b9d499b9bc40fe6eff21c94622d
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-07-15 18:58:07 +00:00
Alok Mishra
9bff049b84 octeon: fix link down issue
An issue is noticed when the link state of the ethernet interface is
toggled to down and again brought up. The link status shows "up" in the
"show interface", but shows "down" in "show hardware-interface".
This issue does not occur when the link is brought up for the first
time, but only manifests when the interface is brought down and up again.

This happens because the device status and VNET_HW_INTERFACE_FLAG_LINK_UP
aren't correctly updated during the port stop, preventing them from
being updated during the port start.

This patch fixes this issue in the port stop function.

Type: fix
Fixes: 01fe7ab88e

Signed-off-by: Alok Mishra <almishra@marvell.com>
Change-Id: Idbc5a6c31409a3d1c5b19e14a3c9509291175677
2024-07-15 17:13:57 +00:00
Dmitry Valter
34fa0ce8f7 tests: skip more excluded plugin tests
Check and skip VPP_EXCLUDED_PLUGINS tests for most of plugins.

Type: improvement
Signed-off-by: Dmitry Valter <d-valter@yandex-team.com>
Change-Id: I23fd3666729251c639aa8da72a676058e3f5bb4e
2024-07-12 15:43:24 +00:00
Jay Wang
7b7bc045f8 build: overwrite clang-format version on Ubuntu 24.04
clang-format-11 is used by default in checkstyle.sh while it can be
overridden to higher clang-format version. On Ubuntu 24.04, the minimum
version of clang-format is version 14. Set the environment variable
explicitly in Makefile to overwrite the clang-format version.

Before:
$ make checkstyle
extras/scripts/checkstyle.sh: line 41: --version: command not found
make: *** [Makefile:775: checkstyle] Error 127

After:
$ make checkstyle
Ubuntu clang-format version 14.0.6
*******************************************************************
* CHECKSTYLE SUCCESSFULLY COMPLETED
*******************************************************************

Type: fix

Change-Id: Iba3e4739c9376701577b2f37e070d199b195e7d0
Signed-off-by: Jay Wang <jay.wang2@arm.com>
2024-07-12 12:53:56 +00:00
Renato Botelho do Couto
e69ec9c101 build: Fix crossbuilding definitions
CMAKE_C_COMPILER_TARGET doesn't need to be set when it's not cross
compiling, and based on wrong identation of that line I suspect it was
intended to be inside CMAKE_CROSSCOMPILING conditional.

With this line moved inside, it ends up being the only place where
COMPILER_SUFFIX is used, so, move its declaration there as well.

It will not bring any change to currently supported systems but will
make it easier to build VPP on systems running musl libc.

Type: fix

Change-Id: Ia8e16d9e8ad9c987ddf246dd0e3f8636ccad1362
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-07-12 12:40:15 +00:00