From 6cdacdd4a2164047efe89c6a87f689fefefee85f Mon Sep 17 00:00:00 2001 From: Mathijs Kwik Date: Thu, 18 Dec 2014 15:39:03 +0100 Subject: [PATCH] nixos/qemu-vm: make networking options configurable --- nixos/modules/virtualisation/qemu-vm.nix | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index a7610b3e11a0..49376bab41e6 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -57,8 +57,7 @@ let -name ${vmName} \ -m ${toString config.virtualisation.memorySize} \ ${optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \ - -net nic,vlan=0,model=virtio \ - -net user,vlan=0''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} \ + ${concatStringsSep " " config.virtualisation.qemuNetworkingOptions} \ -virtfs local,path=/nix/store,security_model=none,mount_tag=store \ -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ -virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \ @@ -180,6 +179,23 @@ in ''; }; + virtualisation.qemuNetworkingOptions = + mkOption { + default = [ + "-net nic,vlan=0,model=virtio" + "-net user,vlan=0\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}" + ]; + type = types.listOf types.str; + description = '' + Networking-related command-line options that should be passed to qemu. + The default is to use userspace networking (slirp). + + If you override this option, be adviced to keep + ''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the default) + to keep the default runtime behaviour. + ''; + }; + virtualisation.graphics = mkOption { default = true;