Updated Multipart message code 18/2818/3
authorMichal Polkorab <michal.polkorab@pantheon.sk>
Mon, 18 Nov 2013 10:44:28 +0000 (11:44 +0100)
committerMichal Polkorab <michal.polkorab@pantheon.sk>
Mon, 18 Nov 2013 12:29:25 +0000 (13:29 +0100)
Signed-off-by: Michal Polkorab <michal.polkorab@pantheon.sk>
Change-Id: I07ea5cac134a026b8ed65ee8cea77fd623951dc3

openflow-protocol-api/src/main/yang/openflow-protocol.yang
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/ConnectionAdapterImpl.java
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java [moved from openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestMessageFactory.java with 86% similarity]
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10StatsRequestInputFactory.java [moved from openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10StatsRequestMessageFactory.java with 79% similarity]
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SendMultipartRequestMessageInputFactory.java [deleted file]
openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactoryTest.java [moved from openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestMessageFactoryTest.java with 84% similarity]
openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/MockPlugin.java

index 659cc1edb88b5b46d3fcc948a812830c1b4c1dd8..6f53f004904fb34b5ace2179e7617ac93d9f5529 100644 (file)
@@ -542,9 +542,7 @@ module openflow-protocol {
                 }      \r
                 choice multipart-request-body {\r
                     case multipart-request-desc {\r
-                        leaf desc {\r
-                            type empty;\r
-                        }\r
+                        // empty body\r
                     }\r
                     case multipart-request-flow {\r
                         leaf table-id {\r
@@ -588,6 +586,9 @@ module openflow-protocol {
                         // OF1.0 structures\r
                         uses oxm:match-v10-grouping;\r
                     }\r
+                    case multipart-request-table {\r
+                        // empty body\r
+                    }\r
                     case multipart-request-port-stats {\r
                         leaf port-no {\r
                             type uint32;\r
@@ -606,6 +607,12 @@ module openflow-protocol {
                             type uint32;\r
                         }\r
                     }\r
+                    case multipart-request-group-desc {\r
+                        // empty body\r
+                    }\r
+                    case multipart-request-group-features {\r
+                        // empty body\r
+                    }\r
                     case multipart-request-meter {\r
                         leaf meter-id {\r
                             type uint32;\r
@@ -616,6 +623,9 @@ module openflow-protocol {
                             type uint32;\r
                         }\r
                     }\r
+                    case multipart-request-meter-features {\r
+                        // empty body\r
+                    }\r
                     case multipart-request-table-features {\r
                         list table-features {\r
                             leaf table-id {\r
@@ -639,6 +649,9 @@ module openflow-protocol {
                             uses table-features-properties;\r
                         }\r
                     }\r
+                    case multipart-request-port-desc {\r
+                        // empty body\r
+                    }\r
                     case multipart-request-experimenter {\r
                         leaf experimenter {\r
                             type uint32;\r
@@ -1309,24 +1322,18 @@ module openflow-protocol {
             } /* Controller/switch message */\r
 \r
         /* Multipart messages. */\r
-            //FIXME: Arent this wire protocol specific?\r
 \r
-            rpc send-multipart-request-message {\r
+            rpc multipart-request {\r
                 input {\r
                     uses multipart-request;\r
                 }\r
             }\r
 \r
-            notification multipart-request-message {\r
-                uses multipart-request;\r
-                // reference "OFPT_MULTIPART_REQUEST message in Openflow Switch 1.3 Spec"\r
-                // TODO: This should probably be deprecated as I think it should have been an rpc - eaw@cisco.com\r
-                \r
-            } /* Controller/switch message */\r
+             /* Controller/switch message */\r
             notification multipart-reply-message {\r
                 uses multipart-reply;\r
                 // reference "OFPT_MULTIPART_REPLY message in Openflow Switch 1.3 Spec"\r
-                \r
+                // notification because of multiple following responses\r
             } /* Controller/switch message */\r
             \r
 \r
index 3c83945b93798d2dec8d116345826dbe47d790c0..e579ce7c14384b5640cb0d5414584428e3ed95da 100644 (file)
@@ -39,7 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
@@ -48,7 +48,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SendMultipartRequestMessageInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput;
@@ -182,7 +181,7 @@ public class ConnectionAdapterImpl implements ConnectionFacade {
     }
 
     @Override
-    public Future<RpcResult<Void>> sendMultipartRequestMessage(SendMultipartRequestMessageInput input) {
+    public Future<RpcResult<Void>> multipartRequest(MultipartRequestInput input) {
         return sendToSwitchFuture(input, "multi-part-request sending failed");
     }
 
@@ -270,8 +269,6 @@ public class ConnectionAdapterImpl implements ConnectionFacade {
                 messageListener.onHelloMessage((HelloMessage) message);
             } else if (message instanceof MultipartReplyMessage) {
                 messageListener.onMultipartReplyMessage((MultipartReplyMessage) message);
-            } else if (message instanceof MultipartRequestMessage) {
-                messageListener.onMultipartRequestMessage((MultipartRequestMessage) message);
             } else if (message instanceof PacketInMessage) {
                 messageListener.onPacketInMessage((PacketInMessage) message);
             } else if (message instanceof PortStatusMessage) {
index 0fd8205d60d54977fb929d9726a590ff56c62ec8..903ea7ddf553afac1301acaeba2be0b0a6066d71 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetQu
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GroupModInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.HelloInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MeterModInputMessageFactory;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartRequestMessageFactory;\r
+import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartRequestInputFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10BarrierInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10EchoInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10EchoReplyInputMessageFactory;\r
@@ -29,12 +29,11 @@ import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10P
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10PortModInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10QueueGetConfigInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10SetConfigMessageFactory;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10StatsRequestMessageFactory;\r
+import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10StatsRequestInputFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10VendorInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PacketOutInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PortModInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.RoleRequestInputMessageFactory;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.factories.SendMultipartRequestMessageInputFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.SetAsyncInputMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.SetConfigMessageFactory;\r
 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.TableModInputMessageFactory;\r
@@ -50,11 +49,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SendMultipartRequestMessageInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput;\r
@@ -102,7 +100,7 @@ public class EncoderTable {
         table.put(new MessageTypeKey<>(OF10, GetFeaturesInput.class), OF10FeaturesInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF10, GetQueueConfigInput.class), OF10QueueGetConfigInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF10, HelloInput.class), OF10HelloInputMessageFactory.getInstance());\r
-        table.put(new MessageTypeKey<>(OF10, MultipartRequestMessage.class), OF10StatsRequestMessageFactory.getInstance());\r
+        table.put(new MessageTypeKey<>(OF10, MultipartRequestInput.class), OF10StatsRequestInputFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF10, PacketOutInput.class), OF10PacketOutInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF10, PortModInput.class), OF10PortModInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF10, SetConfigInput.class), OF10SetConfigMessageFactory.getInstance());\r
@@ -118,8 +116,7 @@ public class EncoderTable {
         table.put(new MessageTypeKey<>(OF13, GroupModInput.class), GroupModInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF13, HelloInput.class), HelloInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF13, MeterModInput.class), MeterModInputMessageFactory.getInstance());\r
-        table.put(new MessageTypeKey<>(OF13, MultipartRequestMessage.class), MultipartRequestMessageFactory.getInstance());\r
-        table.put(new MessageTypeKey<>(OF13, SendMultipartRequestMessageInput.class), SendMultipartRequestMessageInputFactory.getInstance());\r
+        table.put(new MessageTypeKey<>(OF13, MultipartRequestInput.class), MultipartRequestInputFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF13, PacketOutInput.class), PacketOutInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF13, PortModInput.class), PortModInputMessageFactory.getInstance());\r
         table.put(new MessageTypeKey<>(OF13, RoleRequestInput.class), RoleRequestInputMessageFactory.getInstance());\r
@@ -25,17 +25,22 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregate;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDesc;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenter;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlow;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroup;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupDesc;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeatures;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeter;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfig;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeatures;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortDesc;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStats;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTable;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeatures;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features.TableFeatures;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeatureProperties;\r
@@ -45,30 +50,30 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @author timotej.kubas\r
  * @author michal.polkorab\r
  */\r
-public class MultipartRequestMessageFactory implements OFSerializer<MultipartRequestMessage> {\r
+public class MultipartRequestInputFactory implements OFSerializer<MultipartRequestInput> {\r
     private static final byte MESSAGE_TYPE = 18;\r
     private static final int MESSAGE_LENGTH = 16;\r
     private static final byte PADDING_IN_MULTIPART_REQUEST_MESSAGE = 4;\r
     private static final byte TABLE_FEAT_HEADER_LENGTH = 4;\r
-    private static MultipartRequestMessageFactory instance;\r
+    private static MultipartRequestInputFactory instance;\r
 \r
-    private MultipartRequestMessageFactory() {\r
+    private MultipartRequestInputFactory() {\r
         // singleton\r
     }\r
 \r
     /**\r
      * @return singleton factory\r
      */\r
-    public static synchronized MultipartRequestMessageFactory getInstance() {\r
+    public static synchronized MultipartRequestInputFactory getInstance() {\r
         if (instance == null) {\r
-            instance = new MultipartRequestMessageFactory();\r
+            instance = new MultipartRequestInputFactory();\r
         }\r
         return instance;\r
     }\r
 \r
     @Override\r
     public void messageToBuffer(short version, ByteBuf out,\r
-            MultipartRequestMessage message) {\r
+            MultipartRequestInput message) {\r
         ByteBufUtils.writeOFHeader(instance, message, out);\r
         out.writeShort(message.getType().getIntValue());\r
         out.writeShort(createMultipartRequestFlagsBitmask(message.getFlags()));\r
@@ -80,25 +85,35 @@ public class MultipartRequestMessageFactory implements OFSerializer<MultipartReq
             encodeFlowBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestAggregate) {\r
             encodeAggregateBody(message.getMultipartRequestBody(), out);\r
+        } else if (message.getMultipartRequestBody() instanceof MultipartRequestTable) {\r
+            encodeTableBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestPortStats) {\r
             encodePortStatsBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestQueue) {\r
             encodeQueueBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestGroup) {\r
             encodeGroupStatsBody(message.getMultipartRequestBody(), out);\r
+        } else if (message.getMultipartRequestBody() instanceof MultipartRequestGroupDesc) {\r
+            encodeGroupDescBody(message.getMultipartRequestBody(), out);\r
+        } else if (message.getMultipartRequestBody() instanceof MultipartRequestGroupFeatures) {\r
+            encodeGroupFeaturesBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestMeter) {\r
             encodeMeterBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestMeterConfig) {\r
             encodeMeterConfigBody(message.getMultipartRequestBody(), out);\r
+        } else if (message.getMultipartRequestBody() instanceof MultipartRequestMeterFeatures) {\r
+            encodeMeterFeaturesBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestTableFeatures) {\r
             encodeTableFeaturesBody(message.getMultipartRequestBody(), out);\r
+        } else if (message.getMultipartRequestBody() instanceof MultipartRequestPortDesc) {\r
+            encodePortDescBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestExperimenter) {\r
             encodeExperimenterBody(message.getMultipartRequestBody(), out);\r
         }\r
     }\r
 \r
     @Override\r
-    public int computeLength(MultipartRequestMessage message) {\r
+    public int computeLength(MultipartRequestInput message) {\r
         return MESSAGE_LENGTH + computeBodyLength(message);\r
     }\r
     @Override\r
@@ -111,7 +126,7 @@ public class MultipartRequestMessageFactory implements OFSerializer<MultipartReq
      * @param message\r
      * @return length of MultipartRequestMessage\r
      */\r
-    public int computeBodyLength(MultipartRequestMessage message) {\r
+    public int computeBodyLength(MultipartRequestInput message) {\r
         int length = 0;\r
         MultipartType type = message.getType();\r
         if (type.equals(MultipartType.OFPMPFLOW)) {\r
@@ -203,12 +218,60 @@ public class MultipartRequestMessageFactory implements OFSerializer<MultipartReq
         return multipartRequestFlagsBitmask;\r
     }\r
 \r
+    /**\r
+     * @param multipartRequestBody  \r
+     * @param output \r
+     */\r
     private void encodeDescBody(MultipartRequestBody multipartRequestBody,\r
             ByteBuf output) {\r
         // The body of MultiPartRequestDesc is empty\r
+    }\r
+\r
+    /**\r
+     * @param multipartRequestBody\r
+     * @param out\r
+     */\r
+    private void encodeTableBody(MultipartRequestBody multipartRequestBody,\r
+            ByteBuf out) {\r
+     // The body of MultiPartTable is empty\r
+    }\r
+\r
+    /**\r
+     * @param multipartRequestBody\r
+     * @param out\r
+     */\r
+    private void encodeGroupDescBody(MultipartRequestBody multipartRequestBody,\r
+            ByteBuf out) {\r
+     // The body of MultiPartRequestGroupDesc is empty\r
+    }\r
+\r
+    /**\r
+     * @param multipartRequestBody\r
+     * @param out\r
+     */\r
+    private void encodeGroupFeaturesBody(\r
+            MultipartRequestBody multipartRequestBody, ByteBuf out) {\r
+     // The body of MultiPartRequestGroupFeatures is empty\r
+    }\r
 \r
+    /**\r
+     * @param multipartRequestBody\r
+     * @param out\r
+     */\r
+    private void encodeMeterFeaturesBody(\r
+            MultipartRequestBody multipartRequestBody, ByteBuf out) {\r
+     // The body of MultiPartMeterFeatures is empty\r
     }\r
 \r
+    /**\r
+     * @param multipartRequestBody\r
+     * @param out\r
+     */\r
+    private void encodePortDescBody(MultipartRequestBody multipartRequestBody,\r
+            ByteBuf out) {\r
+     // The body of MultiPartPortDesc is empty\r
+    }\r
+    \r
     private static void encodeFlowBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
         final byte PADDING_IN_MULTIPART_REQUEST_FLOW_BODY_01 = 3;\r
         final byte PADDING_IN_MULTIPART_REQUEST_FLOW_BODY_02 = 4;\r
@@ -11,49 +11,55 @@ import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
 import org.opendaylight.openflowjava.protocol.impl.util.OF10MatchSerializer;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregate;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDesc;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenter;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlow;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStats;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTable;\r
 \r
 /**\r
  * Translates StatsRequest messages\r
  * @author michal.polkorab\r
  */\r
-public class OF10StatsRequestMessageFactory implements OFSerializer<MultipartRequestMessage> {\r
+public class OF10StatsRequestInputFactory implements OFSerializer<MultipartRequestInput> {\r
 \r
     private static final byte MESSAGE_TYPE = 18;\r
     private static final int MESSAGE_LENGTH = 16;\r
 \r
-    private static OF10StatsRequestMessageFactory instance; \r
+    private static OF10StatsRequestInputFactory instance; \r
     \r
-    private OF10StatsRequestMessageFactory() {\r
+    private OF10StatsRequestInputFactory() {\r
         // singleton\r
     }\r
     \r
     /**\r
      * @return singleton factory\r
      */\r
-    public static synchronized OF10StatsRequestMessageFactory getInstance() {\r
+    public static synchronized OF10StatsRequestInputFactory getInstance() {\r
         if (instance == null) {\r
-            instance = new OF10StatsRequestMessageFactory();\r
+            instance = new OF10StatsRequestInputFactory();\r
         }\r
         return instance;\r
     }\r
     \r
     @Override\r
     public void messageToBuffer(short version, ByteBuf out,\r
-            MultipartRequestMessage message) {\r
+            MultipartRequestInput message) {\r
         ByteBufUtils.writeOFHeader(instance, message, out);\r
         out.writeShort(message.getType().getIntValue());\r
         out.writeShort(createMultipartRequestFlagsBitmask(message.getFlags()));\r
-        if (message.getMultipartRequestBody() instanceof MultipartRequestFlow) {\r
+        if (message.getMultipartRequestBody() instanceof MultipartRequestDesc) {\r
+            encodeDescBody(message.getMultipartRequestBody(), out);\r
+        } else if (message.getMultipartRequestBody() instanceof MultipartRequestFlow) {\r
             encodeFlowBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestAggregate) {\r
             encodeAggregateBody(message.getMultipartRequestBody(), out);\r
+        } else if (message.getMultipartRequestBody() instanceof MultipartRequestTable) {\r
+            encodeTableBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestPortStats) {\r
             encodePortBody(message.getMultipartRequestBody(), out);\r
         } else if (message.getMultipartRequestBody() instanceof MultipartRequestQueue) {\r
@@ -64,7 +70,7 @@ public class OF10StatsRequestMessageFactory implements OFSerializer<MultipartReq
     }\r
     \r
     @Override\r
-    public int computeLength(MultipartRequestMessage message) {\r
+    public int computeLength(MultipartRequestInput message) {\r
         return MESSAGE_LENGTH + computeBodyLength(message);\r
     }\r
     @Override\r
@@ -77,7 +83,7 @@ public class OF10StatsRequestMessageFactory implements OFSerializer<MultipartReq
      * @param message\r
      * @return length of MultipartRequestMessage\r
      */\r
-    public int computeBodyLength(MultipartRequestMessage message) {\r
+    public int computeBodyLength(MultipartRequestInput message) {\r
         int length = 0;\r
         MultipartType type = message.getType();\r
         if (type.equals(MultipartType.OFPMPFLOW)) {\r
@@ -111,6 +117,24 @@ public class OF10StatsRequestMessageFactory implements OFSerializer<MultipartReq
         return multipartRequestFlagsBitmask;\r
     }\r
     \r
+    /**\r
+     * @param multipartRequestBody  \r
+     * @param output \r
+     */\r
+    private void encodeDescBody(MultipartRequestBody multipartRequestBody,\r
+            ByteBuf output) {\r
+        // The body of MultiPartRequestDesc is empty\r
+    }\r
+\r
+    /**\r
+     * @param multipartRequestBody\r
+     * @param out\r
+     */\r
+    private void encodeTableBody(MultipartRequestBody multipartRequestBody,\r
+            ByteBuf out) {\r
+     // The body of MultiPartTable is empty\r
+    }\r
+    \r
     private static void encodeFlowBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
         encodeFlowAndAggregateBody(multipartRequestBody, output);\r
     }\r
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SendMultipartRequestMessageInputFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/SendMultipartRequestMessageInputFactory.java
deleted file mode 100644 (file)
index e1b4ae8..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */\r
-package org.opendaylight.openflowjava.protocol.impl.serialization.factories;\r
-\r
-import io.netty.buffer.ByteBuf;\r
-\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.OFSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.util.ActionsSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;\r
-import org.opendaylight.openflowjava.protocol.impl.util.InstructionsSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.util.MatchSerializer;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ActionRelatedTableFeatureProperty;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterRelatedTableFeatureProperty;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.InstructionRelatedTableFeatureProperty;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NextTableRelatedTableFeatureProperty;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmRelatedTableFeatureProperty;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.table.features.properties.container.table.feature.properties.NextTableIds;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SendMultipartRequestMessageInput;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregate;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDesc;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenter;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlow;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroup;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeter;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfig;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStats;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueue;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeatures;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features.TableFeatures;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeatureProperties;\r
-\r
-/**\r
- * Translates MultipartRequest messages\r
- * @author timotej.kubas\r
- * @author michal.polkorab\r
- */\r
-public class SendMultipartRequestMessageInputFactory implements OFSerializer<SendMultipartRequestMessageInput> {\r
-    private static final byte MESSAGE_TYPE = 18;\r
-    private static final int MESSAGE_LENGTH = 16;\r
-    private static final byte PADDING_IN_MULTIPART_REQUEST_MESSAGE = 4;\r
-    private static final byte TABLE_FEAT_HEADER_LENGTH = 4;\r
-    private static SendMultipartRequestMessageInputFactory instance;\r
-\r
-    private SendMultipartRequestMessageInputFactory() {\r
-        // singleton\r
-    }\r
-\r
-    /**\r
-     * @return singleton factory\r
-     */\r
-    public static synchronized SendMultipartRequestMessageInputFactory getInstance() {\r
-        if (instance == null) {\r
-            instance = new SendMultipartRequestMessageInputFactory();\r
-        }\r
-        return instance;\r
-    }\r
-\r
-    @Override\r
-    public void messageToBuffer(short version, ByteBuf out,\r
-            SendMultipartRequestMessageInput message) {\r
-        ByteBufUtils.writeOFHeader(instance, message, out);\r
-        out.writeShort(message.getType().getIntValue());\r
-        out.writeShort(createMultipartRequestFlagsBitmask(message.getFlags()));\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_MESSAGE, out);\r
-\r
-        if (message.getMultipartRequestBody() instanceof MultipartRequestDesc ){\r
-            encodeDescBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestFlow) {\r
-            encodeFlowBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestAggregate) {\r
-            encodeAggregateBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestPortStats) {\r
-            encodePortStatsBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestQueue) {\r
-            encodeQueueBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestGroup) {\r
-            encodeGroupStatsBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestMeter) {\r
-            encodeMeterBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestMeterConfig) {\r
-            encodeMeterConfigBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestTableFeatures) {\r
-            encodeTableFeaturesBody(message.getMultipartRequestBody(), out);\r
-        } else if (message.getMultipartRequestBody() instanceof MultipartRequestExperimenter) {\r
-            encodeExperimenterBody(message.getMultipartRequestBody(), out);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public int computeLength(SendMultipartRequestMessageInput message) {\r
-        return MESSAGE_LENGTH + computeBodyLength(message);\r
-    }\r
-    @Override\r
-    public byte getMessageType() {\r
-        return MESSAGE_TYPE;\r
-    }\r
-\r
-    /**\r
-     *\r
-     * @param message\r
-     * @return length of SendMultipartRequestMessageInput\r
-     */\r
-    public int computeBodyLength(SendMultipartRequestMessageInput message) {\r
-        int length = 0;\r
-        MultipartType type = message.getType();\r
-        if (type.equals(MultipartType.OFPMPFLOW)) {\r
-            final byte FLOW_BODY_LENGTH = 32;\r
-            MultipartRequestFlow body = (MultipartRequestFlow) message.getMultipartRequestBody();\r
-            length += FLOW_BODY_LENGTH + MatchSerializer.computeMatchLength(body.getMatch());\r
-        } else if (type.equals(MultipartType.OFPMPAGGREGATE)) {\r
-            final byte AGGREGATE_BODY_LENGTH = 32;\r
-            MultipartRequestAggregate body = (MultipartRequestAggregate) message.getMultipartRequestBody();\r
-            length += AGGREGATE_BODY_LENGTH + MatchSerializer.computeMatchLength(body.getMatch());\r
-        } else if (type.equals(MultipartType.OFPMPPORTSTATS)) {\r
-            final byte PORT_STATS_BODY_LENGTH = 8;\r
-            length += PORT_STATS_BODY_LENGTH;\r
-        } else if (type.equals(MultipartType.OFPMPQUEUE)) {\r
-            final byte QUEUE_BODY_LENGTH = 8;\r
-            length += QUEUE_BODY_LENGTH;\r
-        } else if (type.equals(MultipartType.OFPMPGROUP)) {\r
-            final byte GROUP_BODY_LENGTH = 8;\r
-            length += GROUP_BODY_LENGTH;\r
-        } else if (type.equals(MultipartType.OFPMPMETER)) {\r
-            final byte METER_BODY_LENGTH = 8;\r
-            length += METER_BODY_LENGTH;\r
-        } else if (type.equals(MultipartType.OFPMPMETERCONFIG)) {\r
-            final byte METER_CONFIG_BODY_LENGTH = 8;\r
-            length += METER_CONFIG_BODY_LENGTH;\r
-        } else if (type.equals(MultipartType.OFPMPTABLEFEATURES)) {\r
-            MultipartRequestTableFeatures body = (MultipartRequestTableFeatures) message.getMultipartRequestBody();\r
-            length += computeTableFeaturesLength(body);\r
-        } else if (type.equals(MultipartType.OFPMPEXPERIMENTER)) {\r
-            final byte EXPERIMENTER_BODY_LENGTH = 8;\r
-            MultipartRequestExperimenter body = (MultipartRequestExperimenter) message.getMultipartRequestBody();\r
-            length += EXPERIMENTER_BODY_LENGTH;\r
-            if (body.getData() != null) {\r
-                length += body.getData().length;\r
-            }\r
-        }\r
-        return length;\r
-    }\r
-\r
-    private static int computeTableFeaturesLength(MultipartRequestTableFeatures body) {\r
-        final byte TABLE_FEATURES_LENGTH = 64;\r
-        final byte STRUCTURE_HEADER_LENGTH = 4;\r
-        int length = 0;\r
-        if (body != null) {\r
-            List<TableFeatures> tableFeatures = body.getTableFeatures();\r
-            for (TableFeatures feature : tableFeatures) {\r
-                length += TABLE_FEATURES_LENGTH;\r
-                List<TableFeatureProperties> featureProperties = feature.getTableFeatureProperties();\r
-                if (featureProperties != null) {\r
-                    for (TableFeatureProperties featProp : featureProperties) {\r
-                        length += TABLE_FEAT_HEADER_LENGTH;\r
-                        if (featProp.getAugmentation(InstructionRelatedTableFeatureProperty.class) != null) {\r
-                            InstructionRelatedTableFeatureProperty property =\r
-                                    featProp.getAugmentation(InstructionRelatedTableFeatureProperty.class);\r
-                            length += property.getInstructions().size() * STRUCTURE_HEADER_LENGTH;\r
-                        } else if (featProp.getAugmentation(NextTableRelatedTableFeatureProperty.class) != null) {\r
-                            NextTableRelatedTableFeatureProperty property =\r
-                                    featProp.getAugmentation(NextTableRelatedTableFeatureProperty.class);\r
-                            length += property.getNextTableIds().size();\r
-                        } else if (featProp.getAugmentation(ActionRelatedTableFeatureProperty.class) != null) {\r
-                            ActionRelatedTableFeatureProperty property =\r
-                                    featProp.getAugmentation(ActionRelatedTableFeatureProperty.class);\r
-                            length += property.getActionsList().size() * STRUCTURE_HEADER_LENGTH;\r
-                        } else if (featProp.getAugmentation(OxmRelatedTableFeatureProperty.class) != null) {\r
-                            OxmRelatedTableFeatureProperty property =\r
-                                    featProp.getAugmentation(OxmRelatedTableFeatureProperty.class);\r
-                            length += property.getMatchEntries().size() * STRUCTURE_HEADER_LENGTH;\r
-                        } else if (featProp.getAugmentation(ExperimenterRelatedTableFeatureProperty.class) != null) {\r
-                            ExperimenterRelatedTableFeatureProperty property =\r
-                                    featProp.getAugmentation(ExperimenterRelatedTableFeatureProperty.class);\r
-                            length += 2 * (Integer.SIZE / Byte.SIZE);\r
-                            if (property.getData() != null) {\r
-                                length += property.getData().length;\r
-                            }\r
-                        }\r
-                    }\r
-                }\r
-            }\r
-        }\r
-        return length;\r
-    }\r
-\r
-    private static int createMultipartRequestFlagsBitmask(MultipartRequestFlags flags) {\r
-        int multipartRequestFlagsBitmask = 0;\r
-        Map<Integer, Boolean> multipartRequestFlagsMap = new HashMap<>();\r
-        multipartRequestFlagsMap.put(0, flags.isOFPMPFREQMORE());\r
-\r
-        multipartRequestFlagsBitmask = ByteBufUtils.fillBitMaskFromMap(multipartRequestFlagsMap);\r
-        return multipartRequestFlagsBitmask;\r
-    }\r
-\r
-    private void encodeDescBody(MultipartRequestBody multipartRequestBody,\r
-            ByteBuf output) {\r
-        // The body of MultiPartRequestDesc is empty\r
-\r
-    }\r
-\r
-    private static void encodeFlowBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        final byte PADDING_IN_MULTIPART_REQUEST_FLOW_BODY_01 = 3;\r
-        final byte PADDING_IN_MULTIPART_REQUEST_FLOW_BODY_02 = 4;\r
-        MultipartRequestFlow flow = (MultipartRequestFlow) multipartRequestBody;\r
-        output.writeByte(flow.getTableId().byteValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_FLOW_BODY_01, output);\r
-        output.writeInt(flow.getOutPort().intValue());\r
-        output.writeInt(flow.getOutGroup().intValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_FLOW_BODY_02, output);\r
-        output.writeLong(flow.getCookie().longValue());\r
-        output.writeLong(flow.getCookieMask().longValue());\r
-        MatchSerializer.encodeMatch(flow.getMatch(), output);\r
-    }\r
-\r
-    private static void encodeAggregateBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        final byte PADDING_IN_MULTIPART_REQUEST_AGREGGATE_BODY_01 = 3;\r
-        final byte PADDING_IN_MULTIPART_REQUEST_AGREGGATE_BODY_02 = 4;\r
-        MultipartRequestAggregate aggregate = (MultipartRequestAggregate) multipartRequestBody;\r
-        output.writeByte(aggregate.getTableId().byteValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_AGREGGATE_BODY_01, output);\r
-        output.writeInt(aggregate.getOutPort().intValue());\r
-        output.writeInt(aggregate.getOutGroup().intValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_AGREGGATE_BODY_02, output);\r
-        output.writeLong(aggregate.getCookie().longValue());\r
-        output.writeLong(aggregate.getCookieMask().longValue());\r
-        MatchSerializer.encodeMatch(aggregate.getMatch(), output);\r
-    }\r
-\r
-    private static void encodePortStatsBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        final byte PADDING_IN_MULTIPART_REQUEST_PORTSTATS_BODY = 4;\r
-        MultipartRequestPortStats portstats = (MultipartRequestPortStats) multipartRequestBody;\r
-        output.writeInt(portstats.getPortNo().intValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_PORTSTATS_BODY, output);\r
-    }\r
-\r
-    private static void encodeQueueBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        MultipartRequestQueue queue = (MultipartRequestQueue) multipartRequestBody;\r
-        output.writeInt(queue.getPortNo().intValue());\r
-        output.writeInt(queue.getQueueId().intValue());\r
-    }\r
-\r
-    private static void encodeGroupStatsBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        final byte PADDING_IN_MULTIPART_REQUEST_GROUP_BODY = 4;\r
-        MultipartRequestGroup groupStats = (MultipartRequestGroup) multipartRequestBody;\r
-        output.writeInt(groupStats.getGroupId().intValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_GROUP_BODY, output);\r
-    }\r
-\r
-    private static void encodeMeterBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        final byte PADDING_IN_MULTIPART_REQUEST_METER_BODY = 4;\r
-        MultipartRequestMeter meter = (MultipartRequestMeter) multipartRequestBody;\r
-        output.writeInt(meter.getMeterId().intValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_METER_BODY, output);\r
-    }\r
-\r
-    private static void encodeMeterConfigBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        final byte PADDING_IN_MULTIPART_REQUEST_METER_CONFIG_BODY = 4;\r
-        MultipartRequestMeterConfig meterConfig = (MultipartRequestMeterConfig) multipartRequestBody;\r
-        output.writeInt(meterConfig.getMeterId().intValue());\r
-        ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_METER_CONFIG_BODY, output);\r
-    }\r
-\r
-    private static void encodeExperimenterBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        MultipartRequestExperimenter experimenter = (MultipartRequestExperimenter) multipartRequestBody;\r
-        output.writeInt(experimenter.getExperimenter().intValue());\r
-        output.writeInt(experimenter.getExpType().intValue());\r
-        byte[] data = experimenter.getData();\r
-        if (data != null) {\r
-            output.writeBytes(data);\r
-        }\r
-    }\r
-\r
-    private static void encodeTableFeaturesBody(MultipartRequestBody multipartRequestBody, ByteBuf output) {\r
-        if (multipartRequestBody != null) {\r
-            MultipartRequestTableFeatures tableFeatures = (MultipartRequestTableFeatures) multipartRequestBody;\r
-            for (TableFeatures currTableFeature : tableFeatures.getTableFeatures()) {\r
-                final byte PADDING_IN_MULTIPART_REQUEST_TABLE_FEATURES_BODY = 5;\r
-                output.writeByte(currTableFeature.getTableId());\r
-                ByteBufUtils.padBuffer(PADDING_IN_MULTIPART_REQUEST_TABLE_FEATURES_BODY, output);\r
-                output.writeBytes(currTableFeature.getName().getBytes());\r
-                ByteBufUtils.padBuffer((32 - currTableFeature.getName().getBytes().length), output);\r
-                output.writeLong(currTableFeature.getMetadataMatch().longValue());\r
-                output.writeLong(currTableFeature.getMetadataWrite().longValue());\r
-                output.writeInt(createTableConfigBitmask(currTableFeature.getConfig()));\r
-                output.writeInt(currTableFeature.getMaxEntries().intValue());\r
-                writeTableFeatureProperties(output, currTableFeature.getTableFeatureProperties());\r
-            }\r
-        }\r
-    }\r
-\r
-    private static void writeTableFeatureProperties(ByteBuf output, List<TableFeatureProperties> props) {\r
-        if (props != null) {\r
-            for (TableFeatureProperties property : props) {\r
-                TableFeaturesPropType type = property.getType();\r
-                if (type.equals(TableFeaturesPropType.OFPTFPTINSTRUCTIONS)) {\r
-                    final byte INSTRUCTIONS_CODE = 0;\r
-                    writeInstructionRelatedTableProperty(output, property, INSTRUCTIONS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS)) {\r
-                    final byte INSTRUCTIONS_MISS_CODE = 1;\r
-                    writeInstructionRelatedTableProperty(output, property, INSTRUCTIONS_MISS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTNEXTTABLES)) {\r
-                    final byte NEXT_TABLE_CODE = 2;\r
-                    writeNextTableRelatedTableProperty(output, property, NEXT_TABLE_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTNEXTTABLESMISS)) {\r
-                    final byte NEXT_TABLE_MISS_CODE = 3;\r
-                    writeNextTableRelatedTableProperty(output, property, NEXT_TABLE_MISS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTWRITEACTIONS)) {\r
-                    final byte WRITE_ACTIONS_CODE = 4;\r
-                    writeActionsRelatedTableProperty(output, property, WRITE_ACTIONS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTWRITEACTIONSMISS)) {\r
-                    final byte WRITE_ACTIONS_MISS_CODE = 5;\r
-                    writeActionsRelatedTableProperty(output, property, WRITE_ACTIONS_MISS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTAPPLYACTIONS)) {\r
-                    final byte APPLY_ACTIONS_CODE = 6;\r
-                    writeActionsRelatedTableProperty(output, property, APPLY_ACTIONS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTAPPLYACTIONSMISS)) {\r
-                    final byte APPLY_ACTIONS_MISS_CODE = 7;\r
-                    writeActionsRelatedTableProperty(output, property, APPLY_ACTIONS_MISS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTMATCH)) {\r
-                    final byte MATCH_CODE = 8;\r
-                    writeOxmRelatedTableProperty(output, property, MATCH_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTWILDCARDS)) {\r
-                    final byte WILDCARDS_CODE = 10;\r
-                    writeOxmRelatedTableProperty(output, property, WILDCARDS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTWRITESETFIELD)) {\r
-                    final byte WRITE_SETFIELD_CODE = 12;\r
-                    writeOxmRelatedTableProperty(output, property, WRITE_SETFIELD_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTWRITESETFIELDMISS)) {\r
-                    final byte WRITE_SETFIELD_MISS_CODE = 13;\r
-                    writeOxmRelatedTableProperty(output, property, WRITE_SETFIELD_MISS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTAPPLYSETFIELD)) {\r
-                    final byte APPLY_SETFIELD_CODE = 14;\r
-                    writeOxmRelatedTableProperty(output, property, APPLY_SETFIELD_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTAPPLYSETFIELDMISS)) {\r
-                    final byte APPLY_SETFIELD_MISS_CODE = 15;\r
-                    writeOxmRelatedTableProperty(output, property, APPLY_SETFIELD_MISS_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTEXPERIMENTER)) {\r
-                    final int EXPERIMENTER_CODE = 65534; // 0xFFFE\r
-                    writeExperimenterRelatedTableProperty(output, property, EXPERIMENTER_CODE);\r
-                } else if (type.equals(TableFeaturesPropType.OFPTFPTEXPERIMENTERMISS)) {\r
-                    final int EXPERIMENTER_MISS_CODE = 65535; // 0xFFFF\r
-                    writeExperimenterRelatedTableProperty(output, property, EXPERIMENTER_MISS_CODE);\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-    private static void writeInstructionRelatedTableProperty(ByteBuf output,\r
-            TableFeatureProperties property, byte code) {\r
-        output.writeShort(code);\r
-        List<Instructions> instructions = property.\r
-                getAugmentation(InstructionRelatedTableFeatureProperty.class).getInstructions();\r
-        int length = TABLE_FEAT_HEADER_LENGTH;\r
-        if (instructions != null) {\r
-        output.writeShort(InstructionsSerializer.computeInstructionsLength(instructions)\r
-                + TABLE_FEAT_HEADER_LENGTH);\r
-        InstructionsSerializer.encodeInstructions(instructions, output);\r
-        } else {\r
-            output.writeShort(length);\r
-        }\r
-    }\r
-\r
-    private static void writeNextTableRelatedTableProperty(ByteBuf output,\r
-            TableFeatureProperties property, byte code) {\r
-        output.writeShort(code);\r
-        List<NextTableIds> nextTableIds = property.\r
-                getAugmentation(NextTableRelatedTableFeatureProperty.class).getNextTableIds();\r
-        int length = TABLE_FEAT_HEADER_LENGTH;\r
-        if (nextTableIds != null) {\r
-            output.writeShort(length + nextTableIds.size());\r
-            for (NextTableIds next : nextTableIds) {\r
-                output.writeByte(next.getTableId());\r
-            }\r
-        } else {\r
-            output.writeShort(length);\r
-        }\r
-    }\r
-\r
-    private static void writeActionsRelatedTableProperty(ByteBuf output,\r
-            TableFeatureProperties property, byte code) {\r
-        output.writeShort(code);\r
-        List<ActionsList> actions = property.\r
-                getAugmentation(ActionRelatedTableFeatureProperty.class).getActionsList();\r
-        int length = TABLE_FEAT_HEADER_LENGTH;\r
-        if (actions != null) {\r
-        output.writeShort(ActionsSerializer.computeLengthOfActions(actions)\r
-                + TABLE_FEAT_HEADER_LENGTH);\r
-        ActionsSerializer.encodeActions(actions, output);\r
-        } else {\r
-            output.writeShort(length);\r
-        }\r
-    }\r
-\r
-    private static void writeOxmRelatedTableProperty(ByteBuf output,\r
-            TableFeatureProperties property, byte code) {\r
-        output.writeShort(code);\r
-        List<MatchEntries> entries = property.\r
-                getAugmentation(OxmRelatedTableFeatureProperty.class).getMatchEntries();\r
-        int length = TABLE_FEAT_HEADER_LENGTH;\r
-        if (entries != null) {\r
-        output.writeShort(MatchSerializer.computeMatchEntriesLength(entries)\r
-                + TABLE_FEAT_HEADER_LENGTH);\r
-        MatchSerializer.encodeMatchEntries(entries, output);\r
-        } else {\r
-            output.writeShort(length);\r
-        }\r
-    }\r
-\r
-    private static void writeExperimenterRelatedTableProperty(ByteBuf output,\r
-            TableFeatureProperties property, int code) {\r
-        output.writeShort(code);\r
-        ExperimenterRelatedTableFeatureProperty exp = property.\r
-                getAugmentation(ExperimenterRelatedTableFeatureProperty.class);\r
-        byte[] data = exp.getData();\r
-        int length = TABLE_FEAT_HEADER_LENGTH + 2 * (Integer.SIZE / Byte.SIZE);\r
-        if (data != null) {\r
-            output.writeShort(length + data.length);\r
-            output.writeInt(exp.getExperimenter().intValue());\r
-            output.writeInt(exp.getExpType().intValue());\r
-            output.writeBytes(data);\r
-        } else {\r
-            output.writeShort(length);\r
-            output.writeInt(exp.getExperimenter().intValue());\r
-            output.writeInt(exp.getExpType().intValue());\r
-        }\r
-    }\r
-\r
-    private static int createTableConfigBitmask(TableConfig tableConfig) {\r
-        int tableConfigBitmask = 0;\r
-        Map<Integer, Boolean> tableConfigMap = new HashMap<>();\r
-        tableConfigMap.put(3, tableConfig.isOFPTCDEPRECATEDMASK());\r
-\r
-        tableConfigBitmask = ByteBufUtils.fillBitMaskFromMap(tableConfigMap);\r
-        return tableConfigBitmask;\r
-    }\r
-}\r
@@ -16,8 +16,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessageBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregate;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateBuilder;\r
@@ -45,24 +45,24 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @author timotej.kubas\r
  * @author michal.polkorab\r
  */\r
-public class MultipartRequestMessageFactoryTest {\r
+public class MultipartRequestInputFactoryTest {\r
     private static final byte PADDING_IN_MULTIPART_REQUEST_MESSAGE = 4;\r
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
-    public void testMultipartRequestMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+    public void testMultipartRequestInputFactory() throws Exception {\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(1));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestFlow());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -107,19 +107,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
-    public void testMultipartRequestMessageAggregateBodyFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+    public void testMultipartRequestInputAggregateBodyFactory() throws Exception {\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(2));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestAggregate());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -170,19 +170,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
-    public void testMultipartRequestMessageTableFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+    public void testMultipartRequestInputTableFactory() throws Exception {\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(3));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         //multipart request for table does not have body\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -193,19 +193,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestPortStatsMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(4));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestPortStats());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -233,19 +233,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestQueueMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(5));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestQueue());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -273,19 +273,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestGroupMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(6));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestGroup());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -313,19 +313,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestMeterMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(9));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestMeter());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -353,19 +353,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestMeterConfigMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(10));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestMeterConfig());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -393,19 +393,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestExperimenterMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(0xffff));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestExperimenter());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -433,19 +433,19 @@ public class MultipartRequestMessageFactoryTest {
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestDescMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(0));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestDesc());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
@@ -453,26 +453,26 @@ public class MultipartRequestMessageFactoryTest {
         Assert.assertEquals("Wrong flags", message.getFlags(), decodeMultipartRequestFlags(out.readShort()));\r
     }\r
 \r
-    private MultipartRequestBody createRequestDesc() {\r
+    private static MultipartRequestBody createRequestDesc() {\r
         MultipartRequestDescBuilder builder = new MultipartRequestDescBuilder();\r
         return builder.build();\r
     }\r
 \r
     /**\r
      * @throws Exception\r
-     * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
+     * Testing of {@link MultipartRequestInputFactory} for correct translation from POJO\r
      */\r
     @Test\r
     public void testMultipartRequestTableFeaturesMessageFactory() throws Exception {\r
-        MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
+        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
         builder.setType(MultipartType.forValue(12));\r
         builder.setFlags(new MultipartRequestFlags(true));\r
         builder.setMultipartRequestBody(createRequestTableFeatures());\r
-        MultipartRequestMessage message = builder.build();\r
+        MultipartRequestInput message = builder.build();\r
 \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
+        MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
 \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
index 8c5f093f638880cc6c2b20dadead9a9b8a70dca8..7ca6ddd8b7589e311f52f3d17cdc4b3feb98ca89 100644 (file)
@@ -24,7 +24,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;\r
@@ -175,12 +174,6 @@ public class MockPlugin implements OpenflowProtocolListener, SwitchConnectionHan
         \r
     }\r
 \r
-    @Override\r
-    public void onMultipartRequestMessage(MultipartRequestMessage notification) {\r
-        LOGGER.debug("MultipartRequest message received");\r
-        \r
-    }\r
-\r
     @Override\r
     public void onPacketInMessage(PacketInMessage notification) {\r
         LOGGER.debug("PacketIn message received");\r