MFC r347325:Bump the Mellanox driver version numbers and the FreeBSD version number.Sponsored by: Mellanox Technologies
MFC r347258:Make sure to error out when arming the CQ fails in mlx4ib and mlx5ib.Sponsored by: Mellanox Technologies
MFC r341587:mlx4/mlx5: Updated driver version to 3.5.0Sponsored by: Mellanox Technologies
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
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 regularrdma_set_service_type() function.Fake the real network device to have a VLAN ID of zerowhen prio tagging is enabled. This is logic is hidden insidethe rdma_vlan_dev_vlan_id() function which must always be usedto retrieve the VLAN ID throughout all of ibcore and theinfiniband network drivers.The VLAN presence information then propagates through allof ibcore and so incoming connections will have the VLANbit set. The incoming VLAN ID is then checked against thereturn value of rdma_vlan_dev_vlan_id().MFC after: 1 weekSponsored by: Mellanox Technologies
show more ...
Bump version information in mlx4ib(4).MFC after: 1 weekSponsored by: Mellanox Technologies
The mlx4ib(4) should not be loaded before the ibcore is initialized.MFC after: 1 weekSponsored by: Mellanox Technologies
Disable unsupported disassociate ucontext functionality in mlx4ib(4).MFC after: 1 weekSponsored by: Mellanox Technologies
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
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 L3address into a L2 address. Doing this from the kernel is easy becausethe required ARP(IPv4) and ND6(IPv6) address resolving APIs are readilyavailable. In userspace such an interface does not exist and kernelhelp is required.It should be noted that in an IP-based GID environment, the GID itselfdoes not contain all the information needed to resolve the destinationIP address. For example information like VLAN ID and SCOPE ID, is notpart of the GID and must be fetched from the GID attributes. Thereforea source GID should always be referred to as a GID index. Instead ofgoing through various racy steps to obtain information about theGID attributes from user-space, this is now all done by the kernel.This patch optimises the L3 to L2 address resolving using the existingcreate address handle uverbs interface, retrieving back the L2 addressas an additional user-space information structure.This commit combines the following Linux upstream commits:IB/core: Let create_ah return extended response to userIB/core: Change ib_resolve_eth_dmac to use it in create AHIB/mlx5: Make create/destroy_ah available to userspaceIB/mlx5: Use kernel driver to help userspace create ahIB/mlx5: Report that device has udata response in create_ahMFC after: 1 weekSponsored by: Mellanox Technologies
sys/dev/mlx[45]: fix uses of 1 << 31Reviewed by: kib (D13858)
Update mlx4ib(4) to Linux 4.9.Sponsored by: Mellanox Technologies
The remote DMA TCP portspace selector, RDMA_PS_TCP, is used for bothiWarp and RoCE in ibcore. The selection of RDMA_PS_TCP can not be usedto indicate iWarp protocol use. Backport the proper IB devi
The remote DMA TCP portspace selector, RDMA_PS_TCP, is used for bothiWarp and RoCE in ibcore. The selection of RDMA_PS_TCP can not be usedto indicate iWarp protocol use. Backport the proper IB devicecapabilities from Linux upstream to distinguish between iWarp andRoCE. Only allocate the additional socket required for iWarp for RDMAIDs when at least one iWarp device present. This resolvesinteropability issues between iWarp and RoCE in ibcoreReviewed by: np @Differential Revision: https://reviews.freebsd.org/D12563Sponsored by: Mellanox TechnologiesMFC after: 3 days
Make sure on-stack buffer is properly aligned.Sponsored by: Mellanox TechnologiesMFC after: 1 week
Fix broken usage of the mlx4_read_clock() function: - return value has too small width - cycle_t is unsigned and cannot be less than zeroSponsored by: Mellanox TechnologiesMFC after: 1 week
Improve code readability and fix compilation error when using clang 4.x.Found by: emaste @MFC after: 1 weekSponsored by: Mellanox Technologies
mlx(4): remove date from log messageFurther to r310425, go one step further and just remove the date.Reviewed by: hselaskyDifferential Revision: https://reviews.freebsd.org/D8888
mlx: avoid use of __DATE__ to make build reproducibleReviewed by: hselaskyDifferential Revision: https://reviews.freebsd.org/D8886
After r310171, the kernel version of sscanf() has format string checkingenabled. This results in a -Werror warning in mlx4ib: sys/dev/mlx4/mlx4_ib/mlx4_ib_sysfs.c:90:22: error: format specifie
After r310171, the kernel version of sscanf() has format string checkingenabled. This results in a -Werror warning in mlx4ib: sys/dev/mlx4/mlx4_ib/mlx4_ib_sysfs.c:90:22: error: format specifies type 'unsigned long long *' but the argument has type 'u64 *' (aka 'unsigned long *') [-Werror,-Wformat] sscanf(buf, "%llx", &sysadmin_ag_val); ~~~~ ^~~~~~~~~~~~~~~~Change sysadmin_ag_val to unsigned long long to avoid the warning.Reviewed by: hselaskyMFC after: 3 daysDifferential Revision: https://reviews.freebsd.org/D8831
Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4like other PCI network drivers. The sys/ofed directory is now mainlyreserved for generic infiniband code, with exception of
Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4like other PCI network drivers. The sys/ofed directory is now mainlyreserved for generic infiniband code, with exception of the mthca driver.- Add new manual page, mlx4en(4), describing how to configure and loadmlx4en.- All relevant driver C-files are now prefixed mlx4, mlx4_en andmlx4_ib respectivly to avoid object filename collisions when compilingthe kernel. This also fixes an issue with proper dependency filegeneration for the C-files in question.- Device mlxen is now device mlx4en and depends on device mlx4, seemlx4en(4). Only the network device name remains unchanged.- The mlx4 and mlx4en modules are now built by default on i386 andamd64 targets. Only building the mlx4ib module depends onWITH_OFED=YES .Sponsored by: Mellanox Technologies