[CORD-2635][CORD-2632] Handle Clear Deferred actions. Support for DHCP packets trace. Output optimization to handle also gateways

Change-Id: Ief37895b8b80ecb10274deac506c3d0c8c127e6d
(cherry picked from commit 603a50f706beda9c720c801b66c1a14a200945af)
diff --git a/apps/t3/src/main/java/org/onosproject/t3/cli/TroubleshootTraceCommand.java b/apps/t3/src/main/java/org/onosproject/t3/cli/TroubleshootTraceCommand.java
index bdd67d1..7387c5f 100644
--- a/apps/t3/src/main/java/org/onosproject/t3/cli/TroubleshootTraceCommand.java
+++ b/apps/t3/src/main/java/org/onosproject/t3/cli/TroubleshootTraceCommand.java
@@ -88,9 +88,18 @@
     @Option(name = "-ml", aliases = "--mplsLabel", description = "Mpls label of incoming packet")
     String mplsLabel = null;
 
-    @Option(name = "-mb", aliases = "--mplsBos", description = "MPLS BOS", valueToShowInHelp = "True")
+    @Option(name = "-mb", aliases = "--mplsBos", description = "MPLS BOS")
     String mplsBos = null;
 
+    @Option(name = "-ipp", aliases = "--ipProto", description = "IP Proto")
+    String ipProto = null;
+
+    @Option(name = "-udps", aliases = "--udpSrc", description = "UDP Source")
+    String udpSrc = null;
+
+    @Option(name = "-udpd", aliases = "--udpDst", description = "UDP Destination")
+    String udpDst = null;
+
     @Override
     protected void execute() {
         TroubleshootService service = get(TroubleshootService.class);
@@ -146,6 +155,19 @@
             selectorBuilder.matchMplsBos(Boolean.valueOf(mplsBos));
         }
 
+        if (ipProto != null) {
+            selectorBuilder.matchIPProtocol(Byte.valueOf(ipProto));
+        }
+
+        if (udpSrc != null) {
+            selectorBuilder.matchUdpSrc(TpPort.tpPort(Integer.parseInt(udpSrc)));
+        }
+
+        if (udpDst != null) {
+            selectorBuilder.matchUdpDst(TpPort.tpPort(Integer.parseInt(udpDst)));
+        }
+
+
         TrafficSelector packet = selectorBuilder.build();
 
         //Printing the created packet