Added default experimenter serializers
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / util / OF10ActionsSerializer.java
index 2e1d2328e0dfad3c33626cc1722205ed135f6288..90bea81eb76b8437b595f0a637900db6870703c7 100644 (file)
@@ -183,9 +183,16 @@ public class OF10ActionsSerializer implements OFSerializer<Action>, SerializerRe
     }
 
     private void encodeExperimenterAction(Action action, ByteBuf outBuffer) {
+       int actionStartIndex = outBuffer.writerIndex();
+       outBuffer.writeShort(EncodeConstants.EXPERIMENTER_VALUE);
+       int actionLengthIndex = outBuffer.writerIndex();
+        outBuffer.writeShort(EncodeConstants.EMPTY_LENGTH);
+        ExperimenterAction expAction = action.getAugmentation(ExperimenterAction.class);
+        outBuffer.writeInt(expAction.getExperimenter().intValue());
         OFSerializer<ExperimenterAction> serializer = registry.getSerializer(
-                new MessageTypeKey<>(EncodeConstants.OF13_VERSION_ID, Experimenter.class));
-        serializer.serialize((ExperimenterAction) action, outBuffer);
+                new MessageTypeKey<>(EncodeConstants.OF13_VERSION_ID, ExperimenterAction.class));
+        serializer.serialize(expAction, outBuffer);
+        outBuffer.setShort(actionLengthIndex, outBuffer.writerIndex() - actionStartIndex);
     }
 
 }