import org.projectfloodlight.openflow.protocol.ver12.OFPortConfigSerializerVer12; //导入依赖的package包/类
public static void serializePortDesc(List<OFPortDesc> portDescList, JsonGenerator jGen) throws IOException, JsonProcessingException {
jGen.writeFieldName("portDesc");
jGen.writeStartArray();
for(OFPortDesc entry : portDescList) {
jGen.writeStartObject();
jGen.writeStringField("portNumber",entry.getPortNo().toString());
jGen.writeStringField("hardwareAddress", entry.getHwAddr().toString());
jGen.writeStringField("name", entry.getName());
switch(entry.getVersion()) {
case OF_10:
jGen.writeNumberField("config", OFPortConfigSerializerVer10.toWireValue(entry.getConfig()));
jGen.writeNumberField("state", OFPortStateSerializerVer10.toWireValue(entry.getState()));
jGen.writeNumberField("currentFeatures", OFPortFeaturesSerializerVer10.toWireValue(entry.getCurr()));
jGen.writeNumberField("advertisedFeatures", OFPortFeaturesSerializerVer10.toWireValue(entry.getAdvertised()));
jGen.writeNumberField("supportedFeatures", OFPortFeaturesSerializerVer10.toWireValue(entry.getSupported()));
jGen.writeNumberField("peerFeatures", OFPortFeaturesSerializerVer10.toWireValue(entry.getPeer()));
break;
case OF_11:
jGen.writeNumberField("config", OFPortConfigSerializerVer11.toWireValue(entry.getConfig()));
jGen.writeNumberField("state", OFPortStateSerializerVer11.toWireValue(entry.getState()));
jGen.writeNumberField("currentFeatures", OFPortFeaturesSerializerVer11.toWireValue(entry.getCurr()));
jGen.writeNumberField("advertisedFeatures", OFPortFeaturesSerializerVer11.toWireValue(entry.getAdvertised()));
jGen.writeNumberField("supportedFeatures", OFPortFeaturesSerializerVer11.toWireValue(entry.getSupported()));
jGen.writeNumberField("peerFeatures", OFPortFeaturesSerializerVer11.toWireValue(entry.getPeer()));
break;
case OF_12:
jGen.writeNumberField("config", OFPortConfigSerializerVer12.toWireValue(entry.getConfig()));
jGen.writeNumberField("state", OFPortStateSerializerVer12.toWireValue(entry.getState()));
jGen.writeNumberField("currentFeatures", OFPortFeaturesSerializerVer12.toWireValue(entry.getCurr()));
jGen.writeNumberField("advertisedFeatures", OFPortFeaturesSerializerVer12.toWireValue(entry.getAdvertised()));
jGen.writeNumberField("supportedFeatures", OFPortFeaturesSerializerVer12.toWireValue(entry.getSupported()));
jGen.writeNumberField("peerFeatures", OFPortFeaturesSerializerVer12.toWireValue(entry.getPeer()));
break;
case OF_13:
jGen.writeNumberField("config", OFPortConfigSerializerVer13.toWireValue(entry.getConfig()));
jGen.writeNumberField("state", OFPortStateSerializerVer13.toWireValue(entry.getState()));
jGen.writeNumberField("currentFeatures", OFPortFeaturesSerializerVer13.toWireValue(entry.getCurr()));
jGen.writeNumberField("advertisedFeatures", OFPortFeaturesSerializerVer13.toWireValue(entry.getAdvertised()));
jGen.writeNumberField("supportedFeatures", OFPortFeaturesSerializerVer13.toWireValue(entry.getSupported()));
jGen.writeNumberField("peerFeatures", OFPortFeaturesSerializerVer13.toWireValue(entry.getPeer()));
break;
case OF_14:
// TODO
logger.error("OF1.4 OFPortDesc serializer not implemented");
}
if (OFVersion.OF_10 != entry.getVersion()) {
jGen.writeNumberField("currSpeed",entry.getCurrSpeed());
jGen.writeNumberField("maxSpeed",entry.getMaxSpeed());
}
jGen.writeEndObject();
}
jGen.writeEndArray();
}
请发表评论