aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
AgeCommit message (Collapse)AuthorFilesLines
2025-02-27abf: run abf after reassemblyBenoît Ganne1-6/+8
If reassembly is enabled, make sure to apply ABF after reassembly. Type: fix Change-Id: Ic12ccba34a9e4d13caba1821e8175ee5adc7f8c3 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2025-02-26linux-cp: Add support for LACP packetsAkeel Ali6-26/+276
This patch adds support to mirror LACP packets between host and phy. It is needed for the Sonic-VPP project to support LAG and allow Sonic to run LACP in the control plane. The change has 3 parts: (1) Converted lip_punt_node to lip_punt_xc_inline, which now supports the creation of two distinct nodes: lip_punt_node and lip_punt_xc_node. lip_punt_node retains its original punt functionality. lip_punt_xc_node supports both punt and x-connect between host & phy. (2) Add 2 new API (and corresponding CLI) to the linux-cp plugin: (A) lcp_ethertype_enable ("lcp ethertype enable <ethertype>") (B) lcp_ethertype_get ("show lcp ethertype") (3) Add UT to test the new functionality and API/CLI for LACP and LLDP. Type: improvement Change-Id: Iab66e3b29351dcf2c471babd4f1ef4bdd19da46e Signed-off-by: Akeel Ali <akeelapi@gmail.com>
2025-02-25http_static: squash subsequent forward slashes in request target pathSemir Sionek3-8/+10
In the file handler, squash groups of forward slashes during path sanitation to minify the risk of running out of memory. Type: fix Change-Id: Ic29d691f876b891ff588157851334162b4e3c5e3 Signed-off-by: Semir Sionek <ssionek@cisco.com>
2025-02-25http: hpack headers decodingMatus Fabian5-23/+989
1) parsing of binary format (RFC7541 section 6) 2) simple dynamic table implementation 3) parsing of request header block Type: feature Change-Id: If43e175a0643f9731c15efc412a82345d9e33cee Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-02-25ping: Check only PING_RESPONSE_IP4 and PING_RESPONSE_IP6 eventsNikita Skrynnik1-6/+12
Check only PING_RESPONSE_IP4 and PING_RESPONSE_IP6 in ping binary API so it doesn't block other binary API requests while working. (current version of ping binary API can read other events like SOCKET_READ_EVENT, for example). Type: fix Change-Id: Ie7c5c92322af28633680c9c0d60fed739d4e65a0 Signed-off-by: Nikita Skrynnik <nikita.skrynnik@xored.com>
2025-02-25vxlan: move vxlan-gpe to a pluginlajoskatona28-43/+4835
Move vxlan-gpe folder under vnet to the plugin folder, update cmake configuration and header paths, and add plugin.c to register plugin. JIRA: VPP-2059 Type: improvement Change-Id: I31b6d326276c4aa684fcdcf8443ef349f7816a6d Signed-off-by: lajoskatona <katonalala@gmail.com> Signed-off-by: Nicolas PLANEL <nplanel@cisco.com>
2025-02-19http: hpack primitive typesMatus Fabian6-0/+1311
RFC7541 section 5, Huffman encoding included Type: feature Change-Id: I5a024f654610729b8f3f53734aa242bb4b5a25fe Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-02-13ipsec: keep inbound seq as u64Damjan Marion1-2/+1
Type: improvement Change-Id: I03f0b6137db6780f2c2935df90e98acf4bd471f9 Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-02-13ipsec: combine huge and normal anti-replay-window handlingDamjan Marion1-5/+2
Type: improvement Change-Id: Idfbaf56e3b56e77c8deaca9d3e41f7a78d8c4e0b Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-02-13ipsec: embed anti-replay bitmap in the runtime dataDamjan Marion1-2/+3
Type: improvement Change-Id: I753917c6d7e30b8d5e3291b85a7532a455ebc2bb Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-02-12tcp: rename worker ctx to just wrkFlorin Coras1-1/+1
Align with session layer (also less typing in gdb ..) Type: refactor Change-Id: I1455a1aa3e3bad7b53fe638a678774b88b9969b9 Signed-off-by: Florin Coras <fcoras@cisco.com>
2025-02-12vrrp: force sleeps between timer eventsMatthew Smith1-1/+13
Adding a virtual MAC to some NICs can take a significant amount of time. If a lot of VRs enter the master state around the same time, the process node can stay active for a very long time processing all of the transitions. Try to force a 10 us sleep between processing events to ensure that the process node does not prevent API messages and RPCs from being handled for an extended period. Type: improvement Signed-off-by: Matthew Smith <mgsmith@netgate.com> Change-Id: I400a7d395b4c0fec371f70d359e9d184ae79645e
2025-02-11http: modularization in preparation for h2 and h3Matus Fabian6-2143/+2733
Prepare code to handle multiple http versions and move http/1 specific code into http1.c Type: improvement Change-Id: I1f2c958dadb7721b305c65b2da7c2943695ad740 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-02-11hsa: http client parallel sessionsAdrian Villin1-144/+304
- client is now able to use multiple workers to send requests (sometimes it uses multiple sessions on a single worker) Type: feature Change-Id: I2d83d47a9768011b3d8d05ed320852606841e4b8 Signed-off-by: Adrian Villin <avillin@cisco.com>
2025-02-10build: replace __FUNCTION__ with C11 __func__Damjan Marion2-10/+5
Type: improvement Change-Id: I6cf7aaf42e8c0738d5b677fa66c99f071c1526bb Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-02-05http: confirm postponed connection closeMatus Fabian1-1/+4
Type: fix Change-Id: I43a221ac2be9bbea885116c12d1991cf4477fae8 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-02-05cnat: fix interface map type unformatBenoît Ganne1-2/+3
C enum is not guaranteed to be 8-bit (and in general it is not, it's 32-bits by default in GCC for example). Type: fix Change-Id: I6a10f85991ae1903fb9f4aeebfcfdf5315200903 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2025-02-03http: buf_fifo_get_segs minor fixMatus Fabian1-1/+1
validate segs vector to (_n_segs - 1) Type: fix Change-Id: I721cc438e4c9610760a1f40b6355834bbd389b20 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-01-31http: http_app_tx_callback check if conn closedMatus Fabian1-0/+7
Type: fix Change-Id: Ic7b9819226742b0f1153ec2794ae80556c49dad2 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-01-31ipsec: store outbound seq as u64Damjan Marion1-4/+1
Type: improvement Change-Id: Id7717de00558ab90dbd312a58becd58d008397ea Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-01-30hsa: http connect proxy fixMatus Fabian1-1/+2
Type: fix Change-Id: I4fb493c98ed6d59d10fad0e5ef73b6f80f6b232e Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-01-30ipsec: add SA inbound and outbound runtime dataDamjan Marion2-11/+25
Type: improvement Change-Id: I0f949b67fb5b65fa1a79ffb7777d654693f0de6a Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-01-29http: conn state consistency with other transportsFlorin Coras1-6/+6
Maintain transport state formatting consistency, i.e., upper case states. If we revisit, we should revisit all transports. Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I143e13aa5e8525bb276db9b4ec0e0baa153d1b44
2025-01-29sflow: replace VAPI with DLAPIPim van Pelt9-345/+75
Remove the requirement to coordinate between linux-cp and sflow at build time via cmake. Also, remove 350 lines of awkward thread-forking VAPI code. Replace it with a dynamically retrieved function from the linux-cp plugin, called lcp_itf_pair_get_vif_index_by_phy(). Remove build inhibit based on Netlink headers, and only inhibit the build for FreeBSD. This plugin can now run regardless of Linux CP being built or loaded, and then return VPP ifIndex numbers instead. Also, fix a flaky test where non-ephemeral source ports throw off packet captures. Type: improvement Change-Id: I5486742fa0e343e382630a22672a05fe3dcf7836 Signed-off-by: neil.mckee@inmon.com Signed-off-by: pim@ipng.nl
2025-01-27armada: fix DSA packet grouping issue on rxDamjan Marion1-0/+1
Type: fix Change-Id: I9a56267f6e016827971744c932aa5da36c92c8f0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-01-23http_static: introduce max-body-size parameterSemir Sionek5-8/+187
Introduce the max-body-size parameter to put a limit on how big of a POST request can the static server take (and how big of a memory allocation that causes). Type: improvement Change-Id: I93cdeaf38dabe2850665e92bedbaa0545c375214 Signed-off-by: Semir Sionek <ssionek@cisco.com>
2025-01-23http: move header serialization to http transportMatus Fabian12-272/+289
Apps called http_serialize_headers, which creates plain text buffer, this is now hidden in http transport layer and apps pass headers in generic form, so they can be encoded based on http version. Type: improvement Change-Id: Ie4fa0516cd3406d60f956751c8ee7ab40e633fa4 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-01-23sflow: Update build rulesPim van Pelt6-4/+32
1) we rely on Netlink PSAMPLE and USERSOCK make sure we have headers 2) sflow plugin is not available on FreeBSD, due to Netlink features 3) preprocessor flag SFLOW_USE_VAPI controls whether the sflow plugin will attempt to contact the linux-cp plugin using the binary VAPI. It has to be a preprocessor flag so it can suppress the "#include" statements that define that linux-cp api, because those include files will be missing if linux-cp is excluded from the build. The "excluded_plugins" list can be used with: make VPP_EXCLUDED_PLUGINS=linux-cp build build-release Type: fix Fixes: e40f8a90bb0c39986c198fca8ad9b0b3c1658401 Change-Id: If44929d285d27db7862910ecb4ec11ddd4591fd2 Signed-off-by: pim@ipng.nl
2025-01-22session: cleanup io event functionsFlorin Coras7-30/+19
Program session events using session handles instead of fifos. Type: improvement Change-Id: I69063190598c2b4dc1104f2938f27c6cd057341a Signed-off-by: Florin Coras <fcoras@cisco.com>
2025-01-22session svm: track session indices in private structFlorin Coras4-6/+10
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I898baf3e2a7586124f4678eaeaa4516db7186f8f
2025-01-22http: case-insensitive header table searchMatus Fabian5-45/+315
header names are case-insensitive, see RFC9110 section 5.1 Type: improvement Change-Id: Ic5ef5615397537ba48fc56b18c882fa838c54751 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-01-22snort: validate sw_if_index in attach/detach api handlersDave Wallace1-9/+22
- fixes crash in vpp-debug-verify-master-ubuntu2204-x86_64 CI job in test_snort_06_detach_if testcase - fix similar logic in attach handler - verify snort direction in attach api message - add tests verifying attribute validation in attach testcase Type: fix Fixes: 102575492c9199259aa5e468f21b46936d7a1ac4 Change-Id: I96fbeb0a7b84f2f238df15b20476ed4086251471 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2025-01-21http: target parsing improvementMatus Fabian11-498/+575
Make it http version neutral, since h2 and h3 use 3 pseudo-headers. Added scheme, target_authority_offset and target_authority_len to http_msg_data_t, target_form removed. Http transport now validate if correct form of request target is received, so now we are also able to receive requests with absolute-form target in server apps like http_static. As bonus, unformat is not longer used to parse IP addresses. Type: improvement Change-Id: I369f77e2639c43cc1244d91f883c526eb88af63e Signed-off-by: Matus Fabian <matfabia@cisco.com>
2025-01-21dpdk: enable VLAN offload configuration for the iavf PMD driverKai Ji1-0/+1
Sets the program_vlans = 1 flag, enabling the DPDK sub-interface function to configure VLAN offload settings on Intel iavf/i40e Ethernet devices from VPP. Type: improvement Change-Id: I030af0c93b13cf80772982b243861f9c303f7e09 Signed-off-by: Kai Ji <kai.ji@intel.com>
2025-01-21crypto: add async algo macros for ctr sha2Nithinsen Kaithakadan2-1/+31
Add async crypto algo macros for AES_CTR SHA256/384/512. Add support for these in dev octeon plugin. Type: feature Signed-off-by: Nithinsen Kaithakadan <nkaithakadan@marvell.com> Change-Id: I22e81c6ac5a549b2f12556b8c79257a20a5bd47d
2025-01-21octeon: add direct mode changes in crypto datapathNithinsen Kaithakadan2-48/+269
This patch introduces support for direct mode crypto submission on CPT. For multi-segmented buffers, scatter-gather submission mode will be utilized. Type: feature Signed-off-by: Nithinsen Kaithakadan <nkaithakadan@marvell.com> Change-Id: Idb99e6c9ea49028e11d3bf530c9559719c988252
2025-01-21octeon: rework octeon crypto frameworkNithinsen Kaithakadan2-61/+60
Added changes in the pending queue structure to incorporate each packet into a single inflight request entry. Type: improvement Change-Id: I18729e01b5f73b128ae245a1a8f77a4f97065026 Signed-off-by: Nithinsen Kaithakadan <nkaithakadan@marvell.com>
2025-01-21octeon: fix for async crypto session initNithinsen Kaithakadan2-10/+16
This patch resolves segmentation fault that occurs during the initialization of an asynchronous crypto session when processing the first packet in the data path. And resolves compilation failures. Type: fix Change-Id: I60e4060c65741a445fe02f01b3c94f627534ecef Signed-off-by: Nithinsen Kaithakadan <nkaithakadan@marvell.com>
2025-01-21dpdk: bump to DPDK 24.11.1Vladimir Smirnov5-13/+37
Bump DPDK version to 24.11.1. Reason behind going for 24.11.1 is that 24.11 was affected by CVE-2024-11614 which was fixed in the point release. Type: feature Change-Id: Ic49a35fe7ac782679df39145e3adfd06f047b031 Signed-off-by: Vladimir Smirnov <civil.over@gmail.com>
2025-01-20tls: async event handling enhancementVarun Rapelly3-599/+345
This patch updates async processing logic by adding async event handlers separately for handshake, read and write events. Type: improvement Change-Id: I6366689fec7e29fa9850cb22e20ab3659bf5245a Signed-off-by: Varun Rapelly <vrapelly@marvell.com>
2025-01-20sflow: initial checkinPim van Pelt16-0/+3562
This is an sFlow dataplane plugin that can sample 1-in-N packets from device-input, copying them to a FIFO queue and servicing that queue from a main process which formats them as Netlink PSAMPLEs, to be picked up by a popular sidecar agent called host-sflow. Type: feature Change-Id: Ic03456472e53309678f182dc8f74d3c81fb619e6 Signed-off-by: neil.mckee@inmon.com Signed-off-by: pim@ipng.nl
2025-01-20af_packet: worker thread call vlib_log coredumpfenglei1-3/+14
Type: fix -When deleting a veth pair interface in linux, vpp's call to af_packet_fd_error will cause it to hang because it's a worker thread. Change-Id: I3dc9018e7e492ccbdf0f59381f9bbbfd5c1c88a5 Signed-off-by: fenglei <1579628578@qq.com>
2025-01-17snort: support multiple instances per interfaceAgathiyan Bragadeesh5-153/+531
Implements load balancing between snort instances via flow hash. New CLI commands have been made to support these changes: snort attach instance <name1> [instance <name2> ... ] interface <ifname> [input|output|inout] snort attach all-instances interface <ifname> [input|output|inout] snort detach instance <name1> interface <ifname> snort detach all-instances interface <ifname> The output of "show snort interfaces" has an extra column to show the direction of each attachment: interface instances direction Ethernet0: snort1 inout snort2 inout snort3 inout Ethernet1: snort1 input snort3 output To maintain backwards compatibility for the snort api, the snort_interface_get api endpoint only returns one of the attached instances and the snort_interface_detach endpoint detaches all attached instances. Type: improvement Signed-off-by: Agathiyan Bragadeesh <agathiyan.bragadeesh2@arm.com> Change-Id: I6b7c26c203496d6a1dba244620907f28c04bb478
2025-01-17linux-cp: add the drain backArtem Glazychev1-0/+10
Type: fix Change-Id: I60338a8c901cf5baf4974ce572f17e70116877df Signed-off-by: Artem Glazychev <glazychev@mts.ru>
2025-01-16http: fix sending error responses to rejected requests by server appsSemir Sionek1-7/+18
Plugins such as http_static sometimes reject requests without reading all of the body. http_static in that case sends an error response and closes the connection. But the error response cannot go out due to the connection state being HTTP_REQ_STATE_TRANSPORT_IO_MORE_DATA. With this change, we make http_app_tx_callback give a response like that special treatment, allowing it to go out. Type: fix Change-Id: I72ae74b869183f5d5921837f6ac9c52f0efc7598 Signed-off-by: Semir Sionek <ssionek@cisco.com>
2025-01-16linux-cp: fix segfault while receiving nl messagesArtem Glazychev1-11/+2
- check nl socket before receiving messages - we don't need extra callback after adding an lcp pair because we start draining messages (due to epoll) right after opening socket Type: fix Change-Id: I0ecb03b758f066662015fd6c6b9d3c48cb520c0d Signed-off-by: Artem Glazychev <glazychev@mts.ru>
2025-01-16crypto: combine sync and async algos and opsDamjan Marion3-38/+19
Type: improvement Change-Id: I4d507b105e5b5ba7dd68d373c7f1ab156a9fc9f1 Signed-off-by: Damjan Marion <damarion@cisco.com>
2025-01-15octeon: add compatibility checkMonendra Singh Kushwaha1-0/+9
This patch adds compatibility check for OCTEON model in plugin. Type: refactor Change-Id: Id583a2f42b8f66f7e045f6cf9176125680e9a16f Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2025-01-15octeon: update octeon roc versionMonendra Singh Kushwaha1-4/+5
Type: feature Change-Id: I9f3044aec29a611d4735001ff1943772b7035711 Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
2025-01-14http_static: read body only for POST requestsSemir Sionek1-2/+2
Type: improvement Change-Id: Id863f59d04d8e6f22c886e079367d06908b8b24b Signed-off-by: Semir Sionek <ssionek@cisco.com>