nixos/rxe: use iproute instead of rdma-core
The rdma-core packages dropped rxe_cfg in favour of iproute's rdma utility (see https://github.com/linux-rdma/rdma-core/pull/678/files)
This commit is contained in:
parent
505bccfdc7
commit
2c7f8d56dc
|
@ -5,20 +5,6 @@ with lib;
|
||||||
let
|
let
|
||||||
cfg = config.networking.rxe;
|
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 {
|
in {
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
|
@ -31,9 +17,8 @@ in {
|
||||||
example = [ "eth0" ];
|
example = [ "eth0" ];
|
||||||
description = ''
|
description = ''
|
||||||
Enable RDMA on the listed interfaces. The corresponding virtual
|
Enable RDMA on the listed interfaces. The corresponding virtual
|
||||||
RDMA interfaces will be named rxe0 ... rxeN where the ordering
|
RDMA interfaces will be named rxe_<interface>.
|
||||||
will be as they are named in the list. UDP port 4791 must be
|
UDP port 4791 must be open on the respective ethernet interfaces.
|
||||||
open on the respective ethernet interfaces.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -44,7 +29,6 @@ in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
systemd.services.rxe = {
|
systemd.services.rxe = {
|
||||||
path = with pkgs; [ kmod rdma-core ];
|
|
||||||
description = "RoCE interfaces";
|
description = "RoCE interfaces";
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
@ -54,8 +38,13 @@ in {
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
RemainAfterExit = true;
|
RemainAfterExit = true;
|
||||||
ExecStart = "${startScript}/bin/rxe-start";
|
ExecStart = map ( x:
|
||||||
ExecStop = "${stopScript}/bin/rxe-stop";
|
"${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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,7 +28,7 @@ in {
|
||||||
# Test if rxe interface comes up
|
# Test if rxe interface comes up
|
||||||
server.wait_for_unit("default.target")
|
server.wait_for_unit("default.target")
|
||||||
server.succeed("systemctl status rxe.service")
|
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")
|
client.wait_for_unit("default.target")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue