Merge pull request #352 from pgreyson/master

Add explicit timeout logic to recover if the API misbehaves
diff --git a/cluster-mgmt/bin/bootup.sh b/cluster-mgmt/bin/bootup.sh
new file mode 100755
index 0000000..e58e802
--- /dev/null
+++ b/cluster-mgmt/bin/bootup.sh
@@ -0,0 +1,20 @@
+#! /bin/bash
+. $HOME/bin/func.sh
+
+onos stop
+cassandra cleandb
+cassandra stop
+zk stop
+
+zk start
+cassandra start
+cassandra cleandb
+db_status=`cassandra checkdb |grep OK | wc -l`
+if [ $db_status != 1 ];then
+  echo $db_status
+  echo "Cassandra DB was screwed up. Need DB key drop"
+  exit
+fi
+onos start
+switch local
+#dsh -g $basename 'cd ONOS; ./ctrl-local.sh'
diff --git a/cluster-mgmt/bin/pingall-speedup.sh b/cluster-mgmt/bin/pingall-speedup.sh
index 0ffbf57..f5d785a 100755
--- a/cluster-mgmt/bin/pingall-speedup.sh
+++ b/cluster-mgmt/bin/pingall-speedup.sh
@@ -4,6 +4,7 @@
 elif [ ! -f ${HOME}/ONOS/web/$1  ]; then
   echo "no such flowdef file: $1"
 fi
+echo "Raw data at /tmp/.pingall.result.$$"
 dsh "cd ONOS/web; ./pingallm-local.py $1" > /tmp/.pingall.result.$$
 cat /tmp/.pingall.result.$$ | grep "Pingall flow" | sort -n -k 4 
 cat /tmp/.pingall.result.$$ | grep "Pingall Result" | awk '{s+=$5; f+=$7; i+=$9}END{printf("Pingall Result: success %d fail %d incomplete %d\n",s,f,i)}'
diff --git a/cluster-mgmt/bin/start.sh b/cluster-mgmt/bin/start.sh
index e58e802..277d69b 100755
--- a/cluster-mgmt/bin/start.sh
+++ b/cluster-mgmt/bin/start.sh
@@ -3,12 +3,7 @@
 
 onos stop
 cassandra cleandb
-cassandra stop
-zk stop
 
-zk start
-cassandra start
-cassandra cleandb
 db_status=`cassandra checkdb |grep OK | wc -l`
 if [ $db_status != 1 ];then
   echo $db_status
