-some fixes
-Now instead of tableId CLI show table name (acl,ip,mpls) in 'show switch <dpid> table <tableType>' command
diff --git a/cli/cli/c_actions.py b/cli/cli/c_actions.py
index a767492..7b323fb 100755
--- a/cli/cli/c_actions.py
+++ b/cli/cli/c_actions.py
@@ -2403,8 +2403,8 @@
if 'POP_MPLS' in groupDescEntry['bucketsActions'][bucketId]:
popmpls = groupDescEntry['bucketsActions'][bucketId]['POP_MPLS']
outport = ''
- if 'OUTPPUT' in groupDescEntry['bucketsActions'][bucketId]:
- outport = groupDescEntry['bucketsActions'][bucketId]['OUTPPUT']
+ if 'OUTPUT' in groupDescEntry['bucketsActions'][bucketId]:
+ outport = groupDescEntry['bucketsActions'][bucketId]['OUTPUT']
goToGroup = ''
if 'goToGroup' in groupDescEntry['bucketsActions'][bucketId]:
goToGroup = groupDescEntry['bucketsActions'][bucketId]['goToGroup']
diff --git a/cli/cli/climodelinfo.py b/cli/cli/climodelinfo.py
index 22fdded..438eda8 100755
--- a/cli/cli/climodelinfo.py
+++ b/cli/cli/climodelinfo.py
@@ -309,6 +309,8 @@
'host-alias' : {
'source' : 'user-config',
'cascade_delete' : True,
+ 'fields' : {
+ }
},
diff --git a/cli/cli/desc/version200/policy.py b/cli/cli/desc/version200/policy.py
index 57c29ae..b253ff1 100644
--- a/cli/cli/desc/version200/policy.py
+++ b/cli/cli/desc/version200/policy.py
@@ -47,14 +47,14 @@
},
{
'token' : 'policy-type',
- 'optional-for-no' : True,
+ 'no-supported' : False,
'short-help' : 'Set type of policy',
'doc' : 'policy|policy',
'completion' : 'complete-object-field',
},
{
'field' : 'policy-type',
- 'optional-for-no' : True,
+ 'no-supported' : False,
'type' : 'enum',
'values' : ('tunnel-flow','loadbalanced','avoid','deny'),
'completion' : 'complete-object-field',
diff --git a/src/main/java/net/floodlightcontroller/core/web/OFFlowStatsEntryMod.java b/src/main/java/net/floodlightcontroller/core/web/OFFlowStatsEntryMod.java
index d9095d6..c4b2606 100644
--- a/src/main/java/net/floodlightcontroller/core/web/OFFlowStatsEntryMod.java
+++ b/src/main/java/net/floodlightcontroller/core/web/OFFlowStatsEntryMod.java
@@ -1,23 +1,32 @@
package net.floodlightcontroller.core.web;
+import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.web.serializers.OFFlowStatsEntryModSerializer;
import org.projectfloodlight.openflow.protocol.OFFlowStatsEntry;
-
import org.codehaus.jackson.map.annotate.JsonSerialize;
@JsonSerialize(using = OFFlowStatsEntryModSerializer.class)
public class OFFlowStatsEntryMod {
private OFFlowStatsEntry FlowStatsEntry = null;
+ /*
+ * need switch to get table name so the we could sepcify table name (ip,acl,mpls)
+ * instead of table number
+ */
+ private IOFSwitch sw;
public OFFlowStatsEntryMod() {
}
- public OFFlowStatsEntryMod(OFFlowStatsEntry FlowStatsEntry) {
+ public OFFlowStatsEntryMod(OFFlowStatsEntry FlowStatsEntry, IOFSwitch sw1) {
this.FlowStatsEntry = FlowStatsEntry;
+ this.sw = sw1;
}
public OFFlowStatsEntry getFlowStatsEntry() {
return this.FlowStatsEntry;
}
+ public IOFSwitch getSwitch(){
+ return this.sw;
+ }
}
diff --git a/src/main/java/net/floodlightcontroller/core/web/OFGroupDescStatsEntryMod.java b/src/main/java/net/floodlightcontroller/core/web/OFGroupDescStatsEntryMod.java
index e7ca358..15a230b 100644
--- a/src/main/java/net/floodlightcontroller/core/web/OFGroupDescStatsEntryMod.java
+++ b/src/main/java/net/floodlightcontroller/core/web/OFGroupDescStatsEntryMod.java
@@ -8,17 +8,17 @@
@JsonSerialize(using = OFGroupDescStatsEntryModSerializer.class)
public class OFGroupDescStatsEntryMod {
- private OFGroupDescStatsEntry GroupDescStatsEntry = null;
+ private OFGroupDescStatsEntry GroupDescStatsEntry = null;
- public OFGroupDescStatsEntryMod() {
- }
+ public OFGroupDescStatsEntryMod() {
+ }
- public OFGroupDescStatsEntryMod(OFGroupDescStatsEntry GroupStatsEntry) {
- this.GroupDescStatsEntry = GroupStatsEntry;
- }
+ public OFGroupDescStatsEntryMod(OFGroupDescStatsEntry GroupStatsEntry) {
+ this.GroupDescStatsEntry = GroupStatsEntry;
+ }
- public OFGroupDescStatsEntry getGroupDescStatsEntry() {
- return this.GroupDescStatsEntry;
- }
+ public OFGroupDescStatsEntry getGroupDescStatsEntry() {
+ return this.GroupDescStatsEntry;
+ }
}
diff --git a/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java b/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java
index fd78c1f..56d5355 100644
--- a/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java
+++ b/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java
@@ -103,7 +103,7 @@
future = sw.getStatistics(req);
values = future.get(10, TimeUnit.SECONDS);
for (OFFlowStatsEntry entry : ((OFFlowStatsReply)values.get(0)).getEntries()) {
- OFFlowStatsEntryMod entryMod = new OFFlowStatsEntryMod(entry);
+ OFFlowStatsEntryMod entryMod = new OFFlowStatsEntryMod(entry, sw);
flowStats.add(entryMod);
}
log.debug("Switch flow Stats Entries from switch {} are {}",
@@ -244,7 +244,7 @@
future = sw.getStatistics(req);
values = future.get(10, TimeUnit.SECONDS);
for (OFFlowStatsEntry entry : ((OFFlowStatsReply)values.get(0)).getEntries()) {
- OFFlowStatsEntryMod entryMod = new OFFlowStatsEntryMod(entry);
+ OFFlowStatsEntryMod entryMod = new OFFlowStatsEntryMod(entry, sw);
flowStats.add(entryMod);
}
log.debug("Switch flow Stats Entries for table {} from switch {} are {}",
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 1ce945b..5619702 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OFFlowStatsEntryModSerializer.java
@@ -6,6 +6,7 @@
import java.util.Set;
import net.floodlightcontroller.core.web.OFFlowStatsEntryMod;
+import net.onrc.onos.core.drivermanager.OFSwitchImplSpringOpenTTP;
import net.onrc.onos.core.packet.IPv4;
import org.projectfloodlight.openflow.protocol.action.*;
@@ -36,6 +37,7 @@
JsonGenerationException {
OFFlowStatsEntry flowStatsEntry = FlowStatsEntryMod.getFlowStatsEntry();
OFOxmList matches = ((OFMatchV3)flowStatsEntry.getMatch()).getOxmList();
+ OFSwitchImplSpringOpenTTP sw = (OFSwitchImplSpringOpenTTP)FlowStatsEntryMod.getSwitch();
List<OFInstruction> instructions = flowStatsEntry.getInstructions();
jGen.writeStartObject();
@@ -121,8 +123,22 @@
jGen.writeFieldName(instruction.getType().name());
jGen.writeStartObject();
- jGen.writeNumberField("tableId"
- , ((OFInstructionGotoTable)instruction).getTableId().getValue());
+ if(((OFInstructionGotoTable)instruction).getTableId().getValue()==
+ sw.getTableId("ip").getValue()){
+ jGen.writeStringField("tableId", "ip");
+ }
+ else if(((OFInstructionGotoTable)instruction).getTableId().getValue()==
+ sw.getTableId("mpls").getValue()){
+ jGen.writeStringField("tableId", "mpls");
+ }
+ else if(((OFInstructionGotoTable)instruction).getTableId().getValue()==
+ sw.getTableId("acl").getValue()){
+ jGen.writeStringField("tableId", "acl");
+ }
+ else{
+ jGen.writeNumberField("tableId"
+ , ((OFInstructionGotoTable)instruction).getTableId().getValue());
+ }
jGen.writeEndObject();
continue;
}//*/
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 3b1ca58..e3fec5c 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/OFGroupDescStatsEntryModSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OFGroupDescStatsEntryModSerializer.java
@@ -2,6 +2,7 @@
import java.io.IOException;
import java.util.List;
+import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.web.OFGroupDescStatsEntryMod;
import org.apache.commons.codec.binary.Hex;
@@ -58,12 +59,13 @@
}
}
else if(action.getType().compareTo(OFActionType.OUTPUT) == 0){
- jGen.writeNumberField("OUTPPUT", ((OFActionOutput)action).getPort().getPortNumber());
+ jGen.writeNumberField("OUTPUT", ((OFActionOutput)action).getPort().getPortNumber());
}
else if(action.getType().compareTo(OFActionType.POP_MPLS) == 0){
jGen.writeStringField("POP_MPLS", "0x"+((OFActionPopMpls)action).getEthertype().toString());
}
else if(action.getType().compareTo(OFActionType.GROUP) == 0){
+ ((OFActionGroup)action).getGroup().getGroupNumber();
jGen.writeNumberField("goToGroup", ((OFActionGroup)action).getGroup().getGroupNumber());
}
else if(action.getType().compareTo(OFActionType.COPY_TTL_IN) == 0