Virtual link scripts for Trellis
[vsys.git] / factory / setup-link
1 #!/bin/sh +x
2
3 IP=/sbin/ip
4
5 SLICE=$1
6 SLICEID=`id -u $SLICE`
7 read LINKNUM
8 LINK=${SLICEID}$LINKNUM
9 read REMOTE
10 read KEY
11
12 modprobe ip_gre
13 modprobe etun
14
15 ### Setup EGRE tunnel
16 EGRE=egre$LINK
17 $IP tunnel add $EGRE  mode gre/eth remote $REMOTE key $KEY
18 $IP link set $EGRE up
19
20 ### Setup etun
21 ETUN0=veth$LINK
22 ETUN1=etun$LINK
23 echo $ETUN0,$ETUN1 > /sys/module/etun/parameters/newif
24 ifconfig $ETUN0 up
25 ifconfig $ETUN1 up
26
27 ### Setup bridge
28 BRIDGE=br$LINK
29 brctl addbr $BRIDGE
30 brctl addif $BRIDGE $EGRE 
31 brctl addif $BRIDGE $ETUN1
32 ifconfig $BRIDGE up
33
34 ### Create "grab link" script
35 GRAB=/vsys/grab-$ETUN0
36 cat > $GRAB <<EOF
37 #!/bin/sh
38
39 read PID
40
41 chcontext --ctx 1 -- echo \$PID > /sys/class/net/$ETUN0/new_ns_pid 
42 EOF
43 chmod +x $GRAB
44 echo $SLICE > $GRAB.acl 
45
46