[PATCH rdma-next 0/4] IB/core: Add InfiniBand router support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



InfiniBand has gone a long way in providing efficient large-scale
high performance connectivity. IB subnets have shown to scale to
tens of thousands of nodes, both in raw capacity and in management.

As demand for computing capacity increases, future clusters sizes might
exceed the number of addressable endpoints in a single IB subnet (around
40K nodes).

To accommodate such clusters, a routing layer with the same latencies
and bandwidth characteristics as switches is required. In addition, as
data center deployments evolve, it becomes beneficial to consolidate
resources across multiple clusters.

There are multiple applications for this technology such as computing
clusters which require access to a common storage infrastructure.
Routers enable such connectivity while reducing management complexity
and isolating intra-subnet faults.

In this patch set the forwarding between the IB subnets is performed
by including a GRH header.
The IB router’s basic functionality includes:
 * Removal of current L2 LRH (local routing header)
 * Routing table lookup – using GID from GRH
 * Building new LRH according to the destination based on the routing table

In order to retrieve the destination GID, new resolution method was needed.
There is an assumption that rdmacm is used only between nodes in the same
IB subnet, this is why ARP resolution can be used to turn IP to GID in rdmacm.

When dealing with IB communication between subnets this assumption
is no longer valid. ARP resolution will get us the next hop device
address and not the peer node's device address.

To solve this issue, we will check user space if it can provide the
GID of the peer node, and fail if not. For doing so, we added a new
RDMA local service operation (IP to GID resolution) and a sequence number
to identify each request. The client request would include the ifindex
of the outgoing interface and attributes which indicate the destination IP.
The local service would answer with the requested destination GID.

Available in the "topic/ib-router" topic branch of this git repo:

git://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git

Or for browsing:

https://git.kernel.org/cgit/linux/kernel/git/leon/linux-rdma.git/log/?h=topic/ib-router

It is tested after applying topic/fix-core and topic/ipoib-device-address.

Thanks

Mark Bloch (4):
  IB/netlink: Make ib_netlink a standalone module
  IB/netlink: Allow multiple clients to register under the same family
  IB/netlink: Add new local service operation
  IB/core: Add IP to GID netlink offload

 drivers/infiniband/core/Makefile   |   6 +-
 drivers/infiniband/core/addr.c     | 225 +++++++++++++++++++++++++++++++++----
 drivers/infiniband/core/cma.c      |   3 +-
 drivers/infiniband/core/device.c   |   9 --
 drivers/infiniband/core/iwcm.c     |   3 +-
 drivers/infiniband/core/netlink.c  |  46 ++++++--
 drivers/infiniband/core/sa_query.c |   2 +-
 include/rdma/rdma_netlink.h        |   7 +-
 include/uapi/rdma/rdma_netlink.h   |  10 ++
 9 files changed, 259 insertions(+), 52 deletions(-)

-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux