\r
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;\r
\r
+import io.netty.buffer.ByteBuf;\r
+\r
import java.util.ArrayList;\r
import java.util.List;\r
\r
-import io.netty.buffer.ByteBuf;\r
-\r
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;\r
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistryInjector;\r
-import org.opendaylight.openflowjava.protocol.api.extensibility.EnhancedMessageCodeKey;\r
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.keys.MatchEntryDeserializerKey;\r
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmFieldsAction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmFieldsActionBuilder;\r
// get oxm_field & hasMask byte and extract the field value\r
int oxmField = input.getUnsignedByte(input.readerIndex()\r
+ EncodeConstants.SIZE_OF_SHORT_IN_BYTES) >>> 1;\r
- OFDeserializer<MatchEntries> matchDeserializer = registry.getDeserializer(\r
- new EnhancedMessageCodeKey(EncodeConstants.OF13_VERSION_ID, oxmClass,\r
- oxmField, MatchEntries.class));\r
+ MatchEntryDeserializerKey key = new MatchEntryDeserializerKey(EncodeConstants.OF13_VERSION_ID,\r
+ oxmClass, oxmField);\r
+ if (oxmClass == EncodeConstants.EXPERIMENTER_VALUE) {\r
+ long expId = input.getUnsignedInt(input.readerIndex() + EncodeConstants.SIZE_OF_SHORT_IN_BYTES\r
+ + 2 * EncodeConstants.SIZE_OF_BYTE_IN_BYTES);\r
+ key.setExperimenterId(expId);\r
+ }\r
+ OFDeserializer<MatchEntries> matchDeserializer = registry.getDeserializer(key);\r
List<MatchEntries> entry = new ArrayList<>();\r
entry.add(matchDeserializer.deserialize(input));\r
matchEntries.setMatchEntries(entry);\r