summary refs log tree commit diff
path: root/nixos/modules/virtualisation/xen-dom0.nix
diff options
context:
space:
mode:
authorMichał Pałka <michal.palka@chalmers.se>2017-04-28 07:48:51 +0000
committerMichał Pałka <michal.palka@chalmers.se>2017-04-28 07:48:51 +0000
commit2fcb8714bac1076e2614ea7e024ca52f82269ff2 (patch)
tree77db7c7f23884f945a2a938f87905a555d7bcf11 /nixos/modules/virtualisation/xen-dom0.nix
parent7f3b857d0d08c5e7d8d0ecdb2a53f06cc48a9cdf (diff)
downloadnixpkgs-2fcb8714bac1076e2614ea7e024ca52f82269ff2.tar
nixpkgs-2fcb8714bac1076e2614ea7e024ca52f82269ff2.tar.gz
nixpkgs-2fcb8714bac1076e2614ea7e024ca52f82269ff2.tar.bz2
nixpkgs-2fcb8714bac1076e2614ea7e024ca52f82269ff2.tar.lz
nixpkgs-2fcb8714bac1076e2614ea7e024ca52f82269ff2.tar.xz
nixpkgs-2fcb8714bac1076e2614ea7e024ca52f82269ff2.tar.zst
nixpkgs-2fcb8714bac1076e2614ea7e024ca52f82269ff2.zip
xen service: fix xen-bridge not setting the configured netmask
The xen-bridge service accepts the option prefixLength, but does not
use it to set the actual netmask on the bridge. This commit makes
it set the correct netmask.
Diffstat (limited to 'nixos/modules/virtualisation/xen-dom0.nix')
-rw-r--r--nixos/modules/virtualisation/xen-dom0.nix4
1 files changed, 4 insertions, 0 deletions
diff --git a/nixos/modules/virtualisation/xen-dom0.nix b/nixos/modules/virtualisation/xen-dom0.nix
index 1f5b6bd1d80..1567b175348 100644
--- a/nixos/modules/virtualisation/xen-dom0.nix
+++ b/nixos/modules/virtualisation/xen-dom0.nix
@@ -331,6 +331,9 @@ in
         IFS='-' read -a data <<< `${pkgs.sipcalc}/bin/sipcalc ${cfg.bridge.address}/${toString cfg.bridge.prefixLength} | grep Network\ address`
         export XEN_BRIDGE_NETWORK_ADDRESS="${"\${data[1]//[[:blank:]]/}"}"
 
+        IFS='-' read -a data <<< `${pkgs.sipcalc}/bin/sipcalc ${cfg.bridge.address}/${toString cfg.bridge.prefixLength} | grep Network\ mask`
+        export XEN_BRIDGE_NETMASK="${"\${data[1]//[[:blank:]]/}"}"
+
         echo "${cfg.bridge.address} host gw dns" > /var/run/xen/dnsmasq.hostsfile
 
         cat <<EOF > /var/run/xen/dnsmasq.conf
@@ -369,6 +372,7 @@ in
 
         ${pkgs.bridge-utils}/bin/brctl addbr ${cfg.bridge.name}
         ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} ${cfg.bridge.address}
+        ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} netmask $XEN_BRIDGE_NETMASK
         ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} up
       '';
       serviceConfig.ExecStart = "${pkgs.dnsmasq}/bin/dnsmasq --conf-file=/var/run/xen/dnsmasq.conf";