Remove deprecated optical apps
Change-Id: Ia79855b97f1daef7f325bb9697a040b729e8a794
diff --git a/apps/optical/BUCK b/apps/optical/BUCK
deleted file mode 100644
index c70cbb8..0000000
--- a/apps/optical/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
- '//lib:CORE_DEPS',
- '//apps/optical-model:onos-apps-optical-model',
-]
-
-osgi_jar_with_tests (
- deps = COMPILE_DEPS,
-)
-
-onos_app (
- title = 'Packet/Optical Use-Case App',
- category = 'Traffic Steering',
- url = 'http://onosproject.org',
- description = 'Packet/Optical use-case application.',
- required_apps = [ 'org.onosproject.optical-model' ],
-)
diff --git a/apps/optical/pom.xml b/apps/optical/pom.xml
deleted file mode 100644
index 43b96e9..0000000
--- a/apps/optical/pom.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Copyright 2014-present 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.
- -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.onosproject</groupId>
- <artifactId>onos-apps</artifactId>
- <version>1.11.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>onos-app-optical</artifactId>
- <packaging>bundle</packaging>
-
- <description>Packet/Optical use-case application</description>
-
- <properties>
- <onos.app.name>org.onosproject.optical</onos.app.name>
- <onos.app.title>Packet/Optical Use-Case App</onos.app.title>
- <onos.app.category>Traffic Steering</onos.app.category>
- <onos.app.url>http://onosproject.org</onos.app.url>
- <onos.app.readme>Packet/Optical use-case application.</onos.app.readme>
- <onos.app.requires>
- org.onosproject.optical-model
- </onos.app.requires>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.onosproject</groupId>
- <artifactId>onos-optical-model</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onosproject</groupId>
- <artifactId>onos-cli</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </dependency>
- <dependency>
- <groupId>org.onosproject</groupId>
- <artifactId>onos-core-serializers</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- </dependencies>
-
-</project>
diff --git a/apps/optical/src/main/java/org/onosproject/optical/OpticalLinkProvider.java b/apps/optical/src/main/java/org/onosproject/optical/OpticalLinkProvider.java
deleted file mode 100644
index c042abb..0000000
--- a/apps/optical/src/main/java/org/onosproject/optical/OpticalLinkProvider.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright 2014-present 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.optical;
-
-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.onosproject.net.ConnectPoint;
-import org.onosproject.net.Device;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.Link;
-import org.onosproject.net.Port;
-import org.onosproject.net.device.DeviceEvent;
-import org.onosproject.net.device.DeviceListener;
-import org.onosproject.net.device.DeviceService;
-import org.onosproject.net.link.DefaultLinkDescription;
-import org.onosproject.net.link.LinkDescription;
-import org.onosproject.net.link.LinkEvent;
-import org.onosproject.net.link.LinkListener;
-import org.onosproject.net.link.LinkProvider;
-import org.onosproject.net.link.LinkProviderRegistry;
-import org.onosproject.net.link.LinkProviderService;
-import org.onosproject.net.link.LinkService;
-import org.onosproject.net.provider.AbstractProvider;
-import org.onosproject.net.provider.ProviderId;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.onosproject.net.Link.Type.OPTICAL;
-
-/**
- * Ancillary provider to activate/deactivate optical links as their respective
- * devices go online or offline.
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-@Component(immediate = true)
-public class OpticalLinkProvider extends AbstractProvider implements LinkProvider {
-
- private static final Logger log = LoggerFactory.getLogger(OpticalLinkProvider.class);
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected LinkProviderRegistry registry;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected DeviceService deviceService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected LinkService linkService;
-
- private LinkProviderService providerService;
- private DeviceListener deviceListener = new InternalDeviceListener();
- private LinkListener linkListener = new InternalLinkListener();
-
- public OpticalLinkProvider() {
- super(new ProviderId("optical", "org.onosproject.optical"));
- }
-
- @Activate
- protected void activate() {
- deviceService.addListener(deviceListener);
- linkService.addListener(linkListener);
- providerService = registry.register(this);
- log.info("Started");
- }
-
- @Deactivate
- protected void deactivate() {
- deviceService.removeListener(deviceListener);
- linkService.removeListener(linkListener);
- registry.unregister(this);
- log.info("Stopped");
- }
-
- //Listens to device events and processes their links.
- private class InternalDeviceListener implements DeviceListener {
- @Override
- public void event(DeviceEvent event) {
- DeviceEvent.Type type = event.type();
- Device device = event.subject();
- if (type == DeviceEvent.Type.DEVICE_AVAILABILITY_CHANGED ||
- type == DeviceEvent.Type.DEVICE_ADDED ||
- type == DeviceEvent.Type.DEVICE_UPDATED) {
- processDeviceLinks(device);
- } else if (type == DeviceEvent.Type.PORT_UPDATED) {
- processPortLinks(device, event.port());
- }
- }
- }
-
- //Listens to link events and processes the link additions.
- private class InternalLinkListener implements LinkListener {
- @Override
- public void event(LinkEvent event) {
- if (event.type() == LinkEvent.Type.LINK_ADDED) {
- Link link = event.subject();
- if ("cfg".equals(link.providerId().scheme())) {
- processLink(event.subject());
- }
- }
- }
- }
-
- private void processDeviceLinks(Device device) {
- for (Link link : linkService.getDeviceLinks(device.id())) {
- if (link.isExpected() && link.type() == OPTICAL) {
- processLink(link);
- }
- }
- }
-
- private void processPortLinks(Device device, Port port) {
- ConnectPoint connectPoint = new ConnectPoint(device.id(), port.number());
- for (Link link : linkService.getLinks(connectPoint)) {
- if (link.isExpected() && link.type() == OPTICAL) {
- processLink(link);
- }
- }
- }
-
- private void processLink(Link link) {
- DeviceId srcId = link.src().deviceId();
- DeviceId dstId = link.dst().deviceId();
- Port srcPort = deviceService.getPort(srcId, link.src().port());
- Port dstPort = deviceService.getPort(dstId, link.dst().port());
-
- if (srcPort == null || dstPort == null) {
- return; //FIXME remove this in favor of below TODO
- }
-
- boolean active = deviceService.isAvailable(srcId) &&
- deviceService.isAvailable(dstId) &&
- // TODO: should update be queued if src or dstPort is null?
- //srcPort != null && dstPort != null &&
- srcPort.isEnabled() && dstPort.isEnabled();
-
- LinkDescription desc = new DefaultLinkDescription(link.src(), link.dst(), OPTICAL);
- if (active) {
- providerService.linkDetected(desc);
- } else {
- providerService.linkVanished(desc);
- }
- }
-}
diff --git a/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java b/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
deleted file mode 100644
index e2674b6..0000000
--- a/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright 2014-present 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.optical;
-
-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.onosproject.cluster.ClusterService;
-import org.onosproject.cluster.NodeId;
-import org.onosproject.core.ApplicationId;
-import org.onosproject.core.CoreService;
-import org.onosproject.mastership.MastershipService;
-import org.onosproject.net.CltSignalType;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.Device;
-import org.onosproject.net.Host;
-import org.onosproject.net.Link;
-import org.onosproject.net.OduSignalType;
-import org.onosproject.net.Path;
-import org.onosproject.net.Port;
-import org.onosproject.net.device.DeviceService;
-import org.onosproject.net.host.HostService;
-import org.onosproject.net.intent.HostToHostIntent;
-import org.onosproject.net.intent.Intent;
-import org.onosproject.net.intent.IntentEvent;
-import org.onosproject.net.intent.IntentListener;
-import org.onosproject.net.intent.IntentService;
-import org.onosproject.net.intent.IntentState;
-import org.onosproject.net.intent.OpticalCircuitIntent;
-import org.onosproject.net.intent.OpticalConnectivityIntent;
-import org.onosproject.net.intent.PointToPointIntent;
-import org.onosproject.net.optical.OchPort;
-import org.onosproject.net.optical.OduCltPort;
-import org.onosproject.net.topology.LinkWeight;
-import org.onosproject.net.topology.PathService;
-import org.onosproject.net.topology.TopologyEdge;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView;
-
-/**
- * OpticalPathProvisioner listens for event notifications from the Intent F/W.
- * It generates one or more opticalConnectivityIntent(s) and submits (or withdraws) to Intent F/W
- * for adding/releasing capacity at the packet layer.
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-
-@Deprecated
-@Component(immediate = true)
-public class OpticalPathProvisioner {
-
- protected static final Logger log = LoggerFactory
- .getLogger(OpticalPathProvisioner.class);
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- private IntentService intentService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected PathService pathService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected CoreService coreService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected HostService hostService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected MastershipService mastershipService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected ClusterService clusterService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected DeviceService deviceService;
-
- private ApplicationId appId;
-
- private final InternalOpticalPathProvisioner pathProvisioner = new InternalOpticalPathProvisioner();
-
- @Activate
- protected void activate() {
- deviceService = opticalView(deviceService);
- intentService.addListener(pathProvisioner);
- appId = coreService.registerApplication("org.onosproject.optical");
- initOpticalPorts();
- log.info("Started");
- }
-
- @Deactivate
- protected void deactivate() {
- intentService.removeListener(pathProvisioner);
- log.info("Stopped");
- }
-
- /**
- * Initialize availability of optical ports.
- */
- private void initOpticalPorts() {
- // TODO: check for existing optical intents
- return;
- }
-
- public class InternalOpticalPathProvisioner implements IntentListener {
- @Override
- public void event(IntentEvent event) {
- switch (event.type()) {
- case INSTALL_REQ:
- break;
- case INSTALLED:
- break;
- case FAILED:
- log.info("Intent {} failed, calling optical path provisioning app.", event.subject());
- setupLightpath(event.subject());
- break;
- default:
- break;
- }
- }
-
- private void setupLightpath(Intent intent) {
- checkNotNull(intent);
-
- // TODO change the coordination approach between packet intents and optical intents
- // Low speed LLDP may cause multiple calls which are not expected
-
- if (intentService.getIntentState(intent.key()) != IntentState.FAILED) {
- return;
- }
-
- // Get source and destination based on intent type
- ConnectPoint src;
- ConnectPoint dst;
- if (intent instanceof HostToHostIntent) {
- HostToHostIntent hostToHostIntent = (HostToHostIntent) intent;
-
- Host one = hostService.getHost(hostToHostIntent.one());
- Host two = hostService.getHost(hostToHostIntent.two());
-
- checkNotNull(one);
- checkNotNull(two);
-
- src = one.location();
- dst = two.location();
- } else if (intent instanceof PointToPointIntent) {
- PointToPointIntent p2pIntent = (PointToPointIntent) intent;
-
- src = p2pIntent.ingressPoint();
- dst = p2pIntent.egressPoint();
- } else {
- return;
- }
-
- if (src == null || dst == null) {
- return;
- }
-
- // Ignore if we're not the master for the intent's origin device
- NodeId localNode = clusterService.getLocalNode().id();
- NodeId sourceMaster = mastershipService.getMasterFor(src.deviceId());
- if (!localNode.equals(sourceMaster)) {
- return;
- }
-
- // Generate optical connectivity intents
- List<Intent> intents = getOpticalIntents(src, dst);
-
- // Submit the intents
- for (Intent i : intents) {
- intentService.submit(i);
- log.debug("Submitted an intent: {}", i);
- }
- }
-
- /**
- * Returns list of cross connection points of missing optical path sections.
- *
- * Scans the given multi-layer path and looks for sections that use cross connect links.
- * The ingress and egress points in the optical layer are returned in a list.
- *
- * @param path the multi-layer path
- * @return list of cross connection points on the optical layer
- */
- private List<ConnectPoint> getCrossConnectPoints(Path path) {
- boolean scanning = false;
- List<ConnectPoint> connectPoints = new LinkedList<>();
-
- for (Link link : path.links()) {
- if (!isCrossConnectLink(link)) {
- continue;
- }
-
- if (scanning) {
- connectPoints.add(checkNotNull(link.src()));
- scanning = false;
- } else {
- connectPoints.add(checkNotNull(link.dst()));
- scanning = true;
- }
- }
-
- return connectPoints;
- }
-
- /**
- * Checks if cross connect points are of same type.
- *
- * @param crossConnectPoints list of cross connection points
- * @return true if cross connect point pairs are of same type, false otherwise
- */
- private boolean checkCrossConnectPoints(List<ConnectPoint> crossConnectPoints) {
- checkArgument(crossConnectPoints.size() % 2 == 0);
-
- Iterator<ConnectPoint> itr = crossConnectPoints.iterator();
-
- while (itr.hasNext()) {
- // checkArgument at start ensures we'll always have pairs of connect points
- ConnectPoint src = itr.next();
- ConnectPoint dst = itr.next();
-
- Device.Type srcType = deviceService.getDevice(src.deviceId()).type();
- Device.Type dstType = deviceService.getDevice(dst.deviceId()).type();
-
- // Only support connections between identical port types
- if (srcType != dstType) {
- log.warn("Unsupported mix of cross connect points");
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Scans the list of cross connection points and returns a list of optical connectivity intents.
- *
- * @param crossConnectPoints list of cross connection points
- * @return list of optical connectivity intents
- */
- private List<Intent> getIntents(List<ConnectPoint> crossConnectPoints) {
- checkArgument(crossConnectPoints.size() % 2 == 0);
-
- List<Intent> intents = new LinkedList<>();
- Iterator<ConnectPoint> itr = crossConnectPoints.iterator();
-
- while (itr.hasNext()) {
- // checkArgument at start ensures we'll always have pairs of connect points
- ConnectPoint src = itr.next();
- ConnectPoint dst = itr.next();
-
- Port srcPort = deviceService.getPort(src.deviceId(), src.port());
- Port dstPort = deviceService.getPort(dst.deviceId(), dst.port());
-
- if (srcPort instanceof OduCltPort && dstPort instanceof OduCltPort) {
- // Create OTN circuit
- Intent circuitIntent = OpticalCircuitIntent.builder()
- .appId(appId)
- .src(src)
- .dst(dst)
- .signalType(CltSignalType.CLT_10GBE)
- .bidirectional(true)
- .build();
- intents.add(circuitIntent);
- } else if (srcPort instanceof OchPort && dstPort instanceof OchPort) {
- // Create lightpath
- // FIXME: hardcoded ODU signal type
- Intent opticalIntent = OpticalConnectivityIntent.builder()
- .appId(appId)
- .src(src)
- .dst(dst)
- .signalType(OduSignalType.ODU4)
- .bidirectional(true)
- .build();
- intents.add(opticalIntent);
- } else {
- log.warn("Unsupported cross connect point types {} {}", srcPort.type(), dstPort.type());
- return Collections.emptyList();
- }
- }
-
- return intents;
- }
-
- /**
- * Returns list of optical connectivity intents needed to create connectivity
- * between ingress and egress.
- *
- * @param ingress the ingress connect point
- * @param egress the egress connect point
- * @return list of optical connectivity intents, empty list if no path was found
- */
- private List<Intent> getOpticalIntents(ConnectPoint ingress, ConnectPoint egress) {
- Set<Path> paths = pathService.getPaths(ingress.deviceId(),
- egress.deviceId(),
- new OpticalLinkWeight());
-
- if (paths.isEmpty()) {
- return Collections.emptyList();
- }
-
- // Search path with available cross connect points
- for (Path path : paths) {
- List<ConnectPoint> crossConnectPoints = getCrossConnectPoints(path);
-
- // Skip to next path if cross connect points are mismatched
- if (!checkCrossConnectPoints(crossConnectPoints)) {
- continue;
- }
-
- return getIntents(crossConnectPoints);
- }
-
- log.warn("Unable to find multi-layer path.");
- return Collections.emptyList();
- }
-
- /**
- * Link weight function that emphasizes re-use of packet links.
- */
- private class OpticalLinkWeight implements LinkWeight {
- @Override
- public double weight(TopologyEdge edge) {
- // Ignore inactive links
- if (edge.link().state() == Link.State.INACTIVE) {
- return -1;
- }
-
- // TODO: Ignore cross connect links with used ports
-
- // Transport links have highest weight
- if (edge.link().type() == Link.Type.OPTICAL) {
- return 1000;
- }
-
- // Packet links
- return 1;
- }
- }
-
- }
-
- /**
- * Verifies if given device type is in packet layer, i.e., ROADM, OTN or ROADM_OTN device.
- *
- * @param type device type
- * @return true if in packet layer, false otherwise
- */
- private boolean isPacketLayer(Device.Type type) {
- return type == Device.Type.SWITCH || type == Device.Type.ROUTER || type == Device.Type.VIRTUAL;
- }
-
- /**
- * Verifies if given device type is in packet layer, i.e., switch or router device.
- *
- * @param type device type
- * @return true if in packet layer, false otherwise
- */
- private boolean isTransportLayer(Device.Type type) {
- return type == Device.Type.ROADM || type == Device.Type.OTN || type == Device.Type.ROADM_OTN;
- }
-
- /**
- * Verifies if given link forms a cross-connection between packet and optical layer.
- *
- * @param link the link
- * @return true if the link is a cross-connect link, false otherwise
- */
- private boolean isCrossConnectLink(Link link) {
- if (link.type() != Link.Type.OPTICAL) {
- return false;
- }
-
- Device.Type src = deviceService.getDevice(link.src().deviceId()).type();
- Device.Type dst = deviceService.getDevice(link.dst().deviceId()).type();
-
- return src != dst &&
- ((isPacketLayer(src) && isTransportLayer(dst)) || (isPacketLayer(dst) && isTransportLayer(src)));
- }
-
-}
diff --git a/apps/optical/src/main/java/org/onosproject/optical/package-info.java b/apps/optical/src/main/java/org/onosproject/optical/package-info.java
deleted file mode 100644
index 987196b..0000000
--- a/apps/optical/src/main/java/org/onosproject/optical/package-info.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2014-present 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.
- */
-
-/**
- * Packet/Optical application.
- */
-package org.onosproject.optical;
diff --git a/apps/optical/src/main/java/org/onosproject/optical/testapp/MplsForwarding.java b/apps/optical/src/main/java/org/onosproject/optical/testapp/MplsForwarding.java
deleted file mode 100644
index 862af0f..0000000
--- a/apps/optical/src/main/java/org/onosproject/optical/testapp/MplsForwarding.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright 2015-present 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.optical.testapp;
-
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.packet.Ethernet;
-import org.onlab.packet.MplsLabel;
-import org.onosproject.core.ApplicationId;
-import org.onosproject.core.CoreService;
-import org.onosproject.net.Device;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.device.DeviceEvent;
-import org.onosproject.net.device.DeviceListener;
-import org.onosproject.net.device.DeviceService;
-import org.onosproject.net.flow.DefaultFlowRule;
-import org.onosproject.net.flow.DefaultTrafficSelector;
-import org.onosproject.net.flow.DefaultTrafficTreatment;
-import org.onosproject.net.flow.FlowRule;
-import org.onosproject.net.flow.FlowRuleService;
-import org.onosproject.net.flow.TrafficSelector;
-import org.onosproject.net.flow.TrafficTreatment;
-import org.slf4j.Logger;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.slf4j.LoggerFactory.getLogger;
-
-/**
- * Sample reactive forwarding application.
- */
-//@Component(immediate = true)
-public class MplsForwarding {
-
- private final Logger log = getLogger(getClass());
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected FlowRuleService flowRuleService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected CoreService coreService;
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected DeviceService deviceService;
-
- private ApplicationId appId;
-
- private final InternalDeviceListener listener = new InternalDeviceListener();
-
- private final Map<DeviceId, Integer> uglyMap = new HashMap<>();
-
- @Activate
- public void activate() {
- appId = coreService.registerApplication("org.onosproject.mplsfwd");
-
- uglyMap.put(DeviceId.deviceId("of:0000000000000001"), 1);
- uglyMap.put(DeviceId.deviceId("of:0000000000000002"), 2);
- uglyMap.put(DeviceId.deviceId("of:0000000000000003"), 3);
-
- deviceService.addListener(listener);
-
- for (Device d : deviceService.getDevices()) {
- pushRules(d);
- }
-
-
- log.info("Started with Application ID {}", appId.id());
- }
-
- @Deactivate
- public void deactivate() {
- flowRuleService.removeFlowRulesById(appId);
-
- log.info("Stopped");
- }
-
-
- private void pushRules(Device device) {
-
- TrafficSelector.Builder sbuilder = DefaultTrafficSelector.builder();
- TrafficTreatment.Builder tbuilder = DefaultTrafficTreatment.builder();
- int inport = 1;
- int outport = 2;
- MplsLabel mplsLabel = MplsLabel.mplsLabel(101);
- Integer switchNumber = uglyMap.get(device.id());
- if (switchNumber == null) {
- return;
- }
-
- switch (switchNumber) {
- case 1:
- sbuilder.matchInPort(PortNumber.portNumber(inport));
- tbuilder.setOutput(PortNumber.portNumber(outport))
- .pushMpls()
- .setMpls(mplsLabel);
- break;
- case 2:
- sbuilder.matchMplsLabel(mplsLabel)
- .matchEthType(Ethernet.MPLS_UNICAST)
- .matchInPort(PortNumber.portNumber(inport));
- tbuilder.setOutput(PortNumber.portNumber(outport));
- break;
- case 3:
- sbuilder.matchMplsLabel(mplsLabel)
- .matchEthType(Ethernet.MPLS_UNICAST)
- .matchInPort(PortNumber.portNumber(inport));
- tbuilder.popMpls().setOutput(PortNumber.portNumber(outport));
- break;
- default:
- }
-
- TrafficTreatment treatement = tbuilder.build();
- TrafficSelector selector = sbuilder.build();
-
- FlowRule f = DefaultFlowRule.builder()
- .forDevice(device.id())
- .withSelector(selector)
- .withTreatment(treatement)
- .withPriority(100)
- .fromApp(appId)
- .makeTemporary(600)
- .build();
-
- flowRuleService.applyFlowRules(f);
- }
-
-
- public class InternalDeviceListener implements DeviceListener {
-
- @Override
- public void event(DeviceEvent event) {
- switch (event.type()) {
- case DEVICE_ADDED:
- pushRules(event.subject());
- break;
- case DEVICE_AVAILABILITY_CHANGED:
- break;
- case DEVICE_REMOVED:
- break;
- case DEVICE_SUSPENDED:
- break;
- case DEVICE_UPDATED:
- break;
- case PORT_ADDED:
- break;
- case PORT_REMOVED:
- break;
- case PORT_UPDATED:
- break;
- default:
- break;
-
- }
-
- }
-
- }
-
-
-}
-
-
diff --git a/apps/optical/src/main/java/org/onosproject/optical/testapp/package-info.java b/apps/optical/src/main/java/org/onosproject/optical/testapp/package-info.java
deleted file mode 100644
index 33e8e25..0000000
--- a/apps/optical/src/main/java/org/onosproject/optical/testapp/package-info.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2014-present 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.
- */
-
-/**
- * Packet/Optical sample forwarding applications.
- */
-package org.onosproject.optical.testapp;
diff --git a/apps/optical/src/main/resources/demo-10-roadm-6-ps.json b/apps/optical/src/main/resources/demo-10-roadm-6-ps.json
deleted file mode 100644
index e4e1122..0000000
--- a/apps/optical/src/main/resources/demo-10-roadm-6-ps.json
+++ /dev/null
@@ -1,391 +0,0 @@
-{
- "opticalSwitches": [
- {
- "allowed": true,
- "latitude": 37.6,
- "longitude": 122.3,
- "name": "SFO-W10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:01",
- "params": {
- "numRegen": 0
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 37.3,
- "longitude": 121.9,
- "name": "SJC-W10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:02",
- "params": {
- "numRegen": 0
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 33.9,
- "longitude": 118.4
- "name": "LAX-W10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:03",
- "params": {
- "numRegen": 0
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 32.8,
- "longitude": 117.1,
- "name": "SDG-W10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:04",
- "params": {
- "numRegen": 3
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 44.8,
- "longitude": 93.1,
- "name": "MSP-M10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:05",
- "params": {
- "numRegen": 3
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 32.8,
- "longitude": 97.1,
- "name": "DFW-M10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:06",
- "params": {
- "numRegen": 3
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 41.8,
- "longitude": 120.1,
- "name": "CHG-N10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:07",
- "params": {
- "numRegen": 3
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 38.8,
- "longitude": 77.1,
- "name": "IAD-M10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:08",
- "params": {
- "numRegen": 3
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 40.8,
- "longitude": 73.1,
- "name": "JFK-E10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:09",
- "params": {
- "numRegen": 0
- },
- "type": "Roadm"
-
- },
-
- {
- "allowed": true,
- "latitude": 33.8,
- "longitude": 84.1,
- "name": "ATL-S10",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:0A",
- "params": {
- "numRegen": 0
- },
- "type": "Roadm"
- }
-
- ],
-
- "opticalLinks": [
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:02",
- "params": {
- "distKms": 1000,
- "nodeName1": "SFO-W10",
- "nodeName2": "SJC-W10",
- "numWaves": 80,
- "port1": 10,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:03",
- "params": {
- "distKms": 1000,
- "nodeName1": "SJC-W10",
- "nodeName2": "LAX-W10",
- "numWaves": 80,
- "port1": 20,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:04",
- "params": {
- "distKms": 1000,
- "nodeName1": "LAX-W10",
- "nodeName2": "SDG-W10",
- "numWaves": 80,
- "port1": 30,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:05",
- "params": {
- "distKms": 4000,
- "nodeName1": "SJC-W10",
- "nodeName2": "MSP-M10",
- "numWaves": 80,
- "port1": 20,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
-
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:06",
- "params": {
- "distKms": 5000,
- "nodeName1": "LAX-W10",
- "nodeName2": "DFW-M10",
- "numWaves": 80,
- "port1": 20,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:06",
- "params": {
- "distKms": 3000,
- "nodeName1": "MSP-M10",
- "nodeName2": "DFW-M10",
- "numWaves": 80,
- "port1": 30,
- "port2": 20
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:07",
- "params": {
- "distKms": 3000,
- "nodeName1": "MSP-M10",
- "nodeName2": "CHG-N10",
- "numWaves": 80,
- "port1": 20,
- "port2": 21
- },
- "type": "wdmLink"
- },
-
- {
-
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:08",
- "params": {
- "distKms": 4000,
- "nodeName1": "DFW-M10",
- "nodeName2": "IAD-M10",
- "numWaves": 80,
- "port1": 30,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
-
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:08",
- "params": {
- "distKms": 4000,
- "nodeName1": "CHG-M10",
- "nodeName2": "IAD-M10",
- "numWaves": 80,
- "port1": 30,
- "port2": 20
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:09",
- "params": {
- "distKms": 5000,
- "nodeName1": "CHG-M10",
- "nodeName2": "JFK-E10",
- "numWaves": 80,
- "port1": 20,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:0A",
- "params": {
- "distKms": 3000,
- "nodeName1": "IAD-M10",
- "nodeName2": "ATL-S10",
- "numWaves": 80,
- "port1": 30,
- "port2": 10
- },
- "type": "wdmLink"
- },
-
- {
-
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:0A",
- "params": {
- "distKms": 4000,
- "nodeName1": "JFK-E10",
- "nodeName2": "ATL-S10",
- "numWaves": 80,
- "port1": 20,
- "port2": 20
- },
- "type": "wdmLink"
- },
-
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:01",
- "params": {
- "nodeName1": "SFO-R10",
- "nodeName2": "SFO-W10",
- "port1": 10,
- "port2": 1
- },
- "type": "pktOptLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:03",
- "params": {
- "nodeName1": "LAX-R10",
- "nodeName2": "LAX-W10",
- "port1": 10,
- "port2": 1
- },
- "type": "pktOptLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:04",
- "params": {
- "nodeName1": "SDG-R10",
- "nodeName2": "SDG-W10",
- "port1": 10,
- "port2": 1
- },
- "type": "pktOptLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:07",
- "params": {
- "nodeName1": "CHG-R10",
- "nodeName2": "CHG-W10",
- "port1": 10,
- "port2": 1
- },
- "type": "pktOptLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:09",
- "params": {
- "nodeName1": "JFK-R10",
- "nodeName2": "JFK-W10",
- "port1": 10,
- "port2": 1
- },
- "type": "pktOptLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:0A",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:0A",
- "params": {
- "nodeName1": "ATL-R10",
- "nodeName2": "ATL-W10",
- "port1": 10,
- "port2": 1
- },
- "type": "pktOptLink"
- },
-
- ]
-}
diff --git a/apps/optical/src/main/resources/demo-3-roadm-2-ps.json b/apps/optical/src/main/resources/demo-3-roadm-2-ps.json
deleted file mode 100644
index 125a307..0000000
--- a/apps/optical/src/main/resources/demo-3-roadm-2-ps.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "opticalSwitches": [
- {
- "allowed": true,
- "latitude": 37.6,
- "longitude": 122.3,
- "name": "ROADM1",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:01",
- "params": {
- "numRegen": 0
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 37.3,
- "longitude": 121.9,
- "name": "ROADM2",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:02",
- "params": {
- "numRegen": 0
- },
- "type": "Roadm"
- },
-
- {
- "allowed": true,
- "latitude": 33.9,
- "longitude": 118.4,
- "name": "ROADM3",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:03",
- "params": {
- "numRegen": 2
- },
- "type": "Roadm"
- }
- ],
-
- "opticalLinks": [
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:03",
- "params": {
- "distKms": 1000,
- "nodeName1": "ROADM1",
- "nodeName2": "ROADM3",
- "numWaves": 80,
- "port1": 20,
- "port2": 30
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:02",
- "params": {
- "distKms": 2000,
- "nodeName1": "ROADM3",
- "nodeName2": "ROADM2",
- "numWaves": 80,
- "port1": 31,
- "port2": 21
- },
- "type": "wdmLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:01",
- "params": {
- "nodeName1": "ROUTER1",
- "nodeName2": "ROADM1",
- "bandWidth": 100000,
- "port1": 2,
- "port2": 10
- },
- "type": "pktOptLink"
- },
-
- {
- "allowed": true,
- "nodeDpid1": "00:00:ff:ff:ff:ff:00:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:02",
- "params": {
- "nodeName1": "ROUTER2",
- "nodeName2": "ROADM2",
- "bandWidth": 100000,
- "port1": 2,
- "port2": 11
- },
- "type": "pktOptLink"
- }
-
- ]
-}
diff --git a/apps/pom.xml b/apps/pom.xml
index 66e691c..d9f93a2 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -38,7 +38,6 @@
<module>proxyarp</module>
<module>sdnip</module>
<module>optical-model</module>
- <module>optical</module>
<module>newoptical</module>
<module>metrics</module>
<module>routing</module>
diff --git a/modules.defs b/modules.defs
index 13cd632..6f771c9 100644
--- a/modules.defs
+++ b/modules.defs
@@ -151,7 +151,6 @@
'//apps/mlb:onos-apps-mlb-oar',
'//apps/openstacknetworking:onos-apps-openstacknetworking-oar',
'//apps/mobility:onos-apps-mobility-oar',
- '//apps/optical:onos-apps-optical-oar',
'//apps/newoptical:onos-apps-newoptical-oar',
'//apps/optical-model:onos-apps-optical-model-oar',
'//apps/pathpainter:onos-apps-pathpainter-oar',