-
Notifications
You must be signed in to change notification settings - Fork 33
Description
I recently had an issue with adding an interface in a separate network namespace. The setting is as follows:
I have 2 servers, running Ubuntu 16.04 with kernel version 4.14. Each server has 4 network interfaces, all with intel 1000base-T NICs (I211). I am running soft-RoCE on both machines. Installed the user space libraries as instructed. Furthermore, I verified that soft-RoCE works by running ibv_rc_pingpong between the 2 servers.
However, what I would like to do is to create a couple of containers on the servers, and each container has a separate interface, with soft-RoCE running on top of every interfaces. I want the containers to have separated interfaces to stop Linux internal routing and for load balancing purposes. To do this, I created network namespaces for each container, and moved the physical interfaces into their corresponding network namespace. When I tried adding the NICs using rxe_cfg add, it throws an error saying
$ sudo ip netns exec $(PID) rxe_cfg add p3p1
[ 3100.844015] rdma_rxe: interface p3p1 not found
sh: echo: I/O error
(p3p1 is the interface I moved to PID's namespace)
However, it seems that rxe_cfg status can correctly identify the device in the namespace:
$ sudo ip netns exec $(PID) rxe_cfg status
Name Link Driver Speed NMTU IPv4_addr RDEV RMTU
p3p1 yes igb 1500 192.168.10.1
Does soft-RoCE work in this setting, or I missed something in the setup? If it is doable, what is the right way to have separated soft-RoCE devices for different namespaces?