aboutsummaryrefslogtreecommitdiff
path: root/sys/modules/mlx5en
Commit message (Collapse)AuthorAgeFilesLines
* Introduce LINUXKPI_GENSRCS.Konstantin Belousov2020-03-201-4/+3
| | | | | | | | | | | | | | Centralize the list of generated files required by linuxkpi consumers, into the common variable. This way, consumers that use the variable are insulated from possible changes in the list. Reviewed by: hselasky, imp Sponsored by: Mellanox Technologies MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24137 Notes: svn path=/head/; revision=359185
* Add pci_iov_if.h header as a dependency for Linuxkpi consumers.Konstantin Belousov2020-03-181-1/+1
| | | | | | | | Sponsored by: Mellanox Technologies MFC after: 2 weeks Notes: svn path=/head/; revision=359095
* Implement hardware TLS via send tags for mlx5en(4), which is supported byHans Petter Selasky2019-12-061-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=355446
* Import Linux code to query/set buffer state in mlx5en(4).Hans Petter Selasky2019-10-021-0/+1
| | | | | | | | | Submitted by: kib@ MFC after: 3 days Sponsored by: Mellanox Technologies Notes: svn path=/head/; revision=352981
* Add support for Dynamic Interrupt Moderation, DIM, in mlx5en(4).Hans Petter Selasky2019-05-081-0/+1
| | | | | | | | | | | | | | Add support for DIM based on Linux, with some minor adaptions specific to FreeBSD. Linux commit f97c3dc3c0e8d23a5c4357d182afeef4c67f5c33 MFC after: 3 days Sponsored by: Mellanox Technologies Notes: svn path=/head/; revision=347246
* mlx5fpga: Initial code import.Slava Shwartsman2018-12-051-0/+4
| | | | | | | | | | Submitted by: kib@ Approved by: hselasky (mentor) MFC after: 1 week Sponsored by: Mellanox Technologies Notes: svn path=/head/; revision=341572
* Add support for hardware rate limiting to mlx5en(4).Hans Petter Selasky2018-05-291-1/+2
| | | | | | | | | | | | | | | | The hardware rate limiting feature is enabled by the RATELIMIT kernel option. Please refer to ifconfig(8) and the txrtlmt option and the SO_MAX_PACING_RATE set socket option for more information. This feature is compatible with hardware transmit send offload, TSO. A set of sysctl(8) knobs under dev.mce.<N>.rate_limit are provided to setup the ratelimit table and also to fine tune various rate limit related parameters. Sponsored by: Mellanox Technologies Notes: svn path=/head/; revision=334332
* sys/modules: normalize .CURDIR-relative paths to SRCTOPEnji Cooper2017-03-041-3/+3
| | | | | | | | | | | This simplifies make output/logic Tested with: `cd sys/modules; make ALL_MODULES=` on amd64 MFC after: 1 month Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=314651
* Switch to the new block based LRO input function for the mlx5enHans Petter Selasky2016-08-081-5/+4
| | | | | | | | | | | | | | | | driver. This change significantly increases the overall RX aggregation ratio for heavily loaded networks handling 10-80 thousand simultaneous connections. Remove the turbo LRO code and all references to it which has now been superceeded by the tcp_lro_queue_mbuf() function. Tested by: Netflix Sponsored by: Mellanox Technologies MFC after: 1 week Notes: svn path=/head/; revision=303837
* Add full support for Receive Side Scaling, RSS, to the mlx5enHans Petter Selasky2015-12-071-1/+1
| | | | | | | | | | | | | | driver. This includes binding all interrupt and worker threads according to the RSS configuration, setting up correct Toeplitz hashing keys as given by RSS and setting the correct mbuf hashtype for all received traffic. MFC after: 1 week Sponsored by: Mellanox Technologies Differential Revision: https://reviews.freebsd.org/D4410 Notes: svn path=/head/; revision=291938
* Add mlx5 and mlx5en driver(s) for ConnectX-4 and ConnectX-4LX cardsHans Petter Selasky2015-11-101-0/+29
from Mellanox Technologies. The current driver supports ethernet speeds up to and including 100 GBit/s. Infiniband support will be done later. The code added is not compiled by default, which will be done by a separate commit. Sponsored by: Mellanox Technologies MFC after: 2 weeks Notes: svn path=/head/; revision=290650