Imporvement in Group/flow Stats (notComplete)
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
index 2cce2d8..f1936c2 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
@@ -1,6 +1,8 @@
package net.floodlightcontroller.core.web.serializers;
import java.io.IOException;
+import java.util.Iterator;
+import java.util.Set;
import net.floodlightcontroller.core.web.OFFlowStatsEntryMod;
@@ -8,6 +10,13 @@
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.SerializerProvider;
import org.codehaus.jackson.map.ser.std.SerializerBase;
+import org.projectfloodlight.openflow.protocol.OFFlowModFlags;
+import org.projectfloodlight.openflow.protocol.OFFlowStatsEntry;
+import org.projectfloodlight.openflow.protocol.OFMatchV3;
+import org.projectfloodlight.openflow.protocol.OFOxmList;
+import org.projectfloodlight.openflow.protocol.match.MatchFields;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxm;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmIpv4DstMasked;
public class OFFlowStatsEntryModSerializer extends SerializerBase<OFFlowStatsEntryMod> {
@@ -19,7 +28,38 @@
public void serialize(OFFlowStatsEntryMod FlowStatsEntryMod, JsonGenerator jGen,
SerializerProvider sp) throws IOException,
JsonGenerationException {
+ OFFlowStatsEntry flowStatsEntry = FlowStatsEntryMod.getFlowStatsEntry();
+ OFOxmList matches = ((OFMatchV3)flowStatsEntry.getMatch()).getOxmList();
+ Set<OFFlowModFlags> flags = flowStatsEntry.getFlags();
+ jGen.writeStartObject();
+ jGen.writeNumberField("byteCount", flowStatsEntry.getByteCount().getValue());
+ jGen.writeNumberField("cookie", flowStatsEntry.getCookie().getValue());
+ jGen.writeNumberField("durationNsec", flowStatsEntry.getDurationNsec());
+ jGen.writeNumberField("durationSec", flowStatsEntry.getDurationSec());
+ jGen.writeArrayFieldStart("flags");
+ for (OFFlowModFlags flag: flags){
+ jGen.writeNullField(flag.name());;
+ }
+ jGen.writeEndArray();
+ jGen.writeNumberField("hardTimeout", flowStatsEntry.getHardTimeout());
+ jGen.writeNumberField("idleTimeout", flowStatsEntry.getIdleTimeout());
+ jGen.writeArrayFieldStart("match");
+ //jGen.writeStartObject();
+ Iterator<OFOxm<?>> match= matches.iterator();
+ while(match.hasNext()){
+ OFOxm<?> matchGeneric = match.next();
+ if (matchGeneric.getMatchField().id == MatchFields.IPV4_DST){
+
+ //jGen.writeObjectField("networkDestination", ((OFOxmIpv4DstVer13) matchGeneric).getValue());
+ }
+
+
+ }
+ jGen.writeEndArray();
+
+ jGen.writeEndObject();
}
+
}