Commit Graph

10493 Commits

Author SHA1 Message Date
96a56244a5 vppinfra: devicetree improvements
Type: improvement
Change-Id: If20ae74658702399f626b1af7bd3519e05a5d422
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-10-09 08:39:33 +00:00
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
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
ad6aacc44a pg: fix the coverity warning
Type: fix

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ida88c304f110b05051211ce243fd04ce811a9d4d
2024-10-08 10:06:47 +00:00
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
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
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
db7be85352 ip: fix feature logic
This fixes ip6 feature logic, so error and handoff packets are no longer
sent to next feature instead of being dropped/handed off.

Type: fix
Change-Id: If280de5345d9ed3b553dd3b3fa40274619d333ae
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-10-07 12:56:00 +00:00
6f3d9e2cb8 ip: add ip6 shallow reassembly output feature
Type: improvement
Change-Id: I0cb4014f03abdd0e55d4bb7ff40ae293a6ed3562
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-10-07 12:29:02 +00:00
22c7420dfb vapi: don't store dict in length field
Rather validate the format and use proper Field call.

Type: fix
Fixes: d7a32ebd99
Change-Id: I78ac1e62911d613dc0d7a9bd6e8784fbe7f0a797
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-10-07 11:40:48 +00:00
911c0fb23a ip: fix ip4 shallow reassembly output feature handoff
Use a new frame queue for output feature instead of passing frames
to standard feature.

Fixes bug where save_rewrite_length gets overwritten on reassembly
handoff.

Type: fix
Change-Id: I6c6191aec5f1c89e1ca0510a08781e390d327bbf
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-10-07 10:57:24 +00:00
0b1bd9df33 pg: add support to delete pg interface
Type: improvement

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I3102fded415c644673fb79a0fdb7a7448ce20f26
2024-10-07 08:39:23 +00:00
28955ceb8b session vcl: add support for vcl transport attributes
Session layer can push transport attributes to vcl sessions which are
stored as vector for session lifetime.

Store original_dst_ip and port when available in vcl session attribute
vector.

Type: feature

Change-Id: Iab6c65ddcfed220fc919f564cd19083561812faf
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-10-04 17:59:01 +00:00
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
fae41c6783 session: allow session input rpcs
Type: improvement

Change-Id: Ib8e9f9fb6dfc553cc9e344544961832fecbea8c1
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-10-03 08:02:59 +00:00
2c52f5e888 session: incomprehensible error message for adding sdl and rule-table entry
1. When the backend engine is not enable, adding an entry returns
a confusing error message.

