#!/bin/bash #============================================================================ # ${XEN_SCRIPT_DIR}/vif-route # # Script for configuring a vif in routed mode. # The hotplugging system will call this script if it is specified either in # the device configuration given to Xend, or the default Xend configuration # in ${XEN_CONFIG_DIR}/xend-config.sxp. If the script is specified in # neither of those places, then vif-bridge is the default. # # Usage: # vif-route (add|remove|online|offline) # # Environment vars: # dev vif interface name (required). # XENBUS_PATH path to this device's details in the XenStore (required). # # Read from the store: # ip list of IP networks for the vif, space-separated (default given in # this script). #============================================================================ dir=$(dirname "$0") . "${dir}/vif-common.sh" main_ip=$(dom0_ip) case "${command}" in online) ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp ipcmd='add' cmdprefix='' ;; offline) do_without_error ifdown ${dev} ipcmd='del' cmdprefix='do_without_error' ;; esac if [ "${ip}" ] ; then # If we've been given a list of IP addresses, then add routes from dom0 to # the guest using those addresses. for addr in ${ip} ; do ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} done fi handle_iptable call_hooks vif post log debug "Successful vif-route ${command} for ${dev}." if [ "${command}" = "online" ] then success fi