Commit Graph

4028 Commits

Author SHA1 Message Date
Benoît Ganne
f611870e8d tracenode: fix pcap capture if packet is also traced
Type: fix

Change-Id: Ifc259d87a086f686ce273f543632bd122b506c31
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2024-11-13 15:06:42 +00:00
Monendra Singh Kushwaha
34083c41b2 octeon: fix compilation for octeon
This patch adapts new changes introduced in vnet/dev framework
as part of 61e287b9.

Type: fix
fixes: 61e287b9

Change-Id: I816ee9b80fca188ee799e704d08aaf3515bd57c0
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-11-13 08:22:21 +00:00
Kishor Dhanawade
3ac40b94ce octeon: add support for hmac_md5 and chachapoly
Added support for following algorithms
  - aes-cbc hmac_md5
  - chacha20_poly1305

Type: feature

Signed-off-by: Kishor Dhanawade <kdhanawade@marvell.com>
Signed-off-by: Nithinsen Kaithakadan <nkaithakadan@marvell.com>
Change-Id: I44702483dad8182d5f15aed39c6bb42f1ca15d3c
2024-11-11 12:42:36 +00:00
Florin Coras
7fdb6f4ba8 hsa: proxy fix assert placement
Assert fifo refcnt on the right thread

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If6edf9969f5c70533a1e9c6358c022c556c4ed81
2024-11-07 13:44:02 -08:00
Damjan Marion
99eed5ec64 armada: initial DSA support
Type: feature
Change-Id: Ic6578e0ded33ca3c6590c8e6127ec11a0f5b3057
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-11-07 16:49:49 +01:00
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
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
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
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
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
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
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
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
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
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
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
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
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
Matus Fabian
15106becc5 http: Content-Length value parsing improvement
Type: improvement

Change-Id: Ida8ca43b5fed41fc0b13a2dde97e7e35c55283c9
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-14 19:26:45 +00:00
Matus Fabian
6885d5f9eb hs-test: http_static wrk tests
Type: test

Change-Id: I87cddb88f2a62e79d66832827134ddaa95740839
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-14 17:05:49 +00:00
Matus Fabian
5c8ddd54c1 http: timer pool assert crash fix
Two iterations over expiret timers:
1) ivalidate timer handle and mark the connection as having a pending
   timer
2) send RPCs to workers

Type: fix

Change-Id: Iadc031c4e6d6f7bbd851d0421e6e0ea2d2b5e70f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-14 17:03:12 +00:00
Matus Fabian
b6ac2d7a7a http: track half-open sessions
It might happen that app detach during connecting period and worker
is not valid anymore when http_ts_connected_callback is called.

Type: improvement

Change-Id: I95f094e8bc0352728a61e3fe74ab0745859e2457
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-10-14 16:55:09 +00:00
Alexander Skorichenko
a7e01a83be snort: add timestamps to packets
Type: improvement

Change-Id: I810679c8a73c4d1b3fc2cc2300ded46a30d68e8f
Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
2024-10-11 14:06:15 +00:00
Ole Troan
77ca487742 dpdk: xstats as symlinks
Type: improvement
Change-Id: I0df26e5a4d486b694ec90ba27b485a75bf264b20
Signed-off-by: Ole Troan <otroan@employees.org>
2024-10-09 16:59:53 +00:00
Damjan Marion
cda500bddc dev: add helper functions
Type: improvement
Change-Id: I7c9e882b1cdf141b34e84dbfed46b392624d1f62
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-10-08 23:33:02 +00:00
Damjan Marion
623147bfda armada: fix tx queue init
Type: fix
Fixes: 4e51841
Change-Id: Ife3cb43f54cc0700c469f89b0a5af0ff44143807
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-10-08 23:53:45 +02:00
Florin Coras
4856f33fa8 http_static: fix first and add segment size
Allow segments bigger than 4GB

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I510f7cff75883fdbd6c0c22efff9a14e26c755f4
2024-10-07 23:24:59 +00:00
Steven Luong
8d09a70ee8 hsa: cannot delete/unlisten default uri
Although it is rare that one wants to remove the default uri listener,
we should still support it.