diff --git a/web/link.json b/web/link.json
new file mode 100644
index 0000000..1bf2b66
--- /dev/null
+++ b/web/link.json
@@ -0,0 +1,2636 @@
+[
+  {
+    "dst-switch": "00:00:00:16:97:08:9a:46", 
+    "src-switch": "00:00:00:00:ba:5e:ba:11", 
+    "src-port": 2, 
+    "dst-port": 2
+  }, 
+  {
+    "dst-switch": "00:00:00:08:a2:08:f9:01", 
+    "src-switch": "00:00:00:00:ba:5e:ba:11", 
+    "src-port": 3, 
+    "dst-port": 2
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:02:01", 
+    "src-switch": "00:00:00:00:ba:5e:ba:11", 
+    "src-port": 4, 
+    "dst-port": 51
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:05:01", 
+    "src-switch": "00:00:00:00:00:00:ba:12", 
+    "src-port": 5, 
+    "dst-port": 26
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:04:01", 
+    "src-switch": "00:00:00:00:00:00:ba:12", 
+    "src-port": 4, 
+    "dst-port": 26
+  }, 
+  {
+    "dst-switch": "00:00:00:08:a2:08:f9:01", 
+    "src-switch": "00:00:00:00:00:00:ba:12", 
+    "src-port": 2, 
+    "dst-port": 3
+  }, 
+  {
+    "dst-switch": "00:00:00:00:ba:5e:ba:13", 
+    "src-switch": "00:00:00:00:00:00:ba:12", 
+    "src-port": 3, 
+    "dst-port": 2
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:07:01", 
+    "src-switch": "00:00:20:4e:7f:51:8a:35", 
+    "src-port": 5, 
+    "dst-port": 26
+  }, 
+  {
+    "dst-switch": "00:00:00:16:97:08:9a:46", 
+    "src-switch": "00:00:20:4e:7f:51:8a:35", 
+    "src-port": 2, 
+    "dst-port": 3
+  }, 
+  {
+    "dst-switch": "00:00:00:08:a2:08:f9:01", 
+    "src-switch": "00:00:20:4e:7f:51:8a:35", 
+    "src-port": 3, 
+    "dst-port": 4
+  }, 
+  {
+    "dst-switch": "00:00:00:00:ba:5e:ba:13", 
+    "src-switch": "00:00:20:4e:7f:51:8a:35", 
+    "src-port": 4, 
+    "dst-port": 3
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:06:01", 
+    "src-switch": "00:00:00:00:ba:5e:ba:13", 
+    "src-port": 4, 
+    "dst-port": 26
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:ba:12", 
+    "src-switch": "00:00:00:00:ba:5e:ba:13", 
+    "src-port": 2, 
+    "dst-port": 3
+  }, 
+  {
+    "dst-switch": "00:00:20:4e:7f:51:8a:35", 
+    "src-switch": "00:00:00:00:ba:5e:ba:13", 
+    "src-port": 3, 
+    "dst-port": 4
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:03:01", 
+    "src-switch": "00:00:00:08:a2:08:f9:01", 
+    "src-port": 5, 
+    "dst-port": 26
+  }, 
+  {
+    "dst-switch": "00:00:00:00:ba:5e:ba:11", 
+    "src-switch": "00:00:00:08:a2:08:f9:01", 
+    "src-port": 2, 
+    "dst-port": 3
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:ba:12", 
+    "src-switch": "00:00:00:08:a2:08:f9:01", 
+    "src-port": 3, 
+    "dst-port": 2
+  }, 
+  {
+    "dst-switch": "00:00:20:4e:7f:51:8a:35", 
+    "src-switch": "00:00:00:08:a2:08:f9:01", 
+    "src-port": 4, 
+    "dst-port": 3
+  }, 
+  {
+    "dst-switch": "00:00:00:00:00:00:08:01", 
+    "src-switch": "00:00:00:16:97:08:9a:46", 
+    "src-port": 4, 
+    "dst-port": 26
+  }, 
+  {
+    "dst-switch": "00:00:00:00:ba:5e:ba:11", 
+    "src-switch": "00:00:00:16:97:08:9a:46", 
+    "src-port": 2, 
+    "dst-port": 2
+  }, 
+  {
+    "dst-switch": "00:00:20:4e:7f:51:8a:35", 
+    "src-switch": "00:00:00:16:97:08:9a:46", 
+    "src-port": 3, 
+    "dst-port": 2
+  },
+    {
+        "dst-port": 21, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:15"
+    }, 
+    {
+        "dst-port": 15, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:0f"
+    }, 
+    {
+        "dst-port": 17, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:11"
+    }, 
+    {
+        "dst-port": 12, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:0c"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:03"
+    }, 
+    {
+        "dst-port": 22, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:16"
+    }, 
+    {
+        "dst-port": 11, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:0b"
+    }, 
+    {
+        "dst-port": 14, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:0e"
+    }, 
+    {
+        "dst-port": 13, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:0d"
+    }, 
+    {
+        "dst-port": 12, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:0c"
+    }, 
+    {
+        "dst-port": 25, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:19"
+    }, 
+    {
+        "dst-port": 18, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:12"
+    }, 
+    {
+        "dst-port": 22, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:16"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:06"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:01:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:01:02"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:01:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:01:02"
+    }, 
+    {
+        "dst-port": 51, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:01:02"
+    }, 
+    {
+        "dst-port": 17, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:11"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:04"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:06"
+    }, 
+    {
+        "dst-port": 9, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:09"
+    }, 
+    {
+        "dst-port": 20, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:14"
+    }, 
+    {
+        "dst-port": 15, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:0f"
+    }, 
+    {
+        "dst-port": 14, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:0e"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:02"
+    }, 
+    {
+        "dst-port": 8, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:08"
+    }, 
+    {
+        "dst-port": 13, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:0d"
+    }, 
+    {
+        "dst-port": 11, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:0b"
+    }, 
+    {
+        "dst-port": 22, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:16"
+    }, 
+    {
+        "dst-port": 18, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:12"
+    }, 
+    {
+        "dst-port": 26, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:01:03"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:01:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:01:03"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:01:04", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:01:03"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:01:06", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:01:03"
+    }, 
+    {
+        "dst-port": 7, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:07"
+    }, 
+    {
+        "dst-port": 25, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:19"
+    }, 
+    {
+        "dst-port": 26, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:01:06"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:01:04", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:01:06"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:01:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:01:06"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:01:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:01:06"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:01:05", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:01:06"
+    }, 
+    {
+        "dst-port": 20, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:14"
+    }, 
+    {
+        "dst-port": 8, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:08"
+    }, 
+    {
+        "dst-port": 26, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:01:04"
+    }, 
+    {
+        "dst-port": 26, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:01:04"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:01:03", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:01:04"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:01:05", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:01:04"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:01:06", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:01:04"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:06"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:05"
+    }, 
+    {
+        "dst-port": 15, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:0f"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:01:04", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:01:05"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:01:06", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:01:05"
+    }, 
+    {
+        "dst-port": 26, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:01:05"
+    }, 
+    {
+        "dst-port": 25, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:19"
+    }, 
+    {
+        "dst-port": 20, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:14"
+    }, 
+    {
+        "dst-port": 12, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:0c"
+    }, 
+    {
+        "dst-port": 14, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:0e"
+    }, 
+    {
+        "dst-port": 25, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:19"
+    }, 
+    {
+        "dst-port": 16, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:10"
+    }, 
+    {
+        "dst-port": 10, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:0a"
+    }, 
+    {
+        "dst-port": 11, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:0b"
+    }, 
+    {
+        "dst-port": 15, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:0f"
+    }, 
+    {
+        "dst-port": 12, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:0c"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:02"
+    }, 
+    {
+        "dst-port": 22, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:16"
+    }, 
+    {
+        "dst-port": 10, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:0a"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:02"
+    }, 
+    {
+        "dst-port": 17, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:11"
+    }, 
+    {
+        "dst-port": 31, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:1f"
+    }, 
+    {
+        "dst-port": 11, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:0b"
+    }, 
+    {
+        "dst-port": 17, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:11"
+    }, 
+    {
+        "dst-port": 44, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:2c"
+    }, 
+    {
+        "dst-port": 9, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:09"
+    }, 
+    {
+        "dst-port": 25, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:19"
+    }, 
+    {
+        "dst-port": 16, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:10"
+    }, 
+    {
+        "dst-port": 23, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:17"
+    }, 
+    {
+        "dst-port": 39, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:27"
+    }, 
+    {
+        "dst-port": 14, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:0e"
+    }, 
+    {
+        "dst-port": 11, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:0b"
+    }, 
+    {
+        "dst-port": 21, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:15"
+    }, 
+    {
+        "dst-port": 13, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:0d"
+    }, 
+    {
+        "dst-port": 13, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:0d"
+    }, 
+    {
+        "dst-port": 21, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:15"
+    }, 
+    {
+        "dst-port": 27, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:1b"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:03"
+    }, 
+    {
+        "dst-port": 21, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:15"
+    }, 
+    {
+        "dst-port": 13, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:0d"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:05"
+    }, 
+    {
+        "dst-port": 10, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:0a"
+    }, 
+    {
+        "dst-port": 23, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:17"
+    }, 
+    {
+        "dst-port": 18, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:12"
+    }, 
+    {
+        "dst-port": 8, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:08"
+    }, 
+    {
+        "dst-port": 8, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:08"
+    }, 
+    {
+        "dst-port": 17, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:11"
+    }, 
+    {
+        "dst-port": 23, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:17"
+    }, 
+    {
+        "dst-port": 35, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:23"
+    }, 
+    {
+        "dst-port": 38, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:26"
+    }, 
+    {
+        "dst-port": 25, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:19"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:04"
+    }, 
+    {
+        "dst-port": 36, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:24"
+    }, 
+    {
+        "dst-port": 10, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:0a"
+    }, 
+    {
+        "dst-port": 23, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:17"
+    }, 
+    {
+        "dst-port": 12, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:0c"
+    }, 
+    {
+        "dst-port": 43, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:2b"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:05"
+    }, 
+    {
+        "dst-port": 8, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:08"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:04"
+    }, 
+    {
+        "dst-port": 24, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:18"
+    }, 
+    {
+        "dst-port": 28, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:1c"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:0c", 
+        "src-port": 12, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:16", 
+        "src-port": 22, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:14", 
+        "src-port": 20, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:06", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:13", 
+        "src-port": 19, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:05", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:12", 
+        "src-port": 18, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:19", 
+        "src-port": 25, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:07", 
+        "src-port": 7, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:01:06", 
+        "src-port": 26, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:08", 
+        "src-port": 8, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:11", 
+        "src-port": 17, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:09", 
+        "src-port": 9, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:0a", 
+        "src-port": 10, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:17", 
+        "src-port": 23, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:10", 
+        "src-port": 16, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:0f", 
+        "src-port": 15, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:18", 
+        "src-port": 24, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:0e", 
+        "src-port": 14, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:15", 
+        "src-port": 21, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:0b", 
+        "src-port": 11, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:07:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:07:01"
+    }, 
+    {
+        "dst-port": 16, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:10"
+    }, 
+    {
+        "dst-port": 12, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:0c"
+    }, 
+    {
+        "dst-port": 30, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:1e"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:04"
+    }, 
+    {
+        "dst-port": 19, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:13"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:28", 
+        "src-port": 40, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:16", 
+        "src-port": 22, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:31", 
+        "src-port": 49, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:0c", 
+        "src-port": 12, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:1f", 
+        "src-port": 31, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:14", 
+        "src-port": 20, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:06", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:1b", 
+        "src-port": 27, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:22", 
+        "src-port": 34, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:13", 
+        "src-port": 19, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:29", 
+        "src-port": 41, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:30", 
+        "src-port": 48, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:05", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:1c", 
+        "src-port": 28, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:21", 
+        "src-port": 33, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:12", 
+        "src-port": 18, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:2a", 
+        "src-port": 42, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:19", 
+        "src-port": 25, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:2f", 
+        "src-port": 47, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:2e", 
+        "src-port": 46, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:07", 
+        "src-port": 7, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:1a", 
+        "src-port": 26, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:24", 
+        "src-port": 36, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:08", 
+        "src-port": 8, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:2d", 
+        "src-port": 45, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:23", 
+        "src-port": 35, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:11", 
+        "src-port": 17, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:09", 
+        "src-port": 9, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:01:02", 
+        "src-port": 51, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:25", 
+        "src-port": 37, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:2c", 
+        "src-port": 44, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:2b", 
+        "src-port": 43, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:10", 
+        "src-port": 16, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:1e", 
+        "src-port": 30, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:17", 
+        "src-port": 23, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:0a", 
+        "src-port": 10, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:0f", 
+        "src-port": 15, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:26", 
+        "src-port": 38, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:1d", 
+        "src-port": 29, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:18", 
+        "src-port": 24, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:0e", 
+        "src-port": 14, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:15", 
+        "src-port": 21, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:27", 
+        "src-port": 39, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:20", 
+        "src-port": 32, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:0b", 
+        "src-port": 11, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:32", 
+        "src-port": 50, 
+        "src-switch": "00:00:00:00:00:00:02:01"
+    }, 
+    {
+        "dst-port": 16, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:10"
+    }, 
+    {
+        "dst-port": 20, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:14"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:04"
+    }, 
+    {
+        "dst-port": 49, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:31"
+    }, 
+    {
+        "dst-port": 20, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:14"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:05"
+    }, 
+    {
+        "dst-port": 24, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:18"
+    }, 
+    {
+        "dst-port": 18, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:12"
+    }, 
+    {
+        "dst-port": 11, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:0b"
+    }, 
+    {
+        "dst-port": 42, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:2a"
+    }, 
+    {
+        "dst-port": 24, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:18"
+    }, 
+    {
+        "dst-port": 48, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:30"
+    }, 
+    {
+        "dst-port": 20, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:14"
+    }, 
+    {
+        "dst-port": 21, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:15"
+    }, 
+    {
+        "dst-port": 19, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:13"
+    }, 
+    {
+        "dst-port": 7, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:07"
+    }, 
+    {
+        "dst-port": 37, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:25"
+    }, 
+    {
+        "dst-port": 33, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:21"
+    }, 
+    {
+        "dst-port": 23, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:17"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:06"
+    }, 
+    {
+        "dst-port": 16, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:10"
+    }, 
+    {
+        "dst-port": 17, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:11"
+    }, 
+    {
+        "dst-port": 13, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:0d"
+    }, 
+    {
+        "dst-port": 32, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:20"
+    }, 
+    {
+        "dst-port": 16, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:10"
+    }, 
+    {
+        "dst-port": 9, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:09"
+    }, 
+    {
+        "dst-port": 34, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:22"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:04"
+    }, 
+    {
+        "dst-port": 9, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:09"
+    }, 
+    {
+        "dst-port": 21, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:15"
+    }, 
+    {
+        "dst-port": 7, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:07"
+    }, 
+    {
+        "dst-port": 12, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:0c"
+    }, 
+    {
+        "dst-port": 47, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:2f"
+    }, 
+    {
+        "dst-port": 16, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:10"
+    }, 
+    {
+        "dst-port": 9, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:09"
+    }, 
+    {
+        "dst-port": 13, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:0d"
+    }, 
+    {
+        "dst-port": 19, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:13"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:06"
+    }, 
+    {
+        "dst-port": 15, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:0f"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:02"
+    }, 
+    {
+        "dst-port": 9, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:09"
+    }, 
+    {
+        "dst-port": 24, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:18"
+    }, 
+    {
+        "dst-port": 18, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:12"
+    }, 
+    {
+        "dst-port": 24, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:18"
+    }, 
+    {
+        "dst-port": 45, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:2d"
+    }, 
+    {
+        "dst-port": 11, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:0b"
+    }, 
+    {
+        "dst-port": 19, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:13"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:02"
+    }, 
+    {
+        "dst-port": 20, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:14"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:0c", 
+        "src-port": 12, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:16", 
+        "src-port": 22, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:14", 
+        "src-port": 20, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:06", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:13", 
+        "src-port": 19, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:05", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:12", 
+        "src-port": 18, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:19", 
+        "src-port": 25, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:07", 
+        "src-port": 7, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:01:01", 
+        "src-port": 26, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:08", 
+        "src-port": 8, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:11", 
+        "src-port": 17, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:09", 
+        "src-port": 9, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:0a", 
+        "src-port": 10, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:17", 
+        "src-port": 23, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:10", 
+        "src-port": 16, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:0f", 
+        "src-port": 15, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:18", 
+        "src-port": 24, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:0e", 
+        "src-port": 14, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:15", 
+        "src-port": 21, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:0b", 
+        "src-port": 11, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:08:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:08:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:0c", 
+        "src-port": 12, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:16", 
+        "src-port": 22, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:14", 
+        "src-port": 20, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:06", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:13", 
+        "src-port": 19, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:05", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:12", 
+        "src-port": 18, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:19", 
+        "src-port": 25, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:07", 
+        "src-port": 7, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:01:03", 
+        "src-port": 26, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:08", 
+        "src-port": 8, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:11", 
+        "src-port": 17, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:09", 
+        "src-port": 9, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:0a", 
+        "src-port": 10, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:17", 
+        "src-port": 23, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:10", 
+        "src-port": 16, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:0f", 
+        "src-port": 15, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:18", 
+        "src-port": 24, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:0e", 
+        "src-port": 14, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:15", 
+        "src-port": 21, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:0b", 
+        "src-port": 11, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:03:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:03:01"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:03"
+    }, 
+    {
+        "dst-port": 29, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:1d"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:03"
+    }, 
+    {
+        "dst-port": 25, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:19"
+    }, 
+    {
+        "dst-port": 7, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:07"
+    }, 
+    {
+        "dst-port": 8, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:08"
+    }, 
+    {
+        "dst-port": 14, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:0e"
+    }, 
+    {
+        "dst-port": 14, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:0e"
+    }, 
+    {
+        "dst-port": 7, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:07"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:06"
+    }, 
+    {
+        "dst-port": 15, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:0f"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:05"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:0c", 
+        "src-port": 12, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:16", 
+        "src-port": 22, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:14", 
+        "src-port": 20, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:06", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:13", 
+        "src-port": 19, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:05", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:12", 
+        "src-port": 18, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:19", 
+        "src-port": 25, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:07", 
+        "src-port": 7, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:01:04", 
+        "src-port": 26, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:08", 
+        "src-port": 8, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:11", 
+        "src-port": 17, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:09", 
+        "src-port": 9, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:0a", 
+        "src-port": 10, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:17", 
+        "src-port": 23, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:10", 
+        "src-port": 16, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:0f", 
+        "src-port": 15, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:18", 
+        "src-port": 24, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:0e", 
+        "src-port": 14, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:15", 
+        "src-port": 21, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:0b", 
+        "src-port": 11, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:05:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:05:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:01:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:01:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:01:06", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:01:01"
+    }, 
+    {
+        "dst-port": 26, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:01:01"
+    }, 
+    {
+        "dst-port": 18, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:12"
+    }, 
+    {
+        "dst-port": 10, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:0a"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:03"
+    }, 
+    {
+        "dst-port": 17, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:11"
+    }, 
+    {
+        "dst-port": 23, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:17"
+    }, 
+    {
+        "dst-port": 18, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:12"
+    }, 
+    {
+        "dst-port": 19, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:13"
+    }, 
+    {
+        "dst-port": 7, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:07"
+    }, 
+    {
+        "dst-port": 10, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:0a"
+    }, 
+    {
+        "dst-port": 40, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:28"
+    }, 
+    {
+        "dst-port": 10, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:0a"
+    }, 
+    {
+        "dst-port": 50, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:32"
+    }, 
+    {
+        "dst-port": 41, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:29"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:05"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:05"
+    }, 
+    {
+        "dst-port": 22, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:16"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:03"
+    }, 
+    {
+        "dst-port": 23, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:17"
+    }, 
+    {
+        "dst-port": 19, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:13"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:04"
+    }, 
+    {
+        "dst-port": 26, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:1a"
+    }, 
+    {
+        "dst-port": 6, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:06"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:02"
+    }, 
+    {
+        "dst-port": 19, 
+        "dst-switch": "00:00:00:00:00:00:07:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:07:13"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:0c", 
+        "src-port": 12, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:16", 
+        "src-port": 22, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:14", 
+        "src-port": 20, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:06", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:13", 
+        "src-port": 19, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:05", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:12", 
+        "src-port": 18, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:19", 
+        "src-port": 25, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:07", 
+        "src-port": 7, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 5, 
+        "dst-switch": "00:00:00:00:00:00:01:04", 
+        "src-port": 26, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:08", 
+        "src-port": 8, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:11", 
+        "src-port": 17, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:09", 
+        "src-port": 9, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:0a", 
+        "src-port": 10, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:17", 
+        "src-port": 23, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:10", 
+        "src-port": 16, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:0f", 
+        "src-port": 15, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:18", 
+        "src-port": 24, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:0e", 
+        "src-port": 14, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:15", 
+        "src-port": 21, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:0b", 
+        "src-port": 11, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:04:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:04:01"
+    }, 
+    {
+        "dst-port": 21, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:15"
+    }, 
+    {
+        "dst-port": 3, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:03"
+    }, 
+    {
+        "dst-port": 24, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:18"
+    }, 
+    {
+        "dst-port": 9, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:09"
+    }, 
+    {
+        "dst-port": 46, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:2e"
+    }, 
+    {
+        "dst-port": 15, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:0f"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:02:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:02:02"
+    }, 
+    {
+        "dst-port": 14, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:0e"
+    }, 
+    {
+        "dst-port": 22, 
+        "dst-switch": "00:00:00:00:00:00:03:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:03:16"
+    }, 
+    {
+        "dst-port": 22, 
+        "dst-switch": "00:00:00:00:00:00:06:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:16"
+    }, 
+    {
+        "dst-port": 7, 
+        "dst-switch": "00:00:00:00:00:00:08:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:08:07"
+    }, 
+    {
+        "dst-port": 24, 
+        "dst-switch": "00:00:00:00:00:00:04:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:04:18"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:0c", 
+        "src-port": 12, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:16", 
+        "src-port": 22, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:14", 
+        "src-port": 20, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:06", 
+        "src-port": 6, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:0d", 
+        "src-port": 13, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:13", 
+        "src-port": 19, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:05", 
+        "src-port": 5, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:12", 
+        "src-port": 18, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:19", 
+        "src-port": 25, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:07", 
+        "src-port": 7, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 4, 
+        "dst-switch": "00:00:00:00:00:00:01:05", 
+        "src-port": 26, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:08", 
+        "src-port": 8, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:11", 
+        "src-port": 17, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:02", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:09", 
+        "src-port": 9, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:0a", 
+        "src-port": 10, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:17", 
+        "src-port": 23, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:10", 
+        "src-port": 16, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:0f", 
+        "src-port": 15, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:18", 
+        "src-port": 24, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:0e", 
+        "src-port": 14, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:15", 
+        "src-port": 21, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:03", 
+        "src-port": 3, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:0b", 
+        "src-port": 11, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 2, 
+        "dst-switch": "00:00:00:00:00:00:06:04", 
+        "src-port": 4, 
+        "src-switch": "00:00:00:00:00:00:06:01"
+    }, 
+    {
+        "dst-port": 8, 
+        "dst-switch": "00:00:00:00:00:00:05:01", 
+        "src-port": 2, 
+        "src-switch": "00:00:00:00:00:00:05:08"
+    }
+]
diff --git a/web/topology_rest.py b/web/topology_rest.py
index 44d7ab7..06e4758 100755
--- a/web/topology_rest.py
+++ b/web/topology_rest.py
@@ -15,6 +15,7 @@
 
 
 CONFIG_FILE=os.getenv("HOME") + "/ONOS/web/config.json"
