Skip to content
Snippets Groups Projects
Commit 169b2998 authored by Ryan Izard's avatar Ryan Izard
Browse files

more

parent ca7e72e3
No related branches found
No related tags found
No related merge requests found
......@@ -35,6 +35,7 @@ import org.projectfloodlight.openflow.protocol.OFFeaturesRequest;
import org.projectfloodlight.openflow.protocol.OFStatsReply;
import org.projectfloodlight.openflow.protocol.OFStatsRequest;
import org.projectfloodlight.openflow.protocol.OFStatsType;
import org.projectfloodlight.openflow.protocol.OFVersion;
import org.restlet.resource.ResourceException;
import org.restlet.resource.ServerResource;
import org.slf4j.Logger;
......@@ -119,50 +120,68 @@ public class SwitchResourceBase extends ServerResource {
req = sw.getOFFactory().buildDescStatsRequest()
.build();
break;
case GROUP:
req = sw.getOFFactory().buildGroupStatsRequest()
.build();
case GROUP:
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_10) > 0) {
req = sw.getOFFactory().buildGroupStatsRequest()
.build();
}
break;
case METER:
req = sw.getOFFactory().buildMeterStatsRequest()
.setMeterId(OFMeterSerializerVer13.ALL_VAL)
.build();
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_13) >= 0) {
req = sw.getOFFactory().buildMeterStatsRequest()
.setMeterId(OFMeterSerializerVer13.ALL_VAL)
.build();
}
break;
case GROUP_DESC:
req = sw.getOFFactory().buildGroupDescStatsRequest()
.build();
case GROUP_DESC:
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_10) > 0) {
req = sw.getOFFactory().buildGroupDescStatsRequest()
.build();
}
break;
case GROUP_FEATURES:
req = sw.getOFFactory().buildGroupFeaturesStatsRequest()
.build();
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_10) > 0) {
req = sw.getOFFactory().buildGroupFeaturesStatsRequest()
.build();
}
break;
case METER_CONFIG:
req = sw.getOFFactory().buildMeterConfigStatsRequest()
.build();
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_13) >= 0) {
req = sw.getOFFactory().buildMeterConfigStatsRequest()
.build();
}
break;
case METER_FEATURES:
req = sw.getOFFactory().buildMeterFeaturesStatsRequest()
.build();
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_13) >= 0) {
req = sw.getOFFactory().buildMeterFeaturesStatsRequest()
.build();
}
break;
case TABLE:
req = sw.getOFFactory().buildTableStatsRequest()
.build();
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_10) > 0) {
req = sw.getOFFactory().buildTableStatsRequest()
.build();
}
break;
case TABLE_FEATURES:
req = sw.getOFFactory().buildTableFeaturesStatsRequest()
.build();
case TABLE_FEATURES:
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_10) > 0) {
req = sw.getOFFactory().buildTableFeaturesStatsRequest()
.build();
}
break;
case PORT_DESC:
req = sw.getOFFactory().buildPortDescStatsRequest()
.build();
break;
if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_13) >= 0) {
req = sw.getOFFactory().buildPortDescStatsRequest()
.build();
}
break;
case EXPERIMENTER: //TODO @Ryan support new OF1.1+ stats types
default:
log.error("Stats Request Type {} not implemented yet", statType.name());
......
......@@ -27,7 +27,6 @@ import com.fasterxml.jackson.databind.SerializerProvider;
import org.projectfloodlight.openflow.protocol.OFFlowMod;
import org.projectfloodlight.openflow.protocol.OFVersion;
import org.projectfloodlight.openflow.protocol.ver10.OFFlowModFlagsSerializerVer10;
import org.projectfloodlight.openflow.protocol.ver11.OFFlowModFlagsSerializerVer11;
import org.projectfloodlight.openflow.protocol.ver12.OFFlowModFlagsSerializerVer12;
import org.projectfloodlight.openflow.protocol.ver13.OFFlowModFlagsSerializerVer13;
......@@ -70,7 +69,6 @@ public class OFFlowModSerializer extends JsonSerializer<OFFlowMod> {
switch (flowMod.getVersion()) {
case OF_10:
jGen.writeNumberField("flags", OFFlowModFlagsSerializerVer10.toWireValue(flowMod.getFlags()));
break;
case OF_11:
jGen.writeNumberField("flags", OFFlowModFlagsSerializerVer11.toWireValue(flowMod.getFlags()));
......@@ -93,7 +91,9 @@ public class OFFlowModSerializer extends JsonSerializer<OFFlowMod> {
// handle OF1.1+ instructions with actions within
if (flowMod.getVersion() == OFVersion.OF_10) {
jGen.writeObjectFieldStart("actions");
OFActionListSerializer.serializeActions(jGen, flowMod.getActions());
jGen.writeEndObject();
} else {
OFInstructionListSerializer.serializeInstructionList(jGen, flowMod.getInstructions());
} // end not-empty instructions (else)
......
......@@ -85,7 +85,6 @@ import org.projectfloodlight.openflow.protocol.ver12.OFFlowModFlagsSerializerVer
import org.projectfloodlight.openflow.protocol.ver12.OFPortFeaturesSerializerVer12;
import org.projectfloodlight.openflow.protocol.ver11.OFFlowModFlagsSerializerVer11;
import org.projectfloodlight.openflow.protocol.ver11.OFPortFeaturesSerializerVer11;
import org.projectfloodlight.openflow.protocol.ver10.OFFlowModFlagsSerializerVer10;
import org.projectfloodlight.openflow.protocol.ver10.OFPortFeaturesSerializerVer10;
import org.projectfloodlight.openflow.protocol.ver13.OFPortStateSerializerVer13;
import org.projectfloodlight.openflow.protocol.ver12.OFPortStateSerializerVer12;
......@@ -741,7 +740,7 @@ public class StatsReplySerializer extends JsonSerializer<StatsReply> {
jGen.writeNumberField("hardTimeoutSec", entry.getHardTimeout());
switch (entry.getVersion()) {
case OF_10:
jGen.writeNumberField("flags", OFFlowModFlagsSerializerVer10.toWireValue(entry.getFlags()));
// flags not supported
break;
case OF_11:
jGen.writeNumberField("flags", OFFlowModFlagsSerializerVer11.toWireValue(entry.getFlags()));
......@@ -764,7 +763,9 @@ public class StatsReplySerializer extends JsonSerializer<StatsReply> {
// handle OF1.1+ instructions with actions within
if (entry.getVersion() == OFVersion.OF_10) {
jGen.writeObjectFieldStart("actions");
OFActionListSerializer.serializeActions(jGen, entry.getActions());
jGen.writeEndObject();
} else {
OFInstructionListSerializer.serializeInstructionList(jGen, entry.getInstructions());
}
......@@ -776,7 +777,7 @@ public class StatsReplySerializer extends JsonSerializer<StatsReply> {
} // end method
public static void serializeDescReply(List<OFDescStatsReply> descReplies, JsonGenerator jGen) throws IOException, JsonProcessingException{
OFDescStatsReply descReply = descReplies.get(0); // There are only one descReply from the switch
OFDescStatsReply descReply = descReplies.get(0); // There is only one descReply from the switch
jGen.writeObjectFieldStart("desc");
jGen.writeStringField("version", descReply.getVersion().toString()); //return the enum name
jGen.writeStringField("manufacturerDescription", descReply.getMfrDesc());
......
......@@ -21,6 +21,7 @@ window.Switch = Backbone.Model.extend({
hardwareDescription: '',
manufacturerDescription: '',
serialNumber: '',
version: '',
softwareDescription: '',
flowCount: ' ',
packetCount: ' ',
......@@ -237,6 +238,12 @@ window.Switch = Backbone.Model.extend({
},f);
} else {
f.applyActionText = "----";
f.writeActionText = "n/a "; // need extra space at end
f.clearActionText = "n/a";
f.writeMetadataText = "n/a";
f.gotoGroupText = "n/a";
f.gotoMeterText = "n/a";
f.experimenterText = "n/a";
}
// build human-readable instrucions
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment