Cluster aware forwarding rule manager
[openflowplugin.git] / applications / forwardingrules-manager / src / main / java / org / opendaylight / openflowplugin / applications / frm / ForwardingRulesManager.java
index 1de3a1b37d8b9a17a804f1550bd1f47d0ecce723..81cc3f5b60da96684af320982a5d39ae159b0227 100644 (file)
@@ -8,10 +8,12 @@
 
 package org.opendaylight.openflowplugin.applications.frm;
 
+import org.opendaylight.openflowplugin.applications.frm.impl.ForwardingRulesManagerConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;
+
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService;
@@ -46,6 +48,15 @@ public interface ForwardingRulesManager extends AutoCloseable {
      */
     public boolean isNodeActive(InstanceIdentifier<FlowCapableNode> ident);
 
+    /**
+     * Method returns information :
+     * "is Node with send InstanceIdentifier present in operational data store"?
+     *
+     * @param ident - the key of the node
+     * @return boolean - true if device is present in operational data store
+     */
+    public boolean checkNodeInOperationalDataStore(InstanceIdentifier<FlowCapableNode> ident);
+
     /**
      * Method add new {@link FlowCapableNode} to active Node Holder.
      * ActiveNodeHolder prevent unnecessary Operational/DS read for identify
@@ -129,12 +140,19 @@ public interface ForwardingRulesManager extends AutoCloseable {
      * Content definition method and prevent code duplicity
      * @return ForwardingRulesCommiter&lt;Table&gt;
      */
-    public ForwardingRulesCommiter<Table> getTableCommiter();
+    public ForwardingRulesCommiter<TableFeatures> getTableFeaturesCommiter();
 
     /**
      * Content definition method
      * @return FlowNodeReconciliation
      */
     public FlowNodeReconciliation getFlowNodeReconciliation();
+
+    /**
+     * Returns the config-subsystem/fallback configuration of FRM
+     * @return ForwardingRulesManagerConfig
+     */
+    public ForwardingRulesManagerConfig getConfiguration();
+
 }