diff options
Diffstat (limited to 'framework/src/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java')
-rw-r--r-- | framework/src/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/framework/src/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java b/framework/src/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java deleted file mode 100644 index ace888d1..00000000 --- a/framework/src/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.sdnip; - -import static org.slf4j.LoggerFactory.getLogger; - -import java.util.Objects; - -import org.apache.felix.scr.annotations.Activate; -import org.apache.felix.scr.annotations.Component; -import org.apache.felix.scr.annotations.Deactivate; -import org.apache.felix.scr.annotations.Reference; -import org.apache.felix.scr.annotations.ReferenceCardinality; -import org.apache.felix.scr.annotations.Service; -import org.onosproject.app.ApplicationService; -import org.onosproject.cluster.ClusterService; -import org.onosproject.cluster.ControllerNode; -import org.onosproject.cluster.LeadershipEvent; -import org.onosproject.cluster.LeadershipEventListener; -import org.onosproject.cluster.LeadershipService; -import org.onosproject.core.ApplicationId; -import org.onosproject.core.CoreService; -import org.onosproject.incubator.net.intf.InterfaceService; -import org.onosproject.net.config.NetworkConfigService; -import org.onosproject.net.host.HostService; -import org.onosproject.net.intent.IntentService; -import org.onosproject.routing.IntentSynchronizationService; -import org.onosproject.routing.RoutingService; -import org.onosproject.routing.SdnIpService; -import org.onosproject.routing.config.RoutingConfigurationService; -import org.slf4j.Logger; - -/** - * Component for the SDN-IP peering application. - */ -@Component(immediate = true) -@Service -public class SdnIp implements SdnIpService { - - private static final String SDN_IP_APP = "org.onosproject.sdnip"; - private final Logger log = getLogger(getClass()); - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected CoreService coreService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected IntentService intentService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected ApplicationService applicationService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected HostService hostService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected ClusterService clusterService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected LeadershipService leadershipService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected RoutingService routingService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected RoutingConfigurationService config; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected NetworkConfigService networkConfigService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected InterfaceService interfaceService; - - private IntentSynchronizer intentSynchronizer; - private PeerConnectivityManager peerConnectivity; - private SdnIpFib fib; - - private LeadershipEventListener leadershipEventListener = - new InnerLeadershipEventListener(); - private ApplicationId appId; - private ControllerNode localControllerNode; - - @Activate - protected void activate() { - log.info("SDN-IP started"); - - appId = coreService.registerApplication(SDN_IP_APP); - - localControllerNode = clusterService.getLocalNode(); - - intentSynchronizer = new IntentSynchronizer(appId, intentService); - intentSynchronizer.start(); - - peerConnectivity = new PeerConnectivityManager(appId, - intentSynchronizer, - networkConfigService, - coreService.getAppId(RoutingService.ROUTER_APP_ID), - interfaceService); - peerConnectivity.start(); - - fib = new SdnIpFib(appId, interfaceService, intentSynchronizer); - - routingService.addFibListener(fib); - routingService.start(); - - leadershipService.addListener(leadershipEventListener); - leadershipService.runForLeadership(appId.name()); - - applicationService.registerDeactivateHook(appId, - intentSynchronizer::removeIntents); - - } - - @Deactivate - protected void deactivate() { - routingService.stop(); - peerConnectivity.stop(); - intentSynchronizer.stop(); - - leadershipService.withdraw(appId.name()); - leadershipService.removeListener(leadershipEventListener); - - log.info("SDN-IP Stopped"); - } - - @Override - public void modifyPrimary(boolean isPrimary) { - intentSynchronizer.leaderChanged(isPrimary); - } - - @Override - public IntentSynchronizationService getIntentSynchronizationService() { - return intentSynchronizer; - } - - /** - * Converts DPIDs of the form xx:xx:xx:xx:xx:xx:xx to OpenFlow provider - * device URIs. - * - * @param dpid the DPID string to convert - * @return the URI string for this device - */ - static String dpidToUri(String dpid) { - return "of:" + dpid.replace(":", ""); - } - - /** - * A listener for Leadership Events. - */ - private class InnerLeadershipEventListener - implements LeadershipEventListener { - - @Override - public void event(LeadershipEvent event) { - log.debug("Leadership Event: time = {} type = {} event = {}", - event.time(), event.type(), event); - - if (!event.subject().topic().equals(appId.name())) { - return; // Not our topic: ignore - } - if (!Objects.equals(event.subject().leader(), localControllerNode.id())) { - return; // The event is not about this instance: ignore - } - - switch (event.type()) { - case LEADER_ELECTED: - log.info("SDN-IP Leader Elected"); - intentSynchronizer.leaderChanged(true); - break; - case LEADER_BOOTED: - log.info("SDN-IP Leader Lost Election"); - intentSynchronizer.leaderChanged(false); - break; - case LEADER_REELECTED: - break; - default: - break; - } - } - } -} |