+LINK_FILE=os.getenv("HOME") + "/ONOS/web/link.json"
 
 ## Global Var for ON.Lab local REST ##
 RestIP="localhost"
@@ -22,6 +23,9 @@
 ONOS_DEFAULT_HOST="localhost" ;# Has to set if LB=False
 DEBUG=1
 
+pp = pprint.PrettyPrinter(indent=4)
+app = Flask(__name__)
+
 def read_config():
   global LB, TESTBED, controllers, core_switches, ONOS_GUI3_HOST, ONOS_GUI3_CONTROL_HOST
   f = open(CONFIG_FILE)
@@ -34,8 +38,23 @@
   ONOS_GUI3_CONTROL_HOST=conf['ONOS_GUI3_CONTROL_HOST']
   f.close()
 
-pp = pprint.PrettyPrinter(indent=4)
-app = Flask(__name__)
+def read_link_def():
+  global link_def
+  f=open(LINK_FILE)
+  try:
+    link_def=json.load(f)
+    f.close()
+  except:
+    print "Can't read link def file (link.json)"
+    sys.exit(1)
+
+def get_link_ports(src_dpid, dst_dpid):
+  ret = (-1, -1)
+  for link in link_def:
+    if link['src-switch'] == src_dpid and link['dst-switch'] == dst_dpid:
+        ret = (link['src-port'], link['dst-port'])
+        break
+  return ret
 
 ## Worker Functions ##
 def log_error(txt):
