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.mdsal.binding.api.DataBroker db)
MDSALManager(org.opendaylight.mdsal.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 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)
void
addFlow(TypedWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity)
Adds the given flow.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)
Adds the given flow.void
addGroup(TypedWriteTransaction<Datastore.Configuration> tx, GroupEntity groupEntity)
Adds the given group using the given transaction.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)
Adds the given group using the given transaction.boolean
groupExists(org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId)
Check if OF group exist on DPN.com.google.common.util.concurrent.FluentFuture<java.lang.Void>
installFlow(FlowEntity flowEntity)
Adds a flow.com.google.common.util.concurrent.FluentFuture<java.lang.Void>
installFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, FlowEntity flowEntity)
Adds a flow.com.google.common.util.concurrent.FluentFuture<java.lang.Void>
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.void
removeBucket(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId, long bucketId)
void
removeFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity)
Removes the given flow.void
removeFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.String flowId, short tableId)
Removes the given flow.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)
Removes the given flow.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)
Removes the given flow.com.google.common.util.concurrent.FluentFuture<java.lang.Void>
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.FluentFuture<java.lang.Void>
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.void
removeGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, GroupEntity groupEntity)
Remove a group using the given transaction.void
removeGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId)
Remove a group using the given transaction.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)
Remove a group using the given transaction.void
removeGroup(GroupEntity groupEntity)
Remove a group.protected void
start()
protected void
stop()
void
syncInstallFlow(FlowEntity flowEntity)
Installs a flow.void
syncInstallFlow(FlowEntity flowEntity, long delayTime)
Install a flow.void
syncInstallGroup(GroupEntity groupEntity)
Installs a group.void
syncRemoveFlow(FlowEntity flowEntity)
Removes a flow.void
syncRemoveFlow(FlowEntity flowEntity, long delayTime)
API to remove the flow on Data Plane Node synchronously.void
syncRemoveGroup(GroupEntity groupEntity)
API to remove the Group on Data Plane Node synchronously.
-
-
-
Constructor Detail
-
MDSALManager
@Deprecated public MDSALManager(org.opendaylight.mdsal.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.mdsal.binding.api.DataBroker db)
-
-
Method Detail
-
start
protected void start()
- Specified by:
start
in classorg.opendaylight.infrautils.inject.AbstractLifecycle
-
stop
protected void stop()
- Specified by:
stop
in classorg.opendaylight.infrautils.inject.AbstractLifecycle
-
installFlow
public com.google.common.util.concurrent.FluentFuture<java.lang.Void> installFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManager
Adds a flow.- Specified by:
installFlow
in interfaceIMdsalApiManager
- Parameters:
flowEntity
- The flow entity.- Returns:
-
installFlow
public com.google.common.util.concurrent.FluentFuture<java.lang.Void> 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:IMdsalApiManager
Adds a flow.- Specified by:
installFlow
in interfaceIMdsalApiManager
- Parameters:
dpId
- The DPN identifier.flowEntity
- The flow entity.- Returns:
-
installFlow
public com.google.common.util.concurrent.FluentFuture<java.lang.Void> installFlow(org.opendaylight.yangtools.yang.common.Uint64 dpId, FlowEntity flowEntity)
Description copied from interface:IMdsalApiManager
Adds a flow.- Specified by:
installFlow
in interfaceIMdsalApiManager
- Parameters:
dpId
- The DPN identifier.flowEntity
- The flow entity.- Returns:
-
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:IMdsalApiManager
Removes a flow.- Specified by:
removeFlow
in interfaceIMdsalApiManager
- Parameters:
dpId
- The DPN identifier.tableId
- The table identifier.flowId
- The flow identifier.- Returns:
-
removeFlow
public com.google.common.util.concurrent.FluentFuture<java.lang.Void> 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:IMdsalApiManager
Removes a flow.- Specified by:
removeFlow
in interfaceIMdsalApiManager
-
removeFlow
public com.google.common.util.concurrent.FluentFuture<java.lang.Void> removeFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManager
Removes a flow.- Specified by:
removeFlow
in interfaceIMdsalApiManager
- Parameters:
flowEntity
- The flow entity.- Returns:
-
removeFlow
public void removeFlow(TypedReadWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManager
Removes the given flow.- Specified by:
removeFlow
in interfaceIMdsalApiManager
- Parameters:
tx
- The transaction to use.flowEntity
- The flow entity.- Throws:
java.util.concurrent.ExecutionException
- in case of a technical (!) error while readingjava.lang.InterruptedException
- in case of a technical (!) error while reading
-
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:IMdsalApiManager
Removes the given flow.- Specified by:
removeFlow
in interfaceIMdsalApiManager
- Parameters:
tx
- The transaction to use.dpId
- The DPN identifier.flow
- The flow.- Throws:
java.util.concurrent.ExecutionException
- in case of a technical (!) error while readingjava.lang.InterruptedException
- in case of a technical (!) error while reading
-
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:IMdsalApiManager
Removes the given flow.- Specified by:
removeFlow
in interfaceIMdsalApiManager
- Parameters:
tx
- The transaction to use.dpId
- The DPN identifier.flowId
- The flow identifier.tableId
- The table identifier.- Throws:
java.util.concurrent.ExecutionException
- in case of a technical (!) error while readingjava.lang.InterruptedException
- in case of a technical (!) error while reading
-
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:IMdsalApiManager
Removes the given flow.- Specified by:
removeFlow
in interfaceIMdsalApiManager
- Parameters:
tx
- The transaction to use.dpId
- The DPN identifier.flowKey
- The flow key.tableId
- The table identifier.- Throws:
java.util.concurrent.ExecutionException
- in case of a technical (!) error while readingjava.lang.InterruptedException
- in case of a technical (!) error while reading
-
removeGroup
public void removeGroup(GroupEntity groupEntity)
Description copied from interface:IMdsalApiManager
Remove a group.- Specified by:
removeGroup
in interfaceIMdsalApiManager
- Parameters:
groupEntity
- The group to remove.
-
removeGroup
public void removeGroup(TypedReadWriteTransaction<Datastore.Configuration> tx, GroupEntity groupEntity) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:IMdsalApiManager
Remove a group using the given transaction.- Specified by:
removeGroup
in interfaceIMdsalApiManager
- Parameters:
tx
- The transaction to use.groupEntity
- The group to remove.- Throws:
java.util.concurrent.ExecutionException
- in case of a technical (!) error while readingjava.lang.InterruptedException
- in case of a technical (!) error while reading
-
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:IMdsalApiManager
Remove a group using the given transaction.- Specified by:
removeGroup
in interfaceIMdsalApiManager
- Parameters:
tx
- The transaction to use.dpId
- The DPN identifier.group
- The group to remove.- Throws:
java.util.concurrent.ExecutionException
- in case of a technical (!) error while readingjava.lang.InterruptedException
- in case of a technical (!) error while reading
-
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:IMdsalApiManager
Remove a group using the given transaction.- Specified by:
removeGroup
in interfaceIMdsalApiManager
- Parameters:
tx
- The transaction to use.dpId
- The DPN identifier.groupId
- The group identifier of the group to remove.- Throws:
java.util.concurrent.ExecutionException
- in case of a technical (!) error while readingjava.lang.InterruptedException
- in case of a technical (!) error while reading
-
syncRemoveFlow
public void syncRemoveFlow(FlowEntity flowEntity, long delayTime)
Description copied from interface:IMdsalApiManager
API 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:
syncRemoveFlow
in interfaceIMdsalApiManager
- Parameters:
flowEntity
- The flow entity.delayTime
- The delay time.
-
syncRemoveFlow
public void syncRemoveFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManager
Removes a flow.- Specified by:
syncRemoveFlow
in interfaceIMdsalApiManager
- Parameters:
flowEntity
- The flow entity.
-
syncInstallFlow
public void syncInstallFlow(FlowEntity flowEntity, long delayTime)
Description copied from interface:IMdsalApiManager
Install a flow.- Specified by:
syncInstallFlow
in interfaceIMdsalApiManager
- Parameters:
flowEntity
- The flow entity.delayTime
- The delay time.
-
syncInstallFlow
public void syncInstallFlow(FlowEntity flowEntity)
Description copied from interface:IMdsalApiManager
Installs a flow.- Specified by:
syncInstallFlow
in interfaceIMdsalApiManager
- Parameters:
flowEntity
- The flow entity.
-
syncInstallGroup
public void syncInstallGroup(GroupEntity groupEntity)
Description copied from interface:IMdsalApiManager
Installs a group.- Specified by:
syncInstallGroup
in interfaceIMdsalApiManager
- Parameters:
groupEntity
- The group to add.
-
syncRemoveGroup
public void syncRemoveGroup(GroupEntity groupEntity)
Description copied from interface:IMdsalApiManager
API 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:
syncRemoveGroup
in interfaceIMdsalApiManager
- Parameters:
groupEntity
- The group to add.
-
addFlow
public void addFlow(TypedWriteTransaction<Datastore.Configuration> tx, FlowEntity flowEntity)
Description copied from interface:IMdsalApiManager
Adds the given flow.- Specified by:
addFlow
in 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:IMdsalApiManager
Adds the given flow.- Specified by:
addFlow
in 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:IMdsalApiManager
Adds the given group using the given transaction.- Specified by:
addGroup
in 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:IMdsalApiManager
Adds the given group using the given transaction.- Specified by:
addGroup
in 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:
addBucket
in interfaceIMdsalApiManager
- Throws:
java.util.concurrent.ExecutionException
java.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:
removeBucket
in interfaceIMdsalApiManager
- Throws:
java.util.concurrent.ExecutionException
java.lang.InterruptedException
-
groupExists
public boolean groupExists(org.opendaylight.yangtools.yang.common.Uint64 dpId, long groupId)
Description copied from interface:IMdsalApiManager
Check if OF group exist on DPN.- Specified by:
groupExists
in interfaceIMdsalApiManager
- Parameters:
dpId
- dpn idgroupId
- OF group id- Returns:
- true if group exists and false otherwise
-
-