Updating CassiniDriver according to testing with IPI
Change-Id: Ia183f0a9ef432909aafa5480ee5b740425aa1832
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/PortWaveLengthCommand.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/PortWaveLengthCommand.java
index df66587..9f50458 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/PortWaveLengthCommand.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/PortWaveLengthCommand.java
@@ -15,7 +15,6 @@
*/
-
package org.onosproject.net.optical.cli;
import com.google.common.collect.ImmutableMap;
@@ -24,22 +23,23 @@
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.cli.net.NetconfOperationCompleter;
import org.onosproject.cli.net.OpticalConnectPointCompleter;
import org.onosproject.core.ApplicationId;
import org.onosproject.core.CoreService;
+import org.onosproject.net.ChannelSpacing;
import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Device;
import org.onosproject.net.GridType;
import org.onosproject.net.OchSignal;
-import org.onosproject.net.ChannelSpacing;
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.onosproject.net.flow.DefaultFlowRule;
-import org.onosproject.net.flow.DefaultTrafficTreatment;
-import org.onosproject.net.flow.DefaultTrafficSelector;
-import org.onosproject.net.flow.FlowRuleService;
-import org.onosproject.net.flow.FlowRule;
-import org.onosproject.net.Device;
import org.onosproject.net.flow.instructions.Instructions;
import java.util.Map;
@@ -51,7 +51,7 @@
* Enable the optical channel and tune the wavelength via a flow rule based on a given Signal.
*/
@Service
-@Command(scope = "onos", name = "port-wavelength",
+@Command(scope = "onos", name = "wavelength-config",
description = "Enable the optical channel and tune the wavelength via a flow rule ")
public class PortWaveLengthCommand extends AbstractShellCommand {
@@ -72,15 +72,19 @@
.put(CH_50, ChannelSpacing.CHL_50GHZ)
.put(CH_100, ChannelSpacing.CHL_100GHZ)
.build();
+ @Argument(index = 0, name = "operation", description = "Netconf Operation including get, edit-config, etc.",
+ required = true, multiValued = false)
+ @Completion(NetconfOperationCompleter.class)
+ private String operation = null;
- @Argument(index = 0, name = "connectPoint",
+ @Argument(index = 1, name = "connectPoint",
description = "Device/Port Description",
required = true, multiValued = false)
@Completion(OpticalConnectPointCompleter.class)
String connectPointString = "";
- @Argument(index = 1, name = "signal",
+ @Argument(index = 2, name = "signal",
description = "Optical Signal. Format = " + SIGNAL_FORMAT,
required = true, multiValued = false)
String signal = "";
@@ -116,38 +120,44 @@
@Override
protected void doExecute() throws Exception {
- FlowRuleService flowService = get(FlowRuleService.class);
- DeviceService deviceService = get(DeviceService.class);
- CoreService coreService = get(CoreService.class);
- ConnectPoint cp = ConnectPoint.deviceConnectPoint(connectPointString);
+ if (operation.equals("edit-config")) {
+ FlowRuleService flowService = get(FlowRuleService.class);
+ DeviceService deviceService = get(DeviceService.class);
+ CoreService coreService = get(CoreService.class);
+ ConnectPoint cp = ConnectPoint.deviceConnectPoint(connectPointString);
- TrafficSelector.Builder trafficSelectorBuilder = DefaultTrafficSelector.builder();
- TrafficTreatment.Builder trafficTreatmentBuilder = DefaultTrafficTreatment.builder();
- FlowRule.Builder flowRuleBuilder = DefaultFlowRule.builder();
+ TrafficSelector.Builder trafficSelectorBuilder = DefaultTrafficSelector.builder();
+ TrafficTreatment.Builder trafficTreatmentBuilder = DefaultTrafficTreatment.builder();
+ FlowRule.Builder flowRuleBuilder = DefaultFlowRule.builder();
- // an empty traffic selector
- TrafficSelector trafficSelector = trafficSelectorBuilder.matchInPort(cp.port()).build();
- OchSignal ochSignal = createOchSignal();
+ // an empty traffic selector
+ TrafficSelector trafficSelector = trafficSelectorBuilder.matchInPort(cp.port()).build();
+ OchSignal ochSignal = createOchSignal();
- TrafficTreatment trafficTreatment = trafficTreatmentBuilder
- .add(Instructions.modL0Lambda(ochSignal))
- .add(Instructions.createOutput(deviceService.getPort(cp).number()))
- .build();
+ TrafficTreatment trafficTreatment = trafficTreatmentBuilder
+ .add(Instructions.modL0Lambda(ochSignal))
+ .add(Instructions.createOutput(deviceService.getPort(cp).number()))
+ .build();
- Device device = deviceService.getDevice(cp.deviceId());
- int priority = 100;
- ApplicationId appId = coreService.registerApplication("org.onosproject.optical-model");
- log.info(appId.name());
- FlowRule addFlow = flowRuleBuilder
- .withPriority(priority)
- .fromApp(appId)
- .withTreatment(trafficTreatment)
- .withSelector(trafficSelector)
- .forDevice(device.id())
- .makePermanent()
- .build();
- flowService.applyFlowRules(addFlow);
+ Device device = deviceService.getDevice(cp.deviceId());
+ int priority = 100;
+ ApplicationId appId = coreService.registerApplication("org.onosproject.optical-model");
+ log.info(appId.name());
+ FlowRule addFlow = flowRuleBuilder
+ .withPriority(priority)
+ .fromApp(appId)
+ .withTreatment(trafficTreatment)
+ .withSelector(trafficSelector)
+ .forDevice(device.id())
+ .makePermanent()
+ .build();
+ flowService.applyFlowRules(addFlow);
+ String msg = String.format("Setting wavelength %s", ochSignal.centralFrequency().asGHz());
+ print(msg);
+ } else {
+ print("Operation %s are not supported now.", operation);
+ }
}
}