summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/PacketProcessorsListCommand.java
diff options
context:
space:
mode:
authorAshlee Young <ashlee@onosfw.com>2015-09-22 12:49:09 -0700
committerAshlee Young <ashlee@onosfw.com>2015-09-22 12:49:09 -0700
commit81391595dca425ae58e2294898f09f11d9a32dbc (patch)
treef5d65c39a732150b2b29daa8de98a35d1236d3fb /framework/src/onos/cli/src/main/java/org/onosproject/cli/net/PacketProcessorsListCommand.java
parent0aa37e73dcb3a55b8d889b0c32ff74055551b1f3 (diff)
bringing src to commit tag 65d551b50e782b0c1ea76c1a9ed1c5a801a5a7e4
Change-Id: Ib2da78962eaef856f418636c31b0f5c84286244f
Diffstat (limited to 'framework/src/onos/cli/src/main/java/org/onosproject/cli/net/PacketProcessorsListCommand.java')
-rw-r--r--framework/src/onos/cli/src/main/java/org/onosproject/cli/net/PacketProcessorsListCommand.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/PacketProcessorsListCommand.java b/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/PacketProcessorsListCommand.java
new file mode 100644
index 00000000..ff66b803
--- /dev/null
+++ b/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/PacketProcessorsListCommand.java
@@ -0,0 +1,59 @@
+/*
+ * 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.
+ * 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.cli.net;
+
+import org.apache.karaf.shell.commands.Command;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.net.packet.PacketProcessor;
+import org.onosproject.net.packet.PacketService;
+
+import static org.onosproject.net.packet.PacketProcessor.ADVISOR_MAX;
+import static org.onosproject.net.packet.PacketProcessor.DIRECTOR_MAX;
+
+/**
+ * Lists packet processors.
+ */
+@Command(scope = "onos", name = "packet-processors",
+ description = "Lists packet processors")
+public class PacketProcessorsListCommand extends AbstractShellCommand {
+
+ private static final String FMT = "priority=%s, class=%s";
+
+ @Override
+ protected void execute() {
+ PacketService service = get(PacketService.class);
+ if (outputJson()) {
+ // TODO: implement this
+ print("Not implemented.");
+ } else {
+ service.getProcessors().forEach(this::print);
+ }
+ }
+
+ private void print(int priority, PacketProcessor processor) {
+ print(FMT, priorityFormat(priority), processor.getClass().getName());
+ }
+
+ private String priorityFormat(int priority) {
+ if (priority > DIRECTOR_MAX) {
+ return "observer(" + (priority - DIRECTOR_MAX - 1) + ")";
+ } else if (priority > ADVISOR_MAX) {
+ return "director(" + (priority - ADVISOR_MAX - 1) + ")";
+ }
+ return "advisor(" + (priority - 1) + ")";
+ }
+
+}