13937 Commits

Author SHA1 Message Date
Steven Luong
e0c4e6e32d session: session table holding free appns index
session table may be shared among multiple appns's.
  app ns add id blue secret 1 if tap0
  app ns add id red secret 1 if tap0

session table holds the last added app_ns's appns_index.
If the last app_ns is deleted, session table is not free
since there is still an appns which uses the same session
table. In that case, session table is holding the free
app_ns's appns_index and it can cause problem.

The fix is to modify appns_index in session table to hold
a vector of appns_index's instead of just the appns_index
that was last added. When the app ns is deleted, remove the
deleted appns_index from the session table's vector of
appns_index's.

Type: fix

Change-Id: Ied8bc97f185071dc89b9b56656e18efbd2995131
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-11-06 18:13:01 +00:00
Florin Coras
afd05739d6 svm: mq use poll instead of SO_RCVTIMEO
setsockopt does not work on eventfds

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I652a2b78160abe1bc15879fd8bc320ba4ef38e63
2024-11-05 05:31:36 +00:00
Adrian Villin
5a612a4699 hsa: added GET method to client
Type: improvement

Change-Id: I46f7e1e2b509a463ff4b2492bf6412b67a1afdc4
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-11-04 18:07:10 +00:00
Matus Fabian
afce287645 http: CONNECT method for tunnelling
Type: improvement

