History log of /freebsd-current/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
Revision Date Author Comments
# b94ef2a3 12-Nov-2023 Konstantin Belousov <kib@FreeBSD.org>

mlx5ib: adjust for the mlx5_create_auto_grouped_flow_table() interface change

Sponsored by: NVidia networking
MFC after: 1 week


# 76ed99ed 18-Feb-2023 Mark Bloch <mbloch@nvidia.com>

mlx5: Use software enum in APIs instead of PRM

Users of the steering APIs shouldn't use the PRM directly.
Create an software enum to be used instead.

Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Sponsored by: NVidia networking
MFC after: 1 week


# cb054a49 19-Feb-2023 Mark Bloch <mbloch@nvidia.com>

mlx5: Refactor flow actions into a struct

Create a struct to hold flow actions to be used when creating
a flow rule.

Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Sponsored by: NVidia networking
MFC after: 1 week


# 3b173281 28-Oct-2023 Ka Ho Ng <khng@FreeBSD.org>

mlx5ib: Fix ethertype to be ETH_P_IPV6

Sponsored by: Juniper Networks, Inc.
MFC after: 7 days
Reviewed by: ae, kib, zlei
Differential Revision: https://reviews.freebsd.org/D42184


# 95ee2897 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# b0b87d91 18-Apr-2023 Hans Petter Selasky <hselasky@FreeBSD.org>

mlx5: Make mlx5_del_flow_rule() NULL safe.

This change factors out repeated NULL checks.

No functional change intended.

MFC after: 1 week
Sponsored by: NVIDIA Networking


# da4068c4 05-Apr-2023 Zhenlei Huang <zlei@FreeBSD.org>

mlx5ib(4): Mark driver knows net epoch

This driver has already been EPOCH(9) aware since e48813009c6a.

Reviewed by: hselasky
Tested by: hselasky
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D39406


# 70510800 21-Feb-2023 Justin Hibbits <jhibbits@FreeBSD.org>

mlx5: Enter network epoch when using if_foreach()

Summary: IFNET_RLOCK() is not sufficient, the epoch needs entered.

Reviewed by: hselasky
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D38711


# 5dc00f00 19-Sep-2022 Justin Hibbits <jhibbits@FreeBSD.org>

Mechanically convert mlx5en(4) to IfAPI

Reviewed by: zlei
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D38595


# 91c8ffd7 21-Feb-2022 Hans Petter Selasky <hselasky@FreeBSD.org>

mlx5ib: Add support for NDR link speed.

The IBTA specification has new speed - NDR. That speed supports signaling
rate of 100Gb. mlx5 IB driver translates link modes reported by ConnectX
device to IB speed and width. Added translation of new 100Gb, 200Gb and
400Gb link modes to NDR IB type and width of x1, x2 or x4 respectively.

Linux commits:
f946e45f59ef01ff54ffb3b1eba3a8e7915e7326

MFC after: 1 week
Sponsored by: NVIDIA Networking


# a30f7170 10-Feb-2022 Hans Petter Selasky <hselasky@FreeBSD.org>

mlx5ib: Add support for parsing udata in mlx5_ib_create_flow().

Backport from Linux 5.17 (drivers/infiniband/hw/mlx5/fs.c)

This fixes creating flow rules from user-space after the
kernel space update based on Linux 5.7-rc1 .

Sponsored by: NVIDIA Networking


# ea00d7e8 01-Feb-2022 Hans Petter Selasky <hselasky@FreeBSD.org>

mlx5: Add raw ethernet local loopback support.

Currently, unicast/multicast loopback raw ethernet (non-RDMA) packets
are sent back to the vport. A unicast loopback packet is the packet
with destination MAC address the same as the source MAC address. For
multicast, the destination MAC address is in the vport's multicast
filter list.

Moreover, the local loopback is not needed if there is one or none
user space context.

After this patch, the raw ethernet unicast and multicast local
loopback are disabled by default. When there is more than one user
space context, the local loopback is enabled.

Note that when local loopback is disabled, raw ethernet packets are
not looped back to the vport and are forwarded to the next routing
level (eswitch, or multihost switch, or out to the wire depending on
the configuration).

Linux commits:
c85023e153e3824661d07307138fdeff41f6d86a
8978cc921fc7fad3f4d6f91f1da01352aeeeff25

MFC after: 1 week
Sponsored by: NVIDIA Networking


# 028130b8 14-Jun-2021 Konstantin Belousov <konstantinb@nvidia.com>

mlx5ib: idiomatic use of preprocessor, in particular paths

MFC after: 1 week
Sponsored by: NVIDIA Networking


# 70600979 14-Jun-2021 Konstantin Belousov <konstantinb@nvidia.com>

mlx5ib: normalize use of the opt_*.h files

