X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=factory%2Fsetup-link;h=58a431f3940e0b90def0048f65870b1c2572d51d;hb=4eccf5deff6324957d0bf0799dee6decb8d5f05a;hp=5c93a3095d80ee69ce8a31bb630a28847170711c;hpb=29c254469667d325b86ec3fa438581ab34f3244d;p=vsys.git diff --git a/factory/setup-link b/factory/setup-link index 5c93a30..58a431f 100755 --- a/factory/setup-link +++ b/factory/setup-link @@ -4,29 +4,38 @@ IP=/sbin/ip SLICE=$1 SLICEID=`id -u $SLICE` -read LABEL +read INDEX read REMOTE -read KEY -LINK=${LABEL}k$KEY +KEYFILE="/etc/vini/egre-keys.txt" +if [ -e "$KEYFILE" ]; then + KEY=$( awk -v slice=$SLICE '$1 == slice {print $2}' $KEYFILE ) +fi +if [ -z "$KEY" ]; then + echo "No EGRE key found for slice $SLICE!" + echo "Please send mail to vini-users@lists.planet-lab.org." + exit 1 +fi + +LINK=${KEY}if${INDEX} modprobe ip_gre modprobe etun ### Setup EGRE tunnel -EGRE=egre$LINK -$IP tunnel add $EGRE mode gre/eth remote $REMOTE key $KEY +EGRE=d$LINK +$IP tunnel add $EGRE mode gre/eth remote $REMOTE key $KEY ttl 64 $IP link set $EGRE up ### Setup etun -ETUN0=v$LINK -ETUN1=etun$LINK +ETUN0=a$LINK +ETUN1=b$LINK echo $ETUN0,$ETUN1 > /sys/module/etun/parameters/newif ifconfig $ETUN0 mtu 1458 up ifconfig $ETUN1 up ### Setup bridge -BRIDGE=br$LINK +BRIDGE=c$LINK brctl addbr $BRIDGE brctl addif $BRIDGE $EGRE brctl addif $BRIDGE $ETUN1 @@ -36,7 +45,7 @@ ifconfig $BRIDGE up iptables -t mangle -A FORWARD -o $BRIDGE -j MARK --set-mark $SLICEID ### Create "grab link" script -GRAB=/vsys/grab-$ETUN0 +GRAB=/vsys/local_grab-$ETUN0 echo $SLICE > $GRAB.acl rm -f $GRAB cat > $GRAB < /sys/class/net/$ETUN0/new_ns_pid EOF chmod +x $GRAB -### Create "bind link" script -BIND=/vsys/bind-link-$ETUN0 +### Create script for setting link rate +BIND=/vsys/local_rate-$ETUN0 echo $SLICE > $BIND.acl rm -f $BIND cat > $BIND < $UNBIND < $DELETE.acl rm -f $DELETE cat > $DELETE <