[AETHER-76] Complete T3 offline mode

- For the performance improvement, T3 offline mode uses snapshots of the network states
called Network Information Base (NIB) instead of runtime interactions with ONOS core
during troubleshooting a Trellis system.
- Enables NIB to be manually filled with the followings via T3-load commands.
  - Static dump files of onos-diagnostics (t3-load-file).
  - Returns of API calls to live ONOS stores (t3-load-snapshot).
- Enables NIB to be auto-filled with live ONOS stores.
  - When T3-execution commands (e.g. pingall) found NIB is invalid.
- Partially tested with some mininet topos for Trellis
(https://github.com/opennetworkinglab/routing/tree/master/trellis).
- Usage instruction docs (https://docs.trellisfabric.org/troubleshooting.html).

Change-Id: I2bb546bdde454a034338cd896388fa0b37d868be
(cherry picked from commit c3803e7fad5fb28ecf3e83253f183a34936be4a0)
diff --git a/apps/t3/app/src/main/java/org/onosproject/t3/api/TroubleshootService.java b/apps/t3/app/src/main/java/org/onosproject/t3/api/TroubleshootService.java
index 9838e04..3ab6052 100644
--- a/apps/t3/app/src/main/java/org/onosproject/t3/api/TroubleshootService.java
+++ b/apps/t3/app/src/main/java/org/onosproject/t3/api/TroubleshootService.java
@@ -36,7 +36,7 @@
      * Requests a static trace be performed between all hosts in the network, given a type of traffic.
      *
      * @param type the etherType of the traffic we want to trace.
-     * @return a trace result
+     * @return trace result
      */
     List<StaticPacketTrace> pingAll(EthType.EtherType type);
 
@@ -44,7 +44,7 @@
      * Requests a static trace be performed between all hosts in the network, given a type of traffic.
      *
      * @param type the etherType of the traffic we want to trace.
-     * @return a trace result
+     * @return trace result
      */
     Generator<Set<StaticPacketTrace>> pingAllGenerator(EthType.EtherType type);
 
@@ -52,7 +52,7 @@
      * Requests a static trace be performed for all mcast Routes in the network.
      *
      * @param vlanId the vlanId configured for multicast.
-     * @return a set of trace result yielded one by one.
+     * @return set of trace result yielded one by one.
      */
     Generator<Set<StaticPacketTrace>> traceMcast(VlanId vlanId);
 
@@ -62,7 +62,7 @@
      * @param sourceHost      source host
      * @param destinationHost destination host
      * @param type            the etherType of the traffic we want to trace.
-     * @return a trace result
+     * @return trace result
      */
     Set<StaticPacketTrace> trace(HostId sourceHost, HostId destinationHost, EthType.EtherType type);
 
@@ -72,7 +72,7 @@
      *
      * @param packet description of packet
      * @param in     point at which packet starts
-     * @return a trace result
+     * @return trace result
      */
     StaticPacketTrace trace(TrafficSelector packet, ConnectPoint in);
 
@@ -80,20 +80,22 @@
      * Requests list of static trace to be performed for all mcast routes in the network.
      *
      * @param vlanId the vlan id configured for multicast
-     * @return a list of trace result
+     * @return list of trace result
      */
     List<Set<StaticPacketTrace>> getMulitcastTrace(VlanId vlanId);
 
     /**
-     * Checks the availability of all NIBs of the manager.
+     * Checks the validity of NIBs applied to the manager.
      *
-     * @return true if any NIB objects is unavailable
+     * @return true only if all NIBs are in the valid state.
      */
-    boolean checkNibsUnavailable();
+    boolean checkNibValidity();
 
     /**
-     * Applies created NIBs to the manager.
+     * Returns a summary describing all the NIBs applied to the manager.
+     *
+     * @return string for the summary
      */
-    void applyNibs();
+    String printNibSummary();
 
 }