source: trunk/packages/invirt-xen-config/vif-invirtroute @ 2863

Last change on this file since 2863 was 2860, checked in by broder, 15 years ago

For simplicity, and because we've never used it, tear the IPv6
"support" out of vif-invirtroute.

  • Property svn:executable set to *
File size: 2.1 KB
Line 
1#!/bin/bash
2
3#============================================================================
4# /etc/xen/vif-route
5#
6# Script for configuring a vif in routed mode.
7# The hotplugging system will call this script if it is specified either in
8# the device configuration given to Xend, or the default Xend configuration
9# in /etc/xen/xend-config.sxp.  If the script is specified in neither of those
10# places, then vif-bridge is the default.
11#
12# Usage:
13# vif-route (add|remove|online|offline)
14#
15# Environment vars:
16# vif         vif interface name (required).
17# XENBUS_PATH path to this device's details in the XenStore (required).
18# Read from the store:
19# ip      list of IP networks for the vif, space-separated (default given in
20#         this script).
21#
22# This script will set up proxy arp  for any ip addresses that are being routed
23# type read to determine if the device is ioemu
24
25#============================================================================
26
27dir=$(dirname "$0")
28. "$dir/vif-common.sh"
29
30main_ip=$(dom0_ip)
31dev=${dev:-${vif}}
32
33case "$command" in
34    online)
35        ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up
36        echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp
37        echo 1 >/proc/sys/net/ipv4/conf/${dev}/rp_filter
38        if [ x${qemu_online} != xyes ]; then
39          ethtool -K ${dev} tx off
40        fi
41        ipcmd='add'
42        cmdprefix=''
43        ;;
44    offline)
45        do_without_error ifdown ${vif}
46        ipcmd='del'
47        cmdprefix='do_without_error'
48        ;;
49esac
50
51vif_type=$(xenstore_read_default "$XENBUS_PATH/type" "viffront")
52if [  ${vif_type} != "ioemu"  -o  x${qemu_online} = xyes ] ; then
53    if [ "${ip}" ] ; then
54    # If we've been given a list of IP addresses, then add routes from dom0 to
55    # the guest using those addresses.
56        for addr in ${ip} ; do
57            ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip}
58            arpspoof -i $(invirt-getconf xen.network.iface) -t 18.181.0.1 ${addr}&
59            sleep 5
60            kill %arpspoof
61        done
62    fi
63fi
64
65log debug "Successful vif-route $command for $vif."
66if [ "$command" == "online" ]
67then
68  success
69fi
Note: See TracBrowser for help on using the repository browser.