at 25.11-pre 1.3 kB view raw
1import ./make-test-python.nix ( 2 { ... }: 3 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 }; 18 19 environment.systemPackages = with pkgs; [ 20 rdma-core 21 screen 22 ]; 23 }; 24 25 in 26 { 27 name = "rxe"; 28 29 nodes = { 30 server = node; 31 client = node; 32 }; 33 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") 39 40 client.wait_for_unit("default.target") 41 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)) 48 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 } 53)