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);
45 void setClusteringSingletonServicesProvider(ClusterSingletonServiceProvider singletonServicesProvider);
47 void setEntityOwnershipServiceProvider(EntityOwnershipService entityOwnershipService);
49 * Method initializes all DeviceManager, RpcManager and related contexts.
54 * This parameter indicates whether it is mandatory for switch to support OF1.3 features : table, flow, meter,group.
55 * If this is set to true and switch doesn't support these features its connection will be denied.
56 * @param switchFeaturesMandatory
58 void setSwitchFeaturesMandatory(final boolean switchFeaturesMandatory);
60 boolean isSwitchFeaturesMandatory();
62 boolean isStatisticsPollingOn();
64 void setStatisticsPollingOn(final boolean isStatisticsPollingOn);
67 * Backward compatibility feature - exposing rpc for statistics polling (result is provided in form of async notification)
69 * @param isStatisticsRpcEnabled
71 void setIsStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
73 void setBarrierCountLimit(int barrierCountLimit);
75 void setBarrierInterval(long barrierTimeoutLimit);
77 void setEchoReplyTimeout(long echoReplyTimeout);
79 void setFlowRemovedNotification(boolean isFlowRemovedNotificationOn);
81 void update(Map<String,Object> props);
83 void setSkipTableFeatures(boolean skipTableFeatures);
85 void setBasicTimerDelay(long basicTimerDelay);
87 void setMaximumTimerDelay(long maximumTimerDelay);