@@ -657,10 +676,12 @@
 ### Command ###
 @app.route("/gui/controller/<cmd>/<controller_name>")
 def controller_status_change(cmd, controller_name):
-#  start_onos="ssh -i ~/.ssh/onlabkey.pem %s ONOS/start-onos.sh start" % (controller_name)
-#  stop_onos="ssh -i ~/.ssh/onlabkey.pem %s ONOS/start-onos.sh stop" % (controller_name)
-  start_onos="cd; onos start %s" % (controller_name[-1:])
-  stop_onos="cd; onos stop %s" % (controller_name[-1:])
+  if (TESTBED == "hw"):
+    start_onos="cd; onos start %s" % (controller_name[-1:])
+    stop_onos="cd; onos stop %s" % (controller_name[-1:])
+  else:
+    start_onos="ssh -i ~/.ssh/onlabkey.pem %s ONOS/start-onos.sh start" % (controller_name)
+    stop_onos="ssh -i ~/.ssh/onlabkey.pem %s ONOS/start-onos.sh stop" % (controller_name)
 
   if cmd == "up":
     result=os.popen(start_onos).read()
@@ -735,27 +756,37 @@
 
   cmd = 'up'
   result=""
-
   for dpid in (src_dpid, dst_dpid):
     if dpid in core_switches:
       host = controllers[0]
