diff options
Diffstat (limited to 'framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java')
-rw-r--r-- | framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java b/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java index 494273cc..e2d3e6d6 100644 --- a/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java +++ b/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 Open Networking Laboratory + * Copyright 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. @@ -22,8 +22,12 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.karaf.shell.commands.Argument; import org.apache.karaf.shell.commands.Command; import org.apache.karaf.shell.commands.Option; +import org.onlab.util.Frequency; import org.onosproject.cli.Comparators; import org.onosproject.net.Device; +import org.onosproject.net.OchPort; +import org.onosproject.net.OduCltPort; +import org.onosproject.net.OmsPort; import org.onosproject.net.Port; import org.onosproject.net.PortNumber; import org.onosproject.net.device.DeviceService; @@ -41,7 +45,10 @@ import static org.onosproject.net.DeviceId.deviceId; description = "Lists all ports or all ports of a device") public class DevicePortsListCommand extends DevicesListCommand { - private static final String FMT = " port=%s, state=%s, type=%s, speed=%s%s"; + private static final String FMT = " port=%s, state=%s, type=%s, speed=%s %s"; + private static final String FMT_OCH = " port=%s, state=%s, type=%s, signalType=%s, isTunable=%s %s"; + private static final String FMT_ODUCLT = " port=%s, state=%s, type=%s, signalType=%s %s"; + private static final String FMT_OMS = " port=%s, state=%s, type=%s, Freqs= %s / %s / %s GHz, totalChannels=%s %s"; @Option(name = "-e", aliases = "--enabled", description = "Show only enabled ports", required = false, multiValued = false) @@ -137,13 +144,34 @@ public class DevicePortsListCommand extends DevicesListCommand { List<Port> ports = new ArrayList<>(service.getPorts(device.id())); Collections.sort(ports, Comparators.PORT_COMPARATOR); for (Port port : ports) { - if (isIncluded(port)) { - print(FMT, portName(port.number()), - port.isEnabled() ? "enabled" : "disabled", - port.type().toString().toLowerCase(), port.portSpeed(), - annotations(port.annotations())); + if (!isIncluded(port)) { + continue; + } + String portName = portName(port.number()); + Object portIsEnabled = port.isEnabled() ? "enabled" : "disabled"; + String portType = port.type().toString().toLowerCase(); + String annotations = annotations(port.annotations()); + switch (port.type()) { + case OCH: + print(FMT_OCH, portName, portIsEnabled, portType, + ((OchPort) port).signalType().toString(), + ((OchPort) port).isTunable() ? "yes" : "no", annotations); + break; + case ODUCLT: + print(FMT_ODUCLT, portName, portIsEnabled, portType, + ((OduCltPort) port).signalType().toString(), annotations); + break; + case OMS: + print(FMT_OMS, portName, portIsEnabled, portType, + ((OmsPort) port).minFrequency().asHz() / Frequency.ofGHz(1).asHz(), + ((OmsPort) port).maxFrequency().asHz() / Frequency.ofGHz(1).asHz(), + ((OmsPort) port).grid().asHz() / Frequency.ofGHz(1).asHz(), + ((OmsPort) port).totalChannels(), annotations); + break; + default: + print(FMT, portName, portIsEnabled, portType, port.portSpeed(), annotations); + break; } } } - } |