From: Adam Brcek Date: Sat, 16 Nov 2013 21:44:21 +0000 (+0000) Subject: Merge "Fixing OF Multipart messages 1) So we have a MultipartRequestDesc message... X-Git-Tag: jenkins-openflowjava-bulk-release-prepare-only-1~65 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=5b05fc8e7dd2b61a076dfd1864a205b0995c7722;hp=19cc35a1f5b73e3c890e38958303541feffb1384;p=openflowjava.git Merge "Fixing OF Multipart messages 1) So we have a MultipartRequestDesc message 2) So we can send MultipartRequestDesc messages" --- diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java index 022cc8ea..59d4a85c 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java @@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory; /** - * Activate library bundle, expose provided implementations: + * Activates library bundle, exposes provided implementations: * diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java index c4651e9b..3c83945b 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java @@ -73,6 +73,7 @@ import com.google.common.collect.Lists; import com.google.common.util.concurrent.SettableFuture; /** + * Handles messages (notifications + rpcs) and connections * @author mirehak * @author michal.polkorab */ diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionFacade.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionFacade.java index 29348362..3e72d786 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionFacade.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionFacade.java @@ -6,7 +6,6 @@ import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter; /** * @author michal.polkorab - * */ public interface ConnectionFacade extends MessageConsumer, ConnectionAdapter { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/MessageConsumer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/MessageConsumer.java index 3243a82f..8a80ff57 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/MessageConsumer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/MessageConsumer.java @@ -6,7 +6,6 @@ import org.opendaylight.yangtools.yang.binding.DataObject; /** * @author mirehak - * */ public interface MessageConsumer { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/OnlineProvider.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/OnlineProvider.java index b732587c..e189920c 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/OnlineProvider.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/OnlineProvider.java @@ -6,7 +6,6 @@ import com.google.common.util.concurrent.ListenableFuture; /** * @author mirehak - * */ public interface OnlineProvider { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/RpcResponseKey.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/RpcResponseKey.java index 8a7bb5ef..7bd4f360 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/RpcResponseKey.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/RpcResponseKey.java @@ -7,7 +7,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 /** * @author mirehak - * */ public class RpcResponseKey { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ServerFacade.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ServerFacade.java index dda56a52..1d089921 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ServerFacade.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ServerFacade.java @@ -4,7 +4,6 @@ package org.opendaylight.openflowjava.protocol.impl.connection; /** * @author mirehak - * */ public interface ServerFacade extends ShutdownProvider, OnlineProvider, Runnable { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ShutdownProvider.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ShutdownProvider.java index 235f0d09..58d4c271 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ShutdownProvider.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ShutdownProvider.java @@ -7,7 +7,6 @@ import com.google.common.util.concurrent.ListenableFuture; /** * @author mirehak - * */ public interface ShutdownProvider { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java index cb58d14e..fe05db41 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java @@ -21,6 +21,7 @@ import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; /** + * Exposed class for server handling * @author mirehak * @author michal.polkorab */ @@ -109,6 +110,9 @@ public class SwitchConnectionProviderImpl implements SwitchConnectionProvider { return result; } + /** + * @return servers + */ public Set getServerLot() { return serverLot; } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/DelegatingInboundHandler.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/DelegatingInboundHandler.java index 4b5bff3d..e0daecb2 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/DelegatingInboundHandler.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/DelegatingInboundHandler.java @@ -4,6 +4,7 @@ package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; +import org.opendaylight.openflowjava.protocol.impl.connection.ConnectionAdapterImpl; import org.opendaylight.openflowjava.protocol.impl.connection.MessageConsumer; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEventBuilder; import org.opendaylight.yangtools.yang.binding.DataObject; @@ -11,8 +12,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** + * Holds reference to {@link ConnectionAdapterImpl} and passes messages for further processing. + * Also informs on switch disconnection. * @author michal.polkorab - * */ public class DelegatingInboundHandler extends ChannelInboundHandlerAdapter { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/IdleHandler.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/IdleHandler.java index b31a021d..8d5ca853 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/IdleHandler.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/IdleHandler.java @@ -13,16 +13,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * + * Detects idle state of switch and informs upper layers * @author michal.polkorab - * */ public class IdleHandler extends IdleStateHandler{ private static final Logger LOGGER = LoggerFactory.getLogger(IdleHandler.class); /** - * * @param readerIdleTime * @param writerIdleTime * @param allIdleTime diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Decoder.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Decoder.java index 11f8f559..5d13e2d3 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Decoder.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Decoder.java @@ -13,7 +13,6 @@ import org.slf4j.LoggerFactory; /** * Transforms OpenFlow Protocol messages to POJOs - * * @author michal.polkorab */ public class OF13Decoder extends MessageToMessageDecoder { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Encoder.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Encoder.java index 3f3c05ab..d6fd014a 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Encoder.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Encoder.java @@ -12,8 +12,8 @@ import io.netty.handler.codec.MessageToByteEncoder; /** * Transforms OpenFlow Protocol messages to POJOs - * * @author michal.polkorab + * @author timotej.kubas */ public class OF13Encoder extends MessageToByteEncoder { @@ -23,6 +23,7 @@ public class OF13Encoder extends MessageToByteEncoder { public OF13Encoder() { LOGGER.debug("Creating OF13Encoder"); } + @Override protected void encode(ChannelHandlerContext ctx, OfHeader msg, ByteBuf out) throws Exception { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java index 4a81194b..300e3373 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java @@ -12,8 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Class for decoding incoming messages into message frames. - * + * Decodes incoming messages into message frames. * @author michal.polkorab */ public class OFFrameDecoder extends ByteToMessageDecoder { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java index d5b31e26..bfa21900 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java @@ -11,9 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Class that detects version of used OpenFlow Protocol and engages right OFCodec into - * pipeline. - * + * Detects version of used OpenFlow Protocol and discards unsupported version messages * @author michal.polkorab */ public class OFVersionDetector extends ByteToMessageDecoder { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/PublishingChannelInitializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/PublishingChannelInitializer.java index 93068830..cc11a28d 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/PublishingChannelInitializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/PublishingChannelInitializer.java @@ -18,8 +18,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** + * Initializes the channel * @author michal.polkorab - * */ public class PublishingChannelInitializer extends ChannelInitializer { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/VersionMessageWrapper.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/VersionMessageWrapper.java index d5ebf9de..fc41b8e7 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/VersionMessageWrapper.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/VersionMessageWrapper.java @@ -4,8 +4,8 @@ package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; /** + * Wraps received messages (includes version) * @author michal.polkorab - * */ public class VersionMessageWrapper { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java index 97341a93..f2bea2b9 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java @@ -35,6 +35,7 @@ import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.Que import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.RoleReplyMessageFactory; /** + * Stores and provides correct decoders for received messages * @author michal.polkorab * *
         
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java
index 14538fab..db137fb7 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java
@@ -8,8 +8,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- *
  * @author michal.polkorab
