Added support for OF 1.0
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / PacketInMessageFactory.java
index 2b3bf650f4f373ac7b0e8760fbc1e7374b3fea83..0042b155a3bd30da46364b43414b0211d97c2b8e 100644 (file)
@@ -6,9 +6,12 @@ import io.netty.buffer.ByteBuf;
 import java.math.BigInteger;
 
 import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer;
+import org.opendaylight.openflowjava.protocol.impl.util.MatchDeserializer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author michal.polkorab
@@ -19,6 +22,9 @@ public class PacketInMessageFactory implements OFDeserializer<PacketInMessage> {
     private static PacketInMessageFactory instance;
     private static final byte PADDING_IN_PACKET_IN_HEADER = 2;
     
+    private static final Logger LOGGER = LoggerFactory
+            .getLogger(PacketInMessageFactory.class);
+    
     private PacketInMessageFactory() {
         // Singleton
     }
@@ -45,8 +51,9 @@ public class PacketInMessageFactory implements OFDeserializer<PacketInMessage> {
         byte[] cookie = new byte[Long.SIZE/Byte.SIZE];
         rawMessage.readBytes(cookie);
         builder.setCookie(new BigInteger(cookie));
-        // TODO - implement match factories to finish this factory 
+        builder.setMatch(MatchDeserializer.createMatch(rawMessage)); 
         rawMessage.skipBytes(PADDING_IN_PACKET_IN_HEADER);
+        LOGGER.info("readablebytes: " + rawMessage.readableBytes());
         builder.setData(rawMessage.readBytes(rawMessage.readableBytes()).array());
         return builder.build();
     }