我正在尝试检测mininet-dashboard中的流记录。 Elephant.js文件:
setFlow('pair',
{'keys':'inputifindex,ipsource,ipdestination','value':'bytes','log':'true','activeTimeout':'2'});
setThreshold('elephant',
{'metric':'pair','value':1000000/8,'byFlow':true,'timeout':1});
setEventHandler(function(evt) {
var [inputifindex,ipsource,ipdestination] = evt.flowKey.split(',');
var {node,port} = topologyInterfaceToPort(evt.agent,inputifindex);
logInfo(port + " " + ipsource + " " + ipdestination);
},['elephant']);
setFlowHandler(function(flow) {
logInfo(JSON.stringify(flow));
});
但是当我运行iperf h1 h2时,我没有在控制台中获得有关流量的任何信息。但我在mininet-dashboard app中看到了这个流程。如何正确获取有关流的信息并登录到控制台?
我的拓扑:
sudo mn --custom extras/sflow.py --topo tree,depth=1,fanout=2 --controller remote --switch ovsk,protocols=OpenFlow13
答案 0 :(得分:1)
你是怎样的defining flows?您需要在流定义中设置 log = true 才能生成流记录。此外,在收到流记录之前设置 activeTimeout 以限制延迟,或者如果您想立即通知并且不关心流程,请设置 flowStart = true 反价值。