Added SetBot in GroupStats, Removed Pop from group, removed unwanted action from table stats, added Id filed in Router stats
diff --git a/cli/cli/c_actions.py b/cli/cli/c_actions.py
index 4e31679..9f99f3d 100755
--- a/cli/cli/c_actions.py
+++ b/cli/cli/c_actions.py
@@ -2256,8 +2256,8 @@
                 if 'SET_DL_DST' in groupDescEntry['bucketsActions'][bucketId]:
                     setdstmac = groupDescEntry['bucketsActions'][bucketId]['SET_DL_DST']
                 pushmpls = '*'
-                if 'PUSH_MPLS' in groupDescEntry['bucketsActions'][bucketId]:
-                    pushmpls = groupDescEntry['bucketsActions'][bucketId]['PUSH_MPLS']
+                if 'PUSH_MPLS_LABEL' in groupDescEntry['bucketsActions'][bucketId]:
+                    pushmpls = groupDescEntry['bucketsActions'][bucketId]['PUSH_MPLS_LABEL']
                 popmpls = '*'
                 if 'POP_MPLS' in groupDescEntry['bucketsActions'][bucketId]:
                     popmpls = groupDescEntry['bucketsActions'][bucketId]['POP_MPLS']
@@ -2267,6 +2267,9 @@
                 goToGroup = '*'
                 if 'goToGroup' in groupDescEntry['bucketsActions'][bucketId]:
                     goToGroup = groupDescEntry['bucketsActions'][bucketId]['goToGroup']
+                setBos= None
+                if 'PUSH_MPLS_BOS' in groupDescEntry['bucketsActions'][bucketId]:
+                    setBos = groupDescEntry['bucketsActions'][bucketId]['PUSH_MPLS_BOS']
                 combResult.append({
                        'groupid'       : groupId,
                        'grouptype'     : groupDescEntry['groupType'],
@@ -2276,10 +2279,11 @@
                        'bucketbytecnt' : groupStatEntry['bucketStats'][bucketId]['byteCount'],
                        'setsrcmac'     : setsrcmac,
                        'setdstmac'     : setdstmac,
-                       'pushmpls'     : pushmpls,
+                       'pushMplsLabel'     : pushmpls,
                        'popmpls'     : popmpls,
                        'outport'     : outport,
                        'goToGroup'     : goToGroup,
+                       'setBos'     : setBos,
                     })
         entries = combResult
     #
diff --git a/cli/cli/desc/version200/core.py b/cli/cli/desc/version200/core.py
index df2b3f0..84a0e3f 100755
--- a/cli/cli/desc/version200/core.py
+++ b/cli/cli/desc/version200/core.py
@@ -2335,12 +2335,12 @@
             'default' : [ 'Idx', 'groupid', 'grouptype', 'totalpktcnt', 'totalbytecnt',
                           'bucketpktcnt', 'bucketbytecnt', 
                           'setsrcmac', 'setdstmac',
-                          'pushmpls', 'popmpls',
+                          'pushMplslabel', 'setBos',
                           'outport','goToGroup'],
             'scoped' : [ 'Idx', 'groupid', 'grouptype', 'totalpktcnt', 'totalbytecnt',
                           'bucketpktcnt', 'bucketbytecnt', 
                           'setsrcmac', 'setdstmac',
-                          'pushmpls', 'popmpls',
+                          'pushMplsLabel','setBos',
                           'outport','goToGroup' ],
             },
         'fields': {
@@ -2364,9 +2364,9 @@
                                       },
             'setdstmac'           : { 'verbose-name' : 'set_dst_mac',
                                       },
