X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from mail.wtbts.no (mail.wtbts.no [213.234.126.131]) by mail.alpinelinux.org (Postfix) with ESMTP id 1970CDC144F for ; Fri, 30 Dec 2011 09:36:52 +0000 (UTC) Received: from localhost (bsna.nor.wtbts.net [127.0.0.1]) by mail.wtbts.no (Postfix) with ESMTP id 2D213AE4002; Fri, 30 Dec 2011 09:36:52 +0000 (UTC) X-Virus-Scanned: Yes Received: from mail.wtbts.no ([127.0.0.1]) by localhost (bsna.nor.wtbts.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eRvsuNVQsUXQ; Fri, 30 Dec 2011 09:36:50 +0000 (UTC) Received: from mail.ytre.org (extmail.nor.wtbts.net [10.65.72.14]) by mail.wtbts.no (Postfix) with ESMTP id 825C8AE4001; Fri, 30 Dec 2011 09:36:50 +0000 (UTC) Received: from mail.ytre.org (localhost [127.0.0.1]) by mail.ytre.org (Postfix) with ESMTP id 45AF960AF5D12; Fri, 30 Dec 2011 09:36:50 +0000 (UTC) Received: from ncopa-desktop.nor.wtbts.net (ncopa-desktop.nor.wtbts.net [10.65.65.1]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: ncopa@ytre.org) by mail.ytre.org (Postfix) with ESMTPSA id 168A860AF5718; Fri, 30 Dec 2011 09:36:49 +0000 (UTC) Date: Fri, 30 Dec 2011 10:36:49 +0100 From: Natanael Copa To: Roger Pau Monne Cc: alpine-devel@lists.alpinelinux.org Subject: Re: [alpine-devel] [PATCH] alpine-conf: modify setup-interfaces to create simple bridges Message-ID: <20111230103649.7c25684e@ncopa-desktop.nor.wtbts.net> In-Reply-To: <1325182586-2051-1-git-send-email-roger.pau@entel.upc.edu> References: <1325182586-2051-1-git-send-email-roger.pau@entel.upc.edu> X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.6; x86_64-unknown-linux-gnu) X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP On Thu, 29 Dec 2011 19:16:26 +0100 Roger Pau Monne wrote: > Modified setup-interfaces to create simple bridges (works only with > one interface per bridge). Useful when setting up a Xen system, since > interfaces need to be bridged in order for guests to have networking. > Some distributions automatically create one bridge for each interface > when Xen is installed, but I think this is too aggressive. Nice! as mentioned in IRC, I think we should check only ask for bridge in case its a xen dom0. I want try keep number of questions down to minimum. Thanks! -nc > --- > setup-interfaces.in | 45 > +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 41 > insertions(+), 4 deletions(-) > > diff --git a/setup-interfaces.in b/setup-interfaces.in > index b461529..f78b23b 100755 > --- a/setup-interfaces.in > +++ b/setup-interfaces.in > @@ -5,6 +5,7 @@ PREFIX= > > . $PREFIX/lib/libalpine.sh > > +bridges="" > > detect_interfaces() { > ip addr | grep -v ' lo:' | awk -F : '/^[0-9]*:/ { print $2}' > @@ -42,7 +43,26 @@ config_iface() { > local address > local netmask > local gateway > + local bridge > local conf=$prefix$iface.conf > + local answer > + > + while [ "$answer" != "yes" ] && [ "$answer" != "no" ] ; do > + echon "Do you want to bridge the interface $iface? > [no] " > + default_read answer no > + done > + > + if [ "$answer" = "yes" ]; then > + bridge="br"`echo $iface | sed 's/[^0-9]//g'` > + while [ 1 ]; do > + echon "Name of the bridge you would like to > create: [$bridge] " > + default_read bridge $bridge > + `echo "$bridges" | grep -q "$bridge"` || > break > + echo "Name already in use, please choose > another one" > + done > + echo "bridge=${bridge}" > $conf > + bridges="$bridges $bridge" > + fi > > # use ipcalc to validate the address. we do accept /mask > # we are no interested in the result, only error code, so > @@ -55,7 +75,7 @@ config_iface() { > [ "$address" = "abort" ] && return > if [ "$address" = "dhcp" ] ; then > HAS_DHCP=yes > - echo "type=dhcp" > $conf > + echo "type=dhcp" >> $conf > rm $iface.noconf > return > fi > @@ -87,7 +107,7 @@ config_iface() { > [ -z "$gateway" ] && break > done > > - echo "type=static" > $conf > + echo "type=static" >> $conf > echo "address=${address%%/*}" >> $conf #strip off /mask if > there echo "netmask=$netmask" >> $conf > echo "gateway=$gateway" >> $conf > @@ -146,8 +166,20 @@ prompt_for_interfaces() { > iface=`basename $i .conf` > iface=${iface#[0-9]*~} > . ./$i > - echo "auto $iface" >> interfaces > - echo "iface $iface inet $type" >> interfaces > + if [ -n "$bridge" ]; then > + echo "auto $iface $bridge" >> interfaces > + echo "" >> interfaces > + echo "iface $iface inet manual" >> interfaces > + echo -e "\tup ip link set \$IFACE up" >> > interfaces > + echo -e "\tdown ip link set \$IFACE down" >> > interfaces > + echo "" >> interfaces > + echo "iface $bridge inet $type" >> interfaces > + echo -e "\tpre-up brctl addbr $bridge" >> > interfaces > + echo -e "\tpre-up brctl addif $bridge > $iface" >> interfaces > + else > + echo "auto $iface" >> interfaces > + echo "iface $iface inet $type" >> interfaces > + fi > case $type in > dhcp) > [ -n "$hostname" ] \ > @@ -160,7 +192,12 @@ prompt_for_interfaces() { > && echo -e "\tgateway $gateway" >> > interfaces ;; > esac > + if [ -n "$bridge" ]; then > + echo -e "\tpost-down brctl delif $bridge > $iface" >> interfaces > + echo -e "\tpost-down brctl delbr $bridge" >> > interfaces > + fi > echo "" >> interfaces > + bridge="" > done > > while [ "$answer" != "yes" ] && [ "$answer" != "no" ] ; do --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---