The problem is that we strip the null character on unformatting the input.
We should not add a null character on formatting the default uri.

Type: fix

Change-Id: I08520dbd2a2448639ce023f9fd75555bc620e7ee
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-10-07 12:09:57 -07:00
Klement Sekera
860916617d ip: add extended shallow reassembly
This patch adds some fixes and improvements:

Fixes bug where save_rewrite_length gets overwritten on reassembly
handoff.

Fixes bug where duplicate fragments could cause a reassembly context
to be lost, because the race losing thread would remove bihash entry
created by winning thread.

Improves tracing by adding more events.

Adds extended shallow reassembly. This is a toggleable option, which if
turned on will cause reassembly to wait for both first and last
fragments to calculate total IP payload length. Furthermore it'll store
a local copy of first fragment and necessary data to retrieve it in
vnet_buffer2. This allows downstream features to access full L3/L4
headers when dealing with fragments.

Type: fix
Change-Id: I81695070533410c5815291dbc65ea71c87e3ae05
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-10-07 16:39:42 +02:00
Florin Coras
08894464dd session: use proper name for ct transport
Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iebf5155a429c77143df9eb44f504fea28cddaf98
2024-10-03 13:54:05 -07:00
Matus Fabian
38e94c3461 http: http_state_wait_server_reply fix
We enqueue 2 segments to app, first is masg (http_msg_t) and second
as much as possible of the raw data, so it must be:
max_enq - sizeof (msg)

Type: fix

Change-Id: Ib7ece7e0ad1aac99d687d49149f1bccea599b10f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-09-30 13:54:37 +02:00
Steven Luong
6f173171b1 session: fix SDL to use remote instead local
The language is
local == VPP local interface
remote == sender prefix to VPP node
SDL acts on remote prefix.

Type: fix

Change-Id: I82917c6ef801fc67430dfdd15c5630cb7a6347e0
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-09-28 01:51:31 +00:00
Steven Luong
6b3b6072e0 hsa: Add multiple listeners support
It is desirable that http cli server can support multiple listeners.
This is needed for supporting both ip4 and ip6 at the same time.

Added the optional keyword listener add | del to the
http cli server command.

Example usage:  start ip4 default uri and then add ip6 uri
http cli server
http cli server uri http://2001::2/80 listener add

Type: improvement

Change-Id: I884a4cd64ff676f9759a062b6d607a1742f610f3
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-09-28 01:49:53 +00:00
Alexander Skorichenko
e3ad5aa68a snort: API functions for plugin
Also, made disconnect-instance and delete-instance functions
available via cli.

Type: feature

Change-Id: I7939d27867959cb871b1cc7205b94410b53906fd
Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
2024-09-27 12:30:16 +00:00
Florin Coras
d0e8bd75f6 tls: cleanup engine hs cb and improve ctx formatting
Handshake completion is now tracked via a ctx flag so we no longer need
ctx_handshake_is_over.

Also, as we no longer prealloc application sessions, improve ctx state
formatting.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If48588ecde13e56fb99d1a46238bda53ed4eae1b
2024-09-26 20:44:34 +00:00
Damjan Marion
dfa77dc606 vlib: process node scheduler rework
This commit allow use od cooperative multitasking with multiple
descheduling reasons (i.e. event wait and suspend) inside the same
process node. In previus code remote node will wake up process node
by sending event evein if process node is waiting in
vlib_process_ssupend().

This change also allowed new vlib_process_yield() API which deschedules
current process and it puts it into the end of queue.

Change-Id: I846e5a99b4ea1809eb80895f6ffe0ef0b2fd21ae
Type: improvement
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-09-26 08:33:47 +00:00