-      src_ports = [1, 2, 3, 4, 5]
     else:
       hostid=int(dpid.split(':')[-2])
       host = controllers[hostid-1]
-      if hostid == 2 :
-        src_ports = [51]
-      else :
-        src_ports = [26]
 
-    for port in src_ports :
-      cmd_string="ssh -i ~/.ssh/onlabkey.pem %s 'cd ONOS/scripts; ./link.sh %s %s %s'" % (host, dpid, port, cmd)
-      print cmd_string
-      res=os.popen(cmd_string).read()
-      result = result + ' ' + res
+    if dpid == src_dpid:
+      (port, dontcare) = get_link_ports(dpid, dst_dpid)
+    else:
+      (port, dontcare) = get_link_ports(dpid, src_dpid)
+
+    cmd_string="ssh -i ~/.ssh/onlabkey.pem %s 'cd ONOS/scripts; ./link.sh %s %s %s'" % (host, dpid, port, cmd)
+    print cmd_string
+    res=os.popen(cmd_string).read()
+    result = result + ' ' + res
 
   return result
 
+#      if hostid == 2 :
+#        src_ports = [51]
+#      else :
+#        src_ports = [26]
+#
+#    for port in src_ports :
+#      cmd_string="ssh -i ~/.ssh/onlabkey.pem %s 'cd ONOS/scripts; ./link.sh %s %s %s'" % (host, dpid, port, cmd)
+#      print cmd_string
+#      res=os.popen(cmd_string).read()
+
+
+
 # Link up on hardware testbed
 def link_up_hw(src_dpid, src_port, dst_dpid, dst_port):
 
