Make link.sh work
diff --git a/scripts/link.sh b/scripts/link.sh
index d87464b..e1276f1 100755
--- a/scripts/link.sh
+++ b/scripts/link.sh
@@ -1,4 +1,5 @@
#! /bin/bash
+
controller=`hostname`
switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'`
@@ -17,24 +18,28 @@
src_port=$2
cmd=$3
+#sudo ovs-ofctl show sw02.01 | grep addr > link.in
+#cat link.in | awk -v p=$src_port 'BEGIN {pat="^ "p"\("}
+#$0 ~ pat {w=match ($0, /\(.*\)/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'
+#exit
+
for s in $switches; do
dpid=`sudo ovs-ofctl show $s |grep dpid | awk '{print $4}'`
if [ "x$dpid" == "x$src_dpid" ]; then
- intfs=`sudo ovs-ofctl show $s |grep addr | awk '{print $1}' | sed 's/.*(//g' | sed 's/):$//g'`
- intf_list=()
- for i in $intfs; do
- intf_list+=($i)
- done
- intf=${intf_list[$src_port]}
- if [ x$cmd == "xup" ]; then
- echo "sudo ifconfig ${intf} up"
- sudo ifconfig ${intf} up
- elif [ x$cmd == "xdown" ]; then
- echo "sudo ifconfig ${intf} down"
- sudo ifconfig ${intf} down
- else
- echo "sudo ifconfig ${intf}"
- sudo ifconfig ${intf}
+ intf=`sudo ovs-ofctl show $s |grep addr | awk -v p=$src_port 'BEGIN {pat="^ "p"\("}
+ $0 ~ pat {w=match ($0, /\(.*\)/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'`
+ if [ x$intf != "x" ]; then
+ if [ x$cmd == "xup" ]; then
+ echo "sudo ifconfig ${intf} up"
+ sudo ifconfig ${intf} up
+ elif [ x$cmd == "xdown" ]; then
+ echo "sudo ifconfig ${intf} down"
+ sudo ifconfig ${intf} down
+ else
+ echo "sudo ifconfig ${intf}"
+ sudo ifconfig ${intf}
+ fi
+ break
fi
fi
done