DBGvpp# session sdl add 191.1.1.30/32 action 1 tag blue-v4-rule1
session sdl add 191.1.1.30/32 action 1 tag blue-v4-rule1
unknown input `add  191.1.1.30/32 action 1 ta...'
DBGvpp#

2. When the sdl or rule-table entry is already present, adding the duplicate
entry returns a confusing error message.

DBGvpp# session sdl add  8.8.8.1/32 action 0
session sdl add  8.8.8.1/32 action 0
DBGvpp# session sdl add  8.8.8.1/32 action 0
session sdl add  8.8.8.1/32 action 0
session: session is already enable. Must disable first
DBGvpp#

The problem is because there are multiple cli commands start with "session".
When the command is failed with the best match chain, it passes the
command to the other parser chains which start with the keyword "session".
The other cli chain also fails to parse the command. The error message
that the previous parser chain returned may be overwritten by
the newest error message.

The fix is to not return an error in sdl and rule-table parser command chain.

Type: fix

Change-Id: If0165324a763f47ec98ab79a41c3ee9b10057454
Signed-off-by: Steven Luong <sluong@cisco.com>
2024-10-02 09:41:53 -07:00
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
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
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
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
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
2193fd0649 dev: dev process node scheduling improvements
Type: improvement
Change-Id: If39e4d2b46820d5c0465fcc40d255fa95d137d38
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-09-26 08:40:28 +00:00
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
d8022139eb octeon: fix pause flow control for lbk/sdp devices
Pause frame flow control is not supported for LBK (Loopback) and
SDP (System DPI Packet Interface Unit) devices.
This patch skips the pause flow configuration for these devices.

Type: fix
Fixes: 53239b4

Signed-off-by: Alok Mishra <almishra@marvell.com>
Change-Id: I3096fcef9df4ad59d64bfabb83f91f13813128a8
2024-09-26 08:20:22 +00:00
ea4a5499ae vppinfra: add CLIB_SWAP()
Type: improvement
Change-Id: I1911a9d6a0ca8e1d24ce7b95281886392081ffc6
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-09-25 20:05:45 +00:00
4089d7cf1b session: set dgram mss when not constrained by transport
Type: fix

Change-Id: I12ddcd56f2fecb504180cdc044a3b3c3d1db7e3c
Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-09-25 15:46:31 +00:00
f9b2e27b1d build: add missing fib_walk.h to VNET_HEADERS
Type: fix

Change-Id: Ie64ce16ea512b855a1b886eceb94c0e6ba33df05
Signed-off-by: Radislav Chugunov <chgnrdv@gmail.com>
2024-09-25 13:37:07 +00:00
1a088b6bc9 dpdk: add new device ID for Cisco VIC VF
VIC now supports standard SR-IOV, as opposed to VM-FEX SR-IOV. It uses
a new device ID 0x02b7 for VF. Add it to the supported list.

Type: improvement
Change-Id: Ifc91c66f5e75dd005aa9d8a47700896a941abab5
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
2024-09-25 13:36:27 +00:00
33fec83487 vppinfra: exclude clib_dt_node_add_child on FreeBSD
clib_dt_read_from_sysfs is the only user of clib_dt_node_add_child, on
FreeBSD this causes a build failure due to an unused function. Place
clib_dt_node_add_child behind an include guard for linux only.

Type: fix
Change-Id: I9641ffd10d9d15e1e552f570cd386211d3b4ab39
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-09-25 13:33:52 +00:00
e07c5fe467 octeon: enable h/w vlan tagging support
This patch enables h/w vlan tagging by setting MAX_VTAG_INS
field in NIX_AF_SMQ_CFG register.
This is required to configure VLAN tag insertion
by the hardware for egress packets

Type: feature

Signed-off-by: Alok Mishra <almishra@marvell.com>
Change-Id: Ifcdf9c1e5b0b8ddc27cabab597ae91780ceca095
2024-09-25 12:58:59 +00:00
43b6ff39ae ipsec: cleanup tun protect on interface removal
when a protected tunnel gets deleted it's necessary to run a proper
cleanup

Type: fix

Change-Id: I9d2c60ecbf97c4df299ac5c2228b036bf3478a56
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
2024-09-24 14:17:38 +02:00
53239b45ca octeon: enable ethernet pause frame support
This patch adds support for MAC pause flow control.
By default, pause flow control is enabled in the device
configuration.

Type: feature

Signed-off-by: Alok Mishra <almishra@marvell.com>
Change-Id: I0f448479a38fae615d87af7e736c6053ada89cca
2024-09-24 10:18:05 +00:00
156694162c octeon: fix error handling for packet with error
Type: fix

Change-Id: Ieb97f1526939bcd732c155d3a7535dca71971258
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-09-24 10:16:49 +00:00
02598d7c0c octeon: fix SDP device link information
This patch fixes SDP (System DPI Packet Interface Unit)
device link information.

Type: fix

Change-Id: I4563094601d9bb24132e4dc712cde14daa7f4364
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2024-09-24 10:15:42 +00:00
bf0a6f8876 http_static: fix memory hss_session using after be freed
Type: fix

Change-Id: Ic3d3de4198310361de876a8224e4f7cd0b48b698
Signed-off-by: XiaomingJiang <jiangxiaoming@outlook.com>
2024-09-23 16:42:40 +08:00
6126ec9c53 udp: node counter for connected sessions
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4c0c1b27adb3e3ea3c3ff6353b068447db19fa85
2024-09-20 16:20:56 +00:00
2fb8d2f96d pvti: remove clib_warning at init time
Type: fix
Change-Id: I62ccd96ea3549205510ff53118eab1fa3613d009
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-09-19 14:32:09 +00:00
33e1243a4c l2: fix DVR test failure on AWS Graviton on Ubuntu 22.04
The AWS Graviton make test fails in dvr_test.py on Ubuntu 22.04,
due to a mismatching source MAC address. Debian 11 tests run fine.

The following can be seen in the log.txt trace:

00:00:00:756422: ethernet-input
  frame: flags 0x1, hw-if-index 3, sw-if-index 3
  IP4: 02:03:00:00:ff:02 -> de:ad:00:00:00:00 802.1q vlan 92
00:00:00:756435: l2-input
  l2-input: sw_if_index 6 dst de:ad:00:00:00:00 src 02:03:00:00:ff:02 [l2-input-vtr l2-learn l2-fwd l2-flood l2-flood ]
00:00:00:756438: l2-input-vtr
  l2-input-vtr: sw_if_index 6 dst de:ad:00:00:00:00 src 02:03:00:00:00:00 data 08 00 45 00 00 80 00 01 00 00 40 11
00:00:00:756441: l2-learn
  l2-learn: sw_if_index 6 dst de:ad:00:00:00:00 src 02:03:00:00:00:00 bd_index 1

Note how l2-input-vtr node has the two lowest bytes of the source MAC corrupted.

Discussing with Benoit, since this could be caused by unaligned memory accesses,
using clib_memcpy_fast.

Type: fix
Change-Id: I28991e1166335df0edd1e4b84fa72a2b1d0bb9bf
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-09-19 14:31:36 +00:00
0950830ee9 octeon: fix compilation on octeon9
Type: fix

Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
Change-Id: I9ffa78122dcd6b98cad9902e43ba8432fcd572b1
2024-09-18 15:07:00 +05:30
70d2a08e7e vcl: add http support to vcl_test_protos
Type: improvement

Change-Id: Ibb493f1d7713d0e10b8bd1d5ff17b89967b53b8a
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-09-17 15:59:00 +00:00
0acb398d6d pvti: Packet Vector Tunnel Interface
This plugin implements a PoC of UDP-based tunnel substrate whose aim is
to specifically provide higher MTU to the upper layers by chunking
the payload PDUs into smaller packets with full 5-tuple.

At the same time, if there are multiple small packets to
the same destination during the vector processing, they
are packed into "carrier" packets up to underlay MTU size.

It does assume a trustworthy underlying medium, thus for the
operation over Internet it requires the use of encryption layer
underneath.

Type: feature
Change-Id: I323958fa8de62584f6ed15643ea689568a9a62bc
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-09-17 12:10:19 +00:00
430cccf2e5 session: improve sh session cli
Add support for:
- "sh session verbose thread <n> [lcl|rmt|ep] <ip>[:port]", which can be
used to filter sessions based on transport ip:port
- "force-print" option to force printing even when it exceeds existing
printing thresholds

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iab3e58b8162664b425379d14818b8a4daa0ce345
2024-09-14 00:27:53 +00:00
6f45f5465f http: update body_len from u32 to u64
Type: improvement

Change-Id: I381541fb180d6d6ba42e4d231d22a73c5d33ef65
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
2024-09-13 21:22:10 +00:00
6fbe913e45 hsa: fix proxy ao connect
Make sure that proxy server doesn't try to open connection to the
target multiple times. When client is uploading huge amount of data
it might happen that proxy_rx_callback is called again before
connection to the target is established.

Type: fix
Change-Id: I4d272d37bc545f6f8790a115c8d26bcf3ea84f22
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-09-13 16:22:27 +02:00
9a3f387c30 vppapigen: endian generation for vla for non u32
The endian function for VLAs assumed length field to be of type u32.
That failed for APIs using different integer width.

Type: fix
Change-Id: I6ecaabb4563c8bafeb100a4c6c1eee9a08e6cabf
Signed-off-by: Ole Troan <otroan@employees.org>
2024-09-12 12:56:56 +00:00
3b5a013103 vlib: introduce lazy next node initialization
This change allow a node registration A to name a next node B that does not
exist yet at registration time. When node B is effectively created,
vlib_node_main_lazy_next_update need to be called so that the vlib graph
is updated accordingly. To enable this behavior, node A needs to bear
the new VLIB_NODE_FLAG_ALLOW_LAZY_NEXT_NODES.

Change-Id: I561d3a0de19a0b7bd1045760a2ba8e27d27caa9a
Type: improvement
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2024-09-12 10:11:30 +00:00
47968438dc hsa: fix proxy ao tx callback
Reuse existing proxy_force_ack for active open tx callback. This makes
sure proxy session is tcp (as opposed to tls) and also makes sure the
ack is sent from the thread that owns the proxy session.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9692fa2c4feefd3db701f9449a35495cf7b3d9dc
2024-09-11 15:09:40 +00:00
a8766ce2d3 vlib: fix gcc 13.2.0 build failure on ubuntu 24.04
Type: fix

Change-Id: I007d73d28633677395d4eb81534dbe2307b1a96f
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-09-11 14:34:34 +00:00
6e129e3a45 hsa: http_tps coverity fix
Type: fix
Change-Id: Iea00a03dc94dfd6d1f0532e629d2f3b38cb26c07
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2024-09-10 10:20:11 +02:00
540842835f http: fixed missing static keyword
Type: improvement

Change-Id: Id7a16388a72fc5de5848f3fec7a6dbeb6188f913
Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-09-09 17:24:32 +00:00