Commit bef9c750 authored by Guido Trotter's avatar Guido Trotter
Browse files

KVM: NIC parameters


Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
Reviewed-by: default avatarIustin Pop <iustin@google.com>
parent 1ba9227f
......@@ -150,17 +150,28 @@ class KVMHypervisor(hv_base.BaseHypervisor):
script.write("# this is autogenerated by Ganeti, please do not edit\n#\n")
script.write("export INSTANCE=%s\n" % instance.name)
script.write("export MAC=%s\n" % nic.mac)
script.write("export IP=%s\n" % nic.ip)
script.write("export BRIDGE=%s\n" % nic.bridge)
if nic.ip:
script.write("export IP=%s\n" % nic.ip)
script.write("export MODE=%s\n" % nic.nicparams[constants.NIC_MODE])
if nic.nicparams[constants.NIC_LINK]:
script.write("export LINK=%s\n" % nic.nicparams[constants.NIC_LINK])
if nic.nicparams[constants.NIC_MODE] == constants.NIC_MODE_BRIDGED:
script.write("export BRIDGE=%s\n" % nic.nicparams[constants.NIC_LINK])
script.write("export INTERFACE=$1\n")
# TODO: make this configurable at ./configure time
script.write("if [ -x '%s' ]; then\n" % self._KVM_NETWORK_SCRIPT)
script.write(" # Execute the user-specific vif file\n")
script.write(" %s\n" % self._KVM_NETWORK_SCRIPT)
script.write("else\n")
script.write(" # Connect the interface to the bridge\n")
script.write(" /sbin/ifconfig $INTERFACE 0.0.0.0 up\n")
script.write(" /usr/sbin/brctl addif $BRIDGE $INTERFACE\n")
if nic.nicparams[constants.NIC_MODE] == constants.NIC_MODE_BRIDGED:
script.write(" # Connect the interface to the bridge\n")
script.write(" /usr/sbin/brctl addif $BRIDGE $INTERFACE\n")
elif nic.nicparams[constants.NIC_MODE] == constants.NIC_MODE_ROUTED:
script.write(" # Route traffic targeted at the IP to the interface\n")
script.write(" /sbin/ip route add $IP/32 dev $INTERFACE\n")
interface_proxy_arp = "/proc/sys/net/ipv4/conf/$INTERFACE/proxy_arp"
script.write(" /bin/echo 1 > %s\n" % interface_proxy_arp)
script.write("fi\n\n")
# As much as we'd like to put this in our _ROOT_DIR, that will happen to be
# mounted noexec sometimes, so we'll have to find another place.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment