Re: [PATCH] RXE: A Soft RoCE back-end for the RVT

Sagi Grimberg
2016-01-07T15:44:48Z

> This patch introduces an implementation of a back-end that works with
> RVT to make RoCE Verbs transport over any Ethernet network device.
>
> Example:
>
> After loading ib_rxe_net.ko
> echo eth1 > /sys/module/ib_rxe_net/parameters/add
> will create rvt0 IB device in RVT with Ethernet link layer
> ---
> drivers/infiniband/Kconfig | 1 +
> drivers/infiniband/sw/Makefile | 1 +
> drivers/infiniband/sw/rxe/Kconfig | 23 ++
> drivers/infiniband/sw/rxe/Makefile | 5 +
> drivers/infiniband/sw/rxe/rxe_net.c | 580 +++++++++++++++++++++++++++++++++
> drivers/infiniband/sw/rxe/rxe_net.h | 89 +++++
> drivers/infiniband/sw/rxe/rxe_sysfs.c | 167 ++++++++++
> 7 files changed, 866 insertions(+), 0 deletions(-)

836 LOC SoftRoCE driver, impressive...

> +module_param_call(add, rxe_param_set_add, NULL, NULL, 0200);
> +module_param_call(remove, rxe_param_set_remove, NULL, NULL, 0200);

The standard way of doing this is with class and device structures and
not module_param_call...

You can look at srp for example on how to get it right...