hydra: 0-unstable-2024-11-25 -> 0-unstable-2024-12-05 (#363987)
[NixPkgs.git] / nixos / tests / rxe.nix
blobf05b5a7dd37499325de1ca493a1adf689062c0ff
1 import ./make-test-python.nix (
2   { ... }:
4   let
5     node =
6       { pkgs, ... }:
7       {
8         networking = {
9           firewall = {
10             allowedUDPPorts = [ 4791 ]; # open RoCE port
11             allowedTCPPorts = [ 4800 ]; # port for test utils
12           };
13           rxe = {
14             enable = true;
15             interfaces = [ "eth1" ];
16           };
17         };
19         environment.systemPackages = with pkgs; [
20           rdma-core
21           screen
22         ];
23       };
25   in
26   {
27     name = "rxe";
29     nodes = {
30       server = node;
31       client = node;
32     };
34     testScript = ''
35       # Test if rxe interface comes up
36       server.wait_for_unit("default.target")
37       server.succeed("systemctl status rxe.service")
38       server.succeed("ibv_devices | grep rxe_eth1")
40       client.wait_for_unit("default.target")
42       # ping pong tests
43       for proto in "rc", "uc", "ud", "srq":
44           server.succeed(
45               "screen -dmS {0}_pingpong ibv_{0}_pingpong -p 4800 -s 1024 -g0".format(proto)
46           )
47           client.succeed("sleep 2; ibv_{}_pingpong -p 4800 -s 1024 -g0 server".format(proto))
49       server.succeed("screen -dmS rping rping -s -a server -C 10")
50       client.succeed("sleep 2; rping -c -a server -C 10")
51     '';
52   }