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)