WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] tools: Fix network-bridge to work with Gentoo (v

To: Jon Mason <jdmason@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] tools: Fix network-bridge to work with Gentoo (version 2)
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Tue, 04 Oct 2005 23:03:08 -0500
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Wed, 05 Oct 2005 04:00:48 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20051004235436.GB7576@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20050929222041.GA26407@xxxxxxxxxx> <20051004235436.GB7576@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050912)
A slightly less invasive way to do it is to have a Gentoo compatibility script that looks something like this:

# Gentoo doesn't have ifup/ifdown so if we're on Gentoo define some
which ifup >& /dev/null
if [ "$?" != 0 -a -e /etc/conf.d/net ]; then
   ifup() {
       /etc/init.d/net.$1 start
   }
   ifdown() {
       /etc/init.d/net.$1 stop
   }
fi

This could then be sourced from the network script (or just inlined).

Jon Mason wrote:

This patch fixes domU networking in Gentoo.  The change to ifup/ifdown
(which isn't availabe in Gentoo) prevents the bridge from being setup
correctly.  The patch below checks if ifup is avaiable, and if not
starts the Gentoo networking scripts.

This new version includes shell functions where distro specific options
may be handled (per Ian's suggestion).
Signed-off-by: Jon Mason <jdmason@xxxxxxxxxx>

# HG changeset patch
# User root@pentium4
# Node ID 6de75791e5a54b8eb093c6630efb68f896c16fa3
# Parent  00037ba13f0bb8efe4b2c3efe40200eac21c68dd

Fix network-bridge to work with Gentoo

diff -r 00037ba13f0b -r 6de75791e5a5 tools/examples/network-bridge
--- a/tools/examples/network-bridge     Tue Oct  4 17:23:58 2005
+++ b/tools/examples/network-bridge     Tue Oct  4 23:42:28 2005
@@ -54,6 +54,32 @@
antispoof=${antispoof:-no}

echo "*network $OP bridge=$bridge netdev=$netdev antispoof=$antispoof" >&2
+
+# Usage: eth_down interface
+eth_down() {
+       local rc
+       local eth=$1
+       ifdown=$(which ifdown 2>/dev/null)
+       if [ -n "$ifdown" ]; then
+               $ifdown ${eth}; rc=$?
+       else
+               /etc/init.d/net.${eth} stop; rc=$?
+       fi
+       return $rc
+}
+
+# Usage: eth_up interface
+eth_up() {
+       local rc
+       local eth=$1
+       ifdown=$(which ifup 2>/dev/null)
+       if [ -n "$ifup" ]; then
+               $ifup ${eth}; rc=$?
+       else
+               /etc/init.d/net.${eth} start; rc=$?
+       fi
+       return $rc
+}

# Usage: transfer_addrs src dst
# Copy all IP addresses (including aliases) from device $src to device $dst.
@@ -177,7 +203,7 @@

    if ifconfig veth0 2>/dev/null | grep -q veth0 ; then
        mac=`ifconfig ${netdev} | grep HWadd | sed -e 
's/.*\(..:..:..:..:..:..\).*/\1/'`
-       if ! ifdown ${netdev} ; then
+       if ! eth_down ${netdev} ; then
                # if ifup didn't work, see if we have an ip= on cmd line
if egrep 'ip=[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:' /proc/cmdline ; then
@@ -197,7 +223,7 @@
        ip link set ${bridge} up
        ip link set vif0.0 up
        ip link set p${netdev} up
-       if ! ifup ${netdev} ; then
+       if ! eth_up ${netdev} ; then
                if [ ${kip} ] ; then
                        # use the addresses we grocked from /proc/cmdline       
ifconfig ${netdev} ${kip} @@ -238,7 +264,7 @@
        ip link set peth0 name eth0
        ifconfig ${bridge} down
        brctl delbr ${bridge}
-        ifup eth0
+        eth_up eth0

    else
        transfer_routes ${bridge} ${netdev}

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>