2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.openflowplugin.api.openflow;
11 import java.util.Collection;
13 import org.opendaylight.controller.md.sal.binding.api.BindingService;
14 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
15 import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
16 import org.opendaylight.controller.md.sal.binding.api.NotificationService;
17 import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
18 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
19 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
20 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
23 * Plugin services provider
25 public interface OpenFlowPluginProvider extends AutoCloseable, BindingService {
28 * Method sets openflow java's connection providers.
30 void setSwitchConnectionProviders(Collection<SwitchConnectionProvider> switchConnectionProvider);
37 void setDataBroker(DataBroker dataBroker);
39 void setRpcProviderRegistry(RpcProviderRegistry rpcProviderRegistry);
41 void setNotificationProviderService(NotificationService notificationProviderService);
43 void setNotificationPublishService(NotificationPublishService notificationPublishService);
46 * Method initializes all DeviceManager, RpcManager and related contexts.
51 * This parameter indicates whether it is mandatory for switch to support OF1.3 features : table, flow, meter,group.
52 * If this is set to true and switch doesn't support these features its connection will be denied.
53 * @param switchFeaturesMandatory
55 void setSwitchFeaturesMandatory(final boolean switchFeaturesMandatory);
57 boolean isSwitchFeaturesMandatory();
59 boolean isStatisticsPollingOn();
61 void setIsStatisticsPollingOn(final boolean isStatisticsPollingOn);
64 * Backward compatibility feature - exposing rpc for statistics polling (result is provided in form of async notification)
66 * @param isStatisticsRpcEnabled
68 void setIsStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
70 void setBarrierCountLimit(int barrierCountLimit);
72 void setBarrierInterval(long barrierTimeoutLimit);
74 void setEchoReplyTimeout(long echoReplyTimeout);
76 void setNotificationFlowRemovedOff(boolean isNotificationFlowRemovedOff);
78 void update(Map<String,Object> props);
80 void setClusteringSingletonServicesProvider(ClusterSingletonServiceProvider singletonServicesProvider);
82 void setSkipTableFeatures(boolean skipTableFeatures);