Class SwitchConnectionProviderImpl
- java.lang.Object
-
- org.opendaylight.openflowjava.protocol.impl.core.SwitchConnectionProviderImpl
-
- All Implemented Interfaces:
AutoCloseable,DeserializerExtensionProvider,SerializerExtensionProvider,ConnectionInitializer,SwitchConnectionProvider
public class SwitchConnectionProviderImpl extends Object implements SwitchConnectionProvider, ConnectionInitializer
Exposed class for server handling.
C -MatchEntrySerializerKeyparameter representing oxm_class (see specification)
F -MatchEntrySerializerKeyparameter representing oxm_field (see specification)- Author:
- mirehak, michal.polkorab
-
-
Constructor Summary
Constructors Constructor Description SwitchConnectionProviderImpl(@Nullable ConnectionConfiguration connConfig, OpenflowDiagStatusProvider openflowDiagStatusProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclose()ConnectionConfigurationgetConfiguration()Returns the connection configuration.ServerFacadegetServerFacade()voidinitiateConnection(String host, int port)Initiates connection towards device.voidregisterActionDeserializer(ExperimenterActionDeserializerKey key, OFGeneralDeserializer deserializer)Registers action deserializer.voidregisterActionSerializer(ActionSerializerKey<?> key, OFGeneralSerializer serializer)Registers an action serializer.voidregisterDeserializer(MessageCodeKey key, OFGeneralDeserializer deserializer)Registers deserializer.voidregisterDeserializerMapping(TypeToClassKey key, Class<?> clazz)Registers type to class mapping used to assign return type when deserializing message.voidregisterErrorDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<ErrorMessage> deserializer)Registers error message deserializer.voidregisterExperimenterMessageDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<? extends ExperimenterDataOfChoice> deserializer)Registers experimenter (vendor) message deserializer.voidregisterExperimenterMessageSerializer(ExperimenterIdSerializerKey<? extends ExperimenterDataOfChoice> key, OFSerializer<? extends ExperimenterDataOfChoice> serializer)Registers an experimenter (vendor) message serializer.voidregisterInstructionDeserializer(ExperimenterInstructionDeserializerKey key, OFGeneralDeserializer deserializer)Registers instruction deserializer.voidregisterInstructionSerializer(InstructionSerializerKey<?> key, OFGeneralSerializer serializer)Registers an instruction serializer.voidregisterMatchEntryDeserializer(MatchEntryDeserializerKey key, OFGeneralDeserializer deserializer)Registers match entry deserializer.<C extends OxmClassBase,F extends MatchField>
voidregisterMatchEntrySerializer(MatchEntrySerializerKey<C,F> key, OFGeneralSerializer serializer)Registers a match entry serializer.voidregisterMeterBandDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<MeterBandExperimenterCase> deserializer)Registers meter band deserializer (used in multipart-reply meter-config).voidregisterMeterBandSerializer(ExperimenterIdMeterSubTypeSerializerKey<MeterBandExperimenterCase> key, OFSerializer<MeterBandExperimenterCase> serializer)Registers a meter band serializer (used in meter-mod messages).voidregisterMeterBandSerializer(ExperimenterIdSerializerKey<MeterBandExperimenterCase> key, OFSerializer<MeterBandExperimenterCase> serializer)Deprecated.Since we have used ExperimenterIdMeterSubTypeSerializerKey as MeterBandSerializer's key, in order to avoid the occurrence of an error, we should discard this function.voidregisterMultipartReplyMessageDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<? extends ExperimenterDataOfChoice> deserializer)Registers multipart-reply (stats) message deserializer.voidregisterMultipartReplyTFDeserializer(ExperimenterIdDeserializerKey key, OFGeneralDeserializer deserializer)Registers multipart-reply table-features message deserializer.voidregisterMultipartRequestSerializer(ExperimenterIdSerializerKey<? extends ExperimenterDataOfChoice> key, OFSerializer<? extends ExperimenterDataOfChoice> serializer)Registers a multipart-request (stats-request) serializer.voidregisterMultipartRequestTFSerializer(ExperimenterIdSerializerKey<TableFeatureProperties> key, OFGeneralSerializer serializer)Registers a multipart-request table-features serializer.voidregisterQueuePropertyDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<QueueProperty> deserializer)Registers queue property (QUEUE_GET_CONFIG_REPLY message) deserializer.<K> voidregisterSerializer(MessageTypeKey<K> key, OFGeneralSerializer serializer)Registers a custom serializer.voidsetSwitchConnectionHandler(SwitchConnectionHandler switchConnectionHandler)Sets the SwitchConnectionHandler.com.google.common.util.concurrent.ListenableFuture<Boolean>shutdown()Stop listening to switches.com.google.common.util.concurrent.ListenableFuture<Boolean>startup()Start listening to switches, but please don't forget to doSwitchConnectionProvider.setSwitchConnectionHandler(SwitchConnectionHandler)first.booleanunregisterDeserializer(ExperimenterDeserializerKey key)Unregisters custom deserializer.booleanunregisterDeserializerMapping(TypeToClassKey key)Unregisters type to class mapping used to assign return type when deserializing message.booleanunregisterSerializer(ExperimenterSerializerKey key)Unregisters a custom serializer.
-
-
-
Constructor Detail
-
SwitchConnectionProviderImpl
public SwitchConnectionProviderImpl(@Nullable ConnectionConfiguration connConfig, OpenflowDiagStatusProvider openflowDiagStatusProvider)
-
-
Method Detail
-
setSwitchConnectionHandler
public void setSwitchConnectionHandler(SwitchConnectionHandler switchConnectionHandler)
Description copied from interface:SwitchConnectionProviderSets the SwitchConnectionHandler.- Specified by:
setSwitchConnectionHandlerin interfaceSwitchConnectionProvider- Parameters:
switchConnectionHandler- instance being informed when new switch connects
-
shutdown
public com.google.common.util.concurrent.ListenableFuture<Boolean> shutdown()
Description copied from interface:SwitchConnectionProviderStop listening to switches.- Specified by:
shutdownin interfaceSwitchConnectionProvider- Returns:
- future, triggered to true, when all listening channels are down
-
startup
public com.google.common.util.concurrent.ListenableFuture<Boolean> startup()
Description copied from interface:SwitchConnectionProviderStart listening to switches, but please don't forget to doSwitchConnectionProvider.setSwitchConnectionHandler(SwitchConnectionHandler)first.- Specified by:
startupin interfaceSwitchConnectionProvider- Returns:
- future, triggered to true, when listening channel is up and running
-
getServerFacade
public ServerFacade getServerFacade()
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable
-
unregisterSerializer
public boolean unregisterSerializer(ExperimenterSerializerKey key)
Description copied from interface:SerializerExtensionProviderUnregisters a custom serializer.- Specified by:
unregisterSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookup- Returns:
- true if serializer was removed, false if no serializer was found under specified key
-
unregisterDeserializer
public boolean unregisterDeserializer(ExperimenterDeserializerKey key)
Description copied from interface:DeserializerExtensionProviderUnregisters custom deserializer.- Specified by:
unregisterDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookup- Returns:
- true if deserializer was removed, false if no deserializer was found under specified key
-
registerActionSerializer
public void registerActionSerializer(ActionSerializerKey<?> key, OFGeneralSerializer serializer)
Description copied from interface:SerializerExtensionProviderRegisters an action serializer.- Specified by:
registerActionSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerActionDeserializer
public void registerActionDeserializer(ExperimenterActionDeserializerKey key, OFGeneralDeserializer deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters action deserializer.- Specified by:
registerActionDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerInstructionSerializer
public void registerInstructionSerializer(InstructionSerializerKey<?> key, OFGeneralSerializer serializer)
Description copied from interface:SerializerExtensionProviderRegisters an instruction serializer.- Specified by:
registerInstructionSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerInstructionDeserializer
public void registerInstructionDeserializer(ExperimenterInstructionDeserializerKey key, OFGeneralDeserializer deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters instruction deserializer.- Specified by:
registerInstructionDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerMatchEntrySerializer
public <C extends OxmClassBase,F extends MatchField> void registerMatchEntrySerializer(MatchEntrySerializerKey<C,F> key, OFGeneralSerializer serializer)
Description copied from interface:SerializerExtensionProviderRegisters a match entry serializer.- Specified by:
registerMatchEntrySerializerin interfaceSerializerExtensionProvider- Type Parameters:
C- oxm typeF- match field type- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerMatchEntryDeserializer
public void registerMatchEntryDeserializer(MatchEntryDeserializerKey key, OFGeneralDeserializer deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters match entry deserializer.- Specified by:
registerMatchEntryDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerErrorDeserializer
public void registerErrorDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<ErrorMessage> deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters error message deserializer.- Specified by:
registerErrorDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerExperimenterMessageDeserializer
public void registerExperimenterMessageDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<? extends ExperimenterDataOfChoice> deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters experimenter (vendor) message deserializer.- Specified by:
registerExperimenterMessageDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerMultipartReplyMessageDeserializer
public void registerMultipartReplyMessageDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<? extends ExperimenterDataOfChoice> deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters multipart-reply (stats) message deserializer.- Specified by:
registerMultipartReplyMessageDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerMultipartReplyTFDeserializer
public void registerMultipartReplyTFDeserializer(ExperimenterIdDeserializerKey key, OFGeneralDeserializer deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters multipart-reply table-features message deserializer.- Specified by:
registerMultipartReplyTFDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerQueuePropertyDeserializer
public void registerQueuePropertyDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<QueueProperty> deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters queue property (QUEUE_GET_CONFIG_REPLY message) deserializer.- Specified by:
registerQueuePropertyDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerMeterBandDeserializer
public void registerMeterBandDeserializer(ExperimenterIdDeserializerKey key, OFDeserializer<MeterBandExperimenterCase> deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters meter band deserializer (used in multipart-reply meter-config).- Specified by:
registerMeterBandDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerExperimenterMessageSerializer
public void registerExperimenterMessageSerializer(ExperimenterIdSerializerKey<? extends ExperimenterDataOfChoice> key, OFSerializer<? extends ExperimenterDataOfChoice> serializer)
Description copied from interface:SerializerExtensionProviderRegisters an experimenter (vendor) message serializer.- Specified by:
registerExperimenterMessageSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerMultipartRequestSerializer
public void registerMultipartRequestSerializer(ExperimenterIdSerializerKey<? extends ExperimenterDataOfChoice> key, OFSerializer<? extends ExperimenterDataOfChoice> serializer)
Description copied from interface:SerializerExtensionProviderRegisters a multipart-request (stats-request) serializer.- Specified by:
registerMultipartRequestSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerMultipartRequestTFSerializer
public void registerMultipartRequestTFSerializer(ExperimenterIdSerializerKey<TableFeatureProperties> key, OFGeneralSerializer serializer)
Description copied from interface:SerializerExtensionProviderRegisters a multipart-request table-features serializer.- Specified by:
registerMultipartRequestTFSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerMeterBandSerializer
@Deprecated public void registerMeterBandSerializer(ExperimenterIdSerializerKey<MeterBandExperimenterCase> key, OFSerializer<MeterBandExperimenterCase> serializer)
Deprecated.Since we have used ExperimenterIdMeterSubTypeSerializerKey as MeterBandSerializer's key, in order to avoid the occurrence of an error, we should discard this function.Deprecated.- Specified by:
registerMeterBandSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerMeterBandSerializer
public void registerMeterBandSerializer(ExperimenterIdMeterSubTypeSerializerKey<MeterBandExperimenterCase> key, OFSerializer<MeterBandExperimenterCase> serializer)
Description copied from interface:SerializerExtensionProviderRegisters a meter band serializer (used in meter-mod messages).- Specified by:
registerMeterBandSerializerin interfaceSerializerExtensionProvider- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
initiateConnection
public void initiateConnection(String host, int port)
Description copied from interface:ConnectionInitializerInitiates connection towards device.- Specified by:
initiateConnectionin interfaceConnectionInitializer- Parameters:
host- - host IPport- - port number
-
getConfiguration
public ConnectionConfiguration getConfiguration()
Description copied from interface:SwitchConnectionProviderReturns the connection configuration.- Specified by:
getConfigurationin interfaceSwitchConnectionProvider- Returns:
- configuration [protocol, port, address and supported features]
-
registerSerializer
public <K> void registerSerializer(MessageTypeKey<K> key, OFGeneralSerializer serializer)
Description copied from interface:SerializerExtensionProviderRegisters a custom serializer.Throws IllegalStateException when there is a serializer already registered under given key.
If the serializer implements
SerializerRegistryInjectorinterface, the serializer is injected with SerializerRegistry instance.- Specified by:
registerSerializerin interfaceSerializerExtensionProvider- Type Parameters:
K- serializer key type- Parameters:
key- used for serializer lookupserializer- serializer implementation
-
registerDeserializer
public void registerDeserializer(MessageCodeKey key, OFGeneralDeserializer deserializer)
Description copied from interface:DeserializerExtensionProviderRegisters deserializer. Throws IllegalStateException when there is a deserializer already registered under given key.If the deserializer implements
DeserializerRegistryInjectorinterface, the deserializer is injected with DeserializerRegistry instance.- Specified by:
registerDeserializerin interfaceDeserializerExtensionProvider- Parameters:
key- used for deserializer lookupdeserializer- deserializer instance
-
registerDeserializerMapping
public void registerDeserializerMapping(TypeToClassKey key, Class<?> clazz)
Description copied from interface:DeserializerExtensionProviderRegisters type to class mapping used to assign return type when deserializing message.- Specified by:
registerDeserializerMappingin interfaceDeserializerExtensionProvider- Parameters:
key- type to class keyclazz- return class
-
unregisterDeserializerMapping
public boolean unregisterDeserializerMapping(TypeToClassKey key)
Description copied from interface:DeserializerExtensionProviderUnregisters type to class mapping used to assign return type when deserializing message.- Specified by:
unregisterDeserializerMappingin interfaceDeserializerExtensionProvider- Parameters:
key- type to class key- Returns:
- true if mapping was successfully removed
-
-