* 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; }