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);