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.sal.binding.api.RpcProviderRegistry;
18 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
19 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
22 * Plugin services provider
24 public interface OpenFlowPluginProvider extends AutoCloseable, BindingService {
27 * Method sets openflow java's connection providers.
29 void setSwitchConnectionProviders(Collection<SwitchConnectionProvider> switchConnectionProvider);
36 void setDataBroker(DataBroker dataBroker);
38 void setRpcProviderRegistry(RpcProviderRegistry rpcProviderRegistry);
40 void setNotificationProviderService(NotificationService notificationProviderService);
42 void setNotificationPublishService(NotificationPublishService notificationPublishService);
45 * Method initializes all DeviceManager, RpcManager and related contexts.
50 * This parameter indicates whether it is mandatory for switch to support OF1.3 features : table, flow, meter,group.
51 * If this is set to true and switch doesn't support these features its connection will be denied.
52 * @param switchFeaturesMandatory
54 void setSwitchFeaturesMandatory(final boolean switchFeaturesMandatory);
56 boolean isSwitchFeaturesMandatory();
58 boolean isStatisticsPollingOn();
60 void setStatisticsPollingOn(final boolean isStatisticsPollingOn);
63 * Backward compatibility feature - exposing rpc for statistics polling (result is provided in form of async notification)
65 * @param isStatisticsRpcEnabled
67 void setIsStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
69 void setBarrierCountLimit(int barrierCountLimit);
71 void setBarrierInterval(long barrierTimeoutLimit);
73 void setEchoReplyTimeout(long echoReplyTimeout);
75 void setFlowRemovedNotification(boolean isFlowRemovedNotificationOn);
77 void update(Map<String,Object> props);
79 void setClusteringSingletonServicesProvider(ClusterSingletonServiceProvider singletonServicesProvider);
81 void setSkipTableFeatures(boolean skipTableFeatures);
83 void setBasicTimerDelay(long basicTimerDelay);
85 void setMaximumTimerDelay(long maximumTimerDelay);