MFC after: 1 week
Sponsored by: NVIDIA Networking


# d2cbfbc5 16-Jun-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

mlx5/mlx4: Bump driver version to 3.7

While at it only output driver version to dmesg(8) when hardware is present.

Differential Revision: https://reviews.freebsd.org/D29100
MFC after: 1 week
Reviewed by: kib and markj
Sponsored by: NVIDIA Networking


# 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 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


# 4238b4a7 16-Jun-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

ibcore: Introduce ib_port_phys_state enum.

In order to improve readability, add ib_port_phys_state enum to replace
the use of magic numbers.

Linux commit:
72a7720fca37fec0daf295923f17ac5d88a613e1

MFC after: 1 week
Reviewed by: kib
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 626cb01d 16-Jun-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

mlx5ib: Support RAW Ethernet when RoCE is disabled in mlx5ib(4)

On some environments, such as certain SRIOV VF configurations, RoCE is
not supported for mlx5 Ethernet ports. Currently, the driver will not
open IB device on that port.

This is problematic, since we do want user-space RAW Ethernet (RAW_PACKET
QPs) functionality to remain in place. For that end, enhance the relevant
driver flows such that we do create a device instance in that case.

Linux commit:
ca5b91d63192ceaa41a6145f8c923debb64c71fa

MFC after: 1 week
Reviewed by: kib
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 1411f52f 04-Jun-2021 Bjoern A. Zeeb <bz@FreeBSD.org>

mlx4/OFED: replace the struct net_device with struct ifnet

Given all the code does operate on struct ifnet, the last step in this
longer series of changes now is to rename struct net_device to
struct ifnet (that is what it was defined to in the LinuxKPi code).
While mlx4 and OFED are "shared" code the decision was made years ago
to not write it based on the netdevice KPI but the native ifnet KPI
for most of it. This commit simply spells this out and with that
frees "struct netdevice" to be re-done on LinuxKPI to become a more
native/mixed implementation over time as needed by, e.g., wireless
drivers.

Sponsored by: The FreeBSD Foundation
MFC after: 10 days
Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D30515


# 4ded022d 30-Mar-2021 Bjoern A. Zeeb <bz@FreeBSD.org>

mlx5: remove dependency on ifnet specifics of linux/netdevice.h

Rename the last remaining bits depending on ifnet from linux/netdevice.h
instead of using the compat macros. This helps clearing up
struct netdevice being struct ifnet from linux/netdevice.h.

Sponsored-by: The FreeBSD Foundation
MFC-after: 2 weeks
Reviewed-by: hselasky, kib
X-D-R: D29366
Differential Revision: https://reviews.freebsd.org/D29497


# e47a6525 14-Jan-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

Add missing init of new fields after new UAR API was introduced
by f8f5b459d21e in mlx5ib.

MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 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 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


# 9a47ae04 08-Jan-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

Bump driver versions for mlx5en(4) and mlx4en(4).

MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# f34f0a65 16-Nov-2020 Hans Petter Selasky <hselasky@FreeBSD.org>

Report EQE data upon CQ completion in mlx5core.

Report EQE data upon CQ completion to let upper layers use this data.

Linux commit:
4e0e2ea1886afe8c001971ff767f6670312a9b04

MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 1866c98e 06-Jul-2020 Hans Petter Selasky <hselasky@FreeBSD.org>

Infiniband clients must be attached and detached in a specific order in ibcore.

Currently the linking order of the infiniband, IB, modules decide in which
order the clients are attached and detached. For example one IB client may
use resources from another IB client. This can lead to a potential deadlock
at shutdown. For example if the ipoib is unregistered after the ib_multicast
client is detached, then if ipoib is using multicast addresses a deadlock may
happen, because ib_multicast will wait for all its resources to be freed before
returning from the remove method.

Fix this by using module_xxx_order() instead of module_xxx().

Differential Revision: https://reviews.freebsd.org/D23973
MFC after: 1 week
Sponsored by: Mellanox Technologies


# 96dad2b7 04-Mar-2020 Konstantin Belousov <kib@FreeBSD.org>

mlx5en: Support 50GBase-KR4 media type in mlx5en driver.

Submitted by: Adam Peace <adam.e.peace@gmail.com>
Reviewed by: hselasky
Sponsored by: Mellanox Technologies
MFC after: 1 week


# d3d47408 02-Oct-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Bump driver version for mlx5core, mlx5en(4) and mlx5ib(4).

MFC after: 3 days
Sponsored by: Mellanox Technologies


# c788dcea 02-Oct-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix reported max SGE calculation in mlx5ib.

Add the 512 bytes limit of RDMA READ and the size of remote address to the max
SGE calculation.

