-some fixes
-Now instead of tableId CLI show table name (acl,ip,mpls) in 'show switch <dpid> table <tableType>' command
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