Merge changes from topic 'BUG-4117'
[openflowplugin.git] / openflowplugin-api / src / main / java / org / opendaylight / openflowplugin / api / openflow / OpenFlowPluginProvider.java
index 6e97fcc274a1e1fd53e086513c3f287b1e9ce28d..6173fb536f8e5285c827099106cb3d5dc1b9e4a9 100644 (file)
@@ -13,10 +13,9 @@ import org.opendaylight.controller.md.sal.binding.api.BindingService;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
 import org.opendaylight.controller.md.sal.binding.api.NotificationService;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.api.types.rev150327.OfpRole;
 
 /**
  * Created by Martin Bobak <mbobak@cisco.com> on 27.3.2015.
@@ -38,16 +37,40 @@ public interface OpenFlowPluginProvider extends AutoCloseable, BindingService {
     void setRpcProviderRegistry(RpcProviderRegistry rpcProviderRegistry);
 
     void setNotificationProviderService(NotificationService notificationProviderService);
+
     void setNotificationPublishService(NotificationPublishService notificationPublishService);
 
     /**
-     * Method sets role of this application in clustered environment.
+     * Method initializes all DeviceManager, RpcManager and related contexts.
      */
-    void setRole(OfpRole role);
+    void initialize();
 
     /**
-     * Method initializes all DeviceManager, RpcManager and related contexts.
+     * This parameter indicates whether it is mandatory for switch to support OF1.3 features : table, flow, meter,group.
+     * If this is set to true and switch doesn't support these features its connection will be denied.
+     * @param switchFeaturesMandatory
      */
-    void initialize();
+    void setSwitchFeaturesMandatory(final boolean switchFeaturesMandatory);
+
+    boolean isSwitchFeaturesMandatory();
+
+    boolean isStatisticsPollingOff();
+
+    void setIsStatisticsPollingOff(final boolean isStatisticsPollingOff);
+
+    void setEntityOwnershipService(EntityOwnershipService entityOwnershipService);
+
+
+    /**
+     * Backward compatibility feature - exposing rpc for statistics polling (result is provided in form of async notification)
+     *
+     * @param isStatisticsRpcEnabled
+     */
+    void setIsStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
+
+    void setBarrierCountLimit(int barrierCountLimit);
+
+    void setBarrierInterval(long barrierTimeoutLimit);
 
+    void setEchoReplyTimeout(long echoReplyTimeout);
 }