Skip to content

rxe_cfg network namespace support #12

@ziyin-dl

Description

@ziyin-dl

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions