On 10/22/2015 08:20 AM, Haggai Eran wrote:
> Hi Doug,
> 
> I've rebased the network namespaces patches over your 4.4 tree.

Thanks, it went in cleanly this time.  Applied.

> Regards,
> Haggai
> 
> Changes from v6:
> - rebased over k.o/for-4.4
> - use init_net when no netdev is found (RoCE and AF_IB)
> 
> Changes from v5:
> - removed patches that got in as part of the cleanup series.
> 
> RDMA-CM uses IP based addressing and routing to setup RDMA connections between
> hosts. Currently, all of the IP interfaces and addresses used by the RDMA-CM
> must reside in the init_net namespace. This restricts the usage of containers
> with RDMA to only work with host network namespace (aka the kernel init_net NS
> instance).
> 
> This patchset allows using network namespaces with the RDMA-CM.
> 
> Each RDMA-CM id keeps a reference to a network namespace.
> 
> This reference is based on the process network namespace at the time of the
> creation of the object or inherited from the listener.
> 
> This network namespace is used to perform all IP and network related
> operations. Specifically, the local device lookup, as well as the remote GID
> address resolution are done in the context of the RDMA-CM object's namespace.
> This allows outgoing connections to reach the right target, even if the same
> IP address exists in multiple network namespaces. This can happen if each
> network namespace resides on a different P_Key.
> 
> Additionally, the network namespace is used to split the listener port space
> tables. From the user point of view, each network namespace has a unique,
> completely independent tables for its port spaces. This allows running 
> multiple
> instances of a single service on the same machine, using containers. 
> 
> The functionality introduced by this series would come into play when the
> transport is InfiniBand and IPoIB interfaces are assigned to each namespace.
> Multiple IPoIB interfaces can be created and assigned to different RDMA-CM
> capable containers, for example using pipework [1].
> 
> The patches apply against Doug's for-4.4 tree.
> 
> The patchset is structured as follows:
> 
> Patch 1 is a relatively trivial API extension, requiring the callers
> of certain ib_addr functions to provide a network namespace, as needed.
> 
> Patches 2-4 add proper namespace support to the RDMA-CM module. This
> includes adding multiple port space tables, adding a network namespace
> parameter, and finally retrieving the namespace from the creating process.
> 
> [1] https://github.com/jpetazzo/pipework/
> 
> Guy Shapiro (3):
>   IB/addr: Pass network namespace as a parameter
>   IB/cma: Add support for network namespaces
>   IB/ucma: Take the network namespace from the process
> 
> Haggai Eran (1):
>   IB/cma: Separate port allocation to network namespaces
> 
>  drivers/infiniband/core/addr.c                     |  17 +--
>  drivers/infiniband/core/cma.c                      | 129 
> +++++++++++++++------
>  drivers/infiniband/core/ucma.c                     |   4 +-
>  drivers/infiniband/ulp/iser/iser_verbs.c           |   2 +-
>  drivers/infiniband/ulp/isert/ib_isert.c            |   2 +-
>  .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h    |   4 +-
>  include/rdma/ib_addr.h                             |  16 ++-
>  include/rdma/rdma_cm.h                             |   6 +-
>  net/9p/trans_rdma.c                                |   4 +-
>  net/rds/ib.c                                       |   2 +-
>  net/rds/ib_cm.c                                    |   2 +-
>  net/rds/iw.c                                       |   2 +-
>  net/rds/iw_cm.c                                    |   2 +-
>  net/rds/rdma_transport.c                           |   4 +-
>  net/sunrpc/xprtrdma/svc_rdma_transport.c           |   4 +-
>  net/sunrpc/xprtrdma/verbs.c                        |   3 +-
>  16 files changed, 142 insertions(+), 61 deletions(-)
> 


-- 
Doug Ledford <[email protected]>
              GPG KeyID: 0E572FDD


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to