Author: eelco
Date: Sat Feb 19 19:19:55 2011
New Revision: 26035
URL: https://svn.nixos.org/websvn/nix/?rev=26035&sc=1
Log:
* Add a module for radvd.
Added:
nixos/trunk/modules/services/networking/radvd.nix
Modified:
nixos/trunk/modules/module-list.nix
Modified: nixos/trunk/modules/module-list.nix
==============================================================================
--- nixos/trunk/modules/module-list.nix Sat Feb 19 17:21:29 2011 (r26034)
+++ nixos/trunk/modules/module-list.nix Sat Feb 19 19:19:55 2011 (r26035)
@@ -105,6 +105,7 @@
./services/networking/portmap.nix
./services/networking/privoxy.nix
./services/networking/quassel.nix
+ ./services/networking/radvd.nix
./services/networking/sabnzbd.nix
./services/networking/ssh/lshd.nix
./services/networking/ssh/sshd.nix
Added: nixos/trunk/modules/services/networking/radvd.nix
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ nixos/trunk/modules/services/networking/radvd.nix Sat Feb 19 19:19:55
2011 (r26035)
@@ -0,0 +1,77 @@
+# Module for the IPv6 Router Advertisement Daemon.
+
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+
+ cfg = config.services.radvd;
+
+ confFile = pkgs.writeText "radvd.conf" cfg.config;
+
+in
+
+{
+
+ ###### interface
+
+ options = {
+
+ services.radvd.enable = mkOption {
+ default = false;
+ description =
+ ''
+ Whether to enable the Router Advertisement Daemon
+ (<command>radvd</command>), which provides link-local
+ advertisements of IPv6 router addresses and prefixes using
+ the Neighbor Discovery Protocol (NDP). This enables
+ stateless address autoconfiguration in IPv6 clients on the
+ network.
+ '';
+ };
+
+ services.radvd.config = mkOption {
+ example =
+ ''
+ interface eth0 {
+ AdvSendAdvert on;
+ prefix 2001:db8:1234:5678::/64 { };
+ };
+ '';
+ description =
+ ''
+ The contents of the radvd configuration file.
+ '';
+ };
+
+ };
+
+
+ ###### implementation
+
+ config = mkIf cfg.enable {
+
+ environment.systemPackages = [ pkgs.radvd ];
+
+ jobs.radvd =
+ { description = "IPv6 Router Advertisement Daemon";
+
+ startOn = "started network-interfaces";
+
+ preStart =
+ ''
+ # !!! Radvd only works if IPv6 forwarding is enabled. But
+ # this should probably be done somewhere else (and not
+ # necessarily for all interfaces).
+ echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
+ '';
+
+ exec = "${pkgs.radvd}/sbin/radvd -m syslog -s -C ${confFile}";
+
+ daemonType = "fork";
+ };
+
+ };
+
+}
\ No newline at end of file
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits