Merge pull request from Anillc/frr

frr: support rpki
This commit is contained in:
Sandro 2022-05-19 11:10:47 +02:00 committed by GitHub
commit 5015c705a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 1 deletions
nixos/modules/services/networking
pkgs
development/libraries/rtrlib
servers/frr
top-level

View file

@ -106,6 +106,14 @@ let
TCP Port to bind to for the VTY interface. TCP Port to bind to for the VTY interface.
''; '';
}; };
extraOptions = mkOption {
type = types.listOf types.str;
default = [];
description = ''
Extra options for the daemon.
'';
};
}; };
in in
@ -196,7 +204,8 @@ in
PIDFile = "frr/${daemon}.pid"; PIDFile = "frr/${daemon}.pid";
ExecStart = "${pkgs.frr}/libexec/frr/${daemon} -f /etc/frr/${service}.conf" ExecStart = "${pkgs.frr}/libexec/frr/${daemon} -f /etc/frr/${service}.conf"
+ optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}" + optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}"
+ optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}"; + optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}"
+ " " + (concatStringsSep " " scfg.extraOptions);
ExecReload = "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemonName service} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${service}.conf"; ExecReload = "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemonName service} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${service}.conf";
Restart = "on-abnormal"; Restart = "on-abnormal";
}; };

View file

@ -0,0 +1,24 @@
{ lib, fetchFromGitHub, stdenv, cmake, libssh, openssl }:
stdenv.mkDerivation rec {
pname = "rtrlib";
version = "0.8.0";
src = fetchFromGitHub {
repo = pname;
owner = "rtrlib";
rev = "v${version}";
sha256 = "sha256-ISb4ojcDvXY/88GbFMrA5V5+SGE6CmE5D+pokDTwotQ=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libssh openssl ];
meta = with lib; {
description = "An open-source C implementation of the RPKI/Router Protocol client";
homepage = "https://github.com/rtrlib/rtrlib";
license = licenses.mit;
maintainers = with maintainers; [ Anillc ];
platforms = platforms.all;
};
}

View file

@ -23,6 +23,7 @@
, pcre2 , pcre2
, python3 , python3
, readline , readline
, rtrlib
# tests # tests
, nettools , nettools
@ -62,6 +63,7 @@ stdenv.mkDerivation rec {
pcre2 pcre2
python3 python3
readline readline
rtrlib
] ++ lib.optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
libcap libcap
]; ];
@ -78,6 +80,7 @@ stdenv.mkDerivation rec {
"--localstatedir=/run/frr" "--localstatedir=/run/frr"
"--sbindir=$(out)/libexec/frr" "--sbindir=$(out)/libexec/frr"
"--sysconfdir=/etc/frr" "--sysconfdir=/etc/frr"
"--enable-rpki"
]; ];
postPatch = '' postPatch = ''

View file

@ -20292,6 +20292,8 @@ with pkgs;
rinutils = callPackage ../development/libraries/rinutils { }; rinutils = callPackage ../development/libraries/rinutils { };
rtrlib = callPackage ../development/libraries/rtrlib { };
kissfft = callPackage ../development/libraries/kissfft { }; kissfft = callPackage ../development/libraries/kissfft { };
lambdabot = callPackage ../development/tools/haskell/lambdabot { lambdabot = callPackage ../development/tools/haskell/lambdabot {