package org.opendaylight.openflowplugin.impl;
+import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
@Override
public void onSessionInitiated(final ProviderContext providerContextArg) {
+ final NotificationProviderService notificationService = providerContext.getSALService(NotificationProviderService.class);
+ final DataBroker dataBroker = providerContext.getSALService(DataBroker.class);
providerContext = providerContextArg;
connectionManager = new ConnectionManagerImpl();
- deviceManager = new DeviceManagerImpl(providerContext.getSALService(DataBroker.class));
+ deviceManager = new DeviceManagerImpl(dataBroker);
statisticsManager = new StatisticsManagerImpl();
rpcManager = new RpcManagerImpl(providerContext, rpcRequestsQuota);
connectionManager.setDeviceConnectedHandler(deviceManager);
deviceManager.setDeviceInitializationPhaseHandler(statisticsManager);
+ deviceManager.setNotificationService(notificationService);
statisticsManager.setDeviceInitializationPhaseHandler(rpcManager);
rpcManager.setDeviceInitializationPhaseHandler(deviceManager);
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortReason;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortReason;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.SettableFuture;
final KeyedInstanceIdentifier<NodeConnector, NodeConnectorKey> iiToNodeConnector =
provideIIToNodeConnector(portStatus.getPortNo(), portStatus.getVersion());
- if (portStatus.getReason().equals(PortReason.Add) ) {
+ if (portStatus.getReason().equals(PortReason.OFPPRADD) ) {
// because of ADD status node connector has to be created
createNodeConnectorInDS(iiToNodeConnector);
- } else if (portStatus.getReason().equals(PortReason.Delete) ) {
+ } else if (portStatus.getReason().equals(PortReason.OFPPRDELETE) ) {
//only put operation over datastore is available. therefore delete is
//inserting of empty FlowCapableNodeConnector
flowCapableNodeConnector = new FlowCapableNodeConnectorBuilder().build();
final TranslatorKey translatorKey = new TranslatorKey(packetInMessage.getVersion(), PacketReceivedTranslator.class.getName());
final MessageTranslator<PacketInMessage, PacketReceived> messageTranslator = translatorLibrary.lookupTranslator(translatorKey);
final PacketReceived packetReceived = messageTranslator.translate(packetInMessage, this, null);
- //TODO publish to MD-SAL
+ notificationService.publish(packetReceived);
}
@Override
final DeviceContextImpl deviceContext = new DeviceContextImpl(connectionContext, deviceState, dataBroker, hashedWheelTimer);
+ deviceContext.setNotificationService(notificationService);
deviceContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, deviceState.getNodeInstanceIdentifier(), new NodeBuilder().setId(deviceState.getNodeId()).build());
deviceContext.setTranslatorLibrary(translatorLibrary);