X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=openflow-protocol-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowjava%2Fprotocol%2Fimpl%2Fdeserialization%2Ffactories%2FOF10StatsReplyMessageFactory.java;h=b1550cee01ebda6fe9d913d57685ff132b46e7ed;hb=1af28ce842ef5a96ad1293c8db0a6cb494c1fbdc;hp=a78d464394d7f7d2925423dff298c1104fdb20eb;hpb=1adc52b6fedfc7ecdb03cb6cab5ae7da3bfb52e4;p=openflowjava.git 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 a78d4643..b1550cee 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 @@ -14,13 +14,18 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer; +import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry; +import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistryInjector; +import org.opendaylight.openflowjava.protocol.api.extensibility.MessageCodeKey; +import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer; import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils; +import org.opendaylight.openflowjava.protocol.impl.util.DecodingUtils; import org.opendaylight.openflowjava.protocol.impl.util.EncodeConstants; -import org.opendaylight.openflowjava.protocol.impl.util.OF10ActionsDeserializer; import org.opendaylight.openflowjava.protocol.impl.util.OF10MatchDeserializer; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyAggregateCase; @@ -57,7 +62,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 * Translates StatsReply messages (OpenFlow v1.0) * @author michal.polkorab */ -public class OF10StatsReplyMessageFactory implements OFDeserializer { +public class OF10StatsReplyMessageFactory implements OFDeserializer, + DeserializerRegistryInjector { private static final int DESC_STR_LEN = 256; private static final int SERIAL_NUM_LEN = 32; @@ -70,27 +76,12 @@ public class OF10StatsReplyMessageFactory implements OFDeserializer flowStatsList = new ArrayList<>(); @@ -152,7 +143,9 @@ public class OF10StatsReplyMessageFactory implements OFDeserializer matchDeserializer = registry.getDeserializer( + new MessageCodeKey(EncodeConstants.OF10_VERSION_ID, EncodeConstants.EMPTY_VALUE, MatchV10.class)); + flowStatsBuilder.setMatchV10(matchDeserializer.deserialize(input)); flowStatsBuilder.setDurationSec(input.readUnsignedInt()); flowStatsBuilder.setDurationNsec(input.readUnsignedInt()); flowStatsBuilder.setPriority(input.readUnsignedShort()); @@ -168,8 +161,11 @@ public class OF10StatsReplyMessageFactory implements OFDeserializer deserializer = registry.getDeserializer(new MessageCodeKey( + EncodeConstants.OF10_VERSION_ID, EncodeConstants.EMPTY_VALUE, Action.class)); + List actions = DecodingUtils.deserializeList(length - LENGTH_OF_FLOW_STATS, + input, deserializer); + flowStatsBuilder.setAction(actions); flowStatsList.add(flowStatsBuilder.build()); } flowBuilder.setFlowStats(flowStatsList); @@ -308,4 +304,9 @@ public class OF10StatsReplyMessageFactory implements OFDeserializer