+ * @author timotej.kubas
  */
 public abstract class DeserializationFactory {
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/MessageTypeCodeKey.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/MessageTypeCodeKey.java
index 7adc8623..dd71c4a2 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/MessageTypeCodeKey.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/MessageTypeCodeKey.java
@@ -1,9 +1,11 @@
 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
 package org.opendaylight.openflowjava.protocol.impl.deserialization;
 
+
 /**
+ * Class used as a key in {@link DecoderTable}
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class MessageTypeCodeKey {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java
index 0ea40eec..8f64ed3d 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java
@@ -6,8 +6,9 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
 import io.netty.buffer.ByteBuf;
 
 /**
+ * Uniform interface for deserializing factories
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  * @param  message code type
  */
 public interface OFDeserializer {
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java
index 6fccd1a2..aa39b2da 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java
@@ -8,9 +8,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutputBuilder;
 
 /**
+ * Translates BarrierReply messages
  * @author michal.polkorab
  * @author timotej.kubas
- * 
  */
 public class BarrierReplyMessageFactory implements
         OFDeserializer {
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java
index 5e0a9ebe..163a89c4 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutputBuilder;
 
 /**
+ * Translates EchoReply messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class EchoReplyMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java
index 121263d4..e7362039 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessageBuilder;
 
 /**
+ * Translates EchoRequest messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class EchoRequestMessageFactory implements OFDeserializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java
index 3b7970a4..f66a54dc 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java
@@ -9,8 +9,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessageBuilder;
 
 /**
+ * Translates Error messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class ErrorMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java
index be1391ec..f1298591 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java
@@ -8,10 +8,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;
 
 /**
- * 
+ * Translates Experimenter messages
  * @author michal.polkorab, 
  * @author timotej.kubas
- *
  */
 public class ExperimenterMessageFactory implements OFDeserializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactory.java
index d83eb202..8ab3ae80 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactory.java
@@ -11,8 +11,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;
 
 /**
+ * Translates FeaturesReply messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class FeaturesReplyMessageFactory implements OFDeserializer{
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FlowRemovedMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FlowRemovedMessageFactory.java
index 0245081a..4cd2902e 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FlowRemovedMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FlowRemovedMessageFactory.java
@@ -12,6 +12,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessageBuilder;
 
 /**
+ * Translates FlowRemoved messages
  * @author michal.polkorab
  * @author timotej.kubas
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetAsyncReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetAsyncReplyMessageFactory.java
index d17c363e..9228eae7 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetAsyncReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetAsyncReplyMessageFactory.java
@@ -20,10 +20,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.get.async.reply.PortStatusMaskBuilder;
 
 /**
+ * Translates GetAsyncReply messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
 public class GetAsyncReplyMessageFactory implements OFDeserializer {
+    
     private static GetAsyncReplyMessageFactory instance;
     
     private GetAsyncReplyMessageFactory() {
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetConfigReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetConfigReplyMessageFactory.java
index 5235d3fb..dc56a5b9 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetConfigReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetConfigReplyMessageFactory.java
@@ -9,6 +9,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigOutputBuilder;
 
 /**
+ * Translates GetConfigReply messages
  * @author michal.polkorab
  * @author timotej.kubas
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java
index 4f8113ee..4c362d22 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java
@@ -16,8 +16,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder;
 
 /**
+ * Translates Hello messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class HelloMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java
index 2aabc78b..020cd215 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java
@@ -109,6 +109,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
+ * Translates MultipartReply messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10BarrierReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10BarrierReplyMessageFactory.java
index 34c1497d..2af5052e 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10BarrierReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10BarrierReplyMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutputBuilder;
 
 /**
+ * Translates BarrierReply messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10BarrierReplyMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoReplyMessageFactory.java
index 6702f4c9..21eb118e 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoReplyMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutputBuilder;
 
 /**
+ * Translates EchoReply messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10EchoReplyMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoRequestMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoRequestMessageFactory.java
index 5741492d..e41ffd7a 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoRequestMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10EchoRequestMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessageBuilder;
 
 /**
+ * Translates EchoRequest messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10EchoRequestMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10ErrorMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10ErrorMessageFactory.java
index 27608489..383bd7e5 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10ErrorMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10ErrorMessageFactory.java
@@ -9,8 +9,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessageBuilder;
 
 /**
+ * Translates Error messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10ErrorMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FeaturesReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FeaturesReplyMessageFactory.java
index 9a82c776..a73466bb 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FeaturesReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FeaturesReplyMessageFactory.java
@@ -16,8 +16,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;
 
 /**
+ * Translates FeaturesReply messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10FeaturesReplyMessageFactory implements OFDeserializer {
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FlowRemovedMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FlowRemovedMessageFactory.java
index fc2e374a..b25b993a 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FlowRemovedMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10FlowRemovedMessageFactory.java
@@ -12,8 +12,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessageBuilder;
 
 /**
+ * Translates FlowRemoved messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10FlowRemovedMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10GetConfigReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10GetConfigReplyMessageFactory.java
index 4dfe0435..44fd5d78 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10GetConfigReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10GetConfigReplyMessageFactory.java
@@ -9,8 +9,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigOutputBuilder;
 
 /**
+ * Translates GetConfigReply messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10GetConfigReplyMessageFactory implements OFDeserializer {
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10HelloMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10HelloMessageFactory.java
index 2d94304b..0301b803 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10HelloMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10HelloMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessageBuilder;
 
 /**
+ * Translates Hello messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10HelloMessageFactory implements OFDeserializer {
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PacketInMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PacketInMessageFactory.java
index b2fdf786..5ad3efcb 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PacketInMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PacketInMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;
 
 /**
+ * Translates PacketIn messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10PacketInMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PortStatusMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PortStatusMessageFactory.java
index c04457f1..9275f3c3 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PortStatusMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10PortStatusMessageFactory.java
@@ -13,8 +13,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder;
 
 /**
+ * Translates PortStatus messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10PortStatusMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10QueueGetConfigReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10QueueGetConfigReplyMessageFactory.java
index 10e9e397..3418e697 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10QueueGetConfigReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10QueueGetConfigReplyMessageFactory.java
@@ -20,8 +20,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueuePropertyBuilder;
 
 /**
+ * Translates QueueGetConfigReply messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10QueueGetConfigReplyMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java
index 8b8e2fa6..75517fc1 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java
@@ -38,8 +38,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.TableStatsBuilder;
 
 /**
+ * Translates StatsReply messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10StatsReplyMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10VendorMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10VendorMessageFactory.java
index a89a2b28..e0fbe7aa 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10VendorMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10VendorMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;
 
 /**
+ * Translates Vendor messages (OpenFlow v1.0)
  * @author michal.polkorab
- *
  */
 public class OF10VendorMessageFactory implements OFDeserializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PacketInMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PacketInMessageFactory.java
index ba84fe86..04fe2694 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PacketInMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PacketInMessageFactory.java
@@ -12,6 +12,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;
 
 /**
+ * Translates PacketIn messages
  * @author michal.polkorab
  * @author timotej.kubas
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PortStatusMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PortStatusMessageFactory.java
index 3d7f3c3f..a87c9a5b 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PortStatusMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/PortStatusMessageFactory.java
@@ -13,6 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder;
 
 /**
+ * Translates PortStatus messages
  * @author michal.polkorab
  * @author timotej.kubas
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/QueueGetConfigReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/QueueGetConfigReplyMessageFactory.java
index ccef4a66..9422b3b7 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/QueueGetConfigReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/QueueGetConfigReplyMessageFactory.java
@@ -21,6 +21,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueuePropertyBuilder;
 
 /**
+ * Translates QueueGetConfigReply messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/RoleReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/RoleReplyMessageFactory.java
index 2c693f10..d09aa7a1 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/RoleReplyMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/RoleReplyMessageFactory.java
@@ -11,6 +11,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestOutputBuilder;
 
 /**
+ * Translates RoleReply messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java
index 8b72b74c..b67238e0 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java
@@ -59,8 +59,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yangtools.yang.binding.DataObject;
 
 /**
+ * Stores and provides correct encoders for received messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class EncoderTable {
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/MessageTypeKey.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/MessageTypeKey.java
index b6f22f76..56a1661b 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/MessageTypeKey.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/MessageTypeKey.java
@@ -4,9 +4,10 @@ package org.opendaylight.openflowjava.protocol.impl.serialization;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 
 /**
+ * Class used as a key in {@link EncoderTable}
  * @author michal.polkorab
+ * @author timotej.kubas
  * @param  message type (class)
- *
  */
 public class MessageTypeKey {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java
index 811ce866..2c88d0a0 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java
@@ -6,8 +6,9 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 
 /**
+ * Uniform interface for serializing factories
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  * @param  message type
  */
 public interface OFSerializer  {
@@ -28,7 +29,6 @@ public interface OFSerializer  {
     public abstract int computeLength(E message);
     
     /**
-     * 
      * @return message code type
      */
     public byte getMessageType();
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java
index 78d26a33..6ed701a9 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java
@@ -9,7 +9,7 @@ import org.slf4j.LoggerFactory;
 
 /**
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class SerializationFactory {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/BarrierInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/BarrierInputMessageFactory.java
index f32b7142..9253410d 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/BarrierInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/BarrierInputMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;
 
 /**
+ * Translates BarrierRequest messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class BarrierInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoInputMessageFactory.java
index 96badb54..59e8b043 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoInputMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoInput;
 
 /**
+ * Translates EchoRequest messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class EchoInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoReplyInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoReplyInputMessageFactory.java
index 233d49bd..18a0243f 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoReplyInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EchoReplyInputMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoReplyInput;
 
 /**
+ * Translates EchoReply messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class EchoReplyInputMessageFactory implements OFSerializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EncodeConstants.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EncodeConstants.java
index dad1b461..8ec5298c 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EncodeConstants.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/EncodeConstants.java
@@ -2,8 +2,8 @@
 package org.opendaylight.openflowjava.protocol.impl.serialization.factories;
 
 /**
+ * Stores common constants
  * @author michal.polkorab
- *
  */
 public abstract class EncodeConstants {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/ExperimenterInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/ExperimenterInputMessageFactory.java
index deba61c0..de2133f2 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/ExperimenterInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/ExperimenterInputMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterInput;
 
 /**
+ * Translates Experimenter messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class ExperimenterInputMessageFactory implements OFSerializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactory.java
index 7a8a86f4..4793c286 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactory.java
@@ -14,6 +14,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;
 
 /**
+ * Translates FlowMod messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetAsyncRequestMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetAsyncRequestMessageFactory.java
index 33fac000..e1f3a8cc 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetAsyncRequestMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetAsyncRequestMessageFactory.java
@@ -8,6 +8,7 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncInput;
 
 /**
+ * Translates GetAsyncRequest messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetConfigInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetConfigInputMessageFactory.java
index 4eecde81..ee3877c6 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetConfigInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetConfigInputMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput;
 
 /**
+ * Translates GetConfigRequest messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class GetConfigInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetFeaturesInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetFeaturesInputMessageFactory.java
index ced7255a..e573b280 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetFeaturesInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetFeaturesInputMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesInput;
 
 /**
+ * Translates FeaturesRequest messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class GetFeaturesInputMessageFactory implements OFSerializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetQueueConfigInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetQueueConfigInputMessageFactory.java
index 771254f8..d5c8d5b1 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetQueueConfigInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GetQueueConfigInputMessageFactory.java
@@ -8,6 +8,7 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigInput;
 
 /**
+ * Translates QueueGetConfigRequest messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java
index 6fa791d3..594e4f3a 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java
@@ -12,6 +12,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList;
 
 /**
+ * Translates GroupMod messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactory.java
index 0c5519e0..303eb6c8 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactory.java
@@ -14,8 +14,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
+ * Translates Hello messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class HelloInputMessageFactory implements OFSerializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java
index 7421029c..30c91ab2 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java
@@ -19,6 +19,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.mod.Bands;
 
 /**
+ * Translates MeterMod messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestMessageFactory.java
index fdd75422..f223c562 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestMessageFactory.java
@@ -41,6 +41,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeatureProperties;
 
 /**
+ * Translates MultipartRequest messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10BarrierInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10BarrierInputMessageFactory.java
index 32499206..aaac8561 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10BarrierInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10BarrierInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;
 
 /**
+ * Translates BarrierRequest messages
  * @author michal.polkorab
- *
  */
 public class OF10BarrierInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoInputMessageFactory.java
index 804fffbd..55931564 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoInput;
 
 /**
+ * Translates EchoRequest messages
  * @author michal.polkorab
- *
  */
 public class OF10EchoInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoReplyInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoReplyInputMessageFactory.java
index 9b7d276b..b97fbc6e 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoReplyInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10EchoReplyInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoReplyInput;
 
 /**
+ * Translates EchoReply messages
  * @author michal.polkorab
- *
  */
 public class OF10EchoReplyInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FeaturesInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FeaturesInputMessageFactory.java
index c0bdd8e8..4c727ff3 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FeaturesInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FeaturesInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesInput;
 
 /**
+ * Translates FeaturesRequest messages
  * @author michal.polkorab
- *
  */
 public class OF10FeaturesInputMessageFactory implements OFSerializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java
index 998f220c..7821cd49 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java
@@ -14,8 +14,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;
 
 /**
+ * Translates FlowMod messages
  * @author michal.polkorab
- *
  */
 public class OF10FlowModInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10GetConfigInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10GetConfigInputMessageFactory.java
index 7b2db454..7a3591c9 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10GetConfigInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10GetConfigInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput;
 
 /**
+ * Translates GetConfigRequest messages
  * @author michal.polkorab
- *
  */
 public class OF10GetConfigInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10HelloInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10HelloInputMessageFactory.java
index 24698acd..8ca94696 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10HelloInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10HelloInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;
 
 /**
+ * Translates Hello messages
  * @author michal.polkorab
- *
  */
 public class OF10HelloInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactory.java
index 8948fff5..d397f8a9 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactory.java
@@ -9,8 +9,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.OF10ActionsSerializer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
 
 /**
+ * Translates PacketOut messages
  * @author michal.polkorab
- *
  */
 public class OF10PacketOutInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PortModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PortModInputMessageFactory.java
index 3935712a..5f7fbd85 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PortModInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PortModInputMessageFactory.java
@@ -13,8 +13,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
 
 /**
+ * Translates PortMod messages
  * @author michal.polkorab
- *
  */
 public class OF10PortModInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10QueueGetConfigInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10QueueGetConfigInputMessageFactory.java
index 252132c6..5b83e7d8 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10QueueGetConfigInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10QueueGetConfigInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigInput;
 
 /**
+ * Translates QueueGetConfigRequest messages
  * @author michal.polkorab
- *
  */
 public class OF10QueueGetConfigInputMessageFactory implements OFSerializer {
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10SetConfigMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10SetConfigMessageFactory.java
index 611a4d36..926a3b82 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10SetConfigMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10SetConfigMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;
 
 /**
+ * Translates SetConfig messages
  * @author michal.polkorab
- *
  */
 public class OF10SetConfigMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10StatsRequestMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10StatsRequestMessageFactory.java
index 07026776..fd7b1e2a 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10StatsRequestMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10StatsRequestMessageFactory.java
@@ -20,8 +20,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueue;
 
 /**
+ * Translates StatsRequest messages
  * @author michal.polkorab
- *
  */
 public class OF10StatsRequestMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10VendorInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10VendorInputMessageFactory.java
index 8306db2f..82a53c6d 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10VendorInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10VendorInputMessageFactory.java
@@ -8,8 +8,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterInput;
 
 /**
+ * Translates Vendor messages
  * @author michal.polkorab
- *
  */
 public class OF10VendorInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactory.java
index 8a7b4ca9..02386440 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactory.java
@@ -9,8 +9,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
 
 /**
+ * Translates PacketOut messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class PacketOutInputMessageFactory implements OFSerializer{
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PortModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PortModInputMessageFactory.java
index f73781d6..3264fd0d 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PortModInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PortModInputMessageFactory.java
@@ -13,6 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
 
 /**
+ * Translates PortMod messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/RoleRequestInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/RoleRequestInputMessageFactory.java
index 969df050..b60e1476 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/RoleRequestInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/RoleRequestInputMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;
 
 /**
+ * Translates RoleRequest messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class RoleRequestInputMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetAsyncInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetAsyncInputMessageFactory.java
index c5784862..7f5e901d 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetAsyncInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetAsyncInputMessageFactory.java
@@ -16,6 +16,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput;
 
 /**
+ * Translates SetAsync messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetConfigMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetConfigMessageFactory.java
index 52e956d7..c9b2471d 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetConfigMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SetConfigMessageFactory.java
@@ -8,8 +8,9 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;
 
 /**
+ * Translates SetConfig messages
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class SetConfigMessageFactory implements OFSerializer {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactory.java
index 668da91b..228aa900 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactory.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactory.java
@@ -12,6 +12,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput;
 
 /**
+ * Translates TableMod messages
  * @author timotej.kubas
  * @author michal.polkorab
  */
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializer.java
index 5a55c1b1..506dd665 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializer.java
@@ -48,8 +48,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
 
 /**
- * Class for easy deserialization of actions
- * 
+ * Deserializes ofp_actions (OpenFlow v1.3)
  * @author timotej.kubas
  * @author michal.polkorab
  */
@@ -58,6 +57,7 @@ public abstract class ActionsDeserializer {
     private static final byte ACTION_HEADER_LENGTH = 4;
     
     /**
+     * Creates list of actions (OpenFlow v1.3)
      * @param input input ByteBuf
      * @param actionsLength length of buckets
      * @return ActionsList
@@ -70,86 +70,85 @@ public abstract class ActionsDeserializer {
             int currentActionLength = 0;
             switch(input.readUnsignedShort()) {
             case 0: currentActionLength = input.readUnsignedShort(); //outputActionLength
-            actionsList.add(ActionsDeserializer.createOutputAction(input, actionsListBuilder));
+            actionsList.add(createOutputAction(input, actionsListBuilder));
             break;
             case 11: 
                 currentActionLength = input.readUnsignedShort();//empty header length
-                actionsList.add(ActionsDeserializer.createCopyTtlOutAction(input, actionsListBuilder));
+                actionsList.add(createCopyTtlOutAction(input, actionsListBuilder));
                 break;
 
             case 12: 
                 currentActionLength = input.readUnsignedShort();//empty header length
-                actionsList.add(ActionsDeserializer.createCopyTtlInAction(input, actionsListBuilder));
+                actionsList.add(createCopyTtlInAction(input, actionsListBuilder));
                 break;
 
             case 15: 
                 currentActionLength = input.readUnsignedShort();//empty header length
-                actionsList.add(ActionsDeserializer.createSetMplsTtlAction(input, actionsListBuilder));
+                actionsList.add(createSetMplsTtlAction(input, actionsListBuilder));
                 break;
 
             case 16:                              
                 currentActionLength = input.readUnsignedShort();//empty header length
-                actionsList.add(ActionsDeserializer.createDecMplsTtlOutAction(input, actionsListBuilder));
+                actionsList.add(createDecMplsTtlOutAction(input, actionsListBuilder));
                 break;
 
             case 17: 
                 currentActionLength = input.readUnsignedShort();
-                actionsList.add(ActionsDeserializer.createPushVlanAction(input, actionsListBuilder));
+                actionsList.add(createPushVlanAction(input, actionsListBuilder));
                 break;
 
             case 18:                              
                 currentActionLength = input.readUnsignedShort();//empty header length
-                actionsList.add(ActionsDeserializer.createPopVlanAction(input, actionsListBuilder));
+                actionsList.add(createPopVlanAction(input, actionsListBuilder));
                 break;
 
             case 19: 
                 currentActionLength = input.readUnsignedShort();//8
-                actionsList.add(ActionsDeserializer.createPushMplsAction(input, actionsListBuilder));
+                actionsList.add(createPushMplsAction(input, actionsListBuilder));
                 break;
 
             case 20: 
                 currentActionLength = input.readUnsignedShort();//8
-                actionsList.add(ActionsDeserializer.createPopMplsAction(input, actionsListBuilder));
+                actionsList.add(createPopMplsAction(input, actionsListBuilder));
                 break;
 
             case 21: 
                 currentActionLength = input.readUnsignedShort();
-                actionsList.add(ActionsDeserializer.createSetQueueAction(input, actionsListBuilder));
+                actionsList.add(createSetQueueAction(input, actionsListBuilder));
                 break;
 
             case 22: 
                 currentActionLength = input.readUnsignedShort();//8
-                actionsList.add(ActionsDeserializer.createGroupAction(input, actionsListBuilder));
+                actionsList.add(createGroupAction(input, actionsListBuilder));
                 break;
 
             case 23: 
                 currentActionLength = input.readUnsignedShort();//8
-                actionsList.add(ActionsDeserializer.createSetNwTtlAction(input, actionsListBuilder));
+                actionsList.add(createSetNwTtlAction(input, actionsListBuilder));
                 break;
 
             case 24:                              
                 currentActionLength = input.readUnsignedShort();//empty header length
-                actionsList.add(ActionsDeserializer.createDecNwTtlAction(input, actionsListBuilder));
+                actionsList.add(createDecNwTtlAction(input, actionsListBuilder));
                 break;
 
             case 25:
                 currentActionLength = input.readUnsignedShort();//8
-                actionsList.add(ActionsDeserializer.createSetFieldAction(input, actionsListBuilder,
-                        currentActionLength));
+                actionsList.add(createSetFieldAction(input, actionsListBuilder, currentActionLength));
                 break; 
             case 26: 
                 currentActionLength = input.readUnsignedShort();//8
-                actionsList.add(ActionsDeserializer.createPushPbbAction(input, actionsListBuilder));
+                actionsList.add(createPushPbbAction(input, actionsListBuilder));
                 break;
 
             case 27:                              
                 currentActionLength = input.readUnsignedShort();//empty header length
-                actionsList.add(ActionsDeserializer.createPopPbbAction(input, actionsListBuilder));
+                actionsList.add(createPopPbbAction(input, actionsListBuilder));
                 break;
 
             case 0xFFFF: 
                 currentActionLength = input.readUnsignedShort();
-                actionsList.add(ActionsDeserializer.createExperimenterAction(input, actionsListBuilder));
+                actionsList.add(createExperimenterAction(input, actionsListBuilder));
                 break;
             default: 
                 break;
@@ -159,13 +158,6 @@ public abstract class ActionsDeserializer {
         return actionsList;
     }
     
-    
-    /**
-     * @param action input action that contains empty header
-     * @param in input ByteBuf 
-     * @param actionsListBuilder 
-     * @return Action
-     */
     private static ActionsList createEmptyHeader(Class action,
             ByteBuf in, ActionsListBuilder actionsListBuilder) {
@@ -177,66 +169,31 @@ public abstract class ActionsDeserializer {
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createCopyTtlInAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createCopyTtlInAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createEmptyHeader(CopyTtlIn.class, in, actionsListBuilder);
     }
-    
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createCopyTtlOutAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+
+    private static ActionsList createCopyTtlOutAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createEmptyHeader(CopyTtlOut.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createDecMplsTtlOutAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createDecMplsTtlOutAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createEmptyHeader(DecMplsTtl.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createPopVlanAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createPopVlanAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createEmptyHeader(PopVlan.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createDecNwTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createDecNwTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createEmptyHeader(DecNwTtl.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createPopPbbAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createPopPbbAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createEmptyHeader(PopPbb.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return ActionList
-     */
-    public static ActionsList createOutputAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createOutputAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         final byte PADDING_IN_OUTPUT_ACTIONS_HEADER = 6;
         ActionBuilder actionBuilder = new ActionBuilder();
         actionBuilder.setType(Output.class);
@@ -248,16 +205,10 @@ public abstract class ActionsDeserializer {
         actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build());
         actionsListBuilder.setAction(actionBuilder.build());
         in.skipBytes(PADDING_IN_OUTPUT_ACTIONS_HEADER);
-        
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return ActionList
-     */
-    public static ActionsList createSetMplsTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createSetMplsTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         final byte PADDING_IN_SET_MPLS_TTL_ACTIONS_HEADER = 3;
         ActionBuilder actionBuilder = new ActionBuilder();
         actionBuilder.setType(SetMplsTtl.class);
@@ -266,16 +217,9 @@ public abstract class ActionsDeserializer {
         actionBuilder.addAugmentation(MplsTtlAction.class, mplsTtl.build());
         actionsListBuilder.setAction(actionBuilder.build());
         in.skipBytes(PADDING_IN_SET_MPLS_TTL_ACTIONS_HEADER);
-        
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param action input action that contains push
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return ActionList
-     */
     private static ActionsList createPushAction(Class action,
             ByteBuf in, ActionsListBuilder actionsListBuilder) {
@@ -287,100 +231,56 @@ public abstract class ActionsDeserializer {
         actionBuilder.addAugmentation(EthertypeAction.class, etherType.build());
         actionsListBuilder.setAction(actionBuilder.build());
         in.skipBytes(PADDING_IN_PUSH_VLAN_ACTIONS_HEADER);
-        
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createPushVlanAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createPushVlanAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createPushAction(PushVlan.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createPushMplsAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createPushMplsAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createPushAction(PushMpls.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createPopMplsAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createPopMplsAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createPushAction(PopMpls.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return Action
-     */
-    public static ActionsList createPushPbbAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createPushPbbAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         return createPushAction(PushPbb.class, in, actionsListBuilder);
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return ActionList
-     */
-    public static ActionsList createSetQueueAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createSetQueueAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         ActionBuilder actionBuilder = new ActionBuilder();
         actionBuilder.setType(SetQueue.class);
         QueueIdActionBuilder queueId = new QueueIdActionBuilder();
         queueId.setQueueId(in.readUnsignedInt());
         actionBuilder.addAugmentation(QueueIdAction.class, queueId.build());
         actionsListBuilder.setAction(actionBuilder.build());
-        
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return ActionList
-     */
-    public static ActionsList createGroupAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createGroupAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         ActionBuilder actionBuilder = new ActionBuilder();
         actionBuilder.setType(Group.class);
         GroupIdActionBuilder group = new GroupIdActionBuilder();
         group.setGroupId(in.readUnsignedInt());
         actionBuilder.addAugmentation(GroupIdAction.class, group.build());
         actionsListBuilder.setAction(actionBuilder.build());
-        
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return ActionList
-     */
-    public static ActionsList createExperimenterAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createExperimenterAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         ActionBuilder actionBuilder = new ActionBuilder();
         actionBuilder.setType(Experimenter.class);
         ExperimenterActionBuilder experimenter = new ExperimenterActionBuilder();
         experimenter.setExperimenter(in.readUnsignedInt());
         actionBuilder.addAugmentation(ExperimenterAction.class, experimenter.build());
         actionsListBuilder.setAction(actionBuilder.build());
-        
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @return ActionList
-     */
-    public static ActionsList createSetNwTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
+    private static ActionsList createSetNwTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) {
         final byte PADDING_IN_NW_TTL_ACTIONS_HEADER = 3;
         ActionBuilder actionBuilder = new ActionBuilder();
         actionBuilder.setType(SetNwTtl.class);
@@ -389,24 +289,16 @@ public abstract class ActionsDeserializer {
         actionBuilder.addAugmentation(NwTtlAction.class, nwTtl.build());
         actionsListBuilder.setAction(actionBuilder.build());
         in.skipBytes(PADDING_IN_NW_TTL_ACTIONS_HEADER);
-        
         return actionsListBuilder.build();
     }
     
-    /**
-     * @param in input ByteBuf
-     * @param actionsListBuilder 
-     * @param actionLength length of action
-     * @return ActionList
-     */
-    public static ActionsList createSetFieldAction(ByteBuf in, ActionsListBuilder actionsListBuilder, int actionLength) {
+    private static ActionsList createSetFieldAction(ByteBuf in, ActionsListBuilder actionsListBuilder, int actionLength) {
         ActionBuilder actionBuilder = new ActionBuilder();
         actionBuilder.setType(SetField.class);
         OxmFieldsActionBuilder matchEntries = new OxmFieldsActionBuilder();
         matchEntries.setMatchEntries(MatchDeserializer.createMatchEntry(in, actionLength  - ACTION_HEADER_LENGTH));
         actionBuilder.addAugmentation(OxmFieldsAction.class, matchEntries.build());
         actionsListBuilder.setAction(actionBuilder.build());
-        
         return actionsListBuilder.build();
     }
 }
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java
index 5746ea0e..333a7cab 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java
@@ -37,8 +37,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;
 
 /**
- * Class for easy serialization of actions
- * 
+ * Serializes ofp_actions (OpenFlow v1.3)
  * @author michal.polkorab
  * @author timotej.kubas
  */
@@ -205,6 +204,8 @@ public abstract class ActionsSerializer {
             length += EncodeConstants.PADDING - paddingRemainder;
         }
         outBuffer.writeShort(length);
+        MatchSerializer.encodeMatchEntries(oxmField.getMatchEntries(), outBuffer);
+        ByteBufUtils.padBuffer(EncodeConstants.PADDING - paddingRemainder, outBuffer);
     }
     
     private static void encodePushPbbAction(Action action, ByteBuf outBuffer) {
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ByteBufUtils.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ByteBufUtils.java
index 196e44d3..8e1ba7f8 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ByteBufUtils.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ByteBufUtils.java
@@ -13,8 +13,8 @@ import org.opendaylight.openflowjava.protocol.impl.serialization.OFSerializer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
 
 /** Class for common operations on ByteBuf
- *
  * @author michal.polkorab
+ * @author timotej.kubas
  */
 public abstract class ByteBufUtils {
 
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java
index 61f8a970..2308346b 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java
@@ -27,8 +27,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 import io.netty.buffer.ByteBuf;
 
 /**
+ * Deserializes ofp_instruction (OpenFlow v1.3) structures
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class InstructionsDeserializer {
     
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java
index 54478ebf..aa998bca 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java
@@ -22,8 +22,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Instruction;
 
 /**
+ * Serializes ofp_instruction (OpenFlow v 1.3) structure
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public abstract class InstructionsSerializer {
 
@@ -102,7 +103,7 @@ public abstract class InstructionsSerializer {
     /**
      * Computes length of instructions
      * @param instructions List of instructions
-     * @return length of instructions(in bytes)
+     * @return length of instructions (in bytes)
      */
     public static int computeInstructionsLength(List instructions) {
         int length = 0;
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java
index dba41160..b5e6b486 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java
@@ -119,7 +119,7 @@ import org.slf4j.LoggerFactory;
 import com.google.common.base.Joiner;
 
 /**
- * Class for easy creation of matches
+ * Deserializes ofp_match (OpenFlow v1.3) and its oxm_fields structures
  * @author timotej.kubas
  * @author michal.polkorab
  */
@@ -135,7 +135,7 @@ public abstract class MatchDeserializer {
     /**
      * Creates match
      * @param in input ByteBuf
-     * @return ofp_match
+     * @return ofp_match (OpenFlow v1.3)
      */
     public static Match createMatch(ByteBuf in) {
         if (in.readableBytes() > 0) {
@@ -163,9 +163,10 @@ public abstract class MatchDeserializer {
     }
     
     /**
+     * Deserializes single match entry (oxm_field)
      * @param in input ByteBuf
-     * @param matchLength to infer size of array
-     * @return MatchEntriesList
+     * @param matchLength length of match entry
+     * @return MatchEntriesList list containing one match entry
      */
     public static List createMatchEntry(ByteBuf in, int matchLength) {
         return createMatchEntriesInternal(in, matchLength, true);
@@ -173,8 +174,8 @@ public abstract class MatchDeserializer {
     
     /**
      * @param in input ByteBuf
-     * @param matchLength to infer size of array
-     * @return MatchEntriesList
+     * @param matchLength length of match entries
+     * @return MatchEntriesList list of match entries
      */
     public static List createMatchEntries(ByteBuf in, int matchLength) {
         return createMatchEntriesInternal(in, matchLength, false);
@@ -500,7 +501,6 @@ public abstract class MatchDeserializer {
     }
 
     private static void addMaskAugmentation(MatchEntriesBuilder builder, ByteBuf in, int matchEntryLength) {
-//         TODO - check if matchEntryLength is in bytes
         MaskMatchEntryBuilder maskBuilder = new MaskMatchEntryBuilder();
         byte[] mask = new byte[matchEntryLength];
         in.readBytes(mask);
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java
index e36e7d42..7af3e11c 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java
@@ -88,15 +88,16 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
+ * Serializes ofp_match (OpenFlow v1.3) and its oxm_fields structures
  * @author michal.polkorab
- *
+ * @author timotej.kubas
  */
 public class MatchSerializer {
     
     private static final Logger LOGGER = LoggerFactory.getLogger(MatchSerializer.class);
 
     /**
-     * Encodes OF match
+     * Encodes match (OpenFlow v1.3)
      * @param match ofp_match object
      * @param out output ByteBuf
      */
@@ -128,8 +129,8 @@ public class MatchSerializer {
 
     /**
      * Encodes MatchEntries
-     * @param matchEntries
-     * @param out
+     * @param matchEntries list of match entries (oxm_fields)
+     * @param out output ByteBuf
      */
     public static void encodeMatchEntries(List matchEntries, ByteBuf out) {
         if (matchEntries == null) {
@@ -138,7 +139,7 @@ public class MatchSerializer {
         }
         for (MatchEntries entry : matchEntries) {
             encodeClass(entry.getOxmClass(), out);
-            encodeRest(entry, null);
+            encodeRest(entry, out);
         }
     }
 
@@ -499,7 +500,7 @@ public class MatchSerializer {
     }
 
     /**
-     * Computes length of ofp_match structure (in bytes)
+     * Computes length of match (in bytes)
      * @param match
      * @return length of ofp_match (excluding padding)
      */
@@ -514,7 +515,7 @@ public class MatchSerializer {
 
     /**
      * Computes length of MatchEntries (in bytes)
-     * @param matchEntries
+     * @param matchEntries list of match entries (oxm_fields)
      * @return length of MatchEntries
      */
     public static int computeMatchEntriesLength(List matchEntries) {
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java
index 27bcafd6..f406b956 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java
@@ -45,14 +45,15 @@ import org.opendaylight.yangtools.yang.binding.Augmentation;
 import com.google.common.base.Joiner;
 
 /**
+ * Deserializes ofp_action (OpenFlow v1.0) structures
  * @author michal.polkorab
- *
  */
 public class OF10ActionsDeserializer {
 
     /**
+     * Creates list of actions (OpenFlow v1.0) from ofp_action structures
      * @param input input ByteBuf
-     * @return ActionsList
+     * @return ActionsList list of actions
      */
     public static List createActionsList(ByteBuf input) {
         List actions = new ArrayList<>();
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java
index cda8fd35..d4a98efb 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java
@@ -31,15 +31,15 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action;
 
 /**
+ * Serializes ofp_action (OpenFlow v1.0) structures
  * @author michal.polkorab
- *
  */
 public abstract class OF10ActionsSerializer {
     
     /**
-     * Encodes actions (OpenFlow v1.0)
-     * @param out
-     * @param actionsList
+     * Encodes ofp_action (OpenFlow v1.0) structures
+     * @param out output ByteBuf that actions will be written into
+     * @param actionsList actions to be encoded
      */
     public static void encodeActionsV10(ByteBuf out, List actionsList) {
         if (actionsList == null) {
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchDeserializer.java
index 18006ba9..216cbd3e 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchDeserializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchDeserializer.java
@@ -14,8 +14,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.matc
 import com.google.common.base.Joiner;
 
 /**
+ * Deserializes ofp_match (OpenFlow v1.0) structure
  * @author michal.polkorab
- *
  */
 public abstract class OF10MatchDeserializer {
     
@@ -25,8 +25,8 @@ public abstract class OF10MatchDeserializer {
     private static final byte GROUPS_IN_IPV4_ADDRESS = 4;
 
     /**
-     * Creates match 
-     * @param rawMessage
+     * Creates ofp_match (OpenFlow v1.0) structure
+     * @param rawMessage ByteBuf with input data
      * @return ofp_match (OpenFlow v1.0)
      */
     public static MatchV10 createMatchV10(ByteBuf rawMessage) {
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchSerializer.java
index 909852d1..d7b61ca3 100644
--- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchSerializer.java
+++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10MatchSerializer.java
@@ -6,8 +6,8 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10;
 
 /**
+ * Serializes ofp_match (OpenFlow v1.0) structure
  * @author michal.polkorab
- *
  */
 public abstract class OF10MatchSerializer {
 
@@ -16,8 +16,8 @@ public abstract class OF10MatchSerializer {
     
     /**
      * Encodes ofp_match (OpenFlow v1.0)
-     * @param out
-     * @param match
+     * @param out output ByteBuf that match will be written into
+     * @param match match to be encoded
      */
     public static void encodeMatchV10(ByteBuf out, MatchV10 match) {
         out.writeInt(match.getWildcards().intValue());
diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java
index 28376ed6..7fcd9b88 100644
--- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java
+++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java
@@ -5,17 +5,39 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.UnpooledByteBufAllocator;
 
 import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.junit.Assert;
 import org.junit.Test;
 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactoryTest;
 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EcnMatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EcnMatchEntryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MetadataInstruction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MetadataInstructionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortNumberMatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortNumberMatchEntryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.TableIdInstruction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.TableIdInstructionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.InstructionsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlags;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPhyPort;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpEcn;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm0Class;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OxmMatchType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.MatchBuilder;
 
 /**
  * @author timotej.kubas
@@ -31,9 +53,9 @@ public class FlowModInputMessageFactoryTest {
     public void testFlowModInputMessageFactory() throws Exception {
         FlowModInputBuilder builder = new FlowModInputBuilder();
         BufferHelper.setupHeader(builder);
-        byte[] cookie = new byte[]{0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01};
+        byte[] cookie = new byte[]{0x00, 0x01, 0x04, 0x01, 0x06, 0x00, 0x07, 0x01};
         builder.setCookie(new BigInteger(cookie));
-        byte[] cookieMask = new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+        byte[] cookieMask = new byte[]{0x01, 0x05, 0x00, 0x00, 0x09, 0x30, 0x00, 0x30};
         builder.setCookieMask(new BigInteger(cookieMask));
         builder.setTableId(new TableId(65L));
         builder.setCommand(FlowModCommand.forValue(2));
@@ -44,6 +66,40 @@ public class FlowModInputMessageFactoryTest {
         builder.setOutPort(new PortNumber(4422L));
         builder.setOutGroup(98L);
         builder.setFlags(new FlowModFlags(true, false, true, false, true));
+        MatchBuilder matchBuilder = new MatchBuilder();
+        matchBuilder.setType(OxmMatchType.class);
+        List entries = new ArrayList<>();
+        MatchEntriesBuilder entriesBuilder = new MatchEntriesBuilder();
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);
+        entriesBuilder.setOxmMatchField(InPhyPort.class);
+        entriesBuilder.setHasMask(false);
+        PortNumberMatchEntryBuilder portNumberBuilder = new PortNumberMatchEntryBuilder();
+        portNumberBuilder.setPortNumber(new PortNumber(42L));
+        entriesBuilder.addAugmentation(PortNumberMatchEntry.class, portNumberBuilder.build());
+        entries.add(entriesBuilder.build());
+        entriesBuilder.setOxmClass(Nxm0Class.class);
+        entriesBuilder.setOxmMatchField(IpEcn.class);
+        entriesBuilder.setHasMask(false);
+        EcnMatchEntryBuilder ecnBuilder = new EcnMatchEntryBuilder();
+        ecnBuilder.setEcn((short) 4);
+        entriesBuilder.addAugmentation(EcnMatchEntry.class, ecnBuilder.build());
+        entries.add(entriesBuilder.build());
+        matchBuilder.setMatchEntries(entries);
+        builder.setMatch(matchBuilder.build());
+        List instructions = new ArrayList<>();
+        InstructionsBuilder insBuilder = new InstructionsBuilder();
+        insBuilder.setType(GotoTable.class);
+        TableIdInstructionBuilder idBuilder = new TableIdInstructionBuilder();
+        idBuilder.setTableId((short) 43);
+        insBuilder.addAugmentation(TableIdInstruction.class, idBuilder.build());
+        instructions.add(insBuilder.build());
+        insBuilder.setType(WriteMetadata.class);
+        MetadataInstructionBuilder metaBuilder = new MetadataInstructionBuilder();
+        metaBuilder.setMetadata(cookie);
+        metaBuilder.setMetadataMask(cookieMask);
+        insBuilder.addAugmentation(MetadataInstruction.class, metaBuilder.build());
+        instructions.add(insBuilder.build());
+        builder.setInstructions(instructions);
         FlowModInput message = builder.build();
         
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
@@ -53,21 +109,47 @@ public class FlowModInputMessageFactoryTest {
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));
         Assert.assertEquals("Wrong cookie", message.getCookie().longValue(), out.readLong());
         Assert.assertEquals("Wrong cookieMask", message.getCookieMask().longValue(), out.readLong());
-        Assert.assertEquals("Wrong tableId", message.getTableId().getValue().intValue(), out.readByte());
-        Assert.assertEquals("Wrong command", message.getCommand().getIntValue(), out.readByte());
+        Assert.assertEquals("Wrong tableId", message.getTableId().getValue().intValue(), out.readUnsignedByte());
+        Assert.assertEquals("Wrong command", message.getCommand().getIntValue(), out.readUnsignedByte());
         Assert.assertEquals("Wrong idleTimeOut", message.getIdleTimeout().intValue(), out.readShort());
         Assert.assertEquals("Wrong hardTimeOut", message.getHardTimeout().intValue(), out.readShort());
         Assert.assertEquals("Wrong priority", message.getPriority().intValue(), out.readUnsignedShort());
         Assert.assertEquals("Wrong bufferId", message.getBufferId().intValue(), out.readUnsignedInt());
         Assert.assertEquals("Wrong outPort", message.getOutPort().getValue().intValue(), out.readUnsignedInt());
         Assert.assertEquals("Wrong outGroup", message.getOutGroup().intValue(), out.readUnsignedInt());
-        Assert.assertEquals("Wrong flags", message.getFlags(), createFlowModFalgsFromBitmap(out.readShort()));
+        Assert.assertEquals("Wrong flags", message.getFlags(), createFlowModFlagsFromBitmap(out.readUnsignedShort()));
         out.skipBytes(PADDING_IN_FLOW_MOD_MESSAGE);
-        // TODO implementation of match structure
-        // TODO implementation of instructions
+        Assert.assertEquals("Wrong match type", 1, out.readUnsignedShort());
+        out.skipBytes(Short.SIZE / Byte.SIZE);
+        Assert.assertEquals("Wrong oxm class", 0x8000, out.readUnsignedShort());
+        short fieldAndMask = out.readUnsignedByte();
+        Assert.assertEquals("Wrong oxm hasMask", 0, fieldAndMask & 1);
+        Assert.assertEquals("Wrong oxm field", 1, fieldAndMask >> 1);
+        out.skipBytes(Byte.SIZE / Byte.SIZE);
+        Assert.assertEquals("Wrong oxm value", 42, out.readUnsignedInt());
+        Assert.assertEquals("Wrong oxm class", 0, out.readUnsignedShort());
+        fieldAndMask = out.readUnsignedByte();
+        Assert.assertEquals("Wrong oxm hasMask", 0, fieldAndMask & 1);
+        Assert.assertEquals("Wrong oxm field", 9, fieldAndMask >> 1);
+        out.skipBytes(Byte.SIZE / Byte.SIZE);
+        Assert.assertEquals("Wrong oxm value", 4, out.readUnsignedByte());
+        out.skipBytes(7);
+        Assert.assertEquals("Wrong instruction type", 1, out.readUnsignedShort());
+        out.skipBytes(Short.SIZE / Byte.SIZE);
+        Assert.assertEquals("Wrong instruction value", 43, out.readUnsignedByte());
+        out.skipBytes(3);
+        Assert.assertEquals("Wrong instruction type", 2, out.readUnsignedShort());
+        out.skipBytes(Short.SIZE / Byte.SIZE);
+        out.skipBytes(Integer.SIZE / Byte.SIZE);
+        byte[] cookieRead = new byte[Long.SIZE / Byte.SIZE];
+        out.readBytes(cookieRead);
+        byte[] cookieMaskRead = new byte[Long.SIZE / Byte.SIZE];
+        out.readBytes(cookieMaskRead);
+        Assert.assertArrayEquals("Wrong metadata", cookie, cookieRead);
+        Assert.assertArrayEquals("Wrong metadata mask", cookieMask, cookieMaskRead); 
     }
     
-    private static FlowModFlags createFlowModFalgsFromBitmap(short input){
+    private static FlowModFlags createFlowModFlagsFromBitmap(int input){
         final Boolean _oFPFFSENDFLOWREM = (input & (1 << 0)) > 0;
         final Boolean _oFPFFCHECKOVERLAP = (input & (1 << 1)) > 0;
         final Boolean _oFPFFRESETCOUNTS = (input & (1 << 2)) > 0; 
diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java
index 6e30ae6e..7e78f561 100644
--- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java
+++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java
@@ -3,11 +3,23 @@ package org.opendaylight.openflowjava.protocol.impl.serialization.factories;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.UnpooledByteBufAllocator;
-import junit.framework.Assert;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Assert;
 import org.junit.Test;
 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactoryTest;
 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
+import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopVlan;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInputBuilder;
@@ -18,8 +30,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  */
 public class PacketOutInputMessageFactoryTest {
     private static final byte MESSAGE_TYPE = 13;
-    private static final int MESSAGE_LENGTH = 24;
     private static final byte PADDING_IN_PACKET_OUT_MESSAGE = 6;
+    private static final int PADDING_IN_ACTION_HEADER = 4;
        
     /**
      * Testing of {@link PacketOutInputMessageFactory} for correct translation from POJO
@@ -31,17 +43,39 @@ public class PacketOutInputMessageFactoryTest {
         BufferHelper.setupHeader(builder);
         builder.setBufferId(256L);
         builder.setInPort(new PortNumber(256L));
+        List actions = new ArrayList<>();
+        ActionsListBuilder actionsListBuilder = new ActionsListBuilder();
+        ActionBuilder actionBuilder = new ActionBuilder();
+        actionBuilder.setType(PushVlan.class);
+        EthertypeActionBuilder ethertypeBuilder = new EthertypeActionBuilder();
+        ethertypeBuilder.setEthertype(new EtherType(25));
+        actionBuilder.addAugmentation(EthertypeAction.class, ethertypeBuilder.build());
+        actionsListBuilder.setAction(actionBuilder.build());
+        actions.add(actionsListBuilder.build());
+        actionBuilder = new ActionBuilder();
+        actionBuilder.setType(PopVlan.class);
+        actionsListBuilder.setAction(actionBuilder.build());
+        actions.add(actionsListBuilder.build());
+        builder.setActionsList(actions);
+        builder.setData(ByteBufUtils.hexStringToBytes("00 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14"));
         PacketOutInput message = builder.build();
         
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
         PacketOutInputMessageFactory factory = PacketOutInputMessageFactory.getInstance();
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);
         
-        BufferHelper.checkHeaderV13(out, MESSAGE_TYPE, MESSAGE_LENGTH);
+        BufferHelper.checkHeaderV13(out, MESSAGE_TYPE, 56);
         Assert.assertEquals("Wrong BufferId", message.getBufferId().longValue(), out.readUnsignedInt());
         Assert.assertEquals("Wrong PortNumber", message.getInPort().getValue().longValue(), out.readUnsignedInt());
-        // TODO make test for actions after its implementation in factory 
-        // TODO data
+        Assert.assertEquals("Wrong ActionsLength", 16, out.readUnsignedShort());
         out.skipBytes(PADDING_IN_PACKET_OUT_MESSAGE);
+        Assert.assertEquals("Wrong action type", 17, out.readUnsignedShort());
+        Assert.assertEquals("Wrong action length", 8, out.readUnsignedShort());
+        Assert.assertEquals("Wrong ethertype", 25, out.readUnsignedShort());
+        out.skipBytes(Short.SIZE / Byte.SIZE);
+        Assert.assertEquals("Wrong action type", 18, out.readUnsignedShort());
+        Assert.assertEquals("Wrong action length", 8, out.readUnsignedShort());
+        out.skipBytes(PADDING_IN_ACTION_HEADER);
+        Assert.assertArrayEquals("Wrong data", message.getData(), out.readBytes(out.readableBytes()).array());
     }
 }
diff --git a/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/MockPlugin.java b/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/MockPlugin.java
index e98b48ed..8c5f093f 100644
--- a/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/MockPlugin.java
+++ b/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/MockPlugin.java
@@ -184,7 +184,14 @@ public class MockPlugin implements OpenflowProtocolListener, SwitchConnectionHan
     @Override
     public void onPacketInMessage(PacketInMessage notification) {
         LOGGER.debug("PacketIn message received");
-        
+        LOGGER.debug("BufferId: " + notification.getBufferId());
+        LOGGER.debug("TotalLength: " + notification.getTotalLen());
+        LOGGER.debug("Reason: " + notification.getReason());
+        LOGGER.debug("TableId: " + notification.getTableId());
+        LOGGER.debug("Cookie: " + notification.getCookie());
+        LOGGER.debug("Class: " + notification.getMatch().getMatchEntries().get(0).getOxmClass());
+        LOGGER.debug("Field: " + notification.getMatch().getMatchEntries().get(0).getOxmMatchField());
+        LOGGER.debug("Datasize: " + notification.getData().length);
     }
 
     @Override
diff --git a/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientFramer.java b/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientFramer.java
new file mode 100644
index 00000000..95eb08c0
--- /dev/null
+++ b/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientFramer.java
@@ -0,0 +1,60 @@
+/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
+
+package org.opendaylight.openflowjava.protocol.impl.clients;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.ByteToMessageDecoder;
+
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Class for decoding incoming messages into message frames.
+ *
+ * @author michal.polkorab
+ */
+public class SimpleClientFramer extends ByteToMessageDecoder {
+
+    /** Length of OpenFlow 1.3 header */
+    public static final byte LENGTH_OF_HEADER = 8;
+    private static final byte LENGTH_INDEX_IN_HEADER = 2;
+    private static final Logger LOGGER = LoggerFactory.getLogger(SimpleClientFramer.class);
+
+    /**
+     * Constructor of class.
+     */
+    public SimpleClientFramer() {
+        LOGGER.debug("Creating OFFrameDecoder");
+    }
+
+    @Override
+    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
+        LOGGER.warn("Unexpected exception from downstream.", cause);
+        ctx.close();
+    }
+
+    @Override
+    protected void decode(ChannelHandlerContext chc, ByteBuf bb, List list) throws Exception {
+        if (bb.readableBytes() < LENGTH_OF_HEADER) {
+            LOGGER.debug("skipping bb - too few data for header: " + bb.readableBytes());
+            return;
+        }
+
+        int length = bb.getUnsignedShort(LENGTH_INDEX_IN_HEADER);
+        if (bb.readableBytes() < length) {
+            LOGGER.debug("skipping bb - too few data for msg: " +
+                    bb.readableBytes() + " < " + length);
+            return;
+        }
+        LOGGER.info("OF Protocol message received, type:{}", bb.getByte(1));
+
+        ByteBuf messageBuffer = bb.slice(bb.readerIndex(), length);
+        list.add(messageBuffer);
+        messageBuffer.retain();
+        bb.skipBytes(length);
+    }
+
+}
diff --git a/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientHandler.java b/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientHandler.java
index 04147af0..e9453b58 100644
--- a/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientHandler.java
+++ b/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientHandler.java
@@ -19,7 +19,7 @@ import com.google.common.util.concurrent.SettableFuture;
 public class SimpleClientHandler extends ChannelInboundHandlerAdapter {
 
     protected static final Logger LOGGER = LoggerFactory.getLogger(SimpleClientHandler.class);
-    private static final int OFP_HEADER_LENGTH = 8;
+    private static final int LENGTH_INDEX_IN_HEADER = 2;
     private SettableFuture isOnlineFuture;
     protected ScenarioHandler scenarioHandler;
 
@@ -34,18 +34,13 @@ public class SimpleClientHandler extends ChannelInboundHandlerAdapter {
 
     @Override
     public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
-        LOGGER.info("SimpleClientHandler - start of read");
         ByteBuf bb = (ByteBuf) msg;
         if (LOGGER.isDebugEnabled()) {
             LOGGER.debug("<< " + ByteBufUtils.byteBufToHexString(bb));
         }
-        
-        if (bb.readableBytes() < OFP_HEADER_LENGTH) {
-            LOGGER.debug("too few bytes received: "+bb.readableBytes()+" - wait for next data portion");
-            return;
-        }
-        int msgSize = bb.getUnsignedShort(2);
-        byte[] message = new byte[msgSize];
+        int length = bb.getUnsignedShort(LENGTH_INDEX_IN_HEADER);
+        LOGGER.info("SimpleClientHandler - start of read");
+        byte[] message = new byte[length];
         bb.readBytes(message);
         scenarioHandler.addOfMsg(message);
         LOGGER.info("end of read");
diff --git a/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientInitializer.java b/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientInitializer.java
index 8ca01e8e..eed60970 100644
--- a/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientInitializer.java
+++ b/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientInitializer.java
@@ -40,6 +40,7 @@ public class SimpleClientInitializer extends ChannelInitializer {
                     .createSSLEngine();
             engine.setUseClientMode(true);
             pipeline.addLast("ssl", new SslHandler(engine));
+            pipeline.addLast("framer", new SimpleClientFramer());
         }
         SimpleClientHandler simpleClientHandler = new SimpleClientHandler(isOnlineFuture, scenarioHandler);
         simpleClientHandler.setScenario(scenarioHandler);