@Override
public void serialize(final GetFeaturesOutput message, final ByteBuf outBuffer) {
ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH);
outBuffer.writeLong(message.getDatapathId().longValue());
outBuffer.writeInt(message.getBuffers().intValue());
outBuffer.writeByte(message.getTables().intValue());
outBuffer.writeZero(PADDING);
outBuffer.writeInt(createCapabilities(message.getCapabilitiesV10()));
outBuffer.writeInt(createActionsV10(message.getActionsV10()));
for (PhyPort port : message.getPhyPort()) {
outBuffer.writeShort(port.getPortNo().intValue());
outBuffer.writeBytes(IetfYangUtil.INSTANCE.bytesFor(port.getHwAddr()));
writeName(port.getName(), outBuffer);
writePortConfig(port.getConfigV10(), outBuffer);
writePortState(port.getStateV10(), outBuffer);
writePortFeature(port.getCurrentFeaturesV10(), outBuffer);
writePortFeature(port.getAdvertisedFeaturesV10(), outBuffer);
writePortFeature(port.getSupportedFeaturesV10(), outBuffer);
writePortFeature(port.getPeerFeaturesV10(), outBuffer);
}
ByteBufUtils.updateOFHeaderLength(outBuffer);
}