freebsd-dev/sys/dev/cxgbe
Hans Petter Selasky 1456d97c01 Optimize ibcore RoCE address handle creation from user-space.
Creating a UD address handle from user-space or from the kernel-space,
when the link layer is ethernet, requires resolving the remote L3
address into a L2 address. Doing this from the kernel is easy because
the required ARP(IPv4) and ND6(IPv6) address resolving APIs are readily
available. In userspace such an interface does not exist and kernel
help is required.

It should be noted that in an IP-based GID environment, the GID itself
does not contain all the information needed to resolve the destination
IP address. For example information like VLAN ID and SCOPE ID, is not
part of the GID and must be fetched from the GID attributes. Therefore
a source GID should always be referred to as a GID index. Instead of
going through various racy steps to obtain information about the
GID attributes from user-space, this is now all done by the kernel.

This patch optimises the L3 to L2 address resolving using the existing
create address handle uverbs interface, retrieving back the L2 address
as an additional user-space information structure.

This commit combines the following Linux upstream commits:

IB/core: Let create_ah return extended response to user
IB/core: Change ib_resolve_eth_dmac to use it in create AH
IB/mlx5: Make create/destroy_ah available to userspace
IB/mlx5: Use kernel driver to help userspace create ah
IB/mlx5: Report that device has udata response in create_ah

MFC after:	1 week
Sponsored by:	Mellanox Technologies
2018-03-05 14:34:52 +00:00
..
common Bring in additional constants and message fields for TLS-related messages. 2018-02-22 02:02:31 +00:00
crypto Don't overflow the ipad[] array when clearing the remainder. 2018-02-26 22:17:27 +00:00
cudbg cxgbe(4): Fix unsafe mailbox access in cudbg. 2017-11-21 01:18:58 +00:00
cxgbei Use proper alignment constant for uma_zcreate(). 2017-04-24 08:44:51 +00:00
firmware cxgbe(4): Update T6, T5, and T4 firmwares to 1.16.63.0. 2017-10-07 17:24:23 +00:00
iw_cxgbe Optimize ibcore RoCE address handle creation from user-space. 2018-03-05 14:34:52 +00:00
tom Move DDP PCB state into a helper structure. 2018-02-22 01:50:30 +00:00
adapter.h Move ccr_aes_getdeckey() from ccr(4) to the cxgbe(4) driver. 2018-02-26 22:12:31 +00:00
if_cc.c cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will 2016-09-16 00:08:37 +00:00
if_ccv.c cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will 2016-09-16 00:08:37 +00:00
if_cxl.c
if_cxlv.c Chelsio T4/T5 VF driver. 2016-09-07 18:13:57 +00:00
offload.h Fetch TLS key parameters from the firmware. 2018-02-26 21:56:06 +00:00
osdep.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_if.m Use the port device name for the iov device for Chelsio T4/T5 cards. 2016-08-03 17:11:08 +00:00
t4_ioctl.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_iov.c cxgbe(4): Update the VF device ids too. This should have been part 2017-05-05 16:52:25 +00:00
t4_l2t.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_l2t.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_main.c Move #include for rijndael.h out of x86-specific region. 2018-02-27 17:51:58 +00:00
t4_mp_ring.c sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
t4_mp_ring.h
t4_netmap.c Catch up with the removal of nktr_slot_flags from upstream netmap. No 2018-02-20 21:42:45 +00:00
t4_sched.c cxgbe(4): Avoid a NULL dereference that would occur during module unload 2017-08-06 19:45:59 +00:00
t4_sge.c CXGBE: fix get_filt to be endianness-aware 2018-01-11 09:17:02 +00:00
t4_tracer.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
t4_vf.c cxgbe(4): Do not forward interrupts to queues with freelists. This 2017-12-22 19:10:19 +00:00