@@ -861,16 +892,14 @@
 #1 FOOBAR 00:00:00:00:00:00:01:01 1 00:00:00:00:00:00:01:0b 1 matchSrcMac 00:00:00:00:00:00 matchDstMac 00:01:00:00:00:00
 @app.route("/gui/addflow/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>/<srcMAC>/<dstMAC>")
 def add_flow(src_dpid, src_port, dst_dpid, dst_port, srcMAC, dstMAC):
-  command =  "/home/ubuntu/ONOS/web/get_flow.py  all |grep FlowPath  |gawk '{print strtonum($4)}'| sort -n | tail -n 1"
-  print command
-  ret = os.popen(command).read()
-  if ret == "":
-    flow_nr=0
-  else:
-    flow_nr=int(ret)
-
+  host = pick_host()
+  url ="%s/wm/flow/getsummary/%s/%s/json" % (host, 0, 0)
+  (code, result) = get_json(url)
+  parsedResult = json.loads(result)
+  flow_nr = int(parsedResult[-1]['flowId'], 16)
   flow_nr += 1
-  command = "/home/ubuntu/ONOS/web/add_flow.py -m onos %d %s %s %s %s %s matchSrcMac %s matchDstMac %s" % (flow_nr, "dummy", src_dpid, src_port, dst_dpid, dst_port, srcMAC, dstMAC)
+  command =  "/home/ubuntu/ONOS/web/add_flow.py -m onos %d %s %s %s %s %s matchSrcMac %s matchDstMac %s" % (flow_nr, "dummy", src_dpid, src_port, dst_dpid, dst_port, srcMAC, dstMAC)
+  flow_nr += 1
   command1 = "/home/ubuntu/ONOS/web/add_flow.py -m onos %d %s %s %s %s %s matchSrcMac %s matchDstMac %s" % (flow_nr, "dummy", dst_dpid, dst_port, src_dpid, src_port, dstMAC, srcMAC)
   print command
   errcode = os.popen(command).read()
@@ -985,6 +1014,7 @@
 if __name__ == "__main__":
   random.seed()
   read_config()
+  read_link_def()
   if len(sys.argv) > 1 and sys.argv[1] == "-d":
 #      add_flow("00:00:00:00:00:00:02:02", 1, "00:00:00:00:00:00:03:02", 1, "00:00:00:00:02:02", "00:00:00:00:03:0c")
 #     link_change("up", "00:00:00:00:ba:5e:ba:11", 1, "00:00:00:00:00:00:00:00", 1)
@@ -1002,7 +1032,8 @@
 #    devices()
 #    iperf_start(1,10,15)
 #    iperf_rate(1)
-    switches()
+#    switches()
+    add_flow(1,2,3,4,5,6)
   else:
     app.debug = True
     app.run(threaded=True, host="0.0.0.0", port=9000)