Change-Id: I6af16ddcc6734bb831227ce65cb39e87294fc4cd
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-11-01 22:25:45 +00:00
Dave Wallace
7e70b1f0c4 http: fix invalid listener handle timeout config
- Fixes this assert() in make test-debug testcase:

  make test-debug TEST=test_http_static.TestHttpStaticVapi.test_http_static_vapi
  ...
  vpp[441]: /vpp/src/vppinfra/tw_timer_template.c:301 (tw_timer_start_2t_1w_2048sl) assertion `interval' fails

Type: fix

Change-Id: Ic6040957f48ab578affa5b1cf7dfdf4be27c4c56
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-11-01 22:13:36 +00:00
Florin Coras
ce4635c4a7 vcl: fix vls mt detection and select handling
Make sure num threads is 1 on process create and fork. Multi-thread
locks are applied once num threads exceeds 1.

For select, follow same pattern like epoll and add check for session
migration.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I1edcd6c4c81b6b3caf8b00781b339414e8945b0e
2024-11-01 20:22:05 +00:00
Mohammed Hawari
bd32d6234c virtio: introduce the consistent-qp feature
In certain usecases related to Linux legacy pinning of flows on queue
pairs, it is desirable that, for a given index, the rx and tx virtio
queue be handled by the same worker. This change introduces a flag for
virtio and tap interfaces that allow such a mapping.
Example with two workers rxq 0 and txq 0 on worker 0
         rxq 1 and txq 1 on worker 1
         txq 2 on main thread

Change-Id: I1b74a4788843fd1d0e8dcb4e9da30e609e088fe3
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: improvement
2024-10-31 19:47:58 +00:00
Steven Luong
bfad6b7a8f session: sesssion_rule_add_del API parsing port in wrong order
The convention in the binary API is that fields encoded in network order.
For some reason, port was parsed in host order.

Type: fix

Change-Id: I31ea313937097e2547226566b7869be4e28251b8
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-10-30 23:59:35 +00:00
Matus Fabian
0af11f537f http: udp proxy uri template parsing
Parse a URI template that has variables "target_host" and "target_port",
where varaibles are at the end of the path:
"/{target_host}/{target_port}/".

Type: improvement
Change-Id: I440b7f4951bffa1fd9971740b9890b221193943b
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-30 23:20:54 +00:00
Gabriel Oginski
1c170f571a ipsec: fix UDP flow in ipsec inbound policy
This patch fixes handle with UDP packages for UDP-Encapsulated ESP
and IKE traffic in inbound policy.

Orignally IKE traffic on UDP with port 4500 is dropped inside inbound
look-up.

Type: fix
Change-Id: I071adf18cb82da8cd000b93914078e51e393104c
Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
2024-10-30 10:34:58 +00:00
Florin Coras
3b290df57c udp: connected mode only for connects
Treat all connects as connected udp sessions. Connectionless udp is only
possible with listeners.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0a75b7c85b72274df909ed3b114eed4f6519477e
2024-10-29 21:52:19 +00:00
Florin Coras
899baecb91 session: improve migration rx ntf
Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0dd002f923908c4b9244c2c47fc85fa8855d54e1
2024-10-29 21:51:25 +00:00
Florin Coras
845332be99 hsa: proxy support for connected for udp
- mark listener as connected to support udp proxying. Connectionless udp
proxying is possible but would need more work on rx path.
- add support for session migration

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia6911ad728b7718a4983152d144e2566998e35c2
2024-10-29 17:50:59 +00:00
Matus Fabian
769a3b7256 http: "absolute-form" target URL parsing
Type: improvement

Change-Id: If39680a148d39add40433547369b2ddad3c2e226
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-29 17:26:04 +01:00
Matus Fabian
dcc6cd4333 http: timeout docs
Type: docs

Change-Id: I3dd9a726b862e72458a8f83c62354411d2c89d07
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-28 16:18:51 +00:00
Matus Fabian
cdb3136fad http_static: always free ext_cfg
Type: fix

Change-Id: I655e93c0f1e1de65d6d3c3e0976e25a7ce11aafc
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-28 16:18:14 +00:00
Stanislav Zaikin
0dd47bcf2b af_xdp: api cleanup
remove deprecated api handlers

Type: improvement

Change-Id: Id53d94f9d5fe46eba3ed809e4c16136c0eb2befc
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
2024-10-28 09:22:42 +00:00
Ole Troan
8987d3a4ca vppapigen: fix f-string in crcchecker
Type: fix
Change-Id: I9ae35b34cfd7de96726aa0b45987a896783ef7e0
Signed-off-by: Ole Troan <otroan@employees.org>
2024-10-26 02:17:10 +00:00
Matus Fabian
26be76cc3e hsa: http cli client ho session cleanup
Type: improvement

Change-Id: I9266dac18ad3ee57fc8ecca3614b51b2345e9c48
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-25 23:36:06 +00:00
Matus Fabian
841672258a http: pass timeout using extended config
App can now pass http connection timeout using extended configuration,
ext cfg type TRANSPORT_ENDPT_EXT_CFG_HTTP, value (in seconds) set in ext
cfg member opaque.
It is optional, default value is 60 seconds.

Type: improvement

Change-Id: Ibeff4bbd3153421be350ff564ec3c8e52e5b9639
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-25 23:33:15 +00:00
Florin Coras
dced40dcac vcl: fix get tx fifo len attr
Type: fix

Change-Id: I9b47600486b03c4c2cd031ed1f0faf6c28864fe4
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-10-25 16:08:30 +00:00
Matus Fabian
10c016c055 session: support of multiple extended configs
This allow configuration for each transport protocol when combined,
e.g. HTTPS=HTTP+TLS.
Extended config of session endpoint config is now chunk of memory,
which allow seamless integration with VCL, and internal
representation is hidden behind APIs, which is better for
future improvements. By default chunk is allocated to 512B if the
app doesn't do so before.

Type: improvement
Change-Id: I323f19ec255eba31c58c06b8b83af45aab7f5bb1
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-25 15:50:51 +00:00
Ole Troan
75f4960d12 dhcp: client use mac address as client identifier
Previously the DHCP client use a constant client identifier (vpp 1.1).
Problem with that is that multiple VPP clients on the same link would
fail. Fixed by using MAC address instead.

Type: improvement
Change-Id: If37f4a14cc728bde6c9ef6c169957562d763c973
Signed-off-by: Ole Troan <otroan@employees.org>
2024-10-25 09:33:03 +00:00
Florin Coras
b6cf8ff28b hsa: support vcl server binding to ip
Type: improvement

Change-Id: I4d64cddaa372aecaee8bb3eaf244c8d4998f490c
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-10-24 16:56:20 +00:00
Steven Luong
cefa7fd47e hsa: add appns support to http cli server
When the last listener is deleted, detach the cli server.

The appns is determined and should be entered when the cli
server is first brought up. When adding an additional listener
subsequently, appns must not be specified.

Type: improvement

Change-Id: Idac5b1f89df2aeca6734ab4532ebade0659fc357
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-10-24 16:44:31 +00:00
Stanislav Zaikin
af25b441e5 vapi: fix uds connect error handling
Type: fix

Change-Id: I846b54408991d34f73735914a4a673d4ee966afd
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
2024-10-24 16:31:29 +00:00
Damjan Marion
fe403bd504 armada: fix rxq buffer pool assignment
Type: fix
Change-Id: I5a78804986f400f8adc7f58f25fe5d7989a926ea
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-10-24 12:34:38 +02:00
Klement Sekera
602d11019b ip: fix port extraction
Replace a hard-coded constant of 64 with 56, which is a more appropriate
value for when ICMP echo request is returned in ICMP error. Previously,
the size of such message would be smaller than 64 and parsing would not
return the correct value.

Type: fix
Change-Id: I1bdf8a2a23b1e6762b64210c71927c926f4547ad
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-10-23 20:58:15 +00:00
Damjan Marion
3d56703027 dev: use typedefs in dev.h
Type: refactor
Change-Id: Ieb50d79bd7b9f0a59faf26a4f5bce3f89f25b287
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 20:56:57 +00:00
Damjan Marion
8cbf565e06 dev: keep dev_instance data in struct
Type: refactor
Change-Id: I05d04e2e9872d025384524b1bc133d909581e18a
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 21:03:30 +02:00
Damjan Marion
b87e7ba1e5 dev: fix typo in function name
vnet_dev_get_port_rx_node_idex -> vnet_dev_get_port_rx_node_index

Type: fix
Change-Id: I9a90e5822cbc93bcf2f91244b4eb4e5fff53c212
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 18:42:07 +00:00
Damjan Marion
46beb0d48b dev: _with_ptr process node calls
Type: improvement
Change-Id: Ib392d74e7629cef5d335e4320a71ceec25ddb020
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 18:41:55 +00:00
Damjan Marion
d794af6771 armada: port and queue counters
Type: improvement
Change-Id: I221253be147e99cd082911f28d088b64ca96eff5
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 17:15:25 +02:00
Damjan Marion
c849be7c08 dev: add more units for counters
Type: improvement
Change-Id: If6f70fc34f47c31a986ba837c9a35ce139decfb1
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 15:15:15 +00:00
Damjan Marion
32798e86e2 armada: fix typo
Type: fix
Change-Id: I1c1eb9d7426086bb8023867b3118ece119bca05b
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 15:14:53 +00:00
Artem Glazychev
768c8d4ece dhcp: fix buffer length after adding new option
The size of dhcp option should be o.length + 2 additional bytes of the header.
Incorrect offset results in an extra byte at the end of the packet:
...
0120  04 00 00 00 04 05 04 AC 10 04 01 FF 00
...
RFC2131 says the last should be the 'end' option (ff)

Type: fix

Change-Id: I056d755d29465aab8c1c55a0b930f65ece6fafce
Signed-off-by: Artem Glazychev <glazychev@mts.ru>
2024-10-23 13:44:09 +00:00
Damjan Marion
3bd4e47a9a armada: set prinary address support
Type: improvement
Change-Id: I280cb3961ff4b18c6e02053c7526c19570add09d
Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23 11:09:12 +00:00
Dave Wallace
66fcfb845b build: fix gcov failure on ubuntu 24.04
Type: make

Change-Id: Ieee6562de4b9f68d701c27a3c3018431b28eb3b0
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-10-23 09:38:11 +00:00
Stanislav Zaikin
ec906a266b vapi: fix mem leak on uds transport
Type: fix

Change-Id: I08b990eb2ede3c26e0981de033daa4cc6bd1af8e
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
2024-10-23 05:56:34 +00:00
Lukas Vogel
0dcf8ead2c docs: fix statseg title in config reference
Fix typo and put it on the correct level.

Type: fix
Change-Id: Ic7a8e557b22d0060d7f072132f00564e29d8e860
Signed-off-by: Lukas Vogel <vogel@anapaya.net>
2024-10-23 01:13:22 +00:00
Tom Jones
458fa03d64 docs: Add FreeBSD Quick Start to README.md
Type: docs
Change-Id: I5b69d6638721586f503cbb5d516b7b4d52e2f2d7
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-10-23 01:07:09 +00:00
Mohsin Kazmi
b9a68b5b2e pg: fix the buffer leak when pa steams are deleted
Type: fix

vpp# sh buffers
Pool Name            Index NUMA  Size  Data Size  Total  Avail  Cached   Used
default-numa-0         0     0   2304     2048   128270 125968   1108    1194
default-numa-1         1     1   2304     2048   128270 128270     0       0
vpp# sh pa
Name               Enabled        Count     Parameters
pg0-test-0           No         60900431    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 0,
pg1-test-0           No         60900385    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 0,
pg0-test-1           No         60898008    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 1,
pg1-test-1           No         60897934    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 1,
pg0-test-2           No         60900278    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 2,
pg1-test-2           No         60900184    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 2,
pg0-test-3           No         60900431    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 3,
pg1-test-3           No         60900387    limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 3
vpp# pa delete pg0-test-0
vpp# pa delete pg0-test-1
vpp# pa delete pg0-test-2
vpp# pa delete pg0-test-3
vpp# pa delete pg1-test-0
vpp# pa delete pg1-test-1
vpp# pa delete pg1-test-2
vpp# pa delete pg1-test-3
vpp# sh buffer trace verbose
Pool Name            Index NUMA  Size  Data Size  Total  Avail  Cached   Used
default-numa-0         0     0   2304     2048   128270 126650   1620      0
default-numa-1         1     1   2304     2048   128270 128270     0       0

                          Node           Allocated               Freed                  In                 Out            Buffered
            unix-cli-process-0                   0                1194                   0                   0               -1194

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I03051a8f529df7801cf08f8374a994dbc00fc972
2024-10-22 14:22:08 +00:00
Matthew Smith
e7226a2127 dpdk: validate number of tx descriptors
The default number of tx descriptors per queue is 1024. On some device
types, this is larger than the maximum allowed value and
rte_eth_tx_queue_setup() can return an error. Compare the configured
value to the maximum value for each device and set the configured
value to the maximum value if the configured value is larger.

Type: improvement

Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Change-Id: Ie29c5c6d58c76388f65f266032821140b0f879fb
2024-10-22 09:05:09 +00:00
Ivan Ivanets
2e8a406aaf tests: remove tag_fixme_ubuntu2204
Type: test

Activate tests that works successfully on ubuntu 22.04 but were
problematic on later version and were excluded by
@tag_fixme_ubuntu2204

Change-Id: I93c4626a120ce8b475e9c5ca933a5544d6337933
Signed-off-by: Ivan Ivanets <iivanets@cisco.com>
2024-10-21 20:20:42 +00:00
Florin Coras
4c5ec73874 hsa: refactor proxy to minimize lock usage
Use per worker context to minimize proxy session lock usage for io
events.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia0ea204a8b09f72300fd40745b299246d5d0ddb7
2024-10-19 21:08:27 +00:00
Jerome Tollet
e6d2b04e86 crypto-native: adding missing ciphers
Type: docs

Change-Id: I23a15e1ecd4c41f6567299aa07bb5458d468acf8
Signed-off-by: Jerome Tollet <jtollet@cisco.com>
2024-10-17 13:14:15 +00:00
Nithinsen Kaithakadan
6937c0b2df octeon: add crypto framework
Configure crypto device.
Add crypto support in control plane and data plane.
Control plane
 - Handle vnet crypto key add and delete
 - Register crypto async enqueue and dequeue handlers
Data plane
 - Add encryption and decryption support for
    - AES-GCM
    - AES-CBC hmac sha1/256/384/512
    - AES-CTR sha1
    - 3DES-CBC md5 sha1/256/384/512

Type: feature

Signed-off-by: Nithinsen Kaithakadan <nkaithakadan@marvell.com>
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
Change-Id: Ia9e16c61ed84800a59e0c932a4ba6aa1423c1ec8
2024-10-17 11:53:39 +00:00
Abdel Baig
17a918133b bfd: add support for multihop
Type: feature

Change-Id: If23f9cc9317e7528f3c8d66303457206843a12c5
Signed-off-by: Abdel Baig <abdbaig@cisco.com>
2024-10-15 15:46:01 -04:00
Adrian Villin
514098ee82 hs-test: various improvements
- fixed timed out/panicked tests not copying logs to CI archives
- fixed log formatting
- renamed SuiteTimeout to TestTimeout
- fixed ginkgo node leak on test timeout -> added AssertChannelClosed
- updated docs

Type: test

Change-Id: Ia71d765bd61576230a4cfd26d4b14fd1be1692c7
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-10-15 16:49:40 +00:00
Florin Coras
6771af7328 hsa: switch proxy to using first worker connects
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I04821236ba8ab02525bd99a1ed4572dfcf5e5131
2024-10-15 00:25:35 -04:00