SVNews r330508

NOTE: This service is experimental and subject to change! Use at your own risk!

2018-03-05 14:34:52 - r330508 by hselasky (Hans Petter Selasky)

Complete list of files affected by revision r330508:

(Note: At the moment, these links point to ViewVC on They are probably slow. Do not overuse.)

  History   Contents   Diff   MODIFY   /head/sys/dev/cxgbe/iw_cxgbe/provider.c  
  History   Contents   Diff   MODIFY   /head/sys/dev/mlx4/mlx4_ib/mlx4_ib.h  
  History   Contents   Diff   MODIFY   /head/sys/dev/mlx4/mlx4_ib/mlx4_ib_ah.c  
  History   Contents   Diff   MODIFY   /head/sys/dev/mlx5/mlx5_ib/mlx5_ib.h  
  History   Contents   Diff   MODIFY   /head/sys/dev/mlx5/mlx5_ib/mlx5_ib_ah.c  
  History   Contents   Diff   MODIFY   /head/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c  
  History   Contents   Diff   MODIFY   /head/sys/dev/mthca/mthca_provider.c  
  History   Contents   Diff   MODIFY   /head/sys/ofed/drivers/infiniband/core/core_priv.h  
  History   Contents   Diff   MODIFY   /head/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c  
  History   Contents   Diff   MODIFY   /head/sys/ofed/drivers/infiniband/core/ib_verbs.c  
  History   Contents   Diff   MODIFY   /head/sys/ofed/include/rdma/ib_verbs.h  
  History   Contents   Diff   MODIFY   /head/sys/ofed/include/uapi/rdma/mlx5-abi.h  

Commit message:

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


Powered by Python FreeBSD support by secnetix GmbH & Co. KG

Page generated in 7 ms, 12 files printed. Current time is 2018-03-24 13:46:18. All times are in UTC/GMT.