Added support for OF 1.0
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / FeaturesReplyMessageFactory.java
index 5936c90e3277486f80753bb1d54ec1ac4b24e71c..d83eb2029b277b1097bea1e6838456c6c1c07497 100644 (file)
@@ -6,6 +6,7 @@ import io.netty.buffer.ByteBuf;
 import java.math.BigInteger;\r
 \r
 import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Capabilities;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;\r
 \r
@@ -45,9 +46,21 @@ public class FeaturesReplyMessageFactory implements OFDeserializer<GetFeaturesOu
         builder.setTables(rawMessage.readUnsignedByte());\r
         builder.setAuxiliaryId(rawMessage.readUnsignedByte());\r
         rawMessage.skipBytes(PADDING_IN_FEATURES_REPLY_HEADER);\r
-        builder.setCapabilities(rawMessage.readUnsignedInt());\r
+        builder.setCapabilities(createCapabilities(rawMessage.readUnsignedInt()));\r
         builder.setReserved(rawMessage.readUnsignedInt());\r
         return builder.build();\r
     }\r
 \r
+    private static Capabilities createCapabilities(long input) {\r
+        final Boolean FLOW_STATS = (input & (1 << 0)) != 0;\r
+        final Boolean TABLE_STATS = (input & (1 << 1)) != 0;\r
+        final Boolean PORT_STATS = (input & (1 << 2)) != 0;\r
+        final Boolean GROUP_STATS = (input & (1 << 3)) != 0;\r
+        final Boolean IP_REASM = (input & (1 << 5)) != 0;\r
+        final Boolean QUEUE_STATS = (input & (1 << 6)) != 0;\r
+        final Boolean PORT_BLOCKED = (input & (1 << 8)) != 0;\r
+        return new Capabilities(FLOW_STATS, GROUP_STATS, IP_REASM,\r
+                PORT_BLOCKED, PORT_STATS, QUEUE_STATS, TABLE_STATS);\r
+    }\r
+\r
 }\r