Submitted by: slavash@
Linux commit: 288c01b746aa
MFC after: 3 days
Sponsored by: Mellanox Technologies


# cf59f7e1 08-May-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Bump the Mellanox driver version numbers and the FreeBSD version number.

MFC after: 3 days
Sponsored by: Mellanox Technologies


# ebf7e777 08-May-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Always return success for RoCE modify port in mlx5ib.

CM layer calls ib_modify_port() regardless of the link layer.

For the Ethernet ports, qkey violation and Port capabilities
are meaningless. Therefore, always return success for ib_modify_port
calls on the Ethernet ports.

Linux Commit:
ec2558796d25e6024071b6bcb8e11392538d57bf

Submitted by: slavash@
MFC after: 3 days
Sponsored by: Mellanox Technologies


# 86a39779 08-May-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Add support for new rates to mlx5ib.

Submitted by: slavash@
MFC after: 3 days
Sponsored by: Mellanox Technologies


# ac87880a 08-May-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Add support for 200Gb ethernet speeds to mlx5core.

Submitted by: slavash@
MFC after: 3 days
Sponsored by: Mellanox Technologies


# ffadb62f 08-May-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Remove unused module parameter in mlx5ib.

MFC after: 3 days
Sponsored by: Mellanox Technologies


# a3a31fde 08-May-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Import Linux code to implement mlx5_ib_disassociate_ucontext() in mlx5ib.

Submitted by: kib@
MFC after: 3 days
Sponsored by: Mellanox Technologies


# 0f3b263d 05-Dec-2018 Slava Shwartsman <slavash@FreeBSD.org>

mlx4/mlx5: Updated driver version to 3.5.0

Approved by: hselasky (mentor)
MFC after: 1 week
Sponsored by: Mellanox Technologies


# 67db6873 05-Dec-2018 Slava Shwartsman <slavash@FreeBSD.org>

mlx5ib: Set default active width and speed when querying port.

Make sure the active width and speed is set in case the
translate_eth_proto_oper() function doesn't recognize the
current port operation mask.

Linux commit:
7672ed33c4c15dbe9d56880683baaba4227cf940

Submitted by: hselasky@
Approved by: hselasky (mentor)
MFC after: 1 week
Sponsored by: Mellanox Technologies


# c9e9b5c1 05-Dec-2018 Slava Shwartsman <slavash@FreeBSD.org>

mlx5ib: Fix sign extension in mlx5_ib_query_device

"fw_rev_min(dev->mdev)" with type "unsigned short" (16 bits, unsigned) is
promoted in "fw_rev_min(dev->mdev) << 16" to type "int" (32 bits, signed), then
sign-extended to type "unsigned long" (64 bits, unsigned). If
"fw_rev_min(dev->mdev) << 16" is greater than 0x7FFFFFFF, the upper bits of the
result will all be 1.

Approved by: hselasky (mentor)
MFC after: 1 week
Sponsored by: Mellanox Technologies


# 31c3f648 05-Dec-2018 Slava Shwartsman <slavash@FreeBSD.org>

mlx5: Fix driver version location

Driver description should be set by core and not by the Ethernet driver.

Approved by: hselasky (mentor)
MFC after: 1 week
Sponsored by: Mellanox Technologies


# 843a89d3 05-Dec-2018 Slava Shwartsman <slavash@FreeBSD.org>

mlx5: Raise fatal IB event when sys error occurs

All other mlx5_events report the port number as 1 based, which is how FW
reports it in the port event EQE. Reporting 0 for this event causes
mlx5_ib to not raise a fatal event notification to registered clients
due to a seemingly invalid port.

All switch cases in mlx5_ib_event that go through the port check are
supposed to set the port now, so just do it once at variable
declaration.

Linux commit:
aba462134634b502d720e15b23154f21cfa277e5

Approved by: hselasky (mentor)
MFC after: 1 week
Sponsored by: Mellanox Technologies


# 18450a3b 17-Jul-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Update version information for the mlx5ib module.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# 62bfa774 17-Jul-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Don't pass unsupported events to ibcore from mlx5ib.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# 14a1b9bd 17-Jul-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Use static device naming instead of dynamic one in mlx5ib.

When resetting mlx5core instances it can happen that the order of attach and
detach for mlx5ib instances is changed. Take the unit number for mlx5_%d from
the parent PCI device, similarly to what is done in mlx5en(4), so that there
is a direct relationship between mce<N> and mlx5_<N>.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# ed0cee0b 17-Jul-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Implement support for Differentiated Service Code Point, DSCP, in mlx5en(4).

The DSCP feature is controlled using a set of sysctl(8) fields under
the qos sysctl directory entry for mlx5en(4).

For Routable RoCE QPs, the DSCP should be set in the QP's address path.
The DSCP's value is derived from the traffic class.

