X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=setup-egre-link;h=7264bb3ddf37523df392bfb2c3a6c3beab807c1b;hb=9a8b3bd2194133bacafda65f972f56eed1a7341d;hp=e6494af18f028c6e23f0ba24c3b0273fa738be79;hpb=f6ed4fcd49097356b5f23143e1df6fc7eb20dcb4;p=nodemanager-topo.git diff --git a/setup-egre-link b/setup-egre-link index e6494af..7264bb3 100755 --- a/setup-egre-link +++ b/setup-egre-link @@ -1,7 +1,5 @@ #!/bin/sh +x -IP=/sbin/ip - SLICE=$1 SLICEID=`id -u $SLICE` NODEID=$2 @@ -18,34 +16,22 @@ modprobe ip_gre ### Setup EGRE tunnel EGRE=d$LINK -$IP tunnel add $EGRE mode gre type eth remote $REMOTE key $KEY ttl 64 -$IP link set $EGRE up - -### Setup etun -ETUN0=a$LINK -ETUN1=b$LINK -ip link add name $ETUN0 type veth peer name $ETUN1 -ifconfig $ETUN0 mtu 1458 up -ifconfig $ETUN1 up - -### Setup bridge -BRIDGE=c$LINK -brctl addbr $BRIDGE -brctl addif $BRIDGE $EGRE -brctl addif $BRIDGE $ETUN1 -ifconfig $BRIDGE up - -### Setup iptables so that packets are visible in the vserver -iptables -t mangle -A FORWARD -o $BRIDGE -j MARK --set-mark $SLICEID +ip tunnel add $EGRE mode gre type eth remote $REMOTE key $KEY ttl 64 +ip link set $EGRE up + +### Setup macvlan +MACV=a$LINK +ip link add link $EGRE $MACV type macvlan ### Put a process in the vserver so we can move the interface there su $SLICE -c "sleep 30 &" PID=`su $SLICE -c "pgrep -n sleep"` -$IP link set $ETUN0 netns $PID +ip link set $MACV netns $PID naddress --add --nid $SLICEID --ip ${VIRTIP}${SUBNET} -su $SLICE -c "sudo /sbin/ifconfig $ETUN0 ${VIRTIP}${SUBNET} up; sudo /sbin/route add -net $VIRTNET dev $ETUN0" +su $SLICE -c "sudo /sbin/ifconfig $MACV ${VIRTIP}${SUBNET} mtu 1458 up" ### Set rate +ifconfig $EGRE txqueuelen 1000 tc qdisc add dev $EGRE root handle 1: htb default 10 tc class add dev $EGRE parent 1: classid 1:10 htb rate $RATE ceil $RATE