summaryrefslogtreecommitdiffstats
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)
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 1f5b6bd1d808..1567b1753481 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";