@Override
 public void funnel(OFMeterStatsReplyVer14 message, PrimitiveSink sink) {
   // fixed value property version = 5
   sink.putByte((byte) 0x5);
   // fixed value property type = 19
   sink.putByte((byte) 0x13);
   // FIXME: skip funnel of length
   sink.putLong(message.xid);
   // fixed value property statsType = 9
   sink.putShort((short) 0x9);
   OFStatsReplyFlagsSerializerVer14.putTo(message.flags, sink);
   // skip pad (4 bytes)
   FunnelUtils.putList(message.entries, sink);
 }
 @Override
 public void funnel(OFMeterFeaturesStatsReplyVer14 message, PrimitiveSink sink) {
   // fixed value property version = 5
   sink.putByte((byte) 0x5);
   // fixed value property type = 19
   sink.putByte((byte) 0x13);
   // fixed value property length = 32
   sink.putShort((short) 0x20);
   sink.putLong(message.xid);
   // fixed value property statsType = 11
   sink.putShort((short) 0xb);
   OFStatsReplyFlagsSerializerVer14.putTo(message.flags, sink);
   // skip pad (4 bytes)
   message.features.putTo(sink);
 }
 @Override
 public void funnel(OFBsnImageDescStatsReplyVer14 message, PrimitiveSink sink) {
   // fixed value property version = 5
   sink.putByte((byte) 0x5);
   // fixed value property type = 19
   sink.putByte((byte) 0x13);
   // fixed value property length = 536
   sink.putShort((short) 0x218);
   sink.putLong(message.xid);
   // fixed value property statsType = 65535
   sink.putShort((short) 0xffff);
   OFStatsReplyFlagsSerializerVer14.putTo(message.flags, sink);
   // skip pad (4 bytes)
   // fixed value property experimenter = 0x5c16c7L
   sink.putInt(0x5c16c7);
   // fixed value property subtype = 0xeL
   sink.putInt(0xe);
   sink.putUnencodedChars(message.imageChecksum);
   sink.putUnencodedChars(message.startupConfigChecksum);
 }