Skip to content
This repository was archived by the owner on Nov 13, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions RELEASE-NOTES
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
FlowVisor 1.0.10 : July 1 2013
* FLOWVISOR-244-extension : Fixed an issue with the translation and untranslation of xids with the controller and switches.

FlowVisor 1.0.9 : June 25 2013
* FLOWVISOR-244 : Flow stats reply sent by FlowVisor doesn't set the "more replies" flag

Expand Down
2 changes: 1 addition & 1 deletion src/org/flowvisor/FlowVisor.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class FlowVisor {
public final static int FLOWVISOR_VENDOR_EXTENSION = 0x80000001;

// VERSION
public final static String FLOWVISOR_VERSION = "flowvisor-1.0.9";
public final static String FLOWVISOR_VERSION = "flowvisor-1.0.10";
public final static int FLOWVISOR_DB_VERSION = 2;


Expand Down
3 changes: 3 additions & 0 deletions src/org/flowvisor/classifier/FVClassifier.java
Original file line number Diff line number Diff line change
Expand Up @@ -1074,6 +1074,7 @@ public void sendFlowStatsResp(FVSlicer fvSlicer, FVStatisticsRequest original, s
}
statsReply.setStatistics(stats);
statsReply.setFlags(flag);
FVLog.log(LogLevel.DEBUG, null, "xid is: ", original.getXid());
statsReply.setXid(original.getXid());

statsReply.setVersion(original.getVersion());
Expand All @@ -1097,6 +1098,7 @@ public synchronized void classifyFlowStats(FVStatisticsReply fvStatisticsReply)
FVLog.log(LogLevel.WARN, this, "Unable to classify stats - ignoring - ", stat);
continue;
}
//FVLog.log(LogLevel.DEBUG, this, " stat.getCookie: ",stat.getCookie(), " pair.getCookie: ", pair.getCookie());
stat.setTransCookie(stat.getCookie());
stat.setCookie(pair.getCookie());
addToFlowStats(stat, pair.getSliceName());
Expand Down Expand Up @@ -1138,6 +1140,7 @@ public boolean pollFlowTableStats(FVStatisticsRequest orig) {
stats.add(statsReq);
request.setStatistics(stats);
request.setLengthU(FVStatisticsRequest.MINIMUM_LENGTH + statsReq.computeLength());
FVLog.log(LogLevel.DEBUG, null, "orig.getXid() inside pollFlowTableStats: ", orig.getXid());
request.setXid(orig == null ? -1 : orig.getXid());
this.sendMsg(request, this);

Expand Down
4 changes: 4 additions & 0 deletions src/org/flowvisor/message/FVMessageUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ public static void translateXidMsg(FVStatisticsRequest msg,
FVClassifier fvClassifier, FVSlicer fvSlicer) {
XidTranslatorWithMessage xidTranslator = (XidTranslatorWithMessage) fvClassifier.getXidTranslator();
int newXid = xidTranslator.translate(msg.clone(), msg.getXid(), fvSlicer);
FVLog.log(LogLevel.DEBUG,null,"Inside translateXidMsg - msg.getXid() is: ", msg.getXid(),
" newXid is: ",newXid);
msg.setXid(newXid);
}

Expand All @@ -73,6 +75,8 @@ static public FVSlicer untranslateXid(OFMessage msg,
XidPair pair = xidTranslator.untranslate(msg.getXid());
if (pair == null)
return null;
FVLog.log(LogLevel.DEBUG,null,"Inside untranslateXid - msg.getXid() is: ", msg.getXid(),
" pair.getXid() is: ",pair.getXid());
msg.setXid(pair.getXid());
String sliceName = pair.getSliceName();
return fvClassifier.getSlicerByName(sliceName);
Expand Down
17 changes: 15 additions & 2 deletions src/org/flowvisor/message/statistics/FVFlowStatisticsRequest.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package org.flowvisor.message.statistics;

import org.flowvisor.classifier.FVClassifier;
import org.flowvisor.classifier.XidPairWithMessage;
import org.flowvisor.log.FVLog;
import org.flowvisor.log.LogLevel;
import org.flowvisor.message.FVMessageUtil;
import org.flowvisor.message.FVStatisticsReply;
import org.flowvisor.message.FVStatisticsRequest;
import org.flowvisor.slicer.FVSlicer;
import org.openflow.protocol.OFStatisticsReply.OFStatisticsReplyFlags;
import org.openflow.protocol.statistics.OFFlowStatisticsRequest;
import org.openflow.protocol.statistics.OFStatisticsType;

public final class FVFlowStatisticsRequest extends OFFlowStatisticsRequest
implements SlicableStatistic, ClassifiableStatistic {
Expand All @@ -25,9 +28,19 @@ public void classifyFromSwitch(FVStatisticsReply msg, FVClassifier fvClassifier)
public void sliceFromController(FVStatisticsRequest msg, FVClassifier fvClassifier,
FVSlicer fvSlicer) {
FVMessageUtil.translateXidMsg(msg,fvClassifier, fvSlicer);
if (!fvClassifier.pollFlowTableStats(msg))
fvClassifier.sendFlowStatsResp(fvSlicer, msg, (short)0);

if (!fvClassifier.pollFlowTableStats(msg)){
XidPairWithMessage pair = FVMessageUtil
.untranslateXidMsg(msg, fvClassifier);
if (pair == null) {
FVLog.log(LogLevel.WARN, fvClassifier,
"dropping unclassifiable stats reply: ", this);
return;
}
FVStatisticsRequest original = (FVStatisticsRequest) pair.getOFMessage();

fvClassifier.sendFlowStatsResp(pair.getSlicer(), original, msg.getFlags());
}
}


Expand Down