From: Zhu Yanjun <yanjun.zhu@xxxxxxxxx> There are shared and exclusive modes in RDMA net namespace. After discussion with Leon, the above modes are compatible with legacy IB device. To the RoCE and iWARP devices, the ib devices should be in the same net namespace with the related net devices regardless of in shared or exclusive mode. In the first commit, when the net devices are moved to a new net namespace, the related ib devices are also moved to the same net namespace. In the second commit, the shared/exclusive modes still work with legacy ib devices. To the RoCE and iWARP devices, these modes will not be considered. Because MLX4/5 do not call the function ib_device_set_netdev to map ib devices and the related net devices, the function ib_device_get_by_netdev can not get ib devices from net devices. In the third commit, all the registered ib devices are parsed to get the net devices, then compared with the given net devices. The steps to make tests: 1) Create a new net namespace net0 ip netns add net0 2) Show the rdma links in init_net rdma link " link mlx5_0/1 state DOWN physical_state DISABLED netdev enp7s0np1 " 3) Move the net device to net namespace net0 ip link set enp7s0np1 netns net0 4) Show the rdma links in init_net again rdma link There is no rdma links 5) Show the rdma links in net0 ip netns exec net0 rdma link " link mlx5_0/1 state DOWN physical_state DISABLED netdev enp7s0np1 " We can confirm that rdma links are moved to the same net namespace with the net devices. Zhu Yanjun (3): RDMA/core: Move ib device to the same net namespace with net device RDMA/core: The legacy IB devices still work with shared/exclusive mode RDMA/core: Get all the ib devices from net devices drivers/infiniband/core/device.c | 107 ++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 2 deletions(-) -- 2.27.0