Class MDSALManager
- java.lang.Object
-
- org.opendaylight.infrautils.inject.AbstractLifecycle
-
- org.opendaylight.genius.mdsalutil.internal.MDSALManager
-
- All Implemented Interfaces:
IMdsalApiManager,org.opendaylight.infrautils.inject.Lifecycle
@Singleton public class MDSALManager extends org.opendaylight.infrautils.inject.AbstractLifecycle implements IMdsalApiManager
-
-
Constructor Summary
Constructors Constructor Description MDSALManager(org.opendaylight.controller.md.sal.binding.api.DataBroker db)MDSALManager(org.opendaylight.controller.md.sal.binding.api.DataBroker db, org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService pktProcService)Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBucket(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId, org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket bucket)voidaddFlow(TypedWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity)Adds the given flow.voidaddFlow(TypedWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flow)Adds the given flow.voidaddGroup(TypedWriteTransaction<Datastore.Configuration> tx, GroupEntity groupEntity)Adds the given group using the given transaction.voidaddGroup(TypedWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group group)Adds the given group using the given transaction.booleangroupExists(org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId)Check if OF group exist on DPN.com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException>installFlow(FlowEntity flowEntity)Adds a flow.com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException>installFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, FlowEntity flowEntity)Adds a flow.com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException>installFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flowEntity)Adds a flow.voidremoveBucket(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId, long bucketId)voidremoveFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity)Removes the given flow.voidremoveFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.String flowId, short tableId)Removes the given flow.voidremoveFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flow)Removes the given flow.voidremoveFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey flowKey, short tableId)Removes the given flow.com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException>removeFlow(FlowEntity flowEntity)Removes a flow.com.google.common.util.concurrent.ListenableFuture<java.lang.Void>removeFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, short tableId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId flowId)Removes a flow.com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException>removeFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flowEntity)Removes a flow.voidremoveGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, GroupEntity groupEntity)Remove a group using the given transaction.voidremoveGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId)Remove a group using the given transaction.voidremoveGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group group)Remove a group using the given transaction.voidremoveGroup(GroupEntity groupEntity)Remove a group.protected voidstart()protected voidstop()voidsyncInstallFlow(FlowEntity flowEntity)Installs a flow.voidsyncInstallFlow(FlowEntity flowEntity, long delayTime)Install a flow.voidsyncInstallGroup(GroupEntity groupEntity)Installs a group.voidsyncRemoveFlow(FlowEntity flowEntity)Removes a flow.voidsyncRemoveFlow(FlowEntity flowEntity, long delayTime)API to remove the flow on Data Plane Node synchronously.voidsyncRemoveGroup(GroupEntity groupEntity)API to remove the Group on Data Plane Node synchronously.
-
-
-
Constructor Detail
-
MDSALManager
@Deprecated public MDSALManager(org.opendaylight.controller.md.sal.binding.api.DataBroker db, org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService pktProcService)Deprecated.Writes the flows and Groups to the MD SAL DataStore which will be sent to the openflowplugin for installing flows/groups on the switch. Other modules of VPN service that wants to install flows / groups on the switch uses this utility- Parameters:
db- dataBroker referencepktProcService- PacketProcessingService for sending the packet outs
-
MDSALManager
@Inject public MDSALManager(org.opendaylight.controller.md.sal.binding.api.DataBroker db)
-
-
Method Detail
-
start
protected void start()
- Specified by:
startin classorg.opendaylight.infrautils.inject.AbstractLifecycle
-
stop
protected void stop()
- Specified by:
stopin classorg.opendaylight.infrautils.inject.AbstractLifecycle
-
installFlow
public com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException> installFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManagerAdds a flow.- Specified by:
installFlowin interfaceIMdsalApiManager
-
installFlow
public com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException> installFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flowEntity)Description copied from interface:IMdsalApiManagerAdds a flow.- Specified by:
installFlowin interfaceIMdsalApiManager
-
installFlow
public com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException> installFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, FlowEntity flowEntity)Description copied from interface:IMdsalApiManagerAdds a flow.- Specified by:
installFlowin interfaceIMdsalApiManager
-
removeFlow
public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> removeFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, short tableId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId flowId)Description copied from interface:IMdsalApiManagerRemoves a flow.- Specified by:
removeFlowin interfaceIMdsalApiManager
-
removeFlow
public com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException> removeFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flowEntity)Description copied from interface:IMdsalApiManagerRemoves a flow.- Specified by:
removeFlowin interfaceIMdsalApiManager
-
removeFlow
public com.google.common.util.concurrent.CheckedFuture<java.lang.Void,org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException> removeFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManagerRemoves a flow.- Specified by:
removeFlowin interfaceIMdsalApiManager
-
removeFlow
public void removeFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManagerRemoves the given flow.- Specified by:
removeFlowin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.flowEntity- The flow entity.- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
removeFlow
public void removeFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flow) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManagerRemoves the given flow.- Specified by:
removeFlowin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.dpId- The DPN identifier.flow- The flow.- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
removeFlow
public void removeFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.String flowId, short tableId) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManagerRemoves the given flow.- Specified by:
removeFlowin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.dpId- The DPN identifier.flowId- The flow identifier.tableId- The table identifier.- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
removeFlow
public void removeFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey flowKey, short tableId) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManagerRemoves the given flow.- Specified by:
removeFlowin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.dpId- The DPN identifier.flowKey- The flow key.tableId- The table identifier.- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
removeGroup
public void removeGroup(GroupEntity groupEntity)
Description copied from interface:IMdsalApiManagerRemove a group.- Specified by:
removeGroupin interfaceIMdsalApiManager
-
removeGroup
public void removeGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, GroupEntity groupEntity) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManagerRemove a group using the given transaction.- Specified by:
removeGroupin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.groupEntity- The group to remove.- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
removeGroup
public void removeGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group group) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManagerRemove a group using the given transaction.- Specified by:
removeGroupin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.dpId- The DPN identifier.group- The group to remove.- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
removeGroup
public void removeGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManagerRemove a group using the given transaction.- Specified by:
removeGroupin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.dpId- The DPN identifier.groupId- The group identifier of the group to remove.- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
syncRemoveFlow
public void syncRemoveFlow(FlowEntity flowEntity, long delayTime)
Description copied from interface:IMdsalApiManagerAPI to remove the flow on Data Plane Node synchronously. It internally waits for Flow Change Notification to confirm flow delete request is being sent with-in delayTime.- Specified by:
syncRemoveFlowin interfaceIMdsalApiManager
-
syncRemoveFlow
public void syncRemoveFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManagerRemoves a flow.- Specified by:
syncRemoveFlowin interfaceIMdsalApiManager
-
syncInstallFlow
public void syncInstallFlow(FlowEntity flowEntity, long delayTime)
Description copied from interface:IMdsalApiManagerInstall a flow.- Specified by:
syncInstallFlowin interfaceIMdsalApiManager
-
syncInstallFlow
public void syncInstallFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManagerInstalls a flow.- Specified by:
syncInstallFlowin interfaceIMdsalApiManager
-
syncInstallGroup
public void syncInstallGroup(GroupEntity groupEntity)
Description copied from interface:IMdsalApiManagerInstalls a group.- Specified by:
syncInstallGroupin interfaceIMdsalApiManager
-
syncRemoveGroup
public void syncRemoveGroup(GroupEntity groupEntity)
Description copied from interface:IMdsalApiManagerAPI to remove the Group on Data Plane Node synchronously. It internally waits for Group Change Notification to confirm group delete request is being sent.- Specified by:
syncRemoveGroupin interfaceIMdsalApiManager
-
addFlow
public void addFlow(TypedWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity)
Description copied from interface:IMdsalApiManagerAdds the given flow.- Specified by:
addFlowin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.flowEntity- The flow entity.
-
addFlow
public void addFlow(TypedWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow flow)
Description copied from interface:IMdsalApiManagerAdds the given flow.- Specified by:
addFlowin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.dpId- The DPN identifier.flow- The flow.
-
addGroup
public void addGroup(TypedWriteTransaction<Datastore.Configuration> tx, GroupEntity groupEntity)
Description copied from interface:IMdsalApiManagerAdds the given group using the given transaction.- Specified by:
addGroupin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.groupEntity- The group to add.
-
addGroup
public void addGroup(TypedWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group group)
Description copied from interface:IMdsalApiManagerAdds the given group using the given transaction.- Specified by:
addGroupin interfaceIMdsalApiManager- Parameters:
tx- The transaction to use.dpId- The DPN identifier.group- The group to add.
-
addBucket
public void addBucket(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId, org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket bucket) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Specified by:
addBucketin interfaceIMdsalApiManager- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
removeBucket
public void removeBucket(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId, long bucketId) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Specified by:
removeBucketin interfaceIMdsalApiManager- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
groupExists
public boolean groupExists(org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId)Description copied from interface:IMdsalApiManagerCheck if OF group exist on DPN.- Specified by:
groupExistsin interfaceIMdsalApiManager- Parameters:
dpId- dpn idgroupId- OF group id- Returns:
- true if group exists and false otherwise
-
-