cheng fan
Committed by Gerrit Code Review

1. move tunnel 3 commands to onos-cli

2. add OCH ODU OMS port type;
3. fix some bugs in pcep tunnel provider and topology provider
4. Optimization of the command line tools of tunnel

Change-Id: I323ede971795c8fe6ecddc40e1061f42a8243867

fix tunnel provider bugs.

Change-Id: I323ede971795c8fe6ecddc40e1061f42a8243867
...@@ -48,13 +48,16 @@ public interface PcepLink extends PcepOperator { ...@@ -48,13 +48,16 @@ public interface PcepLink extends PcepOperator {
48 } 48 }
49 49
50 50
51 + public enum PortType {
52 + ODU_PORT, OCH_PORT, OMS_PORT
53 + }
51 54
52 /** 55 /**
53 * Get the link endpoint port type. 56 * Get the link endpoint port type.
54 * 57 *
55 * @return endpoint port type 58 * @return endpoint port type
56 */ 59 */
57 - public String portType(); 60 + public PortType portType();
58 61
59 /** 62 /**
60 * Get the link sub type,OTS,OPS,PKT_OPTICAL or ODUK. 63 * Get the link sub type,OTS,OPS,PKT_OPTICAL or ODUK.
......
...@@ -20,7 +20,7 @@ package org.onosproject.pcep.api; ...@@ -20,7 +20,7 @@ package org.onosproject.pcep.api;
20 */ 20 */
21 public interface PcepSwitch extends PcepOperator { 21 public interface PcepSwitch extends PcepOperator {
22 22
23 - public static enum SubDeviceType { 23 + public static enum DeviceType {
24 /* optical device */ 24 /* optical device */
25 ROADM, 25 ROADM,
26 26
...@@ -52,7 +52,7 @@ public interface PcepSwitch extends PcepOperator { ...@@ -52,7 +52,7 @@ public interface PcepSwitch extends PcepOperator {
52 * Gets the sub type of the device. 52 * Gets the sub type of the device.
53 * @return the sub type 53 * @return the sub type
54 */ 54 */
55 - public SubDeviceType getDeviceSubType(); 55 + public DeviceType getDeviceType();
56 56
57 /** 57 /**
58 * fetch the manufacturer description. 58 * fetch the manufacturer description.
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 -package org.onosproject.provider.tunnel.cli; 16 +package org.onosproject.cli.net;
17 17
18 import java.util.Optional; 18 import java.util.Optional;
19 19
...@@ -64,11 +64,11 @@ public class TunnelCreateCommand extends AbstractShellCommand { ...@@ -64,11 +64,11 @@ public class TunnelCreateCommand extends AbstractShellCommand {
64 String type = null; 64 String type = null;
65 @Option(name = "-g", aliases = "--groupId", 65 @Option(name = "-g", aliases = "--groupId",
66 description = "Group flow table id which a tunnel match up", required = false, multiValued = false) 66 description = "Group flow table id which a tunnel match up", required = false, multiValued = false)
67 - String groupId = null; 67 + String groupId = "0";
68 68
69 @Option(name = "-n", aliases = "--tunnelName", 69 @Option(name = "-n", aliases = "--tunnelName",
70 description = "The name of tunnels", required = false, multiValued = false) 70 description = "The name of tunnels", required = false, multiValued = false)
71 - String tunnelName = null; 71 + String tunnelName = "onos";
72 72
73 @Option(name = "-b", aliases = "--bandwidth", 73 @Option(name = "-b", aliases = "--bandwidth",
74 description = "The bandwidth attribute of tunnel", required = false, multiValued = false) 74 description = "The bandwidth attribute of tunnel", required = false, multiValued = false)
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 -package org.onosproject.provider.tunnel.cli; 16 +package org.onosproject.cli.net;
17 17
18 import java.util.Optional; 18 import java.util.Optional;
19 19
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 -package org.onosproject.provider.tunnel.cli; 16 +package org.onosproject.cli.net;
17 17
18 import org.apache.karaf.shell.commands.Argument; 18 import org.apache.karaf.shell.commands.Argument;
19 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
......
...@@ -380,6 +380,15 @@ ...@@ -380,6 +380,15 @@
380 <command> 380 <command>
381 <action class="org.onosproject.cli.net.TunnelQuerySubscriptionCommand"/> 381 <action class="org.onosproject.cli.net.TunnelQuerySubscriptionCommand"/>
382 </command> 382 </command>
383 + <command>
384 + <action class="org.onosproject.cli.net.TunnelCreateCommand"/>
385 + </command>
386 + <command>
387 + <action class="org.onosproject.cli.net.TunnelRemoveCommand"/>
388 + </command>
389 + <command>
390 + <action class="org.onosproject.cli.net.TunnelUpdateCommand"/>
391 + </command>
383 </command-bundle> 392 </command-bundle>
384 393
385 <bean id="permAppNameCompleter" class="org.onosproject.cli.security.PermissionApplicationNameCompleter"/> 394 <bean id="permAppNameCompleter" class="org.onosproject.cli.security.PermissionApplicationNameCompleter"/>
......
...@@ -15,6 +15,10 @@ ...@@ -15,6 +15,10 @@
15 */ 15 */
16 package org.onosproject.provider.pcep.topology.impl; 16 package org.onosproject.provider.pcep.topology.impl;
17 17
18 +import static com.google.common.base.Preconditions.checkNotNull;
19 +import static org.onosproject.net.DeviceId.deviceId;
20 +import static org.onosproject.pcep.api.PcepDpid.uri;
21 +
18 import java.util.ArrayList; 22 import java.util.ArrayList;
19 import java.util.HashSet; 23 import java.util.HashSet;
20 import java.util.List; 24 import java.util.List;
...@@ -27,7 +31,6 @@ import org.apache.felix.scr.annotations.Reference; ...@@ -27,7 +31,6 @@ import org.apache.felix.scr.annotations.Reference;
27 import org.apache.felix.scr.annotations.ReferenceCardinality; 31 import org.apache.felix.scr.annotations.ReferenceCardinality;
28 import org.onlab.packet.ChassisId; 32 import org.onlab.packet.ChassisId;
29 import org.onosproject.cluster.ClusterService; 33 import org.onosproject.cluster.ClusterService;
30 -import org.onosproject.cluster.NodeId;
31 import org.onosproject.mastership.MastershipAdminService; 34 import org.onosproject.mastership.MastershipAdminService;
32 import org.onosproject.mastership.MastershipService; 35 import org.onosproject.mastership.MastershipService;
33 import org.onosproject.net.ConnectPoint; 36 import org.onosproject.net.ConnectPoint;
...@@ -57,6 +60,7 @@ import org.onosproject.net.provider.ProviderId; ...@@ -57,6 +60,7 @@ import org.onosproject.net.provider.ProviderId;
57 import org.onosproject.pcep.api.PcepController; 60 import org.onosproject.pcep.api.PcepController;
58 import org.onosproject.pcep.api.PcepDpid; 61 import org.onosproject.pcep.api.PcepDpid;
59 import org.onosproject.pcep.api.PcepLink; 62 import org.onosproject.pcep.api.PcepLink;
63 +import org.onosproject.pcep.api.PcepLink.PortType;
60 import org.onosproject.pcep.api.PcepLinkListener; 64 import org.onosproject.pcep.api.PcepLinkListener;
61 import org.onosproject.pcep.api.PcepOperator.OperationType; 65 import org.onosproject.pcep.api.PcepOperator.OperationType;
62 import org.onosproject.pcep.api.PcepSwitch; 66 import org.onosproject.pcep.api.PcepSwitch;
...@@ -64,10 +68,6 @@ import org.onosproject.pcep.api.PcepSwitchListener; ...@@ -64,10 +68,6 @@ import org.onosproject.pcep.api.PcepSwitchListener;
64 import org.slf4j.Logger; 68 import org.slf4j.Logger;
65 import org.slf4j.LoggerFactory; 69 import org.slf4j.LoggerFactory;
66 70
67 -import static com.google.common.base.Preconditions.checkNotNull;
68 -import static org.onosproject.net.DeviceId.deviceId;
69 -import static org.onosproject.pcep.api.PcepDpid.uri;
70 -
71 /** 71 /**
72 * Provider which uses an PCEP controller to detect network infrastructure 72 * Provider which uses an PCEP controller to detect network infrastructure
73 * topology. 73 * topology.
...@@ -130,7 +130,7 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -130,7 +130,7 @@ public class PcepTopologyProvider extends AbstractProvider
130 } 130 }
131 131
132 private List<PortDescription> buildPortDescriptions(List<Long> ports, 132 private List<PortDescription> buildPortDescriptions(List<Long> ports,
133 - String portType) { 133 + PortType portType) {
134 final List<PortDescription> portDescs = new ArrayList<>(); 134 final List<PortDescription> portDescs = new ArrayList<>();
135 for (long port : ports) { 135 for (long port : ports) {
136 portDescs.add(buildPortDescription(port, portType)); 136 portDescs.add(buildPortDescription(port, portType));
...@@ -138,11 +138,11 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -138,11 +138,11 @@ public class PcepTopologyProvider extends AbstractProvider
138 return portDescs; 138 return portDescs;
139 } 139 }
140 140
141 - private PortDescription buildPortDescription(long port, String portType) { 141 + private PortDescription buildPortDescription(long port, PortType portType) {
142 final PortNumber portNo = PortNumber.portNumber(port); 142 final PortNumber portNo = PortNumber.portNumber(port);
143 final boolean enabled = true; 143 final boolean enabled = true;
144 DefaultAnnotations extendedAttributes = DefaultAnnotations.builder() 144 DefaultAnnotations extendedAttributes = DefaultAnnotations.builder()
145 - .set("portType", portType).build(); 145 + .set("portType", String.valueOf(portType)).build();
146 return new DefaultPortDescription(portNo, enabled, extendedAttributes); 146 return new DefaultPortDescription(portNo, enabled, extendedAttributes);
147 } 147 }
148 148
...@@ -246,14 +246,22 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -246,14 +246,22 @@ public class PcepTopologyProvider extends AbstractProvider
246 PcepSwitch sw = controller.getSwitch(dpid); 246 PcepSwitch sw = controller.getSwitch(dpid);
247 checkNotNull(sw, "device should not null."); 247 checkNotNull(sw, "device should not null.");
248 // The default device type is switch. 248 // The default device type is switch.
249 - Device.Type deviceType = Device.Type.SWITCH;
250 ChassisId cId = new ChassisId(dpid.value()); 249 ChassisId cId = new ChassisId(dpid.value());
250 + Device.Type deviceType = null;
251 251
252 - // Device subType: ROADM,OTN,ROUTER. 252 + switch (sw.getDeviceType()) {
253 - DefaultAnnotations extendedAttributes = DefaultAnnotations 253 + case ROADM:
254 - .builder() 254 + deviceType = Device.Type.ROADM;
255 - .set("subType", String.valueOf(sw.getDeviceSubType())) 255 + break;
256 - .build(); 256 + case OTN:
257 + deviceType = Device.Type.SWITCH;
258 + break;
259 + case ROUTER:
260 + deviceType = Device.Type.ROUTER;
261 + break;
262 + default:
263 + deviceType = Device.Type.OTHER;
264 + }
257 265
258 DeviceDescription description = new DefaultDeviceDescription( 266 DeviceDescription description = new DefaultDeviceDescription(
259 devicdId.uri(), 267 devicdId.uri(),
...@@ -262,12 +270,7 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -262,12 +270,7 @@ public class PcepTopologyProvider extends AbstractProvider
262 sw.hardwareDescription(), 270 sw.hardwareDescription(),
263 sw.softwareDescription(), 271 sw.softwareDescription(),
264 sw.serialNumber(), 272 sw.serialNumber(),
265 - cId, 273 + cId);
266 - extendedAttributes);
267 - NodeId localNode = clusterService.getLocalNode().id();
268 - mastershipAdminService.setRole(localNode, devicdId,
269 - MastershipRole.MASTER);
270 - mastershipService.relinquishMastership(devicdId);
271 deviceProviderService.deviceConnected(devicdId, description); 274 deviceProviderService.deviceConnected(devicdId, description);
272 275
273 } 276 }
...@@ -322,19 +325,15 @@ public class PcepTopologyProvider extends AbstractProvider ...@@ -322,19 +325,15 @@ public class PcepTopologyProvider extends AbstractProvider
322 @Override 325 @Override
323 public void triggerProbe(DeviceId deviceId) { 326 public void triggerProbe(DeviceId deviceId) {
324 // TODO Auto-generated method stub 327 // TODO Auto-generated method stub
325 -
326 } 328 }
327 329
328 @Override 330 @Override
329 public void roleChanged(DeviceId deviceId, MastershipRole newRole) { 331 public void roleChanged(DeviceId deviceId, MastershipRole newRole) {
330 - // NodeId localNode = clusterService.getLocalNode().id();
331 - // mastershipService.setRole(localNode, deviceId, newRole);
332 -
333 } 332 }
334 333
335 @Override 334 @Override
336 public boolean isReachable(DeviceId deviceId) { 335 public boolean isReachable(DeviceId deviceId) {
337 // TODO Auto-generated method stub 336 // TODO Auto-generated method stub
338 - return false; 337 + return true;
339 } 338 }
340 } 339 }
......
...@@ -78,6 +78,7 @@ public class PcepTunnelProvider extends AbstractProvider ...@@ -78,6 +78,7 @@ public class PcepTunnelProvider extends AbstractProvider
78 private static final Logger log = getLogger(PcepTunnelProvider.class); 78 private static final Logger log = getLogger(PcepTunnelProvider.class);
79 private static final long MAX_BANDWIDTH = 99999744; 79 private static final long MAX_BANDWIDTH = 99999744;
80 private static final long MIN_BANDWIDTH = 64; 80 private static final long MIN_BANDWIDTH = 64;
81 + private static final String BANDWIDTH_UINT = "kbps";
81 static final String PROVIDER_ID = "org.onosproject.provider.tunnel.default"; 82 static final String PROVIDER_ID = "org.onosproject.provider.tunnel.default";
82 83
83 private static final String TUNNLE_NOT_NULL = "Create failed,The given port may be wrong or has been occupied."; 84 private static final String TUNNLE_NOT_NULL = "Create failed,The given port may be wrong or has been occupied.";
...@@ -154,10 +155,11 @@ public class PcepTunnelProvider extends AbstractProvider ...@@ -154,10 +155,11 @@ public class PcepTunnelProvider extends AbstractProvider
154 @Override 155 @Override
155 public TunnelId tunnelAdded(TunnelDescription tunnel) { 156 public TunnelId tunnelAdded(TunnelDescription tunnel) {
156 157
157 - long bandwidth = Long.parseLong(tunnel.annotations().value("bandWith")); 158 + long bandwidth = Long
159 + .parseLong(tunnel.annotations().value("bandwidth"));
158 160
159 if (bandwidth < MIN_BANDWIDTH || bandwidth > MAX_BANDWIDTH) { 161 if (bandwidth < MIN_BANDWIDTH || bandwidth > MAX_BANDWIDTH) {
160 - System.out.println("Update failed, invalid bandwidth."); 162 + error("Update failed, invalid bandwidth.");
161 return null; 163 return null;
162 } 164 }
163 165
...@@ -175,8 +177,7 @@ public class PcepTunnelProvider extends AbstractProvider ...@@ -175,8 +177,7 @@ public class PcepTunnelProvider extends AbstractProvider
175 177
176 // type 178 // type
177 if (tunnel.type() != Tunnel.Type.VLAN) { 179 if (tunnel.type() != Tunnel.Type.VLAN) {
178 - System.out 180 + error("Illegal tunnel type. Only support VLAN tunnel creation.");
179 - .println("Llegal tunnel type. Only support VLAN tunnel creation.");
180 return null; 181 return null;
181 } 182 }
182 183
...@@ -198,18 +199,17 @@ public class PcepTunnelProvider extends AbstractProvider ...@@ -198,18 +199,17 @@ public class PcepTunnelProvider extends AbstractProvider
198 Tunnel tunnelOld = tunnelQueryById(tunnel.id()); 199 Tunnel tunnelOld = tunnelQueryById(tunnel.id());
199 checkNotNull(tunnelOld, "The tunnel id is not exsited."); 200 checkNotNull(tunnelOld, "The tunnel id is not exsited.");
200 if (tunnelOld.type() != Tunnel.Type.VLAN) { 201 if (tunnelOld.type() != Tunnel.Type.VLAN) {
201 - System.out 202 + error("Llegal tunnel type. Only support VLAN tunnel deletion.");
202 - .println("Llegal tunnel type. Only support VLAN tunnel deletion.");
203 return; 203 return;
204 } 204 }
205 String pcepTunnelId = getPCEPTunnelKey(tunnel.id()); 205 String pcepTunnelId = getPCEPTunnelKey(tunnel.id());
206 checkNotNull(pcepTunnelId, "The tunnel id is not exsited."); 206 checkNotNull(pcepTunnelId, "The tunnel id is not exsited.");
207 - if (controller.deleteTunnel(pcepTunnelId)) { 207 + if (!controller.deleteTunnel(pcepTunnelId)) {
208 - log.info("delete tunnel:" + pcepTunnelId + "ok."); 208 + error("Delete tunnel failed, Maybe some devices have been disconnected.");
209 + return;
209 } 210 }
210 tunnelMap.remove(pcepTunnelId); 211 tunnelMap.remove(pcepTunnelId);
211 service.tunnelRemoved(tunnel); 212 service.tunnelRemoved(tunnel);
212 -
213 } 213 }
214 214
215 @Override 215 @Override
...@@ -217,13 +217,13 @@ public class PcepTunnelProvider extends AbstractProvider ...@@ -217,13 +217,13 @@ public class PcepTunnelProvider extends AbstractProvider
217 217
218 Tunnel tunnelOld = tunnelQueryById(tunnel.id()); 218 Tunnel tunnelOld = tunnelQueryById(tunnel.id());
219 if (tunnelOld.type() != Tunnel.Type.VLAN) { 219 if (tunnelOld.type() != Tunnel.Type.VLAN) {
220 - System.out 220 + error("Llegal tunnel type. Only support VLAN tunnel update.");
221 - .println("Llegal tunnel type. Only support VLAN tunnel update.");
222 return; 221 return;
223 } 222 }
224 - long bandwidth = Long.parseLong(tunnel.annotations().value("bandWith")); 223 + long bandwidth = Long
224 + .parseLong(tunnel.annotations().value("bandwidth"));
225 if (bandwidth < MIN_BANDWIDTH || bandwidth > MAX_BANDWIDTH) { 225 if (bandwidth < MIN_BANDWIDTH || bandwidth > MAX_BANDWIDTH) {
226 - System.out.println("Update failed, invalid bandwidth."); 226 + error("Update failed, invalid bandwidth.");
227 return; 227 return;
228 } 228 }
229 String pcepTunnelId = getPCEPTunnelKey(tunnel.id()); 229 String pcepTunnelId = getPCEPTunnelKey(tunnel.id());
...@@ -231,13 +231,17 @@ public class PcepTunnelProvider extends AbstractProvider ...@@ -231,13 +231,17 @@ public class PcepTunnelProvider extends AbstractProvider
231 checkNotNull(pcepTunnelId, "Invalid tunnel id"); 231 checkNotNull(pcepTunnelId, "Invalid tunnel id");
232 if (!controller.updateTunnelBandwidth(pcepTunnelId, bandwidth)) { 232 if (!controller.updateTunnelBandwidth(pcepTunnelId, bandwidth)) {
233 233
234 - System.out.println("Update failed,maybe invalid bandwidth."); 234 + error("Update failed,maybe invalid bandwidth.");
235 return; 235 return;
236 236
237 } 237 }
238 service.tunnelUpdated(tunnel); 238 service.tunnelUpdated(tunnel);
239 } 239 }
240 240
241 + private void error(String info) {
242 + System.err.println(info);
243 + }
244 +
241 // Short-hand for creating a connection point. 245 // Short-hand for creating a connection point.
242 private ConnectPoint connectPoint(PcepDpid id, long port) { 246 private ConnectPoint connectPoint(PcepDpid id, long port) {
243 return new ConnectPoint(deviceId(uri(id)), portNumber(port)); 247 return new ConnectPoint(deviceId(uri(id)), portNumber(port));
...@@ -334,22 +338,13 @@ public class PcepTunnelProvider extends AbstractProvider ...@@ -334,22 +338,13 @@ public class PcepTunnelProvider extends AbstractProvider
334 true); 338 true);
335 339
336 // basic annotations 340 // basic annotations
337 - DefaultAnnotations annotations = DefaultAnnotations.builder() 341 + DefaultAnnotations annotations = DefaultAnnotations
338 - .set("bandWith", String.valueOf(pcepTunnel.bandWidth())) 342 + .builder()
339 .set("SLA", String.valueOf(pcepTunnel.getSla())) 343 .set("SLA", String.valueOf(pcepTunnel.getSla()))
344 + .set("bandwidth",
345 + String.valueOf(pcepTunnel.bandWidth()) + BANDWIDTH_UINT)
340 .set("index", String.valueOf(pcepTunnel.id())).build(); 346 .set("index", String.valueOf(pcepTunnel.id())).build();
341 347
342 - // if (path != null) {
343 - //
344 - // DefaultAnnotations extendAnnotations = DefaultAnnotations.builder()
345 - // .set("pathNum", String.valueOf(hopNum))
346 - // // .set("path", pathString)
347 - // .set("pathType", String.valueOf(pcepTunnel.getPathType()))
348 - // .build();
349 - // annotations = DefaultAnnotations.merge(annotations,
350 - // extendAnnotations);
351 - // }
352 -
353 // a VLAN tunnel always carry OCH tunnel, this annotation is the index 348 // a VLAN tunnel always carry OCH tunnel, this annotation is the index
354 // of a OCH tunnel. 349 // of a OCH tunnel.
355 if (pcepTunnel.underLayTunnelId() != 0) { 350 if (pcepTunnel.underLayTunnelId() != 0) {
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
37 <module>host</module> 37 <module>host</module>
38 <module>netconf</module> 38 <module>netconf</module>
39 <module>null</module> 39 <module>null</module>
40 - <module>tunnel</module>
41 <module>pcep</module> 40 <module>pcep</module>
42 </modules> 41 </modules>
43 42
......
1 -<?xml version="1.0" encoding="UTF-8"?>
2 -<!--
3 - ~ Copyright 2014 Open Networking Laboratory
4 - ~
5 - ~ Licensed under the Apache License, Version 2.0 (the "License");
6 - ~ you may not use this file except in compliance with the License.
7 - ~ You may obtain a copy of the License at
8 - ~
9 - ~ http://www.apache.org/licenses/LICENSE-2.0
10 - ~
11 - ~ Unless required by applicable law or agreed to in writing, software
12 - ~ distributed under the License is distributed on an "AS IS" BASIS,
13 - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 - ~ See the License for the specific language governing permissions and
15 - ~ limitations under the License.
16 - -->
17 -<project xmlns="http://maven.apache.org/POM/4.0.0"
18 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
20 - <modelVersion>4.0.0</modelVersion>
21 -
22 - <parent>
23 - <groupId>org.onosproject</groupId>
24 - <artifactId>onos-providers</artifactId>
25 - <version>1.2.0-SNAPSHOT</version>
26 - <relativePath>../pom.xml</relativePath>
27 - </parent>
28 -
29 - <artifactId>onos-tunnel-provider</artifactId>
30 - <packaging>bundle</packaging>
31 -
32 - <description>tunnel southbound providers</description>
33 -
34 - <properties>
35 - <onos.app.name>org.onosproject.tunnel</onos.app.name>
36 - </properties>
37 -
38 - <dependencies>
39 - <dependency>
40 - <groupId>org.osgi</groupId>
41 - <artifactId>org.osgi.compendium</artifactId>
42 - </dependency>
43 - <dependency>
44 - <groupId>org.apache.karaf.shell</groupId>
45 - <artifactId>org.apache.karaf.shell.console</artifactId>
46 - </dependency>
47 - <dependency>
48 - <groupId>org.onosproject</groupId>
49 - <artifactId>onos-cli</artifactId>
50 - <version>${project.version}</version>
51 - </dependency>
52 -
53 - <dependency>
54 - <groupId>org.onosproject</groupId>
55 - <artifactId>onos-api</artifactId>
56 - <classifier>tests</classifier>
57 - <scope>test</scope>
58 - </dependency>
59 - </dependencies>
60 -
61 -</project>
1 -/*
2 - * Copyright 2015 Open Networking Laboratory
3 - *
4 - * Licensed under the Apache License, Version 2.0 (the "License");
5 - * you may not use this file except in compliance with the License.
6 - * You may obtain a copy of the License at
7 - *
8 - * http://www.apache.org/licenses/LICENSE-2.0
9 - *
10 - * Unless required by applicable law or agreed to in writing, software
11 - * distributed under the License is distributed on an "AS IS" BASIS,
12 - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 - * See the License for the specific language governing permissions and
14 - * limitations under the License.
15 - */
16 -package org.onosproject.provider.tunnel;
17 -
18 -import static org.slf4j.LoggerFactory.getLogger;
19 -
20 -import org.apache.felix.scr.annotations.Activate;
21 -import org.apache.felix.scr.annotations.Component;
22 -import org.apache.felix.scr.annotations.Deactivate;
23 -import org.apache.felix.scr.annotations.Reference;
24 -import org.apache.felix.scr.annotations.ReferenceCardinality;
25 -import org.apache.felix.scr.annotations.Service;
26 -import org.onosproject.cfg.ComponentConfigService;
27 -import org.onosproject.net.ElementId;
28 -import org.onosproject.net.Path;
29 -import org.onosproject.net.provider.AbstractProvider;
30 -import org.onosproject.net.provider.ProviderId;
31 -import org.onosproject.incubator.net.tunnel.Tunnel;
32 -import org.onosproject.incubator.net.tunnel.TunnelDescription;
33 -import org.onosproject.incubator.net.tunnel.TunnelId;
34 -import org.onosproject.incubator.net.tunnel.TunnelProvider;
35 -import org.onosproject.incubator.net.tunnel.TunnelProviderRegistry;
36 -import org.onosproject.incubator.net.tunnel.TunnelProviderService;
37 -import org.osgi.service.component.ComponentContext;
38 -import org.slf4j.Logger;
39 -
40 -/**
41 - * Provider of a fake network environment, i.e. devices, links, hosts, etc. To
42 - * be used for benchmarking only.
43 - */
44 -@Component(immediate = true)
45 -@Service
46 -public class DefaultTunnelProvider extends AbstractProvider
47 - implements TunnelProvider {
48 -
49 - private static final Logger log = getLogger(DefaultTunnelProvider.class);
50 -
51 - static final String PROVIDER_ID = "org.onosproject.provider.tunnel.default";
52 -
53 - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
54 - protected ComponentConfigService cfgService;
55 -
56 - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
57 - protected TunnelProviderRegistry tunnelProviderRegistry;
58 -
59 - TunnelProviderService service;
60 -
61 - /**
62 - * Creates a Tunnel provider.
63 - */
64 - public DefaultTunnelProvider() {
65 - super(new ProviderId("default", PROVIDER_ID));
66 - }
67 -
68 - @Activate
69 - public void activate(ComponentContext context) {
70 - service = tunnelProviderRegistry.register(this);
71 - log.info("Started");
72 - }
73 -
74 - @Deactivate
75 - public void deactivate(ComponentContext context) {
76 - tunnelProviderRegistry.unregister(this);
77 - log.info("Stopped");
78 - }
79 -
80 - @Override
81 - public void setupTunnel(Tunnel tunnel, Path path) {
82 - // TODO Auto-generated method stub
83 -
84 - }
85 -
86 - @Override
87 - public void setupTunnel(ElementId srcElement, Tunnel tunnel, Path path) {
88 - // TODO Auto-generated method stub
89 -
90 - }
91 -
92 - @Override
93 - public void releaseTunnel(Tunnel tunnel) {
94 - // TODO Auto-generated method stub
95 -
96 - }
97 -
98 - @Override
99 - public void releaseTunnel(ElementId srcElement, Tunnel tunnel) {
100 - // TODO Auto-generated method stub
101 -
102 - }
103 -
104 - @Override
105 - public void updateTunnel(Tunnel tunnel, Path path) {
106 - // TODO Auto-generated method stub
107 -
108 - }
109 -
110 - @Override
111 - public void updateTunnel(ElementId srcElement, Tunnel tunnel, Path path) {
112 - // TODO Auto-generated method stub
113 -
114 - }
115 -
116 - @Override
117 - public TunnelId tunnelAdded(TunnelDescription tunnel) {
118 - return service.tunnelAdded(tunnel);
119 - }
120 -
121 - @Override
122 - public void tunnelRemoved(TunnelDescription tunnel) {
123 - service.tunnelRemoved(tunnel);
124 - }
125 -
126 - @Override
127 - public void tunnelUpdated(TunnelDescription tunnel) {
128 - service.tunnelUpdated(tunnel);
129 - }
130 -
131 - @Override
132 - public Tunnel tunnelQueryById(TunnelId tunnelId) {
133 - return service.tunnelQueryById(tunnelId);
134 - }
135 -
136 -}
1 -/*
2 - * Copyright 2015 Open Networking Laboratory
3 - *
4 - * Licensed under the Apache License, Version 2.0 (the "License");
5 - * you may not use this file except in compliance with the License.
6 - * You may obtain a copy of the License at
7 - *
8 - * http://www.apache.org/licenses/LICENSE-2.0
9 - *
10 - * Unless required by applicable law or agreed to in writing, software
11 - * distributed under the License is distributed on an "AS IS" BASIS,
12 - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 - * See the License for the specific language governing permissions and
14 - * limitations under the License.
15 - */
16 -
17 -/**
18 - * Null provider CLI commands and completers.
19 - */
20 -package org.onosproject.provider.tunnel.cli;
1 -/*
2 - * Copyright 2015 Open Networking Laboratory
3 - *
4 - * Licensed under the Apache License, Version 2.0 (the "License");
5 - * you may not use this file except in compliance with the License.
6 - * You may obtain a copy of the License at
7 - *
8 - * http://www.apache.org/licenses/LICENSE-2.0
9 - *
10 - * Unless required by applicable law or agreed to in writing, software
11 - * distributed under the License is distributed on an "AS IS" BASIS,
12 - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 - * See the License for the specific language governing permissions and
14 - * limitations under the License.
15 - */
16 -
17 -/**
18 - * Set of null south-bound providers which permit simulating a network
19 - * topology using fake devices, links, hosts, etc.
20 - */
21 -package org.onosproject.provider.tunnel;
1 -<!--
2 - ~ Copyright 2015 Open Networking Laboratory
3 - ~
4 - ~ Licensed under the Apache License, Version 2.0 (the "License");
5 - ~ you may not use this file except in compliance with the License.
6 - ~ You may obtain a copy of the License at
7 - ~
8 - ~ http://www.apache.org/licenses/LICENSE-2.0
9 - ~
10 - ~ Unless required by applicable law or agreed to in writing, software
11 - ~ distributed under the License is distributed on an "AS IS" BASIS,
12 - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 - ~ See the License for the specific language governing permissions and
14 - ~ limitations under the License.
15 - -->
16 -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
17 -
18 - <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
19 - <command>
20 - <action class="org.onosproject.provider.tunnel.cli.TunnelCreateCommand"/>
21 - </command>
22 - <command>
23 - <action class="org.onosproject.provider.tunnel.cli.TunnelRemoveCommand"/>
24 - </command>
25 - <command>
26 - <action class="org.onosproject.provider.tunnel.cli.TunnelUpdateCommand"/>
27 - </command>
28 - </command-bundle>
29 -</blueprint>