Encapsulate OpenFlowPlugin configuration
[openflowplugin.git] / applications / forwardingrules-manager / src / main / java / org / opendaylight / openflowplugin / applications / frm / ForwardingRulesManager.java
index bef847c025e96e7ba4bbc6b5a1861d586ae9be9f..2bfd84037f68d551544128968f062b404525d74a 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.openflowplugin.applications.frm;
 
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationListener;
 import org.opendaylight.openflowplugin.applications.frm.impl.FlowNodeConnectorInventoryTranslatorImpl;
 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;
@@ -17,7 +18,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalF
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -29,7 +29,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
  *
  * @author <a href="mailto:vdemcak@cisco.com">Vaclav Demcak</a>
  */
-public interface ForwardingRulesManager extends AutoCloseable {
+public interface ForwardingRulesManager extends ConfigurationListener, AutoCloseable {
 
     void start();
 
@@ -119,10 +119,22 @@ public interface ForwardingRulesManager extends AutoCloseable {
     ForwardingRulesCommiter<TableFeatures> getTableFeaturesCommiter();
 
     /**
-     * Returns the config-subsystem/fallback configuration of FRM
-     * @return ForwardingRulesManagerConfig
+     * Check if reconciliation is disabled by user.
+     * @return true if reconciliation is disabled, else false
      */
-    ForwardingRulesManagerConfig getConfiguration();
+    boolean isReconciliationDisabled();
+
+    /**
+     * Check if stale marking is enabled for switch reconciliation.
+     * @return true if stale marking is enabled, else false
+     */
+    boolean isStaleMarkingEnabled();
+
+    /**
+     * Return number of reconciliation retry are allowed.
+     * @return number of retries.
+     */
+    int getReconciliationRetryCount();
 
     /**
      * Method checks if *this* instance of openflowplugin is owner of