Removed the old version of the simple GUI and other extraneous files.

Change-Id: Ib21bdffea35b610fa42731187dd0084f28f2f7dc
diff --git a/start-rest.sh b/start-rest.sh
index 92a14da..e29a05d 100755
--- a/start-rest.sh
+++ b/start-rest.sh
@@ -2,7 +2,7 @@
 
 # Change this accordingly
 ONOS_HOME=${ONOS_HOME:-${HOME}/ONOS}
-script_name="topology_rest.py"
+script_name="simple_web_server.py"
 
 #######################
 WEBDIR=${ONOS_HOME}/web
@@ -39,8 +39,6 @@
     for p in ${pids}; do
 	if [ x$p != "x" ]; then
             dokill $p
-#	    sudo kill -KILL $p
-#	    echo "Killed existing prosess (pid: $p)"
 	fi
     done
 }
@@ -57,10 +55,6 @@
 function start {
     lotate $REST_LOG 10 
     cd $WEBDIR
-    # Make log dir for iperf log files
-    if [ ! -d  log ]; then
-      mkdir log
-    fi
     $restscript > $REST_LOG 2>&1 &
 }
 
diff --git a/web/config.json.default b/web/config.json.default
deleted file mode 100644
index 88fc2e7..0000000
--- a/web/config.json.default
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "gui-ip" : "0.0.0.0",
-    "gui-port" : 9000,
-    "onos-ip" : "localhost",
-    "onos-port" : 8080,
-    "controllers": [
-        "onos-vm1", 
-        "onos-vm2", 
-        "onos-vm3", 
-        "onos-vm4"
-    ]
-}
diff --git a/web/js/controller-status.js b/web/js/controller-status.js
deleted file mode 100644
index 3004ce8..0000000
--- a/web/js/controller-status.js
+++ /dev/null
@@ -1,149 +0,0 @@
-function controller_status(data_source){
-/*    var data = [{name:'onos9vpc',  onos: 1, cassandra: 1},
-		{name:'onos10vpc', onos: 0, cassandra: 1},
-		{name:'onos11vpc', onos: 1, cassandra: 1},
-		{name:'onos12vpc', onos: 0, cassandra: 1}] */
-
-    var barWidth = 100;
-    var width = (barWidth + 10) * 8
-    var height = 50;
-
-    var Servers = d3.select("#servers").
-	append("svg:svg").
-	attr("width", 1280).
-	attr("height", 30);
-
-    var ContStatus = d3.select("#onos-status").
-	append("svg:svg").
-	attr("width", 1280).
-	attr("height", 50);
-
-    d3.json(data_source, draw);
-    setInterval(function() {
-        $.ajax({
-	    url: data_source,
-	    success: function(json) {
-		draw(json)
-	    },
-	    dataType: "json"
-        });
-    }, 3000); 
-
-    function draw(json){
-	var data = json;
-	var server = Servers.selectAll("text").data(data);
-	var controller_rect = ContStatus.selectAll("rect").data(data);
-	var controller_text = ContStatus.selectAll("text").data(data);
-
-	var x = d3.scale.linear().domain([0, data.length]).range([0, width]);
-	var y = d3.scale.linear().domain([0, d3.max(data, function(datum) { return datum.onos; })]).rangeRound([0, height]);
-
-	console.log(data)
-	server.
-	    enter().
-	    append("svg:text").
-	    attr("x", function(datum, index) { return x(index); }).
-	    attr("y", function(datum) { return 20; }).
-	    attr("fill", function(datum, index) { 
-		if (index == 0){
-		    return "red"
-		}else if (index == 1){
-		    return "blue"
-		}else if (index == 2){
-		    return "green"
-		}else if (index == 3){
-		    return "orange"
-		}else if (index == 4){
-		    return "cyan"
-		}else if (index == 5){
-		    return "magenta"
-		}else if (index == 6){
-		    return "yellow"
-		}else if (index == 7){
-		    return "purple"
-		}else{
-		    return "black"
-		}
-	    }).
-	    text(function(datum) { return datum.name; });
-
-	controller_rect.
-	    enter().
-	    append("svg:rect").
-	    attr("x", function(datum, index) { return x(index); }).
-	    attr("y", function(datum) { return height - y(datum.onos); }).
-	    attr("height", function(datum) { return y(datum.onos); }).
-	    attr("width", barWidth).
-	    attr("fill", function(datum, index) { 
-		if (index == 0){
-		    return "red"
-		}else if (index == 1){
-		    return "blue"
-		}else if (index == 2){
-		    return "green"
-		}else if (index == 3){
-		    return "orange"
-		}else if (index == 4){
-		    return "cyan"
-		}else if (index == 5){
-		    return "magenta"
-		}else if (index == 6){
-		    return "yellow"
-		}else if (index == 7){
-		    return "purple"
-		}else{
-		    return "black"
-		}
-	    });
-
-	controller_text.
-	    enter().
-	    append("svg:text").
-	    text(function(){return "ONOS"}).
-	    attr("x", function(datum, index) { return x(index)+10; }).
-	    attr("y", function(datum) { return 30 ; }).
-	    attr("height", function(datum) { return y(datum.onos); }).
-	    attr("width", barWidth).
-	    attr('fill', 'white'); 
-
-	controller_rect.
-	    attr("x", function(datum, index) { return x(index); }).
-	    attr("y", function(datum) { return height - y(datum.onos); }).
-	    attr("height", function(datum) { return y(datum.onos); }).
-	    attr("width", barWidth).
-	    attr("fill", function(datum, index) { 
-		if (index == 0){
-		    return "red"
-		}else if (index == 1){
-		    return "blue"
-		}else if (index == 2){
-		    return "green"
-		}else if (index == 3){
-		    return "orange"
-		}else if (index == 4){
-		    return "cyan"
-		}else if (index == 5){
-		    return "magenta"
-		}else if (index == 6){
-		    return "yellow"
-		}else if (index == 7){
-		    return "purple"
-		}else{
-		    return "black"
-		}
-	    });
-
-	controller_text.
-	    text(function(){return "ONOS"}).
-	    attr("x", function(datum, index) { return x(index)+10; }).
-	    attr("y", function(datum) { return 30 ; }).
-	    attr("height", function(datum) { return y(datum.onos); }).
-	    attr("width", barWidth).
-	    attr('fill', 'white'); 
-
-	server.exit().remove();
-	controller_rect.exit().remove();
-	controller_text.exit().remove();
-    }
-}
-
diff --git a/web/js/onos-topology-route.js b/web/js/onos-topology-route.js
deleted file mode 100644
index cca644b..0000000
--- a/web/js/onos-topology-route.js
+++ /dev/null
@@ -1,414 +0,0 @@
-function gui(data_source){
-    var width = 960,
-    height = 500;
-    var color = d3.scale.category20();
-
-    var svg = d3.select("body").append("svg:svg")
-	.attr("width", width)
-	.attr("height", height);
-
-    var force = d3.layout.force()
-	.charge(-500)
-	.linkDistance(100)
-	.size([width, height]);
-
-    var path = svg.selectAll("path");
-    var circle = svg.selectAll("circle");
-    var text = svg.selectAll("g");
-    var pathlen = 0;
-    var from;
-    var to;
-    var path_set = 0;
-
-
-    d3.json(data_source,init);
-
-    function init(json){
-        nodes = force.nodes();
-        links = force.links();
-
-	json.nodes.forEach(function(item) {
-            nodes.push(item);
-	});
-/*
-        nodes.sort(function(a,b) {
-            if (a.name > b.name) {return 1;}
-            else if (a.name < b.name) {return -1;}
-            else {return 0;}
-        });
-*/
-	json.links.forEach(function(item) {
-            links.push(item);
-	});
-	draw(nodes, links);
-    }
-
-    var node_drag = d3.behavior.drag()
-        .on("dragstart", dragstart)
-        .on("drag", dragmove)
-        .on("dragend", dragend);
-
-    function dragstart(d, i) {
-        force.stop() // stops the force auto positioning before you start dragging
-    }
-
-    function dragmove(d, i) {
-        d.px += d3.event.dx;
-        d.py += d3.event.dy;
-        d.x += d3.event.dx;
-        d.y += d3.event.dy; 
-        tick(); // this is the key to make it work together with updating both px,py,x,y on d !
-    }
-
-    function dragend(d, i) {
-        d.fixed = true; // of course set the node to fixed so the force doesn't include the node in its auto positioning stuff
-        tick();
-        force.resume();
-    }
-
-    function update(json) {
-	Array.prototype.diff2 = function(arr) {
-	    return this.filter(function(i) {
-		for (var j = 0; j < arr.length ; j++) {
-		    if (arr[j].source === i.source.index && 
-			arr[j].target === i.target.index)
-			return false;
-		}
-		return true;
-	    });
-	};
-
-	Array.prototype.diff = function(arr) {
-	    return this.filter(function(i) {
-		for (var j = 0; j < arr.length ; j++) {
-		    if (arr[j].source.index === i.source && 
-			arr[j].target.index === i.target)
-			return false;
-		}
-		return true;
-	    });
-	};
-
-	Array.prototype.node_diff = function(arr) {
-	    return this.filter(function(i) {
-		for (var j = 0; j < arr.length ; j++) {
-		    if (arr[j].name === i.name)
-			return false;
-		}
-		return true;
-	    });
-	};
-
-
-        links.sort(function(a,b) {
-            if (a.source > b.source) {return 1;}
-            else if (a.source < b.source) {return -1;}
-            else {
-                if (a.target > b.target) {return 1;}
-                if (a.target < b.target) {return -1;}
-                else {return 0;}
-            }
-        });
-
-//        for (var i=0; i<links.length; i++) {
-//          if (i != 0 &&
-//            links[i].source == links[i-1].source &&
-//            links[i].target == links[i-1].target) {
-//            links[i].linknum = links[i-1].linknum + 1;
-//          }
-//          else {links[i].linknum = 1;};
-//        };
-
-
-	function cdiff(topo) {
-            var changed = false;
-
-            var n_adds = topo.nodes.node_diff(nodes);
-            var n_rems = nodes.node_diff(topo.nodes);
-            for (var i = 0; i < n_adds.length; i++) {
-		nodes.push(n_adds[i]);
-		changed = true;
-            }
-            for (var i = 0; i < n_rems.length; i++) {
-		for (var j = 0; j < nodes.length; j++) {
-		    if ( nodes[j].name == n_rems[i].name ){
-			nodes.splice(j,1);
-			changed = true;
-			break;
-		    }
-		}
-            }
-
-            var l_adds = [];
-            var l_rems = [];
-	    l_adds = added_links(topo, links, l_adds);
-            l_rems = gone_links(topo, links, l_rems);
-
-            for (var i = 0; i < l_rems.length ; i++) {
-		for (var j = 0; j < links.length; j++) {
-                    if (links[j].source.name == l_rems[i].source.name &&
-			links[j].target.name == l_rems[i].target.name) {
-			links.splice(j,1);
-			changed = true;
-			break;
-                    }
-		}
-            }
-            for (var i = 0; i < l_adds.length; i++) {
-		var s;
-		var t;
-		for (var j = 0; j < nodes.length; j++) {
-		    if ( json.nodes[l_adds[i].source].name == nodes[j].name ){
-			s = j;
-			break;
-		    }
-		}
-		for (var j = 0; j < nodes.length; j++) {
-		    if ( json.nodes[l_adds[i].target].name == nodes[j].name ){
-			t = j;
-			break;
-		    }
-		}
-		l_adds[i].source = s;
-		l_adds[i].target = t;
-		links.push(l_adds[i]);
-		changed = true;
-            }
-	    return changed
-	}
-
-
-	var changed = cdiff(json);
-
-        for (var i = 0; i < json.nodes.length; i++) {
-	    nodes[i].group = json.nodes[i].group
-	}
-	var rewrite = 0;
-	for (var i = 0; i < links.length; i++) {
-            for (var j = 0; j < json.links.length; j++) {
-	/*	
-		console.log("link" + i);
-		console.log(links[i].source.name + "->" + links[i].target.name);
-		console.log("type " + links[i].type);
-		console.log("json link" + j);
-		console.log(json.nodes[json.links[j].source].name + "->" + json.nodes[json.links[j].target].name);
-	*/
-		if (links[i].target.name == json.nodes[json.links[j].target].name && 
-		    links[i].source.name == json.nodes[json.links[j].source].name ){
-		    links[i].type = json.links[j].type;
-		    rewrite ++;
-		}
-	    }
-	}
-	console.log("changed?" + changed);
-	if (changed){
-	    console.log(nodes);
-	    console.log(links);
-            path = svg.selectAll("path").data(links)
-            circle = svg.selectAll("circle").data(nodes);
-	    text = svg.selectAll("text").data(nodes);
-
-	    force.stop();
-
-            path.enter().append("svg:path")
-		.attr("class", function(d) { return "link"; })
-		.attr("marker-end", function(d) {
-		    if(d.type == 1){
-			return "url(#TriangleRed)";
-		    } else {
-			return "url(#Triangle)";
-		    }
-		});
-
-            circle.enter().append("svg:circle")
-               .attr("r", 8)
-/*		.on("click", function(d,i) {
-		    if ( path_set == 0 || path_set == 2 ){
-			fm = d.name;
-			path_set = 1;
-			alert("from set to " + d.name);
-		    }else if ( path_set == 1 ){
-			to = d.name;
-			path_set = 2;
-			alert("to set to " + d.name);
-		    }
-		}) */
-	        .call(node_drag);
-//               .call(force.drag);
-
-/*	    text.enter().append("svg:text")
-		.attr("x", 8)
-		.attr("y", ".31em")
-		.attr("class", "shadow")
-		.text(function(d) { return d.name.split(":")[7]; }); */
-
-	    text.enter().append("svg:text")
-		.attr("x", 8)
-		.attr("y", ".31em")
-		.text(function(d) { return d.name.split(":")[7]; }); 
-
-            circle.append("title")
-	      .text(function(d) { return d.name; });
-
-	    path.attr("stroke", function(d) {
-		if(d.type == 1){
-		    return "red"
-		} else {
-		    return "black"
-		}
-	    })
-	    .attr("stroke-width", function(d) {
-		if(d.type == 1){
-		    return "4px";
-		} else {
-		    return "1.5px";
-		}
-	    });
-
-
-	    path.exit().remove();
-            circle.exit().remove();
-            text.exit().remove();
-	    force.on("tick", tick);
-            force.start();
-	}
-    }
-    function draw(nodes, links){
-        path = svg.append("svg:g").selectAll("path").data(links)
-        circle = svg.append("svg:g").selectAll("circle").data(nodes);
-	text = svg.append("svg:g").selectAll("text").data(nodes);
-
-        path.enter().append("svg:path")
-	    .attr("class", function(d) { return "link"; })
-	    .attr("marker-end", function(d) {
-		if(d.type == 1){
-		    return "url(#TriangleRed)";
-		} else {
-		    return "url(#Triangle)";
-		}
-	    });
-
-	path.attr("stroke", function(d) {
-	    if(d.type == 1){
-		return "red"
-	    } else {
-		return "black"
-	    }
-	}).attr("stroke-width", function(d) {
-	    if(d.type == 1){
-		return "4px";
-	    } else {
-		return "1.5px";
-	    }
-	}).attr("marker-end", function(d) {
-	    if(d.type == 1){
-		return "url(#TriangleRed)";
-	    } else {
-		return "url(#Triangle)";
-	    }
-	});
-
-
-        circle.enter().append("svg:circle")
-          .attr("r", 8)
-/*	    .on("click", function(d,i) {
-		if ( path_set == 0 || path_set == 2 ){
-		    fm = d.name;
-		    path_set = 1;
-		    alert("from set to " + d.name);
-		}else if ( path_set == 1 ){
-		    to = d.name;
-		    path_set = 2;
-		    alert("to set to " + d.name);
-		}
-	    }) */
-	    .call(node_drag);
-//          .call(force.drag);
-
-/*	text.enter().append("svg:text")
-	    .attr("x", 8)
-	    .attr("y", ".31em")
-	    .attr("class", "shadow")
-	    .text(function(d) { return d.name.split(":")[7]; }); */
-
-	text.enter().append("svg:text")
-	    .attr("x", 8)
-	    .attr("y", ".31em")
-	    .text(function(d) { return d.name.split(":")[7]; }); 
-
-	circle.append("title")
-	    .text(function(d) { return d.name; });
-
-	circle.attr("fill", function(d) {
-	    if (d.group == 1){return "red";}
-	    else if (d.group == 2){return "blue";}
-	    else if (d.group == 3){return "green";}
-	    else{ return "gray"; }
-	});
-
-
-	force.on("tick", tick);
-	path.exit().remove();
-        circle.exit().remove();
-//        text.exit().remove();
-
-	force.start();
-
-	setInterval(function() {
-            $.ajax({
-//		url: 'http://onosnat.onlab.us:8080/topology',
-		url: data_source,
-		success: function(json) {
-		    update(json)
-		},
-		dataType: "json"
-            });
-	}, 3000); 
-    }
-    function tick() {
-	path.attr("d", function(d) {
-	    var dx = d.target.x - d.source.x,
-	    dy = d.target.y - d.source.y,
-//	    dr = 1/d.linknum;  //linknum is defined above
-	    dr = 300;
-	    return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y;
-	});
-
-	path.attr("stroke", function(d) {
-	    if(d.type == 1){
-		return "red"
-	    } else {
-		return "black"
-	    }
-	}).attr("stroke-width", function(d) {
-	    if(d.type == 1){
-		return "4px";
-	    } else {
-		return "1.5px";
-	    }
-	}).attr("marker-end", function(d) {
-	    if(d.type == 1){
-		return "url(#TriangleRed)";
-	    } else {
-		return "url(#Triangle)";
-	    }
-	});
-
-
-//	circle.attr("cx", function(d) { return d.x; }).attr("cy", function(d) { return d.y; });
-	circle.attr("transform", function(d) {
-	    return "translate(" + d.x + "," + d.y + ")";
-	})
-	circle.attr("fill", function(d) {
-	    if (d.group == 1){return "red";}
-	    else if (d.group == 2){return "blue";}
-	    else if (d.group == 3){return "green";}
-	    else{ return "gray"; }
-	});
-//	text.attr("x", function(d) { return d.x; }).attr("y", function(d) { return d.y; });
-//	text.attr("x", function(d) { return d.x; }).attr("y", function(d) { return d.y; });
-	text.attr("transform", function(d) {
-	    return "translate(" + d.x + "," + d.y + ")";
-	});
-    }
-}
diff --git a/web/js/onos-topology.js b/web/js/onos-topology.js
deleted file mode 100644
index d086f6a..0000000
--- a/web/js/onos-topology.js
+++ /dev/null
@@ -1,422 +0,0 @@
-function gui(data_source){
-    var width = 1280,
-    height = 1280;
-    var radius = 8;
-    var color = d3.scale.category20();
-
-    var svg = d3.select("#topology").append("svg:svg")
-	.attr("width", width)
-	.attr("height", height);
-
-    var force = d3.layout.force()
-	.charge(-500)
-	.linkDistance(100)
-	.size([width, height]);
-
-    var path = svg.selectAll("path");
-    var circle = svg.selectAll("circle");
-    var text = svg.selectAll("g");
-    var node_drag = d3.behavior.drag()
-        .on("dragstart", dragstart)
-        .on("drag", dragmove)
-        .on("dragend", dragend);
-
-    d3.json(data_source, init);
-
-/* For debugging  
-    $("#more").click( function() {
-        $.ajax({
-	    url: 'http://gui.onlab.us:8080/topology_more',
-	    success: function(json) {
-		update(json);
-	    },
-	    dataType: "json"
-        });
-    });
-    $("#less").click( function() {
-        $.ajax({
-	    url: 'http://gui.onlab.us:8080/topology_less',
-	    success: function(json) {
-		update(json);
-	    },
-	    dataType: "json"
-        });
-    });
-*/
-
-    function compare_link (a, b){
-        if (a.source > b.source) {return 1;}
-        else if (a.source < b.source) {return -1;}
-        else {
-            if (a.target > b.target) {return 1 ;}
-            if (a.target < b.target) {return -1;}
-            else {return 0;}
-        }
-    }
-
-    function init(json){
-        nodes = force.nodes();
-        links = force.links();
-
-	json.nodes.forEach(function(item) {
-            nodes.push(item);
-	});
-	json.links.forEach(function(item) {
-            links.push(item);
-	});
-
-        links.sort(compare_link);
-        for (var i=1; i<links.length; i++) {
-          if (links[i].source == links[i-1].source &&
-            links[i].target == links[i-1].target) {
-            links[i].linknum = links[i-1].linknum + 1;
-          }
-          else {
-	      links[i].linknum = 1;
-	  };
-        };
-	init_draw(nodes, links);
-    }
-
-    /* Return nodes that is not in the current list of nodes */
-    Array.prototype.node_diff = function(arr) {
-	return this.filter(function(i) {
-	    for (var j = 0; j < arr.length ; j++) {
-		if (arr[j].name === i.name)
-		    return false;
-	    }
-	    return true;
-	});
-    };
-
-    /* Return removed links */
-    function gone_links (json, links, gone) {
-	for (var i = 0; i < links.length ; i ++){
-	    var found = 0;
-	    for (var j = 0; j < json.links.length ; j ++){
-		if (links[i].source.name == json.nodes[json.links[j].source].name && 
-		    links[i].target.name == json.nodes[json.links[j].target].name ){
-		    found = 1;
-		    break;
-		}
-	    }
-	    if ( found == 0 ){
-		gone.push(links[i]);
-	    }
-	}
-	return gone;
-    }
-
-    /* Return added links */
-    function added_links (json, links, added) {
-	for (var j = 0; j < json.links.length ; j ++){
-	    var found = 0;
-	    for (var i = 0; i < links.length ; i ++){
-		if (links[i].source.name == json.nodes[json.links[j].source].name && 
-		    links[i].target.name == json.nodes[json.links[j].target].name ){
-		    found = 1;
-		    break;
-		}
-	    }
-	    if ( found == 0 ){
-		added.push(json.links[j]);
-	    }
-	}
-	return added;
-    }
-
-    function dragstart(d, i) {
-        force.stop() // stops the force auto positioning before you start dragging
-    }
-
-    function dragmove(d, i) {
-        d.px += d3.event.dx;
-        d.py += d3.event.dy;
-        d.x += d3.event.dx;
-        d.y += d3.event.dy; 
-        tick(); // this is the key to make it work together with updating both px,py,x,y on d !
-    }
-
-    function dragend(d, i) {
-        d.fixed = true; // of course set the node to fixed so the force doesn't include the node in its auto positioning stuff
-        tick();
-        force.resume();
-    }
-
-    /* check if toplogy has changed and update node[] and link[] accordingly */
-    function cdiff(json) {
-        var changed = false;
-
-	var n_adds = json.nodes.node_diff(nodes);
-        var n_rems = nodes.node_diff(json.nodes);
-        for (var i = 0; i < n_adds.length; i++) {
-	    nodes.push(n_adds[i]);
-	    changed = true;
-        }
-        for (var i = 0; i < n_rems.length; i++) {
-	    for (var j = 0; j < nodes.length; j++) {
-		if ( nodes[j].name == n_rems[i].name ){
-		    nodes.splice(j,1);
-		    changed = true;
-		    break;
-		}
-	    }
-        }
-        var l_adds = [];
-        var l_rems = [];
-	l_adds = added_links(json, links, l_adds);
-        l_rems = gone_links(json, links, l_rems);
-        for (var i = 0; i < l_rems.length ; i++) {
-	    for (var j = 0; j < links.length; j++) {
-                if (links[j].source.name == l_rems[i].source.name &&
-		    links[j].target.name == l_rems[i].target.name) {
-		    links.splice(j,1);
-		    changed = true;
-		    break;
-                }
-	    }
-        }
-	// Sorce/target of an element of l_adds[] are corresponding to the index of json.node[]
-	// which is different from the index of node[] (new nodes are always added to the last)
-	// So update soure/target node indexes of l_add[] need to be fixed to point to the proper
-	// node in node[];
-        for (var i = 0; i < l_adds.length; i++) {
-	    for (var j = 0; j < nodes.length; j++) {
-		if ( json.nodes[l_adds[i].source].name == nodes[j].name ){
-		    l_adds[i].source = j; 
-		    break;
-		}
-	    }
-	    for (var j = 0; j < nodes.length; j++) {
-		if ( json.nodes[l_adds[i].target].name == nodes[j].name ){
-		    l_adds[i].target = j;
-		    break;
-		}
-	    }
-	    links.push(l_adds[i]);
-	    changed = true;
-        }
-
-	// Update "group" attribute of nodes
-	for (var i = 0; i < nodes.length; i++) {
-            for (var j = 0; j < json.nodes.length; j++) {
-		if ( nodes[i].name == json.nodes[j].name ){
-		    if (nodes[i].group != json.nodes[j].group){
-			nodes[i].group = json.nodes[j].group;
-			changed = true;
-		    }
-		}
-	    }
-	}
-	for (var i = 0; i < links.length; i++) {
-            for (var j = 0; j < json.links.length; j++) {
-		if (links[i].target.name == json.nodes[json.links[j].target].name && 
-		    links[i].source.name == json.nodes[json.links[j].source].name ){
-		    if (links[i].type != json.links[j].type){
-			links[i].type = json.links[j].type;
-			changed = true;
-		    }
-		}
-	    }
-	}
-	return changed
-    }
-
-    function nr_active_sw(){
-        var n=0; 
-        var nodes = force.nodes();
-        for(var i=0;i<nodes.length;i++){
-          if(nodes[i].group!=0)
-            n++;
-        }; 
-        return n;
-    }
-
-    function draw(force, path, circle, text){
-	force.stop();
-        svg.append("svg:text")
-	    .attr("x", 50)
-	    .attr("y", 20)
-            .text(function(){return "Switch: " + force.nodes().length + " (Active: " + nr_active_sw()  + ")/ Link: " + force.links().length});
-
-        path.enter().append("svg:path")
-	    .attr("class", function(d) { return "link"; })
-	    .attr("marker-end", function(d) {
-		if(d.type == 1){
-		    return "url(#TriangleRed)";
-		} else {
-		    return "url(#Triangle)";
-		}
-	    });
-
-        circle.enter().append("svg:circle")
-	    .attr("r", function(d) { 
-		if (d.group == 1000){
-		    return radius/2;
-		}else{
-		    return radius;
-		}
-	    })
-	    .call(node_drag);
-//            .call(force.drag);
-
-	text.enter().append("svg:text")
-	    .attr("x", radius)
-	    .attr("y", ".31em")
-	    .text(function(d) { 
-		l=d.name.split(":").length
-		return d.name.split(":")[l-2] + ":" + d.name.split(":")[l-1]
-	    });
-
-        circle.append("title")
-	    .text(function(d) { return d.name; });
-
-	circle.attr("fill", function(d) {
-               if (d.group == 1){
-                    return "red"
-                }else if (d.group == 2){
-                    return "blue"
-                }else if (d.group == 3){
-                    return "green"
-                }else if (d.group == 4){
-                    return "orange"
-                }else if (d.group == 5){
-                    return "cyan"
-                }else if (d.group == 6){
-                    return "magenta"
-                }else if (d.group == 7){
-                    return "yellow"
-                }else if (d.group == 8){
-                    return "purple"
-                }else{
-                    return "gray"
-                }
-
-	});
-
-	path.attr("stroke", function(d) {
-	    if(d.type == 1){
-		return "red"
-	    } else {
-		return "black"
-	    }
-	}).attr("stroke-width", function(d) {
-	    if(d.type == 1){
-		return "2px";
-	    } else {
-		return "1.5px";
-	    }
-	}).attr("marker-end", function(d) {
-	    if(d.type == 1){
-		return "url(#TriangleRed)";
-	    } else {
-		return "url(#Triangle)";
-	    }
-	});
-
-	
-	path.exit().remove();
-        circle.exit().remove();
-        text.exit().remove();
-	
-	force.on("tick", tick);
-        force.start();
-
-    }
-
-    function update(json) {
-	var changed = cdiff(json);
-
-	console.log("changed? " + changed);
-        path = svg.selectAll("path").data(links)
-        circle = svg.selectAll("circle").data(nodes);
-	text = svg.selectAll("text").data(nodes);
-
-	console.log(path)
-	if (changed){
-
-	    draw(force, path, circle, text);
-	}
-    }
-
-    function init_draw(nodes, links){
-        path = svg.append("svg:g").selectAll("path").data(links);
-        circle = svg.append("svg:g").selectAll("circle").data(nodes);
-	text = svg.append("svg:g").selectAll("text").data(nodes);
-
-	draw(force, path, circle, text);
-
-	setInterval(function() {
-            $.ajax({
-		url: data_source,
-		success: function(json) {
-		    update(json)
-		},
-		dataType: "json"
-            });
-	}, 3000); 
-    }
-    function tick() {
-	path.attr("d", function(d) {
-	    var dx = d.target.x - d.source.x,
-	    dy = d.target.y - d.source.y,
-	    dr = 1/d.linknum;  //linknum is defined above
-	    dr = 0;  // 0 for direct line
-	    return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y;
-	});
-	path.attr("stroke", function(d) {
-	    if(d.type == 1){
-		return "red"
-	    } else {
-		return "black"
-	    }
-	}).attr("stroke-width", function(d) {
-	    if(d.type == 1){
-		return "3px";
-	    } else {
-		return "1.5px";
-	    }
-	}).attr("marker-end", function(d) {
-	    if(d.type == 1){
-		return "url(#TriangleRed)";
-	    } else {
-		return "url(#Triangle)";
-	    }
-	});
-
-//	circle.attr("cx", function(d) { return d.x; }).attr("cy", function(d) { return d.y; });
-	circle.attr("transform", function(d) {
-	    x = Math.max(radius, Math.min(width - radius, d.x));
-	    y = Math.max(radius, Math.min(height - radius, d.y)); 
-//	    return "translate(" + d.x + "," + d.y + ")";
-	    return "translate(" + x + "," + y + ")";
-	})
-
-	circle.attr("fill", function(d) {
-                if (d.group == 1){
-                    return "red"
-                }else if (d.group == 2){
-                    return "blue"
-                }else if (d.group == 3){
-                    return "green"
-                }else if (d.group == 4){
-                    return "orange"
-                }else if (d.group == 5){
-                    return "cyan"
-                }else if (d.group == 6){
-                    return "magenta"
-                }else if (d.group == 7){
-                    return "yellow"
-                }else if (d.group == 8){
-                    return "purple"
-                }else{
-                    return "gray"
-                }
-	});
-//	text.attr("x", function(d) { return d.x; }).attr("y", function(d) { return d.y; });
-	text.attr("transform", function(d) {
-	    return "translate(" + d.x + "," + d.y + ")";
-	});
-    }
-}
-
diff --git a/web/link.json b/web/link.json
deleted file mode 100644
index 1bf2b66..0000000
--- a/web/link.json
+++ /dev/null
@@ -1,2636 +0,0 @@
-[
-  {
-    "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/onos-topology-route.html b/web/onos-topology-route.html
deleted file mode 100644
index cbda5e9..0000000
--- a/web/onos-topology-route.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<html>
-<meta charset="utf-8">
-<style>
-path.link {
-  fill: none;
-}
-circle {
-  stroke: #333;
-  stroke-width: 1.5px;
-}
-
-text {
-  font: 20px sans-serif;
-  pointer-events: none;
-}
-</style>
-<head>
-<title>ONOS GUI</title>
-<script src="http://d3js.org/d3.v3.min.js"></script>
-<script type="text/javascript" src="js/onos-topology-route.js"></script>
-<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
-</head>
-<body>
-<svg width="4in" height="2in" 
-     viewBox="0 0 4000 2000" version="1.1"
-     xmlns="http://www.w3.org/2000/svg">
-  <defs>
-    <marker id="Triangle"
-      viewBox="0 -5 10 10" refX="15" refY="-1.5" 
-      markerUnits="strokeWidth"
-      markerWidth="6" markerHeight="6"
-      orient="auto">
-      <path d="M0,-5L10,0L0,5"/>
-    </marker>
-    <marker id="TriangleRed"
-      viewBox="0 -5 10 10" refX="10" refY="-0.2" 
-      markerUnits="strokeWidth"
-      markerWidth="6" markerHeight="6"
-      orient="auto">
-      <path d="M0,-5L10,0L0,5" fill="red" stroke="red"/>
-    </marker>
-  </defs>
-<script type="text/javascript">
-gui("http://onosnat.onlab.us:8080/wm/floodlight/topology/toporoute/00:00:00:0d:00:d1/2/00:00:00:0d:00:d3/3/json");
-</script>
-</svg>
-</body>
-</html>
diff --git a/web/onos-topology.html b/web/onos-topology.html
deleted file mode 100644
index 6db7862..0000000
--- a/web/onos-topology.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html>
-<meta charset="utf-8">
-<style>
-circle {
-  stroke: #333;
-  stroke-width: 1.5px;
-}
-
-text {
-  font: 20px sans-serif;
-  pointer-events: none;
-}
-
-</style>
-<head>
-<title>ONOS GUI</title>
-<script src="http://d3js.org/d3.v3.min.js"></script>
-<script type="text/javascript" src="js/onos-topology.js"></script>
-<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
-</head>
-<body>
-<svg width="0.1in" height="0.1in" 
-     viewBox="0 0 4000 2000" version="1.1"
-     xmlns="http://www.w3.org/2000/svg">
-  <defs>
-    <marker id="Triangle"
-      viewBox="0 -5 10 10" refX="15" refY="-1.5" 
-      markerUnits="strokeWidth"
-      markerWidth="6" markerHeight="6"
-      orient="auto">
-      <path d="M0,-5L10,0L0,5"/>
-    </marker>
-    <marker id="TriangleRed"
-      viewBox="0 -5 10 10" refX="10" refY="-0.2" 
-      markerUnits="strokeWidth"
-      markerWidth="6" markerHeight="6"
-      orient="auto">
-      <path d="M0,-5L10,0L0,5" fill="red" stroke="red"/>
-    </marker>
-  </defs>
-<h1>ONOS Simple Topology GUI</h1>
-<h2>Controller Status</h2>
-<div id="servers"></div>
-<div id="onos-status"></div>
-<h2>Topology View</h2>
-<div id="topology"></div>
-<script type="text/javascript" src="js/controller-status.js"></script>
-<script type="text/javascript">
-controller_status("controller_status");
-gui("topology"); 
-</script>
-</svg>
-</body>
-</html>
diff --git a/web/topology_rest.py b/web/topology_rest.py
deleted file mode 100755
index 66ac463..0000000
--- a/web/topology_rest.py
+++ /dev/null
@@ -1,209 +0,0 @@
-#! /usr/bin/env python
-import os
-import sys
-import json
-from urllib2 import Request, urlopen, URLError, HTTPError
-from flask import Flask, json, Response, render_template, make_response, request
-
-# The GUI can be accessed at <this_host>:9000/onos-topology.html
-
-WEB_DIR = os.path.dirname(os.path.realpath(__file__))
-
-LOCAL_CONFIG_FILE = os.path.join(WEB_DIR, "config.json")
-DEFAULT_CONFIG_FILE = os.path.join(WEB_DIR, "config.json.default")
-
-app = Flask(__name__)
-
-def read_config():
-  global guiIp, guiPort, onosIp, onosPort, controllers
-
-  if (os.path.isfile(LOCAL_CONFIG_FILE)):
-    confFile = open(LOCAL_CONFIG_FILE)
-  else:
-    print " * Local config file not found - loading default: %s" % DEFAULT_CONFIG_FILE
-    print " * If you want to modify the config, copy %s to %s and make changes there" % (DEFAULT_CONFIG_FILE, LOCAL_CONFIG_FILE)
-    print " "
-    confFile = open(DEFAULT_CONFIG_FILE)
-  
-  conf = json.load(confFile)
-
-  try:
-    guiIp = conf['gui-ip']
-    guiPort = conf['gui-port']
-    onosIp = conf['onos-ip']
-    onosPort = conf['onos-port']
-    controllers = conf['controllers']
-  except KeyError as e:
-    print " Parameters were missing from the config file: %s" % e
-    print " Your may be using an old version - please check your config matches the template in %s" % DEFAULT_CONFIG_FILE
-    sys.exit(1)
-
-  confFile.close()
-
-## Worker Functions ##
-def log_error(txt):
-  print '%s' % (txt)
-
-### File Fetch ###
-@app.route('/ui/img/<filename>', methods=['GET'])
-@app.route('/js/<filename>', methods=['GET'])
-@app.route('/log/<filename>', methods=['GET'])
-@app.route('/', methods=['GET'])
-@app.route('/<filename>', methods=['GET'])
-def return_file(filename="index.html"):
-  if request.path == "/":
-    fullpath = os.path.join(WEB_DIR, "onos-topology.html")
-  else:
-    fullpath = os.path.join(WEB_DIR, str(request.path)[1:])
-
-  try:
-    open(fullpath)
-  except:
-    response = make_response("Cannot find a file: %s" % (fullpath), 500)
-    response.headers["Content-type"] = "text/html"
-    return response
-
-  response = make_response(open(fullpath).read())
-  suffix = fullpath.split(".")[-1]
-
-  if suffix == "html" or suffix == "htm":
-    response.headers["Content-type"] = "text/html"
-  elif suffix == "js":
-    response.headers["Content-type"] = "application/javascript"
-  elif suffix == "css":
-    response.headers["Content-type"] = "text/css"
-  elif suffix == "png":
-    response.headers["Content-type"] = "image/png"
-  elif suffix == "svg":
-    response.headers["Content-type"] = "image/svg+xml"
-
-  return response
-
-###### ONOS REST API ##############################
-## Worker Func ###
-def get_json(url):
-  code = 200;
-  try:
-    response = urlopen(url)
-  except URLError, e:
-    log_error("get_json: REST IF %s has issue. Reason: %s" % (url, e.reason))
-    result = ""
-    return (500, result)
-  except HTTPError, e:
-    log_error("get_json: REST IF %s has issue. Code %s" % (url, e.code))
-    result = ""
-    return (e.code, result)
-
-  result = response.read()
-  return (code, result)
-
-
-def node_id(switch_array, dpid):
-  id = -1
-  for i, val in enumerate(switch_array):
-    if val['name'] == dpid:
-      id = i
-      break
-
-  return id
-
-## API for ON.Lab local GUI ##
-@app.route('/topology', methods=['GET'])
-def topology_for_gui():
-  try:
-    url="http://%s:%s/wm/onos/topology/switches/json" % (onosIp, onosPort)
-    (code, result) = get_json(url)
-    parsedResult = json.loads(result)
-  except:
-    log_error("REST IF has issue: %s" % url)
-    log_error("%s" % result)
-    return
-
-  topo = {}
-  switches = []
-  links = []
-  devices = []
-
-  for v in parsedResult:
-    if v.has_key('dpid'):
-#      if v.has_key('dpid') and str(v['state']) == "ACTIVE":#;if you want only ACTIVE nodes
-      dpid = str(v['dpid'])
-      state = str(v['state'])
-      sw = {}
-      sw['name']=dpid
-      sw['group']= -1
-
-      if state == "INACTIVE":
-        sw['group']=0
-      switches.append(sw)
-
-  try:
-    url="http://%s:%s/wm/onos/registry/switches/json" % (onosIp, onosPort)
-    (code, result) = get_json(url)
-    parsedResult = json.loads(result)
-  except:
-    log_error("REST IF has issue: %s" % url)
-    log_error("%s" % result)
-
-  for key in parsedResult:
-    dpid = key
-    ctrl = parsedResult[dpid][0]['controllerId']
-    sw_id = node_id(switches, dpid)
-    if sw_id != -1:
-      if switches[sw_id]['group'] != 0:
-        switches[sw_id]['group'] = controllers.index(ctrl) + 1
-
-  try:
-    url = "http://%s:%s/wm/onos/topology/links/json" % (onosIp, onosPort)
-    (code, result) = get_json(url)
-    parsedResult = json.loads(result)
-  except:
-    log_error("REST IF has issue: %s" % url)
-    log_error("%s" % result)
-    return
-
-  for v in parsedResult:
-    link = {}
-    if v.has_key('dst-switch'):
-      dst_dpid = str(v['dst-switch'])
-      dst_id = node_id(switches, dst_dpid)
-    if v.has_key('src-switch'):
-      src_dpid = str(v['src-switch'])
-      src_id = node_id(switches, src_dpid)
-    link['source'] = src_id
-    link['target'] = dst_id
-
-    links.append(link)
-
-  topo['nodes'] = switches
-  topo['links'] = links
-
-  js = json.dumps(topo)
-  resp = Response(js, status=200, mimetype='application/json')
-  return resp
-
-@app.route("/controller_status")
-def controller_status():
-  url= "http://%s:%d/wm/onos/registry/controllers/json" % (onosIp, onosPort)
-  (code, result) = get_json(url)
-  parsedResult = json.loads(result)
-
-  cont_status=[]
-  for i in controllers:
-    status={}
-    if i in parsedResult:
-      onos=1
-    else:
-      onos=0
-    status["name"]=i
-    status["onos"]=onos
-    cont_status.append(status)
-
-  js = json.dumps(cont_status)
-  resp = Response(js, status=200, mimetype='application/json')
-  return resp
-
-if __name__ == "__main__":
-  read_config()
-  #app.debug = True
-  app.run(threaded=True, host=guiIp, port=guiPort)
diff --git a/web/ui/img/floodlight.png b/web/ui/img/floodlight.png
deleted file mode 100644
index 98d0477..0000000
--- a/web/ui/img/floodlight.png
+++ /dev/null
Binary files differ
diff --git a/web/ui/img/glyphicons-halflings-white.png b/web/ui/img/glyphicons-halflings-white.png
deleted file mode 100644
index a20760b..0000000
--- a/web/ui/img/glyphicons-halflings-white.png
+++ /dev/null
Binary files differ
diff --git a/web/ui/img/glyphicons-halflings.png b/web/ui/img/glyphicons-halflings.png
deleted file mode 100644
index 92d4445..0000000
--- a/web/ui/img/glyphicons-halflings.png
+++ /dev/null
Binary files differ
diff --git a/web/ui/img/logo.jpg b/web/ui/img/logo.jpg
deleted file mode 100644
index 49795ef..0000000
--- a/web/ui/img/logo.jpg
+++ /dev/null
Binary files differ
diff --git a/web/ui/img/openflow-logo-40px.png b/web/ui/img/openflow-logo-40px.png
deleted file mode 100644
index b455ace..0000000
--- a/web/ui/img/openflow-logo-40px.png
+++ /dev/null
Binary files differ
diff --git a/web/ui/img/server.png b/web/ui/img/server.png
deleted file mode 100644
index 341c73d..0000000
--- a/web/ui/img/server.png
+++ /dev/null
Binary files differ
diff --git a/web/ui/img/switch.png b/web/ui/img/switch.png
deleted file mode 100644
index f8e6910..0000000
--- a/web/ui/img/switch.png
+++ /dev/null
Binary files differ