ErrorMessage - int values for type and code provided 58/3258/1
authorMichal Polkorab <michal.polkorab@pantheon.sk>
Fri, 29 Nov 2013 16:31:52 +0000 (17:31 +0100)
committerMichal Polkorab <michal.polkorab@pantheon.sk>
Fri, 29 Nov 2013 16:34:43 +0000 (17:34 +0100)
Signed-off-by: Michal Polkorab <michal.polkorab@pantheon.sk>
openflow-protocol-api/src/main/yang/openflow-protocol.yang
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10ErrorMessageFactory.java
openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactoryTest.java

index e4501ab1e8853b398c5c719c469c751250935c32..8a0cdc8d7640f9660410990d75f7e68ae331bb51 100644 (file)
@@ -183,9 +183,15 @@ module openflow-protocol {
                 uses ofHeader;\r
                 \r
                 leaf type {\r
-                    type string;\r
+                    type uint16;\r
                 }\r
                 leaf code {\r
+                    type uint16;\r
+                }\r
+                leaf type-string {\r
+                    type string;\r
+                }\r
+                leaf code-string {\r
                     type string;\r
                 }\r
                 leaf data {\r
index 45705144e18eacd80e02716b481a532129653f33..45c30ef9c1577a08c02758a8daedb4f56a9864a1 100644 (file)
@@ -31,6 +31,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  */\r
 public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {\r
 \r
+    private static final String UNKNOWN_CODE = "UNKNOWN_CODE";\r
+    private static final String UNKNOWN_TYPE = "UNKNOWN_TYPE";\r
+    private static final int NO_CORRECT_ENUM_FOUND_VALUE = -1;\r
+    \r
     private static ErrorMessageFactory instance;\r
     \r
     private ErrorMessageFactory() {\r
@@ -69,7 +73,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             HelloFailedCode code = HelloFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -77,7 +82,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             BadRequestCode code = BadRequestCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -85,7 +91,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             BadActionCode code = BadActionCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -93,7 +100,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             BadInstructionCode code = BadInstructionCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -101,7 +109,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             BadMatchCode code = BadMatchCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -109,7 +118,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             FlowModFailedCode code = FlowModFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -117,7 +127,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             GroupModFailedCode code = GroupModFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -125,7 +136,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             PortModFailedCode code = PortModFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -133,7 +145,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             TableModFailedCode code = TableModFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -141,7 +154,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             QueueOpFailedCode code = QueueOpFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -149,7 +163,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             SwitchConfigFailedCode code = SwitchConfigFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -157,7 +172,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             RoleRequestFailedCode code = RoleRequestFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -165,7 +181,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             MeterModFailedCode code = MeterModFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -173,7 +190,8 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
         {\r
             TableFeaturesFailedCode code = TableFeaturesFailedCode.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -184,16 +202,19 @@ public class ErrorMessageFactory implements OFDeserializer<ErrorMessage> {
             builder.addAugmentation(ExperimenterError.class, expBuilder.build());\r
             break;\r
         default:\r
-            builder.setCode("UNKNOWN_CODE");\r
+            builder.setCode(NO_CORRECT_ENUM_FOUND_VALUE);\r
+            builder.setCodeString(UNKNOWN_CODE);\r
             break;\r
         }\r
     }\r
 \r
     private static void decodeType(ErrorMessageBuilder builder, ErrorType type) {\r
         if (type != null) {\r
-            builder.setType(type.name());\r
+            builder.setType(type.getIntValue());\r
+            builder.setTypeString(type.name());\r
         } else {\r
-            builder.setType("UNKNOWN_TYPE");\r
+            builder.setType(NO_CORRECT_ENUM_FOUND_VALUE);\r
+            builder.setTypeString(UNKNOWN_TYPE);\r
         }\r
     }\r
 \r
index f7fc25df0edfa55594594b850e33aff08ed4c659..910070e38a0c105283be3e2b37ffaccd255006fa 100644 (file)
@@ -20,7 +20,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  */\r
 public class OF10ErrorMessageFactory implements OFDeserializer<ErrorMessage> {\r
 \r
-private static OF10ErrorMessageFactory instance;\r
+    private static final String UNKNOWN_TYPE = "UNKNOWN_TYPE";\r
+    private static final String UNKNOWN_CODE = "UNKNOWN_CODE";\r
+    private static final int NO_CORRECT_ENUM_FOUND_VALUE = -1;\r
+    \r
+    private static OF10ErrorMessageFactory instance;\r
     \r
     private OF10ErrorMessageFactory() {\r
         // do nothing, just singleton\r
@@ -57,7 +61,8 @@ private static OF10ErrorMessageFactory instance;
         {\r
             HelloFailedCodeV10 code = HelloFailedCodeV10.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -65,7 +70,8 @@ private static OF10ErrorMessageFactory instance;
         {\r
             BadRequestCodeV10 code = BadRequestCodeV10.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -73,7 +79,8 @@ private static OF10ErrorMessageFactory instance;
         {\r
             BadActionCodeV10 code = BadActionCodeV10.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -81,7 +88,8 @@ private static OF10ErrorMessageFactory instance;
         {\r
             FlowModFailedCodeV10 code = FlowModFailedCodeV10.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -89,7 +97,8 @@ private static OF10ErrorMessageFactory instance;
         {\r
             PortModFailedCodeV10 code = PortModFailedCodeV10.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
@@ -97,21 +106,25 @@ private static OF10ErrorMessageFactory instance;
         {\r
             QueueOpFailedCodeV10 code = QueueOpFailedCodeV10.forValue(rawMessage.readUnsignedShort());\r
             if (code != null) {\r
-                builder.setCode(code.name());\r
+                builder.setCode(code.getIntValue());\r
+                builder.setCodeString(code.name());\r
             }\r
             break;\r
         }\r
         default:\r
-            builder.setCode("UNKNOWN_CODE");\r
+            builder.setCode(NO_CORRECT_ENUM_FOUND_VALUE);\r
+            builder.setCodeString(UNKNOWN_CODE);\r
             break;\r
         }\r
     }\r
 \r
     private static void decodeType(ErrorMessageBuilder builder, ErrorTypeV10 type) {\r
         if (type != null) {\r
-            builder.setType(type.name());\r
+            builder.setType(NO_CORRECT_ENUM_FOUND_VALUE);\r
+            builder.setTypeString(type.name());\r
         } else {\r
-            builder.setType("UNKNOWN_TYPE");\r
+            builder.setType(NO_CORRECT_ENUM_FOUND_VALUE);\r
+            builder.setTypeString(UNKNOWN_TYPE);\r
         }\r
     }\r
 \r
index 43f7ebcbfa824853724dc6c2b264a1c29d244b61..7b9f3532f9ab9102b4c9299b8b55b1aa0e07fd25 100644 (file)
@@ -23,8 +23,10 @@ public class ErrorMessageFactoryTest {
         ErrorMessage builtByFactory = BufferHelper.decodeV13(ErrorMessageFactory.getInstance(), bb);
         BufferHelper.checkHeaderV13(builtByFactory);
         
-        Assert.assertEquals("Wrong reason", "BADMATCH", builtByFactory.getType());
-        Assert.assertEquals("Wrong code", "BADDLADDRMASK", builtByFactory.getCode());
+        Assert.assertEquals("Wrong type", 4, builtByFactory.getType().intValue());
+        Assert.assertEquals("Wrong code", 3, builtByFactory.getCode().intValue());
+        Assert.assertEquals("Wrong type", "BADMATCH", builtByFactory.getTypeString());
+        Assert.assertEquals("Wrong code", "BADDLADDRMASK", builtByFactory.getCodeString());
         Assert.assertArrayEquals("Wrong body", new byte[]{0x01, 0x02, 0x03, 0x04}, builtByFactory.getData());
     }
 }