buildroot/package/rdma-core
Fabrice Fontaine 7e5a90f1b7 package/rdma-core: fix mips4 build
The 'sync' instruction for MIPS was defined in MIPS-II as taking no
operands. MIPS32 extended the define of 'sync' as taking an optional
unsigned 5 bit immediate.

As a result, replace "sync 0" by "sync" to fix the following build
failure on mips4 raised since the addition of the package in commit
ea47e177f0 and
b7c428344e:

/tmp/ccrBy9fV.s: Assembler messages:
/tmp/ccrBy9fV.s:994: Error: invalid operands `sync 0'

Fixes:
 - http://autobuild.buildroot.org/results/2ab22a3ec4287fc15ff6a90d8715b4897b32a933
 - http://autobuild.buildroot.org/results/2df58f9b98aacf00960932f53510b29199393461

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-02-05 11:37:38 +01:00
..
0001-util-udma_barrier.h-fix-mips4-build.patch package/rdma-core: fix mips4 build 2024-02-05 11:37:38 +01:00
Config.in
rdma-core.hash
rdma-core.mk
readme.txt

Testing rdma-core userspace tools
=================================

Testing rdma-core using Linux software RoCE implementation:
https://en.wikipedia.org/wiki/RDMA_over_Converged_Ethernet

Using two systems with working TCP/IP configuration, for example:
- Server IP: 192.168.123.10
- Client IP: 192.168.123.20

Make sure firewall configurations are appropriate. Routable RoCE v2
uses udp/4791. ibv_rc_pingpong uses tcp/18515 for initial
synchronization.

Note: this test can be executed in two qemu virtual machines with
bridged networking.


Kernel configuration
--------------------

The Linux Kernel needs some InfiniBand configuration. In this example
the kernel "rdma_rxe" driver is needed (CONFIG_RDMA_RXE=y). The Kernel
config fragment file used for package test can be used as a starting
point. See:

    support/testing/tests/package/test_rdma_core/linux-rdma.fragment


Buildroot package configuration
-------------------------------

For setting up a software RoCE link, the "rdma" program is needed. It
is provided by the "iproute2" package, when "libmnl" is also
selected. Make sure to have in your Buildroot configuration:

    BR2_PACKAGE_IPROUTE2=y
    BR2_PACKAGE_LIBMNL=y
    BR2_PACKAGE_RDMA_CORE=y


Setting up the rdma link
------------------------

On both server and client:

    modprobe rdma_rxe
    rdma link add rxe0 type rxe netdev eth0


Testing with rping
------------------

On the server side, run the command:

    rping -s -v

On the client side, run the command:

    rping -c -v -a 192.168.123.10


Testing with ibv_rc_pingpong
----------------------------

To test with the pingpong example using the reliable connected (RC)
transport:

On the server side, run the command:

    ibv_rc_pingpong -d rxe0 -g 1

On the client side, run the command:

    ibv_rc_pingpong -d rxe0 -g 1 192.168.123.10