python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / networking / rxe.nix
blob7dbb4823b4bcdd6bed028ec38112f07cd9b4d47d
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.networking.rxe;
8 in {
9   ###### interface
11   options = {
12     networking.rxe = {
13       enable = mkEnableOption (lib.mdDoc "RDMA over converged ethernet");
14       interfaces = mkOption {
15         type = types.listOf types.str;
16         default = [ ];
17         example = [ "eth0" ];
18         description = lib.mdDoc ''
19           Enable RDMA on the listed interfaces. The corresponding virtual
20           RDMA interfaces will be named rxe_\<interface\>.
21           UDP port 4791 must be open on the respective ethernet interfaces.
22         '';
23       };
24     };
25   };
27   ###### implementation
29   config = mkIf cfg.enable {
31     systemd.services.rxe = {
32       description = "RoCE interfaces";
34       wantedBy = [ "multi-user.target" ];
35       after = [ "systemd-modules-load.service" "network-online.target" ];
36       wants = [ "network-pre.target" ];
38       serviceConfig = {
39         Type = "oneshot";
40         RemainAfterExit = true;
41         ExecStart = map ( x:
42           "${pkgs.iproute2}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
43           ) cfg.interfaces;
45         ExecStop = map ( x:
46           "${pkgs.iproute2}/bin/rdma link delete rxe_${x}"
47           ) cfg.interfaces;
48       };
49     };
50   };