Class ForwardingRulesManagerImpl
- java.lang.Object
-
- org.opendaylight.openflowplugin.applications.frm.impl.ForwardingRulesManagerImpl
-
- All Implemented Interfaces:
AutoCloseable,ConfigurationListener,ForwardingRulesManager
@Singleton public class ForwardingRulesManagerImpl extends Object implements ForwardingRulesManager
forwardingrules-manager org.opendaylight.openflowplugin.applications.frm.implManager and middle point for whole module. It contains ActiveNodeHolder and provide all RPC services.
-
-
Constructor Summary
Constructors Constructor Description ForwardingRulesManagerImpl(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.binding.api.RpcConsumerRegistry rpcRegistry, org.opendaylight.mdsal.binding.api.RpcProviderService rpcProviderService, ForwardingRulesManagerConfig config, MastershipChangeServiceManager mastershipChangeServiceManager, org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider clusterSingletonService, ConfigurationService configurationService, ReconciliationManager reconciliationManager, OpenflowServiceRecoveryHandler openflowServiceRecoveryHandler, org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry serviceRecoveryRegistry, FlowGroupCacheManager flowGroupCacheManager, ListenerRegistrationHelper registrationHelper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRecoverableListener(org.opendaylight.serviceutils.srm.RecoverableListener recoverableListener)Method for register RecoverableListener.booleancheckNodeInOperationalDataStore(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> ident)Method returns information : "is Node with send InstanceIdentifier present in operational data store"?.voidclose()ArbitratorReconcileServicegetArbitratorReconciliationManager()Method exposes the ArbitratorReconciliationManager service used for performing Arbitrator Based Reconciliation.BundleMessagesCommiter<Flow>getBundleFlowListener()Return BundleFlowListener instance.BundleMessagesCommiter<Group>getBundleGroupListener()Return BundleGroupListener instance.DevicesGroupRegistrygetDevicesGroupRegistry()Return Devices Group Registry which can be used to track the groups present in a device.ForwardingRulesCommiter<Flow>getFlowCommiter()Content definition method and prevent code duplicity in Reconcil.FlowNodeConnectorInventoryTranslatorImplgetFlowNodeConnectorInventoryTranslatorImpl()Content definition method and prevent code duplicity.ForwardingRulesCommiter<Group>getGroupCommiter()Content definition method and prevent code duplicity in Reconcil.ForwardingRulesCommiter<Meter>getMeterCommiter()Content definition method and prevent code duplicity.StringgetNewTransactionId()Method returns generated transaction ID, which is unique for every transaction.NodeConfiguratorgetNodeConfigurator()Return the NodeConfigurator which could be used to serialize jobs.FlowNodeReconciliationgetNodeListener()org.opendaylight.mdsal.binding.api.ReadTransactiongetReadTransaction()Method returns Read Transaction.intgetReconciliationRetryCount()Return number of reconciliation retry are allowed.SalBundleServicegetSalBundleService()Bundle RPC service.SalFlowServicegetSalFlowService()Flow RPC service.SalGroupServicegetSalGroupService()Group RPC service.SalMeterServicegetSalMeterService()Meter RPC service.SalTableServicegetSalTableService()Table RPC service.ForwardingRulesCommiter<TableFeatures>getTableFeaturesCommiter()Content definition method and prevent code duplicity.booleanisBundleBasedReconciliationEnabled()holds the value read from the configuration file openflowplugin.cfg file.booleanisNodeActive(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> ident)Method returns information : "is Node with send InstanceIdentifier connected"?.booleanisNodeOwner(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> ident)Method checks if *this* instance of openflowplugin is owner of the given openflow node.booleanisReconciliationDisabled()Check if reconciliation is disabled by user.booleanisStaleMarkingEnabled()Check if stale marking is enabled for switch reconciliation.voidonPropertyChanged(@NonNull String propertyName, @NonNull String propertyValue)Method invoked on configuration property change.voidsetDeviceMastershipManager(DeviceMastershipManager deviceMastershipManager)voidstart()
-
-
-
Constructor Detail
-
ForwardingRulesManagerImpl
@Inject public ForwardingRulesManagerImpl(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.binding.api.RpcConsumerRegistry rpcRegistry, org.opendaylight.mdsal.binding.api.RpcProviderService rpcProviderService, ForwardingRulesManagerConfig config, MastershipChangeServiceManager mastershipChangeServiceManager, org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider clusterSingletonService, ConfigurationService configurationService, ReconciliationManager reconciliationManager, OpenflowServiceRecoveryHandler openflowServiceRecoveryHandler, org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry serviceRecoveryRegistry, FlowGroupCacheManager flowGroupCacheManager, ListenerRegistrationHelper registrationHelper)
-
-
Method Detail
-
start
@PostConstruct public void start()
- Specified by:
startin interfaceForwardingRulesManager
-
close
@PreDestroy public void close() throws Exception- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-
getReadTransaction
public org.opendaylight.mdsal.binding.api.ReadTransaction getReadTransaction()
Description copied from interface:ForwardingRulesManagerMethod returns Read Transaction. It is need for Node reconciliation only.- Specified by:
getReadTransactionin interfaceForwardingRulesManager- Returns:
- ReadOnlyTransaction
-
getNewTransactionId
public String getNewTransactionId()
Description copied from interface:ForwardingRulesManagerMethod returns generated transaction ID, which is unique for every transaction. ID is composite from prefix ("DOM") and unique number.- Specified by:
getNewTransactionIdin interfaceForwardingRulesManager- Returns:
- String transactionID for RPC transaction identification
-
isNodeActive
public boolean isNodeActive(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> ident)
Description copied from interface:ForwardingRulesManagerMethod returns information : "is Node with send InstanceIdentifier connected"?.- Specified by:
isNodeActivein interfaceForwardingRulesManager- Parameters:
ident- - the key of the node- Returns:
- boolean - true if device is connected
-
checkNodeInOperationalDataStore
public boolean checkNodeInOperationalDataStore(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> ident)
Description copied from interface:ForwardingRulesManagerMethod returns information : "is Node with send InstanceIdentifier present in operational data store"?.- Specified by:
checkNodeInOperationalDataStorein interfaceForwardingRulesManager- Parameters:
ident- - the key of the node- Returns:
- boolean - true if device is present in operational data store
-
getSalFlowService
public SalFlowService getSalFlowService()
Description copied from interface:ForwardingRulesManagerFlow RPC service.- Specified by:
getSalFlowServicein interfaceForwardingRulesManager
-
getSalGroupService
public SalGroupService getSalGroupService()
Description copied from interface:ForwardingRulesManagerGroup RPC service.- Specified by:
getSalGroupServicein interfaceForwardingRulesManager
-
getSalMeterService
public SalMeterService getSalMeterService()
Description copied from interface:ForwardingRulesManagerMeter RPC service.- Specified by:
getSalMeterServicein interfaceForwardingRulesManager
-
getSalTableService
public SalTableService getSalTableService()
Description copied from interface:ForwardingRulesManagerTable RPC service.- Specified by:
getSalTableServicein interfaceForwardingRulesManager
-
getDevicesGroupRegistry
public DevicesGroupRegistry getDevicesGroupRegistry()
Description copied from interface:ForwardingRulesManagerReturn Devices Group Registry which can be used to track the groups present in a device.- Specified by:
getDevicesGroupRegistryin interfaceForwardingRulesManager- Returns:
- devicesGroupRegistry
-
getSalBundleService
public SalBundleService getSalBundleService()
Description copied from interface:ForwardingRulesManagerBundle RPC service.- Specified by:
getSalBundleServicein interfaceForwardingRulesManager- Returns:
- salBundleService
-
getFlowCommiter
public ForwardingRulesCommiter<Flow> getFlowCommiter()
Description copied from interface:ForwardingRulesManagerContent definition method and prevent code duplicity in Reconcil.- Specified by:
getFlowCommiterin interfaceForwardingRulesManager- Returns:
- ForwardingRulesCommiter<Flow>.
-
getGroupCommiter
public ForwardingRulesCommiter<Group> getGroupCommiter()
Description copied from interface:ForwardingRulesManagerContent definition method and prevent code duplicity in Reconcil.- Specified by:
getGroupCommiterin interfaceForwardingRulesManager- Returns:
- ForwardingRulesCommiter<Group>
-
getMeterCommiter
public ForwardingRulesCommiter<Meter> getMeterCommiter()
Description copied from interface:ForwardingRulesManagerContent definition method and prevent code duplicity.- Specified by:
getMeterCommiterin interfaceForwardingRulesManager- Returns:
- ForwardingRulesCommiter<Meter>
-
getTableFeaturesCommiter
public ForwardingRulesCommiter<TableFeatures> getTableFeaturesCommiter()
Description copied from interface:ForwardingRulesManagerContent definition method and prevent code duplicity.- Specified by:
getTableFeaturesCommiterin interfaceForwardingRulesManager- Returns:
- ForwardingRulesCommiter<Table>
-
getBundleFlowListener
public BundleMessagesCommiter<Flow> getBundleFlowListener()
Description copied from interface:ForwardingRulesManagerReturn BundleFlowListener instance.- Specified by:
getBundleFlowListenerin interfaceForwardingRulesManager- Returns:
- BundleFlowListener
-
getBundleGroupListener
public BundleMessagesCommiter<Group> getBundleGroupListener()
Description copied from interface:ForwardingRulesManagerReturn BundleGroupListener instance.- Specified by:
getBundleGroupListenerin interfaceForwardingRulesManager- Returns:
- BundleGroupListener
-
getArbitratorReconciliationManager
public ArbitratorReconcileService getArbitratorReconciliationManager()
Description copied from interface:ForwardingRulesManagerMethod exposes the ArbitratorReconciliationManager service used for performing Arbitrator Based Reconciliation.- Specified by:
getArbitratorReconciliationManagerin interfaceForwardingRulesManager- Returns:
- ArbitratorReconciliationManager
-
isReconciliationDisabled
public boolean isReconciliationDisabled()
Description copied from interface:ForwardingRulesManagerCheck if reconciliation is disabled by user.- Specified by:
isReconciliationDisabledin interfaceForwardingRulesManager- Returns:
- true if reconciliation is disabled, else false
-
isStaleMarkingEnabled
public boolean isStaleMarkingEnabled()
Description copied from interface:ForwardingRulesManagerCheck if stale marking is enabled for switch reconciliation.- Specified by:
isStaleMarkingEnabledin interfaceForwardingRulesManager- Returns:
- true if stale marking is enabled, else false
-
getReconciliationRetryCount
public int getReconciliationRetryCount()
Description copied from interface:ForwardingRulesManagerReturn number of reconciliation retry are allowed.- Specified by:
getReconciliationRetryCountin interfaceForwardingRulesManager- Returns:
- number of retries.
-
addRecoverableListener
public void addRecoverableListener(org.opendaylight.serviceutils.srm.RecoverableListener recoverableListener)
Description copied from interface:ForwardingRulesManagerMethod for register RecoverableListener.- Specified by:
addRecoverableListenerin interfaceForwardingRulesManager
-
getFlowNodeConnectorInventoryTranslatorImpl
public FlowNodeConnectorInventoryTranslatorImpl getFlowNodeConnectorInventoryTranslatorImpl()
Description copied from interface:ForwardingRulesManagerContent definition method and prevent code duplicity.- Specified by:
getFlowNodeConnectorInventoryTranslatorImplin interfaceForwardingRulesManager- Returns:
- FlowNodeConnectorInventoryTranslatorImpl
-
getNodeConfigurator
public NodeConfigurator getNodeConfigurator()
Description copied from interface:ForwardingRulesManagerReturn the NodeConfigurator which could be used to serialize jobs.- Specified by:
getNodeConfiguratorin interfaceForwardingRulesManager- Returns:
- modeConfigurator.
-
getNodeListener
public FlowNodeReconciliation getNodeListener()
-
isBundleBasedReconciliationEnabled
public boolean isBundleBasedReconciliationEnabled()
Description copied from interface:ForwardingRulesManagerholds the value read from the configuration file openflowplugin.cfg file.- Specified by:
isBundleBasedReconciliationEnabledin interfaceForwardingRulesManager- Returns:
- True if user enables bundle-based-reconciliation-enabled field in config file or False
-
isNodeOwner
public boolean isNodeOwner(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> ident)
Description copied from interface:ForwardingRulesManagerMethod checks if *this* instance of openflowplugin is owner of the given openflow node.- Specified by:
isNodeOwnerin interfaceForwardingRulesManager- Returns:
- True if owner, else false
-
setDeviceMastershipManager
public void setDeviceMastershipManager(DeviceMastershipManager deviceMastershipManager)
-
onPropertyChanged
public void onPropertyChanged(@NonNull String propertyName, @NonNull String propertyValue)
Description copied from interface:ConfigurationListenerMethod invoked on configuration property change.- Specified by:
onPropertyChangedin interfaceConfigurationListener- Parameters:
propertyName- the property namepropertyValue- the property value
-
-