Linux commit:
ed88451e1f2d400fd6a743d0a481631cf9f97550

MFC after: 1 week
Sponsored by: Mellanox Technologies


# f4546fa3 17-Jul-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Add support for prio-tagged traffic for RDMA in ibcore.

When receiving a PCP change all GID entries are reloaded.
This ensures the relevant GID entries use prio tagging,
by setting VLAN present and VLAN ID to zero.

The priority for prio tagged traffic is set using the regular
rdma_set_service_type() function.

Fake the real network device to have a VLAN ID of zero
when prio tagging is enabled. This is logic is hidden inside
the rdma_vlan_dev_vlan_id() function which must always be used
to retrieve the VLAN ID throughout all of ibcore and the
infiniband network drivers.

The VLAN presence information then propagates through all
of ibcore and so incoming connections will have the VLAN
bit set. The incoming VLAN ID is then checked against the
return value of rdma_vlan_dev_vlan_id().

MFC after: 1 week
Sponsored by: Mellanox Technologies


# 4f6c66cc 23-May-2018 Matt Macy <mmacy@FreeBSD.org>

UDP: further performance improvements on tx

Cumulative throughput while running 64
netperf -H $DUT -t UDP_STREAM -- -m 1
on a 2x8x2 SKL went from 1.1Mpps to 2.5Mpps

Single stream throughput increases from 910kpps to 1.18Mpps

Baseline:
https://people.freebsd.org/~mmacy/2018.05.11/udpsender2.svg

- Protect read access to global ifnet list with epoch
https://people.freebsd.org/~mmacy/2018.05.11/udpsender3.svg

- Protect short lived ifaddr references with epoch
https://people.freebsd.org/~mmacy/2018.05.11/udpsender4.svg

- Convert if_afdata read lock path to epoch
https://people.freebsd.org/~mmacy/2018.05.11/udpsender5.svg

A fix for the inpcbhash contention is pending sufficient time
on a canary at LLNW.

Reviewed by: gallatin
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D15409


# 118063fb 08-Mar-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Add support for explicit congestion notification, ECN, to mlx5ib(4).

ECN configuration and statistics is available through a set of sysctl(8)
nodes under sys.class.infiniband.mlx5_X.cong . The ECN configuration
nodes can also be used as loader tunables.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# d9142151 07-Mar-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Implement missing query for current port rate in mlx5ib(4).

- Factor out port speed definitions into new port.h header file,
similarly as done in Linux upstream.
- Correct two existing port speed definitions in mlx5en according to
Linux upstream.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# 2f2d3c0c 07-Mar-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Disable unsupported disassociate ucontext functionality in mlx5ib(4).

MFC after: 1 week
Sponsored by: Mellanox Technologies


# 1456d97c 05-Mar-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

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


# c3125bc5 23-Nov-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Compile fixes for 32-bit architectures.

Sponsored by: Mellanox Technologies


# 8e6e287f 10-Nov-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Update mlx5ib(4) to match Linux 4.9 and the new ibcore APIs.

Sponsored by: Mellanox Technologies


# d05554bb 20-Oct-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

The remote DMA TCP portspace selector, RDMA_PS_TCP, is used for both
iWarp and RoCE in ibcore. The selection of RDMA_PS_TCP can not be used
to indicate iWarp protocol use. Backport the proper IB device
capabilities from Linux upstream to distinguish between iWarp and
RoCE. Only allocate the additional socket required for iWarp for RDMA
IDs when at least one iWarp device present. This resolves
interopability issues between iWarp and RoCE in ibcore

Reviewed by: np @
Differential Revision: https://reviews.freebsd.org/D12563
Sponsored by: Mellanox Technologies
MFC after: 3 days


# 3cd4c11a 09-Oct-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Use common rdma_ip2gid() function instead of custom mlx5_ip2gid() one.

Sponsored by: Mellanox Technologies
MFC after: 1 week


# 8ac4c959 24-Aug-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Compile fixes for LINT on 32-bit platforms.

MFC after: 2 weeks
Sponsored by: Mellanox Technologies


# 12515907 22-Aug-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Add new mlx5ib(4) driver to the kernel source tree which supports
Remote DMA over Converged Ethernet, RoCE, for the ConnectX-4 series of
PCI express network cards.

There is currently no user-space support and this driver only supports
kernel side non-routable RoCE V1. The krping kernel module can be used
to test this driver. Full user-space support including RoCE V2 will be
added as part of the ongoing upgrade to ibcore from Linux 4.9. Otherwise
this driver is feature equivalent to mlx4ib(4). The mlx5ib(4) kernel
module will only be built when WITH_OFED=YES is specified.

MFC after: 2 weeks
Sponsored by: Mellanox Technologies