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