@Override
 public void funnel(OFBsnVlanCounterStatsEntryVer13 message, PrimitiveSink sink) {
   // FIXME: skip funnel of length
   sink.putInt(message.vlanVid);
   // skip pad (4 bytes)
   FunnelUtils.putList(message.values, sink);
 }
 @Override
 public void funnel(OFBsnGentableEntryAddVer13 message, PrimitiveSink sink) {
   // fixed value property version = 4
   sink.putByte((byte) 0x4);
   // fixed value property type = 4
   sink.putByte((byte) 0x4);
   // FIXME: skip funnel of length
   sink.putLong(message.xid);
   // fixed value property experimenter = 0x5c16c7L
   sink.putInt(0x5c16c7);
   // fixed value property subtype = 0x2eL
   sink.putInt(0x2e);
   message.tableId.putTo(sink);
   // FIXME: skip funnel of keyLength
   message.checksum.putTo(sink);
   FunnelUtils.putList(message.key, sink);
   FunnelUtils.putList(message.value, sink);
 }
 @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(OFFlowStatsEntryVer10 message, PrimitiveSink sink) {
   // FIXME: skip funnel of length
   message.tableId.putTo(sink);
   // skip pad (1 bytes)
   message.match.putTo(sink);
   sink.putLong(message.durationSec);
   sink.putLong(message.durationNsec);
   sink.putInt(message.priority);
   sink.putInt(message.idleTimeout);
   sink.putInt(message.hardTimeout);
   // skip pad (6 bytes)
   message.cookie.putTo(sink);
   message.packetCount.putTo(sink);
   message.byteCount.putTo(sink);
   FunnelUtils.putList(message.actions, sink);
 }
 @Override
 public void funnel(OFBsnGentableBucketStatsReplyVer13 message, PrimitiveSink sink) {
   // fixed value property version = 4
   sink.putByte((byte) 0x4);
   // fixed value property type = 19
   sink.putByte((byte) 0x13);
   // FIXME: skip funnel of length
   sink.putLong(message.xid);
   // fixed value property statsType = 65535
   sink.putShort((short) 0xffff);
   OFStatsReplyFlagsSerializerVer13.putTo(message.flags, sink);
   // skip pad (4 bytes)
   // fixed value property experimenter = 0x5c16c7L
   sink.putInt(0x5c16c7);
   // fixed value property subtype = 0x5L
   sink.putInt(0x5);
   FunnelUtils.putList(message.entries, sink);
 }
 @Override
 public void funnel(OFFlowStatsEntryVer14 message, PrimitiveSink sink) {
   // FIXME: skip funnel of length
   message.tableId.putTo(sink);
   // skip pad (1 bytes)
   sink.putLong(message.durationSec);
   sink.putLong(message.durationNsec);
   sink.putInt(message.priority);
   sink.putInt(message.idleTimeout);
   sink.putInt(message.hardTimeout);
   OFFlowModFlagsSerializerVer14.putTo(message.flags, sink);
   sink.putInt(message.importance);
   // skip pad (2 bytes)
   message.cookie.putTo(sink);
   message.packetCount.putTo(sink);
   message.byteCount.putTo(sink);
   message.match.putTo(sink);
   FunnelUtils.putList(message.instructions, sink);
 }