summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authormarkuskowa <markus.kowalewski@gmail.com>2020-03-22 18:01:09 +0100
committerGitHub <noreply@github.com>2020-03-22 18:01:09 +0100
commita9d7a1ee5b5ade61560611c386a35f5226c388f6 (patch)
tree1af9d2b692d2029b4d4b8f1d600948662dfed13f /nixos
parent4e6a21dbec4f1da256979bbb19ab5c25f0996d7e (diff)
parent2c7f8d56dce12ae9f890d627766764c36f371b06 (diff)
downloadnixpkgs-a9d7a1ee5b5ade61560611c386a35f5226c388f6.tar
nixpkgs-a9d7a1ee5b5ade61560611c386a35f5226c388f6.tar.gz
nixpkgs-a9d7a1ee5b5ade61560611c386a35f5226c388f6.tar.bz2
nixpkgs-a9d7a1ee5b5ade61560611c386a35f5226c388f6.tar.lz
nixpkgs-a9d7a1ee5b5ade61560611c386a35f5226c388f6.tar.xz
nixpkgs-a9d7a1ee5b5ade61560611c386a35f5226c388f6.tar.zst
nixpkgs-a9d7a1ee5b5ade61560611c386a35f5226c388f6.zip
Merge pull request #81277 from markuskowa/upd-rdma-core
nixos/rdma-core: 27.0 -> 28.0, update RXE module
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/rxe.nix29
-rw-r--r--nixos/tests/rxe.nix2
2 files changed, 10 insertions, 21 deletions
diff --git a/nixos/modules/services/networking/rxe.nix b/nixos/modules/services/networking/rxe.nix
index a6a069ec50c..fbec62728c0 100644
--- a/nixos/modules/services/networking/rxe.nix
+++ b/nixos/modules/services/networking/rxe.nix
@@ -5,20 +5,6 @@ with lib;
 let
   cfg = config.networking.rxe;
 
-  runRxeCmd = cmd: ifcs:
-    concatStrings ( map (x: "${pkgs.rdma-core}/bin/rxe_cfg -n ${cmd} ${x};") ifcs);
-
-  startScript = pkgs.writeShellScriptBin "rxe-start" ''
-    ${pkgs.rdma-core}/bin/rxe_cfg -n start
-    ${runRxeCmd "add" cfg.interfaces}
-    ${pkgs.rdma-core}/bin/rxe_cfg
-  '';
-
-  stopScript = pkgs.writeShellScriptBin "rxe-stop" ''
-    ${runRxeCmd "remove" cfg.interfaces }
-    ${pkgs.rdma-core}/bin/rxe_cfg -n stop
-  '';
-
 in {
   ###### interface
 
@@ -31,9 +17,8 @@ in {
         example = [ "eth0" ];
         description = ''
           Enable RDMA on the listed interfaces. The corresponding virtual
-          RDMA interfaces will be named rxe0 ... rxeN where the ordering
-          will be as they are named in the list. UDP port 4791 must be
-          open on the respective ethernet interfaces.
+          RDMA interfaces will be named rxe_<interface>.
+          UDP port 4791 must be open on the respective ethernet interfaces.
         '';
       };
     };
@@ -44,7 +29,6 @@ in {
   config = mkIf cfg.enable {
 
     systemd.services.rxe = {
-      path = with pkgs; [ kmod rdma-core ];
       description = "RoCE interfaces";
 
       wantedBy = [ "multi-user.target" ];
@@ -54,8 +38,13 @@ in {
       serviceConfig = {
         Type = "oneshot";
         RemainAfterExit = true;
-        ExecStart = "${startScript}/bin/rxe-start";
-        ExecStop = "${stopScript}/bin/rxe-stop";
+        ExecStart = map ( x:
+          "${pkgs.iproute}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
+          ) cfg.interfaces;
+
+        ExecStop = map ( x:
+          "${pkgs.iproute}/bin/rdma link delete rxe_${x}"
+          ) cfg.interfaces;
       };
     };
   };
diff --git a/nixos/tests/rxe.nix b/nixos/tests/rxe.nix
index 194a2e3d2b9..10753c4ed0c 100644
--- a/nixos/tests/rxe.nix
+++ b/nixos/tests/rxe.nix
@@ -28,7 +28,7 @@ in {
     # Test if rxe interface comes up
     server.wait_for_unit("default.target")
     server.succeed("systemctl status rxe.service")
-    server.succeed("ibv_devices | grep rxe0")
+    server.succeed("ibv_devices | grep rxe_eth1")
 
     client.wait_for_unit("default.target")