[PATCH libibverbs V3 0/3] Add support for UD QPs under RoCE IP addressing

Or Gerlitz
2014-05-08T06:51:20Z

Hi Roland,

This series adds support for Ethernet L2 address resolution for RoCE UD QPs,
whose L2 address-handles, unlike RC/UC/XRC/etc QPs are set from user space
without going through uverbs and the kernel IB core. The code is also
compatible both with old kernels that don't run IP based addressing.

Matan and Or.

changes from V2:
- when using libnl3, link libibverbs itself with libnl3 and not the utilities
- fix memory leak which took place when nl_addr_cmp_prefix_msb returns non zero.
- rebased against libibverbs-1.1.8

changes from V1, addressed feedback from Yann Droneaud:
- ported the code to libnl3 with automatic fallback option to libnl1
- better error handling (more checks to erroneous flows)
- fixed typos and removed blank lines
- set close-on-exec open flag for the relevant fds
- remove wrong comment from the change-log of patch #1

changes from V0:
- don't change struct ibv_port_attr flags field from uint32_t
to enum (size could change)
- ibv_ah_attr_ex is extendable and contains ibv_ah_attr

Matan Barak (3):
Add ibv_port_cap_flags
Use neighbour lookup for RoCE UD QPs Eth L2 resolution
Add ibv_query_port_ex support

Makefile.am | 10 +-
configure.ac | 31 ++
include/infiniband/verbs.h | 160 +++++++-
src/device.c | 2 +
src/neigh.c | 1001 ++++++++++++++++++++++++++++++++++++++++++++
src/neigh.h | 53 +++
src/verbs.c | 164 +++++++-
7 files changed, 1415 insertions(+), 6 deletions(-)
create mode 100644 src/neigh.c
create mode 100644 src/neigh.h