* Implement the missing OpenFlow 1.0 matching conditions
* Code cleanup: reorder the implementation of the matching
conditions so the order everywhere is always same and matches the
order of listing those conditions in the OpenFlow-1.0 spec.
diff --git a/src/test/java/net/onrc/onos/ofcontroller/core/internal/TestableGraphDBOperation.java b/src/test/java/net/onrc/onos/ofcontroller/core/internal/TestableGraphDBOperation.java
index 658aaaf..fb5227f 100644
--- a/src/test/java/net/onrc/onos/ofcontroller/core/internal/TestableGraphDBOperation.java
+++ b/src/test/java/net/onrc/onos/ofcontroller/core/internal/TestableGraphDBOperation.java
@@ -416,16 +416,28 @@
public static class TestFlowPath implements IFlowPath {
private String state,type,flowId,installerId,srcSw,dstSw;
private String dataPathSummary,userState;
- private String matchSrcMac,matchDstMac,matchSrcIpaddr,matchDstIpaddr;
- private Short srcPort,dstPort,matchEthernetFrameType;
+ private Short srcPort,dstPort;
+ private String matchSrcMac,matchDstMac;
+ private Short matchEthernetFrameType;
+ private Short matchVlanId;
+ private Byte matchVlanPriority;
+ private String matchSrcIpaddr,matchDstIpaddr;
+ private Byte matchIpProto, matchIpToS;
+ private Short matchSrcTcpUdpPort, matchDstTcpUdpPort;
private List<IFlowEntry> entries;
private List<ISwitchObject> switches;
private String stateToUpdate,typeToUpdate,flowIdToUpdate,installerIdToUpdate,srcSwToUpdate,dstSwToUpdate;
private String dataPathSummaryToUpdate,userStateToUpdate;
- private String matchSrcMacToUpdate,matchDstMacToUpdate,matchSrcIpaddrToUpdate,matchDstIpaddrToUpdate;
- private Short srcPortToUpdate,dstPortToUpdate,matchEthernetFrameTypeToUpdate;
+ private Short srcPortToUpdate,dstPortToUpdate;
+ private String matchSrcMacToUpdate,matchDstMacToUpdate;
+ private Short matchEthernetFrameTypeToUpdate;
+ private Short matchVlanIdToUpdate;
+ private Byte matchVlanPriorityToUpdate;
+ private String matchSrcIpaddrToUpdate,matchDstIpaddrToUpdate;
+ private Byte matchIpProtoToUpdate, matchIpToSToUpdate;
+ private Short matchSrcTcpUdpPortToUpdate, matchDstTcpUdpPortToUpdate;
private List<IFlowEntry> flowsToAdd;
private List<IFlowEntry> flowsToRemove;
@@ -457,13 +469,19 @@
if(dstSwToUpdate != null) { dstSw = dstSwToUpdate; }
if(dataPathSummaryToUpdate != null) { dataPathSummary = dataPathSummaryToUpdate; }
if(userStateToUpdate != null) { userState = userStateToUpdate; }
- if(matchSrcMacToUpdate != null) { matchSrcMac = matchSrcMacToUpdate; }
- if(matchDstMacToUpdate != null) { matchDstMac = matchDstMacToUpdate; }
- if(matchSrcIpaddrToUpdate != null) { matchSrcIpaddr = matchSrcIpaddrToUpdate; }
- if(matchDstIpaddrToUpdate != null) { matchDstIpaddr = matchDstIpaddrToUpdate; }
if(srcPortToUpdate != null) { srcPort = srcPortToUpdate; }
if(dstPortToUpdate != null) { dstPort = dstPortToUpdate; }
+ if(matchSrcMacToUpdate != null) { matchSrcMac = matchSrcMacToUpdate; }
+ if(matchDstMacToUpdate != null) { matchDstMac = matchDstMacToUpdate; }
if(matchEthernetFrameTypeToUpdate != null) { matchEthernetFrameType = matchEthernetFrameTypeToUpdate; }
+ if(matchVlanIdToUpdate != null) { matchVlanId = matchVlanIdToUpdate; }
+ if(matchVlanPriorityToUpdate != null) { matchVlanPriority = matchVlanPriorityToUpdate; }
+ if(matchSrcIpaddrToUpdate != null) { matchSrcIpaddr = matchSrcIpaddrToUpdate; }
+ if(matchDstIpaddrToUpdate != null) { matchDstIpaddr = matchDstIpaddrToUpdate; }
+ if(matchIpProtoToUpdate != null) { matchIpProto = matchIpProtoToUpdate; }
+ if(matchIpToSToUpdate != null) { matchIpToS = matchIpToSToUpdate; }
+ if(matchSrcTcpUdpPortToUpdate != null) { matchSrcTcpUdpPort = matchSrcTcpUdpPortToUpdate; }
+ if(matchDstTcpUdpPortToUpdate != null) { matchDstTcpUdpPort = matchDstTcpUdpPortToUpdate; }
}
public void rollback() {
@@ -476,8 +494,14 @@
stateToUpdate = typeToUpdate = flowIdToUpdate = installerIdToUpdate = null;
srcSwToUpdate = dstSwToUpdate = dataPathSummaryToUpdate = userStateToUpdate = null;
- matchSrcMacToUpdate = matchDstMacToUpdate = matchSrcIpaddrToUpdate = matchDstIpaddrToUpdate = null;
- srcPortToUpdate = dstPortToUpdate = matchEthernetFrameTypeToUpdate = null;
+ srcPortToUpdate = dstPortToUpdate = null;
+ matchSrcMacToUpdate = matchDstMacToUpdate = null;
+ matchEthernetFrameTypeToUpdate = null;
+ matchVlanIdToUpdate = null;
+ matchVlanPriorityToUpdate = null;
+ matchSrcIpaddrToUpdate = matchDstIpaddrToUpdate = null;
+ matchIpProtoToUpdate = matchIpToSToUpdate = null;
+ matchSrcTcpUdpPortToUpdate = matchDstTcpUdpPortToUpdate = null;
}
// Setter methods for test
@@ -489,13 +513,19 @@
public void setDstSwForTest(String dstSw) { this.dstSw = dstSw; }
public void setDataPathSummaryForTest(String dataPathSummary) { this.dataPathSummary = dataPathSummary; }
public void setUserStateForTest(String userState) { this.userState = userState; }
- public void setMatchSrcMacForTest(String matchSrcMac) { this.matchSrcMac = matchSrcMac; }
- public void setMatchDstMacForTest(String matchDstMac) { this.matchDstMac = matchDstMac; }
- public void setMatchSrcIpaddrForTest(String matchSrcIpaddr) { this.matchSrcIpaddr = matchSrcIpaddr; }
- public void setMatchDstIpaddrForTest(String matchDstIpaddr) { this.matchDstIpaddr = matchDstIpaddr; }
public void setSrcPortForTest(Short srcPort) { this.srcPort = srcPort; }
public void setDstPortForTest(Short dstPort) { this.dstPort = dstPort; }
+ public void setMatchSrcMacForTest(String matchSrcMac) { this.matchSrcMac = matchSrcMac; }
+ public void setMatchDstMacForTest(String matchDstMac) { this.matchDstMac = matchDstMac; }
public void setMatchEthernetFrameTypeForTest(Short matchEthernetFrameType) { this.matchEthernetFrameType = matchEthernetFrameType; }
+ public void setMatchVlanIdForTest(Short matchVlanId) { this.matchVlanId = matchVlanId; }
+ public void setMatchVlanPriorityForTest(Byte matchVlanPriority) { this.matchVlanPriority = matchVlanPriority; }
+ public void setMatchSrcIpaddrForTest(String matchSrcIpaddr) { this.matchSrcIpaddr = matchSrcIpaddr; }
+ public void setMatchDstIpaddrForTest(String matchDstIpaddr) { this.matchDstIpaddr = matchDstIpaddr; }
+ public void setMatchIpProtoForTest(Byte matchIpProto) { this.matchIpProto = matchIpProto; }
+ public void setMatchIpToSForTest(Byte matchIpToS) { this.matchIpToS = matchIpToS; }
+ public void setMatchSrcTcpUdpPortForTest(Short matchSrcTcpUdpPort) { this.matchSrcTcpUdpPort = matchSrcTcpUdpPort; }
+ public void setMatchDstTcpUdpPortForTest(Short matchDstTcpUdpPort) { this.matchDstTcpUdpPort = matchDstTcpUdpPort; }
public void addFlowEntryForTest(IFlowEntry entry) { entries.add(entry); }
public void addSwitchForTest(ISwitchObject sw) { switches.add(sw); }
@@ -577,13 +607,6 @@
}
@Override
- public Short getMatchEthernetFrameType() { return matchEthernetFrameType; }
-
- @Override
- public void setMatchEthernetFrameType(Short matchEthernetFrameType) {
- matchEthernetFrameTypeToUpdate = matchEthernetFrameType; }
-
- @Override
public String getMatchSrcMac() { return matchSrcMac; }
@Override
@@ -596,6 +619,27 @@
public void setMatchDstMac(String matchDstMac) { matchDstMacToUpdate = matchDstMac; }
@Override
+ public Short getMatchEthernetFrameType() { return matchEthernetFrameType; }
+
+ @Override
+ public void setMatchEthernetFrameType(Short matchEthernetFrameType) {
+ matchEthernetFrameTypeToUpdate = matchEthernetFrameType; }
+
+ @Override
+ public Short getMatchVlanId() { return matchVlanId; }
+
+ @Override
+ public void setMatchVlanId(Short matchVlanId) {
+ matchVlanIdToUpdate = matchVlanId; }
+
+ @Override
+ public Byte getMatchVlanPriority() { return matchVlanPriority; }
+
+ @Override
+ public void setMatchVlanPriority(Byte matchVlanPriority) {
+ matchVlanPriorityToUpdate = matchVlanPriority; }
+
+ @Override
public String getMatchSrcIPv4Net() { return matchSrcIpaddr; }
@Override
@@ -610,6 +654,34 @@
matchDstIpaddrToUpdate = matchDstIPv4Net; }
@Override
+ public Byte getMatchIpProto() { return matchIpProto; }
+
+ @Override
+ public void setMatchIpProto(Byte matchIpProto) {
+ matchIpProtoToUpdate = matchIpProto; }
+
+ @Override
+ public Byte getMatchIpToS() { return matchIpToS; }
+
+ @Override
+ public void setMatchIpToS(Byte matchIpToS) {
+ matchIpToSToUpdate = matchIpToS; }
+
+ @Override
+ public Short getMatchSrcTcpUdpPort() { return matchSrcTcpUdpPort; }
+
+ @Override
+ public void setMatchSrcTcpUdpPort(Short matchSrcTcpUdpPort) {
+ matchSrcTcpUdpPortToUpdate = matchSrcTcpUdpPort; }
+
+ @Override
+ public Short getMatchDstTcpUdpPort() { return matchDstTcpUdpPort; }
+
+ @Override
+ public void setMatchDstTcpUdpPort(Short matchDstTcpUdpPort) {
+ matchDstTcpUdpPortToUpdate = matchDstTcpUdpPort; }
+
+ @Override
public Iterable<ISwitchObject> getSwitches() { return switches; }
@Override
@@ -621,8 +693,15 @@
public static class TestFlowEntry implements IFlowEntry {
private String state,type,entryId,dpid,userState,switchState,errorStateType,errorStateCode;
- private String matchSrcMac,matchDstMac,matchSrcIpaddr,matchDstIpaddr;
- private Short matchInPort,matchEtherFrameType,actionOutput;
+ private Short matchInPort;
+ private String matchSrcMac,matchDstMac;
+ private Short matchEtherFrameType;
+ private Short matchVlanId;
+ private Byte matchVlanPriority;
+ private String matchSrcIpaddr,matchDstIpaddr;
+ private Byte matchIpProto, matchIpToS;
+ private Short matchSrcTcpUdpPort, matchDstTcpUdpPort;
+ private Short actionOutput;
private IFlowPath flowPath;
private ISwitchObject sw;
@@ -630,9 +709,15 @@
private String stateToUpdate,typeToUpdate,entryIdToUpdate,dpidToUpdate,
userStateToUpdate,switchStateToUpdate,errorStateTypeToUpdate,errorStateCodeToUpdate;
- private String matchSrcMacToUpdate,matchDstMacToUpdate,matchSrcIpaddrToUpdate,matchDstIpaddrToUpdate;
-
- private Short matchInPortToUpdate,matchEtherFrameTypeToUpdate,actionOutputToUpdate;
+ private Short matchInPortToUpdate;
+ private String matchSrcMacToUpdate,matchDstMacToUpdate;
+ private Short matchEtherFrameTypeToUpdate;
+ private Short matchVlanIdToUpdate;
+ private Byte matchVlanPriorityToUpdate;
+ private String matchSrcIpaddrToUpdate,matchDstIpaddrToUpdate;
+ private Byte matchIpProtoToUpdate, matchIpToSToUpdate;
+ private Short matchSrcTcpUdpPortToUpdate, matchDstTcpUdpPortToUpdate;
+ private Short actionOutputToUpdate;
private IFlowPath flowPathToUpdate;
private ISwitchObject swToUpdate;
@@ -653,12 +738,18 @@
if(switchStateToUpdate != null) { switchState = switchStateToUpdate; }
if(errorStateTypeToUpdate != null) { errorStateType = errorStateTypeToUpdate; }
if(errorStateCodeToUpdate != null) { errorStateCode = errorStateCodeToUpdate; }
+ if(matchInPortToUpdate != null) { matchInPort = matchInPortToUpdate; }
if(matchSrcMacToUpdate != null) { matchSrcMac = matchSrcMacToUpdate; }
if(matchDstMacToUpdate != null) { matchDstMac = matchDstMacToUpdate; }
+ if(matchEtherFrameTypeToUpdate != null) { matchEtherFrameType = matchEtherFrameTypeToUpdate; }
+ if(matchVlanIdToUpdate != null) { matchVlanId = matchVlanIdToUpdate; }
+ if(matchVlanPriorityToUpdate != null) { matchVlanPriority = matchVlanPriorityToUpdate; }
if(matchSrcIpaddrToUpdate != null) { matchSrcIpaddr = matchSrcIpaddrToUpdate; }
if(matchDstIpaddrToUpdate != null) { matchDstIpaddr = matchDstIpaddrToUpdate; }
- if(matchInPortToUpdate != null) { matchInPort = matchInPortToUpdate; }
- if(matchEtherFrameTypeToUpdate != null) { matchEtherFrameType = matchEtherFrameTypeToUpdate; }
+ if(matchIpProtoToUpdate != null) { matchIpProto = matchIpProtoToUpdate; }
+ if(matchIpToSToUpdate != null) { matchIpToS = matchIpToSToUpdate; }
+ if(matchSrcTcpUdpPortToUpdate != null) { matchSrcTcpUdpPort = matchSrcTcpUdpPortToUpdate; }
+ if(matchDstTcpUdpPortToUpdate != null) { matchDstTcpUdpPort = matchDstTcpUdpPortToUpdate; }
if(actionOutputToUpdate != null) { actionOutput = actionOutputToUpdate; }
if(flowPathToUpdate != null) { flowPath = flowPathToUpdate; }
@@ -676,8 +767,15 @@
public void clearUncommitedData() {
stateToUpdate = typeToUpdate = entryIdToUpdate = dpidToUpdate = null;
userStateToUpdate = switchStateToUpdate = errorStateTypeToUpdate = errorStateCodeToUpdate = null;
- matchSrcMacToUpdate = matchDstMacToUpdate = matchSrcIpaddrToUpdate = matchDstIpaddrToUpdate = null;
- matchInPortToUpdate = matchEtherFrameTypeToUpdate = actionOutputToUpdate = null;
+ matchInPortToUpdate = null;
+ matchSrcMacToUpdate = matchDstMacToUpdate = null;
+ matchEtherFrameTypeToUpdate = null;
+ matchVlanIdToUpdate = null;
+ matchVlanPriorityToUpdate = null;
+ matchSrcIpaddrToUpdate = matchDstIpaddrToUpdate = null;
+ matchIpProtoToUpdate = matchIpToSToUpdate = null;
+ matchSrcTcpUdpPortToUpdate = matchDstTcpUdpPortToUpdate = null;
+ actionOutputToUpdate = null;
flowPathToUpdate = null;
swToUpdate = null;
inportToUpdate = outportToUpdate = null;
@@ -692,12 +790,18 @@
public void setSwitchStateForTest(String switchState) { this.switchState = switchState; }
public void setErrorStateTypeForTest(String errorStateType) { this.errorStateType = errorStateType; }
public void setErrorStateCodeForTest(String errorStateCode) { this.errorStateCode = errorStateCode; }
+ public void setMatchInPortForTest(Short matchInPort) { this.matchInPort = matchInPort; }
public void setMatchSrcMacForTest(String matchSrcMac) { this.matchSrcMac = matchSrcMac; }
public void setMatchDstMacForTest(String matchDstMac) { this.matchDstMac = matchDstMac; }
+ public void setMatchEtherFrameTypeForTest(Short matchEtherFrameType) { this.matchEtherFrameType = matchEtherFrameType; }
+ public void setMatchVlanIdForTest(Short matchVlanId) { this.matchVlanId = matchVlanId; }
+ public void setMatchVlanPriorityForTest(Byte matchVlanPriority) { this.matchVlanPriority = matchVlanPriority; }
public void setMatchSrcIpaddrForTest(String matchSrcIpaddr) { this.matchSrcIpaddr = matchSrcIpaddr; }
public void setMatchDstIpaddrForTest(String matchDstIpaddr) { this.matchDstIpaddr = matchDstIpaddr; }
- public void setMatchInPortForTest(Short matchInPort) { this.matchInPort = matchInPort; }
- public void setMatchEtherFrameTypeForTest(Short matchEtherFrameType) { this.matchEtherFrameType = matchEtherFrameType; }
+ public void setMatchIpProtoForTest(Byte matchIpProto) { this.matchIpProto = matchIpProto; }
+ public void setMatchIpToSForTest(Byte matchIpToS) { this.matchIpToS = matchIpToS; }
+ public void setMatchSrcTcpUdpPortForTest(Short matchSrcTcpUdpPort) { this.matchSrcTcpUdpPort = matchSrcTcpUdpPort; }
+ public void setMatchDstTcpUdpPortForTest(Short matchDstTcpUdpPort) { this.matchDstTcpUdpPort = matchDstTcpUdpPort; }
public void setActionOutputForTest(Short actionOutput) { this.actionOutput = actionOutput; }
public void setFlowPathForTest(IFlowPath flowPath) { this.flowPath = flowPath; }
public void setSwitchForTest(ISwitchObject sw) { this.sw = sw; }
@@ -765,12 +869,6 @@
public void setMatchInPort(Short matchInPort) { matchInPortToUpdate = matchInPort; }
@Override
- public Short getMatchEthernetFrameType() {return matchEtherFrameType; }
-
- @Override
- public void setMatchEthernetFrameType(Short matchEthernetFrameType) { matchEtherFrameTypeToUpdate = matchEthernetFrameType; }
-
- @Override
public String getMatchSrcMac() { return matchSrcMac; }
@Override
@@ -781,8 +879,26 @@
@Override
public void setMatchDstMac(String matchDstMac) { matchDstMacToUpdate = matchDstMac; }
+
+ @Override
+ public Short getMatchEthernetFrameType() {return matchEtherFrameType; }
@Override
+ public void setMatchEthernetFrameType(Short matchEthernetFrameType) { matchEtherFrameTypeToUpdate = matchEthernetFrameType; }
+
+ @Override
+ public Short getMatchVlanId() {return matchVlanId; }
+
+ @Override
+ public void setMatchVlanId(Short matchVlanId) { matchVlanId = matchVlanId; }
+
+ @Override
+ public Byte getMatchVlanPriority() {return matchVlanPriority; }
+
+ @Override
+ public void setMatchVlanPriority(Byte matchVlanPriority) { matchVlanPriority = matchVlanPriority; }
+
+ @Override
public String getMatchSrcIPv4Net() { return matchSrcIpaddr; }
@Override
@@ -793,6 +909,30 @@
@Override
public void setMatchDstIPv4Net(String matchDstIPv4Net) { matchDstIpaddrToUpdate = matchDstIPv4Net; }
+
+ @Override
+ public Byte getMatchIpProto() {return matchIpProto; }
+
+ @Override
+ public void setMatchIpProto(Byte matchIpProto) { matchIpProto = matchIpProto; }
+
+ @Override
+ public Byte getMatchIpToS() {return matchIpToS; }
+
+ @Override
+ public void setMatchIpToS(Byte matchIpToS) { matchIpToS = matchIpToS; }
+
+ @Override
+ public Short getMatchSrcTcpUdpPort() {return matchSrcTcpUdpPort; }
+
+ @Override
+ public void setMatchSrcTcpUdpPort(Short matchSrcTcpUdpPort) { matchSrcTcpUdpPortToUpdate = matchSrcTcpUdpPort; }
+
+ @Override
+ public Short getMatchDstTcpUdpPort() {return matchDstTcpUdpPort; }
+
+ @Override
+ public void setMatchDstTcpUdpPort(Short matchDstTcpUdpPort) { matchDstTcpUdpPortToUpdate = matchDstTcpUdpPort; }
@Override
public Short getActionOutput() { return actionOutput; }