/** * Create default empty port mod input * Use this method, if result from convertor is empty. * * @param version Openflow version * @return default empty port mod input */ public static PortModInput defaultResult(short version) { return new PortModInputBuilder() .setVersion(version) .build(); }
@Override public PortModInput deserialize(final ByteBuf rawMessage) { PortModInputBuilder builder = new PortModInputBuilder(); builder.setVersion((short) EncodeConstants.OF13_VERSION_ID); builder.setXid(rawMessage.readUnsignedInt()); builder.setPortNo(new PortNumber(rawMessage.readUnsignedInt())); rawMessage.skipBytes(PADDING_IN_PORT_MOD_MESSAGE_1); builder.setHwAddress(ByteBufUtils.readIetfMacAddress(rawMessage)); rawMessage.skipBytes(PADDING_IN_PORT_MOD_MESSAGE_2); builder.setConfig(createPortConfig(rawMessage.readUnsignedInt())); builder.setMask(createPortConfig(rawMessage.readUnsignedInt())); builder.setAdvertise(createPortFeatures(rawMessage.readUnsignedInt())); rawMessage.skipBytes(PADDING_IN_PORT_MOD_MESSAGE_3); return builder.build(); }
@Override public PortModInput deserialize(final ByteBuf rawMessage) { PortModInputBuilder builder = new PortModInputBuilder(); builder.setVersion((short) EncodeConstants.OF10_VERSION_ID); builder.setXid(rawMessage.readUnsignedInt()); builder.setPortNo(new PortNumber((long) rawMessage.readUnsignedShort())); builder.setHwAddress(ByteBufUtils.readIetfMacAddress(rawMessage)); builder.setConfigV10(createPortConfig(rawMessage.readUnsignedInt())); builder.setMaskV10(createPortConfig(rawMessage.readUnsignedInt())); builder.setAdvertiseV10(createPortFeatures(rawMessage.readUnsignedInt())); return builder.build(); }
@Override public PortModInput convert(Port source, VersionConvertorData data) { PortConfig config = maskPortConfigFields(source.getConfiguration()); PortConfigV10 configV10 = maskPortConfigV10Fields(source.getConfiguration()); PortModInputBuilder portModInputBuilder = new PortModInputBuilder(); portModInputBuilder.setAdvertise(getPortFeatures(source.getAdvertisedFeatures())); portModInputBuilder.setPortNo(new PortNumber( OpenflowPortsUtil.getProtocolPortNumber(OpenflowVersion.get(data.getVersion()), source.getPortNumber()))); portModInputBuilder.setConfig(config); portModInputBuilder.setMask(config); portModInputBuilder.setHwAddress(new MacAddress(source.getHardwareAddress())); portModInputBuilder.setVersion(data.getVersion()); portModInputBuilder.setConfigV10(configV10); portModInputBuilder.setMaskV10(configV10); portModInputBuilder.setAdvertiseV10(getPortFeaturesV10(source.getAdvertisedFeatures())); return portModInputBuilder.build(); } }