diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java
index 105983b..3808ef8 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java
@@ -9,14 +9,17 @@
     private String tunnelId;
     private List<List<String>> labelStack;
     private List<String> dpidGroup;
+    private List<Integer> tunnelPath;
     private String policies;
     
     public SegmentRouterTunnelInfo (String tId,List<List<String>> tunnelRoutes,
-            List<String> dpidsWithGroup,String policiesId){
+            List<String> dpidsWithGroup,List<Integer> path, String policiesId){
         this.tunnelId = tId;
         this.labelStack = tunnelRoutes;
         this.dpidGroup = dpidsWithGroup;
+        this.tunnelPath = path;
         this.policies = policiesId;
+        
     }
     public String getTunnelId (){
         return this.tunnelId;
@@ -27,6 +30,9 @@
     public List<String> getDpidGroup (){
         return this.dpidGroup;
     }
+    public List<Integer> getTunnelPath (){
+        return this.tunnelPath;
+    }
     public String getPolicies (){
         return this.policies;
     }
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
index 32d9cc6..aa9b62f 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
@@ -82,6 +82,7 @@
         List<SegmentRouterTunnelInfo> infoList = new ArrayList<SegmentRouterTunnelInfo>();
         while(ttI.hasNext()){
            TunnelInfo tunnelInfo = ttI.next();
+           List<Integer> tunnelPath = tunnelInfo.getLabelids();
            String tunnelId = tunnelInfo.getTunnelId();
            Collection<PolicyInfo> policies = segmentRoutingService.getPoclicyTable();
            Iterator<PolicyInfo> piI = policies.iterator();
@@ -106,7 +107,7 @@
                dpidGroup.add(label.getSrcSwDpid() + "/"+ gId);
            }
            SegmentRouterTunnelInfo info = new SegmentRouterTunnelInfo(tunnelId,
-                    labelStack, dpidGroup, policiesId);
+                    labelStack, dpidGroup, tunnelPath, policiesId );
            infoList.add(info);
         }
         log.debug("getTunnel with params");