-            'pushmpls'            : { 'verbose-name' : 'push_mpls',
+            'pushMplsLabel'            : { 'verbose-name' : 'push_mpls',
                                      },
-            'popmpls'             : { 'verbose-name' : 'pop_mpls',
+            'setBos'              : { 'verbose-name' : 'setBos',
                                      },
             'outport'             : { 'verbose-name' : 'outport',
                                      },
@@ -2501,7 +2501,7 @@
 ROUTER_FORMAT = {
     'router'     : {
         'field-orderings' : {
-            'default' : ['dpid','name', 'routerIP','routerMac','isEdgeRouter','nodeSId'
+            'default' : ['Idx','dpid','name', 'routerIP','routerMac','isEdgeRouter','nodeSId'
                          ],
             },
         'fields': {
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
index 6080cb4..f3bca85 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
@@ -142,7 +142,7 @@
                     else{
                         jGen.writeNumberField("output", ((OFActionOutput)action).getPort().getPortNumber());
                     }
-                }
+                }/*
                 else if(action.getType().compareTo(OFActionType.POP_MPLS) == 0
                         || action.getType().compareTo(OFActionType.COPY_TTL_IN) == 0
                         || action.getType().compareTo(OFActionType.COPY_TTL_OUT) == 0
@@ -151,9 +151,9 @@
                         || action.getType().compareTo(OFActionType.POP_PBB) == 0
                         || action.getType().compareTo(OFActionType.POP_VLAN) == 0){
                     jGen.writeStringField(action.getType().name(), "True");
-                }
-                else if(action.getType().compareTo(OFActionType.COPY_TTL_IN) == 0){
-                    jGen.writeStringField("POP_MPLS", "True");
+                }*/
+                else if(action.getType().compareTo(OFActionType.POP_MPLS) == 0){
+                    jGen.writeStringField("POP_MPLS", ((OFActionPopMpls)action).getEthertype().toString());
                 }
                 else if (action.getType().equals(OFActionType.SET_FIELD)){
                     //TODO Support for more setFields
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/OFGroupDescStatsEntryModSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/OFGroupDescStatsEntryModSerializer.java
index dadf82f..ade65fa 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/OFGroupDescStatsEntryModSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OFGroupDescStatsEntryModSerializer.java
@@ -49,15 +49,19 @@
                         jGen.writeStringField("SET_DL_DST", ((OFActionSetField)action).getField().getValue().toString());
                     }
                     else if (((OFActionSetField)action).getField().toString().contains("OFOxmMplsLabelVer13")){
-                        jGen.writeNumberField("PUSH_MPLS", 
+                        jGen.writeNumberField("PUSH_MPLS_LABEL", 
                                 Integer.decode(((OFActionSetField)action).getField().getValue().toString()));
                     }
+                    else if (((OFActionSetField)action).getField().toString().contains("OFOxmMplsBosVer13")){
+                        jGen.writeStringField("PUSH_MPLS_BOS", 
+                                ((OFActionSetField)action).getField().getValue().toString());
+                    }
                 }
                 else if(action.getType().compareTo(OFActionType.OUTPUT) == 0){
                     jGen.writeNumberField("OUTPPUT", ((OFActionOutput)action).getPort().getPortNumber());
                 }
                 else if(action.getType().compareTo(OFActionType.POP_MPLS) == 0){
-                    jGen.writeStringField("POP_MPLS", "True");
+                    jGen.writeStringField("POP_MPLS",  ((OFActionPopMpls)action).getEthertype().toString());
                 }
                 else if(action.getType().compareTo(OFActionType.GROUP) == 0){
                     jGen.writeNumberField("goToGroup", ((OFActionGroup)action).getGroup().getGroupNumber());
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRoutingWebRoutable.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRoutingWebRoutable.java
index b0fff02..119df92 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRoutingWebRoutable.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRoutingWebRoutable.java
@@ -15,7 +15,7 @@
     @Override
     public Restlet getRestlet(Context context) {
         Router router = new Router(context);
-        //TODO: rewrite SwitchesResource for router specific info.
+        //TODO: rewrite Router/SwitchesResource for router specific info.
         router.attach("/routers",  RouterStatisticsResource.class);
         router.attach("/router/{routerId}/{statsType}",  RouterStatisticsResource.class);
         router.attach("/tunnel", SegmentRouterTunnelResource.class);