3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #81277 from markuskowa/upd-rdma-core

nixos/rdma-core: 27.0 -> 28.0, update RXE module
This commit is contained in:
markuskowa 2020-03-22 18:01:09 +01:00 committed by GitHub
commit a9d7a1ee5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 30 deletions

View file

@ -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;
};
};
};

View file

@ -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")

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, flex, bash, bison, db, iptables, pkgconfig, libelf }:
{ fetchurl, stdenv, flex, bash, bison, db, iptables, pkgconfig, libelf, libmnl }:
stdenv.mkDerivation rec {
pname = "iproute2";
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
"CONFDIR=$(out)/etc/iproute2"
];
buildInputs = [ db iptables libelf ];
buildInputs = [ db iptables libelf libmnl ];
nativeBuildInputs = [ bison flex pkgconfig ];
enableParallelBuilding = true;

View file

@ -4,7 +4,7 @@
} :
let
version = "27.0";
version = "28.0";
in stdenv.mkDerivation {
pname = "rdma-core";
@ -14,7 +14,7 @@ in stdenv.mkDerivation {
owner = "linux-rdma";
repo = "rdma-core";
rev = "v${version}";
sha256 = "04mhcrcmbwxcjhswlkhnr6m5nl2389jgjv6aqhd4v0x555cwnfvw";
sha256 = "0az2is6p5gkyphi2b978kwn7knry60y33kn6p7cxz49ca79a42cy";
};
nativeBuildInputs = [ cmake pkgconfig pandoc docutils makeWrapper ];
@ -26,11 +26,6 @@ in stdenv.mkDerivation {
];
postPatch = ''
substituteInPlace providers/rxe/rxe_cfg.in \
--replace ethtool "${ethtool}/bin/ethtool" \
--replace 'ip addr' "${iproute}/bin/ip addr" \
--replace 'ip link' "${iproute}/bin/ip link"
substituteInPlace srp_daemon/srp_daemon.sh.in \
--replace /bin/rm rm
'';