| /*global d3*/ |
| |
| function callURL(url, cb) { |
| d3.text(url, function (error, result) { |
| if (error) { |
| console.log(url + ' : ' + error.status); |
| } else { |
| if (cb) { |
| cb(result); |
| } |
| // console.log(result); |
| } |
| }); |
| } |
| |
| function MAC(dpid) { |
| var cmps = dpid.split(':'); |
| var MAC = '00:00:c0:a8:' + [cmps[6], cmps[7]].join(':'); |
| return MAC; |
| } |
| |
| var controllerFunctions = { |
| linkCmd: function (cmd, link) { |
| var url = '/proxy/gui/link/' + [cmd, link['src-switch'], link['src-port'], link['dst-switch'], link['dst-port']].join('/'); |
| callURL(url); |
| |
| }, |
| switchCmd: function (cmd, s) { |
| var url = '/proxy/gui/switch/' + [cmd, s.dpid].join('/'); |
| callURL(url); |
| }, |
| ctrlCmd: function (cmd, c) { |
| var url = '/proxy/gui/controller/' + [cmd, c].join('/'); |
| callURL(url); |
| }, |
| addFlowCmd: function (src, dst) { |
| var url = '/proxy/gui/addflow/' + [src.dpid, 1, dst.dpid, 1, MAC(src.dpid), MAC(dst.dpid)].join('/'); |
| callURL(url); |
| }, |
| delFlowCmd: function (flow) { |
| var url = '/proxy/gui/delflow/' + flow.flowId; |
| callURL(url); |
| }, |
| startIPerfCmd: function (flow, duration, numSamples) { |
| var flowId = parseInt(flow.flowId, 16); |
| var url = '/proxy/gui/iperf/start/' + [flowId, duration, numSamples].join('/'); |
| callURL(url) |
| }, |
| getIPerfDataCmd: function (flow, cb) { |
| var flowId = parseInt(flow.flowId, 16); |
| var url = '/proxy/gui/iperf/rate/' + flowId; |
| callURL(url, cb); |
| }, |
| switchControllerCmd: function (cmd) { |
| var url = '/proxy/gui/switchctrl/' + cmd; |
| callURL(url); |
| } |
| }; |
| |
| function linkUp(link) { |
| controllerFunctions.linkCmd('up', link); |
| } |
| |
| function linkDown(link) { |
| controllerFunctions.linkCmd('down', link); |
| } |
| |
| function switchUp(s) { |
| controllerFunctions.switchCmd('up', s); |
| } |
| |
| function switchDown(s) { |
| controllerFunctions.switchCmd('down', s); |
| } |
| |
| function controllerUp(c) { |
| controllerFunctions.ctrlCmd('up', c); |
| } |
| |
| function controllerDown(c) { |
| controllerFunctions.ctrlCmd('down', c); |
| } |
| |
| function addFlow(src, dst) { |
| controllerFunctions.addFlowCmd(src, dst); |
| } |
| |
| function deleteFlow(flow) { |
| controllerFunctions.delFlowCmd(flow); |
| } |
| |
| function startIPerf(flow, duration, numSamples) { |
| controllerFunctions.startIPerfCmd(flow, duration, numSamples); |
| } |
| |
| function getIPerfData(flow, cb) { |
| controllerFunctions.getIPerfDataCmd(flow, cb); |
| } |
| |
| function switchLocal() { |
| controllerFunctions.switchControllerCmd('local'); |
| } |
| |
| function switchAll() { |
| controllerFunctions.switchControllerCmd('all'); |
| } |
| |