Hi!
I use ryu (especially 'ryu/ryu/app/gui_topology') to visualize switch
topology.
My use case is to detect failure of a switch and define new
bypass-route(flow).
To emulate a switch failure, I use 'switch stop/start' mininet GUI
commands and watch topology by 'gui_topology.'
Unfortunately,'gui_topology' often miss-track right dpid.
It seems 'dpid' values do not treat as d3 data primary-key.
Hope this patch helps!
Thank you in advance,
N. Arakawa
>From 123c1d986e0f89475d80d83fabc11c99580e007a Mon Sep 17 00:00:00 2001
From: "N. Arakawa" <n...@u01.gate01.com>
Date: Thu, 15 Aug 2019 09:52:45 +0900
Subject: [PATCH] correct js in gui_topology to track right dpid
Signed-off-by: N. Arakawa <n...@u01.gate01.com>
---
ryu/app/gui_topology/html/ryu.topology.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/ryu/app/gui_topology/html/ryu.topology.js b/ryu/app/gui_topology/html/ryu.topology.js
index c333dce5..dff9a3a3 100644
--- a/ryu/app/gui_topology/html/ryu.topology.js
+++ b/ryu/app/gui_topology/html/ryu.topology.js
@@ -62,6 +62,8 @@ function _dragstart(d) {
d3.json("/stats/flow/" + dpid, function(e, data) {
flows = data[dpid];
console.log(flows);
+ elem.console.selectAll("h1").remove();
+ elem.console.append("h1").text("/stats/flow/dpid:" + dpid.toString(16) + "(" + dpid + ")" );
elem.console.selectAll("ul").remove();
li = elem.console.append("ul")
.selectAll("li");
@@ -84,7 +86,7 @@ elem.update = function () {
this.link.enter().append("line")
.attr("class", "link");
- this.node = this.node.data(topo.nodes);
+ this.node = this.node.data(topo.nodes, function(d) { return d.dpid; })
this.node.exit().remove();
var nodeEnter = this.node.enter().append("g")
.attr("class", "node")
--
2.20.1
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel