@Override
public void serialize(PacketInMessage message, ByteBuf outBuffer) {
ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH);
outBuffer.writeInt(message.getBufferId().intValue());
outBuffer.writeShort(message.getTotalLen().intValue());
outBuffer.writeByte(message.getReason().getIntValue());
outBuffer.writeByte(message.getTableId().getValue().byteValue());
outBuffer.writeLong(message.getCookie().longValue());
OFSerializer<Match> matchSerializer = registry
.<Match, OFSerializer<Match>> getSerializer(new MessageTypeKey<>(message.getVersion(), Match.class));
matchSerializer.serialize(message.getMatch(), outBuffer);
outBuffer.writeZero(PADDING);
byte[] data = message.getData();
if (data != null) {
outBuffer.writeBytes(data);
}
ByteBufUtils.updateOFHeaderLength(outBuffer);
}