aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/lib/qemu-flags.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/lib/qemu-flags.nix')
-rw-r--r--nixpkgs/nixos/lib/qemu-flags.nix11
1 files changed, 8 insertions, 3 deletions
diff --git a/nixpkgs/nixos/lib/qemu-flags.nix b/nixpkgs/nixos/lib/qemu-flags.nix
index 859d9e975fe..0cf6977af4b 100644
--- a/nixpkgs/nixos/lib/qemu-flags.nix
+++ b/nixpkgs/nixos/lib/qemu-flags.nix
@@ -2,13 +2,18 @@
{ pkgs }:
let
- zeroPad = n: if n < 10 then "0${toString n}" else toString n;
+ zeroPad = n:
+ pkgs.lib.optionalString (n < 16) "0" +
+ (if n > 255
+ then throw "Can't have more than 255 nets or nodes!"
+ else pkgs.lib.toHexString n);
in
-{
+rec {
+ qemuNicMac = net: machine: "52:54:00:12:${zeroPad net}:${zeroPad machine}";
qemuNICFlags = nic: net: machine:
- [ "-device virtio-net-pci,netdev=vlan${toString nic},mac=52:54:00:12:${zeroPad net}:${zeroPad machine}"
+ [ "-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac net machine}"
"-netdev vde,id=vlan${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}"
];