mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-22 14:45:27 +00:00
ndppd module: init (#35533)
This commit is contained in:
parent
21b926003d
commit
9f1da66587
|
@ -515,6 +515,7 @@
|
|||
./services/networking/murmur.nix
|
||||
./services/networking/namecoind.nix
|
||||
./services/networking/nat.nix
|
||||
./services/networking/ndppd.nix
|
||||
./services/networking/networkmanager.nix
|
||||
./services/networking/nftables.nix
|
||||
./services/networking/ngircd.nix
|
||||
|
|
47
nixos/modules/services/networking/ndppd.nix
Normal file
47
nixos/modules/services/networking/ndppd.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.ndppd;
|
||||
|
||||
configFile = pkgs.runCommand "ndppd.conf" {} ''
|
||||
substitute ${pkgs.ndppd}/etc/ndppd.conf $out \
|
||||
--replace eth0 ${cfg.interface} \
|
||||
--replace 1111:: ${cfg.network}
|
||||
'';
|
||||
in {
|
||||
options = {
|
||||
services.ndppd = {
|
||||
enable = mkEnableOption "daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
|
||||
interface = mkOption {
|
||||
type = types.string;
|
||||
default = "eth0";
|
||||
example = "ens3";
|
||||
description = "Interface which is on link-level with router.";
|
||||
};
|
||||
network = mkOption {
|
||||
type = types.string;
|
||||
default = "1111::";
|
||||
example = "2001:DB8::/32";
|
||||
description = "Network that we proxy.";
|
||||
};
|
||||
configFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "Path to configuration file.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.packages = [ pkgs.ndppd ];
|
||||
environment.etc."ndppd.conf".source = if (cfg.configFile != null) then cfg.configFile else configFile;
|
||||
systemd.services.ndppd = {
|
||||
serviceConfig.RuntimeDirectory = [ "ndppd" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ gnidorah ];
|
||||
}
|
|
@ -1,6 +1,11 @@
|
|||
{ stdenv, fetchFromGitHub, gzip, ... }:
|
||||
{ stdenv, fetchFromGitHub, fetchurl, gzip, ... }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
let
|
||||
serviceFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/DanielAdolfsson/ndppd/f37e8eb33dc68b3385ecba9b36a5efd92755580f/ndppd.service";
|
||||
sha256 = "1zf54pzjfj9j9gr48075njqrgad4myd3dqmhvzxmjy4gjy9ixmyh";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "ndppd-${version}";
|
||||
version = "0.2.5";
|
||||
|
||||
|
@ -19,6 +24,16 @@ stdenv.mkDerivation rec {
|
|||
substituteInPlace Makefile --replace /bin/gzip ${gzip}/bin/gzip
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/etc
|
||||
cp ndppd.conf-dist $out/etc/ndppd.conf
|
||||
|
||||
mkdir -p $out/lib/systemd/system
|
||||
# service file needed for our module is not in release yet
|
||||
substitute ${serviceFile} $out/lib/systemd/system/ndppd.service \
|
||||
--replace /usr/sbin/ndppd $out/sbin/ndppd
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
|
||||
homepage = https://github.com/DanielAdolfsson/ndppd;
|
||||
|
|
Loading…
Reference in a new issue