Implemented the following PW features and fixes:

   - PW support for H-AGG topologies. Support for leaf-spine-spine
     leaf-spine-spine-leaf pseudowires.
   - Renamed pw commands with sr-pw-* pattern and also removed redundant output
    from them.
   - Enabled bulk addition / removal of pws from the rest api.
   - Modified diagnostics tool with the updated command name.

Change-Id: I708db9281d0082b160cbd713910b420ef7df9da3
diff --git a/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java
index 759495b..dc3d7b1 100644
--- a/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java
+++ b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java
@@ -23,6 +23,7 @@
 import org.onosproject.net.PortNumber;
 import org.onosproject.segmentrouting.grouphandler.NextNeighbors;
 import org.onosproject.segmentrouting.mcast.McastRole;
+import org.onosproject.segmentrouting.pwaas.DefaultL2TunnelDescription;
 import org.onosproject.segmentrouting.pwaas.L2Tunnel;
 import org.onosproject.segmentrouting.pwaas.L2TunnelHandler;
 import org.onosproject.segmentrouting.pwaas.L2TunnelPolicy;
@@ -89,6 +90,13 @@
     List<Policy> getPolicies();
 
     /**
+     * Returns the l2 tunnel descriptions.
+     *
+     * @return set of l2 tunnel descriptions.
+     */
+    Set<L2TunnelDescription> getL2TunnelDescriptions();
+
+    /**
      * Returns all l2 tunnels of pseudowires.
      *
      * @return list of l2 tunnels
@@ -103,7 +111,7 @@
     List<L2TunnelPolicy> getL2Policies();
 
     /**
-     * Removes pseudowire. Used ONLY by the REST api.
+     * Removes pseudowire.
      *
      * @param pwId The id of the pseudowire.
      * @return SUCCESS if operation successful or a descriptive error otherwise.
@@ -111,7 +119,7 @@
     L2TunnelHandler.Result removePseudowire(Integer pwId);
 
     /**
-     * Adds a Pseudowire to the configuration.
+     * Adds a Pseudowire to the system.
      *
      * @param tunnel The pseudowire tunnel.
      * @return SUCCESS if operation is successful or a descriptive error otherwise.
@@ -119,6 +127,14 @@
     L2TunnelHandler.Result addPseudowire(L2TunnelDescription tunnel);
 
     /**
+     * Adss a set of pseudowires.
+     * @param l2TunnelDescriptions The pseudowires to add.
+     * @return SUCCESS if ALL pseudowires can be instantiated and are deployed, or a
+     *         a descriptive error otherwise, without deploying any pseudowire.
+     */
+    L2TunnelHandler.Result addPseudowiresBulk(List<DefaultL2TunnelDescription> l2TunnelDescriptions);
+
+    /**
      * Creates a policy.
      *
      * @param policy policy reference to create