Revision tags: release/13.5.0, release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4 |
|
#
7560ed3a |
| 10-Feb-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
mlx5: assert CQE structure size
Reviewed by: Ariel Ehrenberg <aehrenberg@nvidia.com>, Slava Shwartsman <slavash@nvidia.com> Sponsored by: NVidia networking MFC after: 1 week
|
Revision tags: release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0, release/13.4.0 |
|
#
957e389c |
| 31-Aug-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
dev/mlx5: remove some duplicated macros from device.h
Sponsored by: NVidia networking
|
#
e23731db |
| 22-Jul-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
mlx5en: add IPSEC_OFFLOAD support
Right now, only IPv4 transport mode, with aes-gcm ESP, is supported. Driver also cooperates with NAT-T, and obeys socket policies, which makes IKEd like StrongSwan
mlx5en: add IPSEC_OFFLOAD support
Right now, only IPv4 transport mode, with aes-gcm ESP, is supported. Driver also cooperates with NAT-T, and obeys socket policies, which makes IKEd like StrongSwan working.
Sponsored by: NVIDIA networking
show more ...
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0, release/13.2.0 |
|
#
7b959396 |
| 04-Apr-2023 |
Patrisious Haddad <phaddad@nvidia.com> |
mlx5: Introduce new destination type TABLE_TYPE
This new destination type supports flow transition between different table types, e.g. from NIC_RX to RDMA_RX or from RDMA_TX to NIC_TX.
In addition
mlx5: Introduce new destination type TABLE_TYPE
This new destination type supports flow transition between different table types, e.g. from NIC_RX to RDMA_RX or from RDMA_TX to NIC_TX.
In addition add driver support to be able to query the capability for this new destination type.
Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> Sponsored by: NVidia networking MFC after: 1 week
show more ...
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
Revision tags: release/12.4.0, release/13.1.0 |
|
#
84d7b8e7 |
| 01-Feb-2022 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
mlx5en: Implement TLS RX support.
TLS RX support is modeled after TLS TX support. The basic structures and layouts are almost identical, except that the send tag created filters RX traffic and not T
mlx5en: Implement TLS RX support.
TLS RX support is modeled after TLS TX support. The basic structures and layouts are almost identical, except that the send tag created filters RX traffic and not TX traffic.
The TLS RX tag keeps track of past TLS records up to a certain limit, approximately 1 Gbyte of TCP data. TLS records of same length are joined into a single database record.
Regularly the HW is queried for TLS RX progress information. The TCP sequence number gotten from the HW is then matches against the database of TLS TCP sequence number records and lengths. If a match is found a static params WQE is queued on the IQ and the hardware should immediately resume decrypting TLS data until the next non-sequential TCP packet arrives.
Offloading TLS RX data is supported for untagged, prio-tagged, and regular VLAN traffic.
MFC after: 1 week Sponsored by: NVIDIA Networking
show more ...
|
#
2c0ade80 |
| 01-Feb-2022 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
mlx5: Implement flow steering helper functions for TCP sockets.
This change adds convenience functions to setup a flow steering rule based on a TCP socket. The helper function gets all the address i
mlx5: Implement flow steering helper functions for TCP sockets.
This change adds convenience functions to setup a flow steering rule based on a TCP socket. The helper function gets all the address information from the socket and returns a steering rule, to be used with HW TLS RX offload.
MFC after: 1 week Sponsored by: NVIDIA Networking
show more ...
|
#
266c81aa |
| 01-Feb-2022 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
mlx5/mlx5en: Add SQ remap support
Add support to map an SQ to a specific schedule queue using a special WQE as performance enhancement.
SQ remap operation is handled by a privileged internal queue,
mlx5/mlx5en: Add SQ remap support
Add support to map an SQ to a specific schedule queue using a special WQE as performance enhancement.
SQ remap operation is handled by a privileged internal queue, IQ, and the mapping is enabled from one rate to another.
The transition from paced to non-paced should however always go through FW.
MFC after: 1 week Sponsored by: NVIDIA Networking
show more ...
|
Revision tags: release/12.3.0 |
|
#
b633e08c |
| 16-Jun-2021 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
ibcore: Kernel space update based on Linux 5.7-rc1.
Overview:
This is the first stage of a RDMA stack upgrade introducing kernel changes only based on Linux 5.7-rc1.
This patch is based on about f
ibcore: Kernel space update based on Linux 5.7-rc1.
Overview:
This is the first stage of a RDMA stack upgrade introducing kernel changes only based on Linux 5.7-rc1.
This patch is based on about four main areas of work: - Update of the IB uobjects system: - The memory holding so-called AH, CQ, PD, SRQ and UCONTEXT objects is now managed by ibcore. This also require some changes in the kernel verbs API. The updated verbs changes are typically about initialize and deinitialize objects, and remove allocation and free of memory.
- Update of the uverbs IOCTL framework: - The parsing and handling of user-space commands has been completely refactored to integrate with the updated IB uobjects system.
- Various changes and updates to the generic uverbs interfaces in device drivers including the new uAPI surface.
- The mlx5_ib_devx.c in mlx5ib and related mlx5 core changes.
Dependencies:
- The mlx4ib driver code has been updated with the minimum changes needed.
- The mlx5ib driver code has been updated with the minimum changes needed including DV support.
Compatibility:
- All user-space facing APIs are backwards compatible after this change.
- All kernel-space facing RDMA APIs are backwards compatible after this change, with exception of ib_create_ah() and ib_destroy_ah() which takes a new flag.
- The "ib_device_ops" structure exist, but only contains the driver ID and some structure sizes.
Differences from Linux:
- Infiniband drivers must use the INIT_IB_DEVICE_OPS() macro to set the sizes needed for allocating various IB objects, when adding IB device instances.
Security:
- PRIV_NET_RAW is needed to use raw ethernet transmit features. - PRIV_DRIVER is needed to use other privileged operations.
Based on upstream Linux, Torvalds (5.7-rc1): 8632e9b5645bbc2331d21d892b0d6961c1a08429
MFC after: 1 week Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D31149 Sponsored by: NVIDIA Networking
show more ...
|
#
4f4739a7 |
| 16-Jun-2021 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
mlx5en: Add more error checks in the transmit path.
- Upon error more completion events than requested may be generated, particularly when using the completion event factor feature. - Count number
mlx5en: Add more error checks in the transmit path.
- Upon error more completion events than requested may be generated, particularly when using the completion event factor feature. - Count number of event errors in the transmit path.
MFC after: 1 week Reviewed by: kib Sponsored by: Mellanox Technologies // NVIDIA Networking
show more ...
|
Revision tags: release/13.0.0 |
|
#
c8bdc78b |
| 06-Apr-2021 |
Konstantin Belousov <konstantinb@nvidia.com> |
mlx5: cqe64: update the tunneled bit name with recent PRM
Reviewed by: hselasky Sponsored by: Mellanox Technologies/NVidia Networking MFC after: 1 week
|
#
f8f5b459 |
| 08-Jan-2021 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Update user access region, UAR, APIs in the core in mlx5core.
This change include several changes as listed below all related to UAR. UAR is a special PCI memory area where the so-called doorbell re
Update user access region, UAR, APIs in the core in mlx5core.
This change include several changes as listed below all related to UAR. UAR is a special PCI memory area where the so-called doorbell register and blue flame register live. Blue flame is a feature for sending small packets more efficiently via a PCI memory page, instead of using PCI DMA.
- All structures and functions named xxx_uuars were renamed into xxx_bfreg. - Remove partially implemented Blueflame support from mlx5en(4) and mlx5ib. - Implement blue flame register allocator. - Use blue flame register allocator in mlx5ib. - A common UAR page is now allocated by the core to support doorbell register writes for all of mlx5en and mlx5ib, instead of allocating one UAR per sendqueue. - Add support for DEVX query UAR. - Add support for 4K UAR for libmlx5.
Linux commits: 7c043e908a74ae0a935037cdd984d0cb89b2b970 2f5ff26478adaff5ed9b7ad4079d6a710b5f27e7 0b80c14f009758cefeed0edff4f9141957964211 30aa60b3bd12bd79b5324b7b595bd3446ab24b52 5fe9dec0d045437e48f112b8fa705197bd7bc3c0 0118717583cda6f4f36092853ad0345e8150b286 a6d51b68611e98f05042ada662aed5dbe3279c1e
MFC after: 1 week Sponsored by: Mellanox Technologies // NVIDIA Networking
show more ...
|
Revision tags: release/12.2.0, release/11.4.0 |
|
#
d0a40683 |
| 20-May-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
mlx5_core: add more port module event types to decode.
Reviewed by: hselasky Sponsored by: Mellanox Technologies MFC after: 3 days
|
#
6418350c |
| 20-May-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
mlx5_core: add "PMD type not enabled" port module event type.
Reviewed by: hselasky Sponsored by: Mellanox Technologies MFC after: 3 days
|
#
8982c800 |
| 18-Mar-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
mlx5: Add 'follow' vport state, relevant for VFs.
Reviewed by: hselasky Sponsored by: Mellanox Technologies MFC after: 2 weeks
|
#
7272f9cd |
| 06-Dec-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Implement hardware TLS via send tags for mlx5en(4), which is supported by ConnectX-6 DX.
Currently TLS v1.2 and v1.3 with AES 128/256 crypto over TCP/IP (v4 and v6) is supported.
A per PCI device U
Implement hardware TLS via send tags for mlx5en(4), which is supported by ConnectX-6 DX.
Currently TLS v1.2 and v1.3 with AES 128/256 crypto over TCP/IP (v4 and v6) is supported.
A per PCI device UMA zone is used to manage the memory of the send tags. To optimize performance some crypto contexts may be cached by the UMA zone, until the UMA zone finishes the memory of the given send tag.
An asynchronous task is used manage setup of the send tags towards the firmware. Most importantly setting the AES 128/256 bit pre-shared keys for the crypto context.
Updating the state of the AES crypto engine and encrypting data, is all done in the fast path. Each send tag tracks the TCP sequence number in order to detect non-contiguous blocks of data, which may require a dump of prior unencrypted data, to restore the crypto state prior to wire transmission.
Statistics counters have been added to count the amount of TLS data transmitted in total, and the amount of TLS data which has been dumped prior to transmission. When non-contiguous TCP sequence numbers are detected, the software needs to dump the beginning of the current TLS record up until the point of retransmission. All TLS counters utilize the counter(9) API.
In order to enable hardware TLS offload the following sysctls must be set: kern.ipc.mb_use_ext_pgs=1 kern.ipc.tls.ifnet.permitted=1 kern.ipc.tls.enable=1
Sponsored by: Mellanox Technologies
show more ...
|
#
04f1690b |
| 05-Dec-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Add basic support for TCP/IP based hardware TLS offload to mlx5core.
The hardware offload is primarily targeted for TLS v1.2 and v1.3, using AES 128/256 bit pre-shared keys. This patch adds all the
Add basic support for TCP/IP based hardware TLS offload to mlx5core.
The hardware offload is primarily targeted for TLS v1.2 and v1.3, using AES 128/256 bit pre-shared keys. This patch adds all the needed hardware structures, capabilites and firmware commands.
Sponsored by: Mellanox Technologies
show more ...
|
Revision tags: release/12.1.0 |
|
#
8b3bc70a |
| 08-Oct-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352764 through r353315.
|
#
59efbf79 |
| 02-Oct-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Wait for FW readiness before initializing command interface in mlx5core.
Before attempting to initialize the command interface we must wait till the fw_initializing bit is clear.
If we fail to meet
Wait for FW readiness before initializing command interface in mlx5core.
Before attempting to initialize the command interface we must wait till the fw_initializing bit is clear.
If we fail to meet this condition the hardware will drop our configuration, specifically the descriptors page address. This scenario can happen when the firmware is still executing an FLR flow and did not finish yet so the driver needs to wait for that to finish.
Linux commits: 6c780a0267b8 b8a92577f4be.
MFC after: 3 days Sponsored by: Mellanox Technologies
show more ...
|
#
96425f44 |
| 02-Oct-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Add sysctl(8) to get and set forward error correction, FEC, configuration in mlx5en(4).
MFC after: 3 days Sponsored by: Mellanox Technologies
|
#
111b57c3 |
| 02-Oct-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Add port module event software counters in mlx5core. While at it, fixup PME based on latest PRM defines.
Submitted by: slavash@ MFC after: 3 days Sponsored by: Mellanox Technologies
|
Revision tags: release/11.3.0 |
|
#
7648bc9f |
| 13-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @347527
Sponsored by: The FreeBSD Foundation
|
#
939c79a2 |
| 08-May-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Add Firmware Reset Level, MFRL, register accessors in mlx5core.
Submitted by: kib@ MFC after: 3 days Sponsored by: Mellanox Technologies
|
#
adb6fd50 |
| 08-May-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Implement reading PCI power status in mlx5core.
Implement a watchdog as part of the healtcare subsystem which reads the PCI power status during startup and upon the PCI power status change event and
Implement reading PCI power status in mlx5core.
Implement a watchdog as part of the healtcare subsystem which reads the PCI power status during startup and upon the PCI power status change event and store it into the core device structure. This value is then exported to user-space via a read-only SYSCTL. A dmesg print has been added to inform the admin about the PCI power status.
MFC after: 3 days Sponsored by: Mellanox Technologies
show more ...
|
#
9e3c0999 |
| 08-May-2019 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Enhance MCAM reg to allow query on access reg support in mlx5core.
Enhance MCAM to allow the driver to query which access regs are supported. For now, expose the regs needed for FW flashing.
Linux
Enhance MCAM reg to allow query on access reg support in mlx5core.
Enhance MCAM to allow the driver to query which access regs are supported. For now, expose the regs needed for FW flashing.
Linux commit: 0ab87743cc8c5bcd482daf71961ed5fc45349e01
Submitted by: slavash@ MFC after: 3 days Sponsored by: Mellanox Technologies
show more ...
|