mlx5en: Implement support for internal queues, IQ.Internal send queues are regular sendqueues which are reserved for WQE commandstowards the hardware and firmware. These queues typically carry res
mlx5en: Implement support for internal queues, IQ.Internal send queues are regular sendqueues which are reserved for WQE commandstowards the hardware and firmware. These queues typically carry resyncinformation for ongoing TLS RX connections and when changing schedule queuesfor rate limited connections.The internal queue, IQ, code is more or less a stripped down copyof the existing SQ managing code with exception of:1) An optional single segment memory buffer which can be read or written as a whole by the hardware, may be provided.2) An optional completion callback for all transmit operations, may be provided.3) Does not support mbufs.Sponsored by: NVIDIA Networking(cherry picked from commit 694263572f1bdf545199fcfb0853b93eb0dd0644)
show more ...
Introduce LINUXKPI_GENSRCS.Centralize the list of generated files required by linuxkpi consumers,into the common variable. This way, consumers that use the variableare insulated from possible ch
Introduce LINUXKPI_GENSRCS.Centralize the list of generated files required by linuxkpi consumers,into the common variable. This way, consumers that use the variableare insulated from possible changes in the list.Reviewed by: hselasky, impSponsored by: Mellanox TechnologiesMFC after: 1 weekDifferential revision: https://reviews.freebsd.org/D24137
Add pci_iov_if.h header as a dependency for Linuxkpi consumers.Sponsored by: Mellanox TechnologiesMFC after: 2 weeks
Implement hardware TLS via send tags for mlx5en(4), which is supported byConnectX-6 DX.Currently TLS v1.2 and v1.3 with AES 128/256 crypto over TCP/IP (v4and v6) is supported.A per PCI device U
Implement hardware TLS via send tags for mlx5en(4), which is supported byConnectX-6 DX.Currently TLS v1.2 and v1.3 with AES 128/256 crypto over TCP/IP (v4and v6) is supported.A per PCI device UMA zone is used to manage the memory of the sendtags. To optimize performance some crypto contexts may be cached bythe UMA zone, until the UMA zone finishes the memory of the given sendtag.An asynchronous task is used manage setup of the send tags towards thefirmware. Most importantly setting the AES 128/256 bit pre-shared keysfor the crypto context.Updating the state of the AES crypto engine and encrypting data, isall done in the fast path. Each send tag tracks the TCP sequencenumber in order to detect non-contiguous blocks of data, which mayrequire a dump of prior unencrypted data, to restore the crypto stateprior to wire transmission.Statistics counters have been added to count the amount of TLS datatransmitted in total, and the amount of TLS data which has been dumpedprior to transmission. When non-contiguous TCP sequence numbers aredetected, the software needs to dump the beginning of the current TLSrecord up until the point of retransmission. All TLS counters utilizethe counter(9) API.In order to enable hardware TLS offload the following sysctls must be set:kern.ipc.mb_use_ext_pgs=1kern.ipc.tls.ifnet.permitted=1kern.ipc.tls.enable=1Sponsored by: Mellanox Technologies
Import Linux code to query/set buffer state in mlx5en(4).Submitted by: kib@MFC after: 3 daysSponsored by: Mellanox Technologies
Add support for Dynamic Interrupt Moderation, DIM, in mlx5en(4).Add support for DIM based on Linux,with some minor adaptions specific to FreeBSD.Linux commitf97c3dc3c0e8d23a5c4357d182afeef4c67f
Add support for Dynamic Interrupt Moderation, DIM, in mlx5en(4).Add support for DIM based on Linux,with some minor adaptions specific to FreeBSD.Linux commitf97c3dc3c0e8d23a5c4357d182afeef4c67f5c33MFC after: 3 daysSponsored by: Mellanox Technologies
mlx5fpga: Initial code import.Submitted by: kib@Approved by: hselasky (mentor)MFC after: 1 weekSponsored by: Mellanox Technologies
Add support for hardware rate limiting to mlx5en(4).The hardware rate limiting feature is enabled by the RATELIMIT kerneloption. Please refer to ifconfig(8) and the txrtlmt option and theSO_MAX_P
Add support for hardware rate limiting to mlx5en(4).The hardware rate limiting feature is enabled by the RATELIMIT kerneloption. Please refer to ifconfig(8) and the txrtlmt option and theSO_MAX_PACING_RATE set socket option for more information. Thisfeature is compatible with hardware transmit send offload, TSO.A set of sysctl(8) knobs under dev.mce.<N>.rate_limit are provided tosetup the ratelimit table and also to fine tune various rate limitrelated parameters.Sponsored by: Mellanox Technologies
sys/modules: normalize .CURDIR-relative paths to SRCTOPThis simplifies make output/logicTested with: `cd sys/modules; make ALL_MODULES=` on amd64MFC after: 1 monthSponsored by: Dell EMC Isilon
Switch to the new block based LRO input function for the mlx5endriver. This change significantly increases the overall RX aggregationratio for heavily loaded networks handling 10-80 thousand simult
Switch to the new block based LRO input function for the mlx5endriver. This change significantly increases the overall RX aggregationratio for heavily loaded networks handling 10-80 thousand simultaneousconnections.Remove the turbo LRO code and all references to it which has now beensuperceeded by the tcp_lro_queue_mbuf() function.Tested by: NetflixSponsored by: Mellanox TechnologiesMFC after: 1 week
Add full support for Receive Side Scaling, RSS, to the mlx5endriver. This includes binding all interrupt and worker threadsaccording to the RSS configuration, setting up correct Toeplitzhashing ke
Add full support for Receive Side Scaling, RSS, to the mlx5endriver. This includes binding all interrupt and worker threadsaccording to the RSS configuration, setting up correct Toeplitzhashing keys as given by RSS and setting the correct mbufhashtype for all received traffic.MFC after: 1 weekSponsored by: Mellanox TechnologiesDifferential Revision: https://reviews.freebsd.org/D4410
Add mlx5 and mlx5en driver(s) for ConnectX-4 and ConnectX-4LX cardsfrom Mellanox Technologies. The current driver supports ethernetspeeds up to and including 100 GBit/s. Infiniband support will be
Add mlx5 and mlx5en driver(s) for ConnectX-4 and ConnectX-4LX cardsfrom Mellanox Technologies. The current driver supports ethernetspeeds up to and including 100 GBit/s. Infiniband support will bedone later.The code added is not compiled by default, which will be done by aseparate commit.Sponsored by: Mellanox TechnologiesMFC after: 2 weeks