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(); }