@Override public void serialize(final FlowModInput message, final ByteBuf outBuffer) { ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH); OFSerializer<MatchV10> matchSerializer = registry.getSerializer(new MessageTypeKey<>( message.getVersion(), MatchV10.class)); matchSerializer.serialize(message.getMatchV10(), outBuffer); outBuffer.writeLong(message.getCookie().longValue()); outBuffer.writeShort(message.getCommand().getIntValue()); outBuffer.writeShort(message.getIdleTimeout().intValue()); outBuffer.writeShort(message.getHardTimeout().intValue()); outBuffer.writeShort(message.getPriority()); outBuffer.writeInt(message.getBufferId().intValue()); outBuffer.writeShort(message.getOutPort().getValue().intValue()); outBuffer.writeShort(createFlowModFlagsBitmask(message.getFlagsV10())); ListSerializer.serializeList(message.getAction(), ACTION_KEY_MAKER, registry, outBuffer); ByteBufUtils.updateOFHeaderLength(outBuffer); }
@Override public void serialize(final FlowModInput message, final ByteBuf outBuffer) { ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH); outBuffer.writeLong(message.getCookie().longValue()); outBuffer.writeLong(message.getCookieMask().longValue()); outBuffer.writeByte(message.getTableId().getValue().byteValue()); outBuffer.writeByte(message.getCommand().getIntValue()); outBuffer.writeShort(message.getIdleTimeout().intValue()); outBuffer.writeShort(message.getHardTimeout().intValue()); outBuffer.writeShort(message.getPriority()); outBuffer.writeInt(message.getBufferId().intValue()); outBuffer.writeInt(message.getOutPort().getValue().intValue()); outBuffer.writeInt(message.getOutGroup().intValue()); outBuffer.writeShort(createFlowModFlagsBitmask(message.getFlags())); outBuffer.writeZero(PADDING_IN_FLOW_MOD_MESSAGE); registry.<Match, OFSerializer<Match>>getSerializer(new MessageTypeKey<>(message.getVersion(), Match.class)) .serialize(message.getMatch(), outBuffer); ListSerializer.serializeList(message.getInstruction(), INSTRUCTION_KEY_MAKER, registry, outBuffer); ByteBufUtils.updateOFHeaderLength(outBuffer); }