aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet
AgeCommit message (Collapse)AuthorFilesLines
2024-12-18crypto: move crypto engines outside of pluginsDamjan Marion3-6/+174
This is first step in process of making crypto engine binaries less dependant on specific VPP version. Type: improvement Change-Id: Ib08135688be409049b660e2b2ac435578b63be65 Signed-off-by: Damjan Marion <dmarion@me.com>
2024-12-16policer: Add return_dsc for policer_add_command_fnfenglei1-2/+5
Type: improvement add return_desc for except failure Change-Id: Idcec0f8833fc264f66d2e0a784ece2a62c425263 Signed-off-by: fenglei <1579628578@qq.com>
2024-12-16policer: fix policer_input coredumpfenglei1-0/+3
Type: fix policer_input didn't check policer_index will lead to coredump when refer to cm->counters[thread_index] variable, cm->counters[thread_index] is null. Change-Id: I8c6ef6c4c2bc96f23ab806327cb6f179c958cee2 Signed-off-by: fenglei <1579628578@qq.com>
2024-12-12armada: fix feature arc for secondary interfacesGuillaume Solignac1-1/+1
Fixes an issue preventing a feature to be configured on a secondary interface. Type: fix Signed-off-by: Guillaume Solignac <gsoligna@cisco.com> Change-Id: I8ecd80988d22291013cd0addae6dc25043aaea98
2024-12-12pg: misc improvements and fixesBenoît Ganne6-80/+174
1) pg can typically injects packets in ethernet-input, ip4-input or ip6-input. Make sure offload offsets are correctly set for ip4-input and ip6-input. 2) add hw-addr support for ethernet mode (only available through cli) 3) refactor pg creation code to improve the readability by using data structure pg_interface_args_t 4) fix the pg input and output traces to use headers according to pg interface mode 5) introduce pg interface flags i.e. checksum, gso, gro Type: improvement Change-Id: Iffed502e9c6357d7ef8e8a72217867e8297236aa Signed-off-by: Benoît Ganne <bganne@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2024-12-12session: disable fifo tuning on app closeFlorin Coras1-0/+3
Type: fix Change-Id: Id6aa410a75356ece1d114a2970f70cf32203997f Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-12-11bpf_trace_filter: allow pcap filtering without classifierHadi Rayan Al-Sandid3-13/+12
Type: improvement Change-Id: I7ca860dbee0d0a24b7f00943142d8c878ed90e80 Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-12-10ip: add enable ip4 apiOle Troan4-0/+78
A philosophical question. Do an interface have to have an IPv4 address to process IPv4 packets? For ICMP error generation it's sufficient that it has an address available on the node. More concretely this patch is to allow an extern DHCP client to process IP packets before it configures an address on the interface, without having to have an node early in the ip4-unicast feature-arc like ip4-dhcp-client-detect to intercept the packets. Type: improvement Change-Id: I780c579eec28ba564cf8417fbcc87e7a7876fdd2 Signed-off-by: Ole Troan <otroan@employees.org>
2024-12-08session: add ip4-fib-id and ip6-fib-id to app ns CLISteven Luong3-11/+158
Problem The API app_namespace_add_del allows specifying ip4_fib_id and ip6_fib_id. But the CLI does not. It only allows interface. Interface binding may change after the application namespace is created and there is no registration for the callback when the interface binding changes. Fix Add ip4-fib-id and ip6-fib-id to app ns CLI. When both interface and fib-id's are specified, interface takes precedence. When interface is not specified, either ip4-fib-id or ip6-fib-id or both ip4 and ip6 fib-id's may be specified. If only ip4-fib-id is specified, ip6 is disable for this particular app namespace. If only ip6-fib-id is specified, ip4 is disable for this namespace. When the interface binding changes to different vrf and the application namespace was created via interface option, we delete the application namespace and recreate the application namespace with the new interface binding. Notice when the application namespace is removed, all session rules and sdl rules previously created for the deleted application namespace will be deleted. However, if the fib table/session table was shared by another namespace, the other namespace will still contain the session rules and sdl rules. Type: improvement Change-Id: I76eb30da1ed8a39d06694c1e66d0675bf03516bf Signed-off-by: Steven Luong <sluong@cisco.com>
2024-12-08session: enhance display for show appSteven Luong4-10/+72
Display segment manager information for show app <index> verbose Mark segment manager as listener if it is a listener segment. Type: improvement Change-Id: I8d91f4c2ed5b8f39620f2c8b06950c0e7ee2225e Signed-off-by: Steven Luong <sluong@cisco.com>
2024-12-07tls: add async processing supportVarun Rapelly2-2/+19
Adds support for tls async processing using OpenSSL. Adds new CLI command to configure OpenSSL TLS configurations used by OpenSSL context and session. New CLI format is: tls openssl set-tls [record-size <size>] [record-split-size <size>] [max-pipelines <size>] Sets default values to below TLS configuration parameters: - first_seg_size: 32MB - add_seg_size: 256MB Type: feature Signed-off-by: Varun Rapelly <vrapelly@marvell.com> Change-Id: I990be31fced9e258fdb036f5751cd67594b0bce7
2024-12-06misc: move ppp to a pluginJoel Ahn10-1128/+0
Type: refactor Move PPP folder under vnet to the plugin folder, and modify some of path of the #inlude<header> to the new path. Add a plugin.c file to register a plugin. Resolve ip4_input and ip6_input's dependency on PPP functions by moving those calls to PPP's initialization. Resolve osi's inter-plugin dependency on PPP by having it retrieve the function pointer Add ppp to the list of valid spelling words JIRA: VPP-2052 Change-Id: I1a26ef0663a91857d13f7d87a3bb14bc38893194 Signed-off-by: Joel Ahn <joeahn@cisco.com>
2024-12-06session: clean up session table when re-adding an existing application namespaceSteven Luong1-0/+13
The app ns semantics allows the same app ns to be re-added with different interface. For example, app ns add id blue secret 1 if tap0 app ns add id blue secret 1 if tap1 If tap0 is bound to table 0 and tap1 is bound to tap1, we need to clean up the existing session table and possibly allocate a new session table for the app ns. Type: fix Change-Id: I566d621081b7cdbd7d0c481fda53953b39c26001 Signed-off-by: Steven Luong <sluong@cisco.com>
2024-12-05tap: update tap_flagsAdrian Villin1-0/+1
- added TAP_API_FLAG_CONSISTENT_QP = 256 Type: improvement Change-Id: I57d95503395baf265c29d48a92bd69347f0a7333 Signed-off-by: Adrian Villin <avillin@cisco.com>
2024-12-04dev: include limits.h for PATH_MAXRenato Botelho do Couto1-0/+1
Type: fix Change-Id: I66607164b1552011b39808bafc8e02b5a24f883c Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
2024-11-27api: fix bug in pcap capture apiHadi Rayan Al-Sandid1-1/+1
pcap api cleanup can cause crash in certain scenarios e.g.missing/invalid 'filename' parameter. Type: fix Change-Id: I92417765960de84e30ed7cb945d40c50d722fb6c Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
2024-11-22pg: fix the buffer deletionMohsin Kazmi1-11/+40
Type: fix Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: I8f0a67706399dad1e5296aafd1cfa92958b2fe82
2024-11-21fib: fix `show ip fib memory` output errorJay Wang1-3/+2
Put `memory` before `mem` when parsing `show ip fib` CLI command to avoid the following annoying output error. vpp# show ip fib memory ipv4-VRF:0 mtrie:343808 hash:4687 totals: mtrie:343808 hash:4687 all:348495 unknown input `ory' Type: fix Signed-off-by: Jay Wang <jay.wang2@arm.com> Change-Id: I5f990243309d6e6ea339e8442f5e68ae90a98814
2024-11-21session: fix ct get peer if peer freedFlorin Coras1-0/+2
Type: fix Change-Id: Iae00637ab843121651f187436bf849f41874f48c Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-11-18session: track number of tries to alloc lcl portFlorin Coras6-8/+71
Track number of tries to alloc local port and report it in stats segment. Could be used to gauge how busy the port allocator is. Also add cli to dump trasport sub-layer state. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3736a48488c491dee85aa2b074b87519a3857057
2024-11-12sr : enable SRv6 uSID in the SRv6 APIAhmed Abdelsalam4-29/+44
Type: improvement Change-Id: I026b1a8fd1df0e6ac1dba8df78b12cde95aae419 Signed-off-by: Ahmed Abdelsalam <ahabdels@cisco.com>
2024-11-11tcp: handle multiple syns in time-waitFlorin Coras1-1/+1
If multiple syns are received in one dispatch for the same time-wait connection, the first removes the connection while subsequent packets either lookup a nonexistent or an unrelated connection. Avoid the former with a check. Type: fix Change-Id: Ia5f1b3bbd568566eaf36121206aa12363a15b418 Signed-off-by: Florin Coras <fcoras@cisco.com>
2024-11-11sr : adding support to SRv6 uA behaviorAhmed Abdelsalam3-52/+116
Type: feature Change-Id: I81f6b07226eeaa6c3cd62487c9665629f4d2a834 Signed-off-by: Ahmed Abdelsalam <ahabdels@cisco.com>
2024-11-08session: validate appns index in vnet_session_rule_add_delSteven Luong3-1/+12
vnet_session_rule_add_del may be called with a bogus appns index from the API. Validate the appns index is indeed valid. Type: fix Change-Id: Ife1b5b9ab0b180ececa74008d2ef92045a9e8b58 Signed-off-by: Steven Luong <sluong@cisco.com>
2024-11-07dev: secondary interfaces supportDamjan Marion11-183/+765
Type: feature Change-Id: I6cc4340431b8273022955fca1600061a722e3ace Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-11-07dev: introduce consistent_qp featureMohammed Hawari6-5/+14
For some devices, queues are organized as pairs (rx/tx). In this case, it is desirable that a worker receives packet and send packets for the same pair. This patch enables this by assigning txq to workers first and ending with main. Change-Id: I3de4afbf74a265d5275c6a5d9a905b51dd661b22 Type: feature Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2024-11-06session: session table holding free appns indexSteven Luong8-23/+403
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-10-31virtio: introduce the consistent-qp featureMohammed Hawari8-15/+29
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-30session: sesssion_rule_add_del API parsing port in wrong orderSteven Luong1-6/+6
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-30ipsec: fix UDP flow in ipsec inbound policyGabriel Oginski1-25/+52
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-29udp: connected mode only for connectsFlorin Coras1-10/+1
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-29session: improve migration rx ntfFlorin Coras1-3/+1
Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I0dd002f923908c4b9244c2c47fc85fa8855d54e1
2024-10-25http: pass timeout using extended configMatus Fabian2-3/+2
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-25session: support of multiple extended configsMatus Fabian5-19/+105
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-23ip: fix port extractionKlement Sekera1-4/+11
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-23dev: use typedefs in dev.hDamjan Marion1-28/+26
Type: refactor Change-Id: Ieb50d79bd7b9f0a59faf26a4f5bce3f89f25b287 Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23dev: keep dev_instance data in structDamjan Marion4-12/+24
Type: refactor Change-Id: I05d04e2e9872d025384524b1bc133d909581e18a Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23dev: fix typo in function nameDamjan Marion4-5/+6
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-23dev: _with_ptr process node callsDamjan Marion2-0/+60
Type: improvement Change-Id: Ib392d74e7629cef5d335e4320a71ceec25ddb020 Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-23dev: add more units for countersDamjan Marion3-4/+9
Type: improvement Change-Id: If6f70fc34f47c31a986ba837c9a35ce139decfb1 Signed-off-by: Damjan Marion <damjan.marion@gmail.com>
2024-10-22pg: fix the buffer leak when pa steams are deletedMohsin Kazmi2-6/+4
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-15bfd: add support for multihopAbdel Baig9-329/+635
Type: feature Change-Id: If23f9cc9317e7528f3c8d66303457206843a12c5 Signed-off-by: Abdel Baig <abdbaig@cisco.com>
2024-10-14ip: fix ip_local_reassembly_get handlerStanislav Zaikin1-1/+1
Type: fix Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com> Change-Id: I6431557d01756174005df26350c28299f83fcee0
2024-10-08dev: add helper functionsDamjan Marion2-9/+33
Type: improvement Change-Id: I7c9e882b1cdf141b34e84dbfed46b392624d1f62 Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-10-08pg: fix the coverity warningMohsin Kazmi1-5/+5
Type: fix Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: Ida88c304f110b05051211ce243fd04ce811a9d4d
2024-10-07ip: add extended shallow reassemblyKlement Sekera6-584/+1061
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-07ip: fix feature logicKlement Sekera1-6/+8
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-07ip: add ip6 shallow reassembly output featureKlement Sekera2-42/+172
Type: improvement Change-Id: I0cb4014f03abdd0e55d4bb7ff40ae293a6ed3562 Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
2024-10-07ip: fix ip4 shallow reassembly output feature handoffKlement Sekera2-70/+103
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-07pg: add support to delete pg interfaceMohsin Kazmi5-3/+126
Type: improvement Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: I3102fded415c644673fb79a0fdb7a7448ce20f26