X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fstatistics%2FSinglePurposeMultipartReplyTranslator.java;h=154582e61746fc2f8574e7a70cff9de4911157e6;hb=refs%2Fchanges%2F98%2F40798%2F6;hp=ad111387be91dcc2e326b044ec456ff8557af0bd;hpb=ff96b402131838b73befc5d3611f8251cfd4c724;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/SinglePurposeMultipartReplyTranslator.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/SinglePurposeMultipartReplyTranslator.java index ad111387be..154582e617 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/SinglePurposeMultipartReplyTranslator.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/SinglePurposeMultipartReplyTranslator.java @@ -10,14 +10,13 @@ package org.opendaylight.openflowplugin.impl.statistics; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.FlowStatsResponseConvertor; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupStatsResponseConvertor; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.MeterStatsResponseConvertor; import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter32; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter64; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Counter32; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Counter64; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.AggregateFlowStatisticsUpdateBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.FlowsStatisticsUpdateBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.FlowTableStatisticsUpdateBuilder; @@ -53,7 +52,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.Meter import org.opendaylight.yang.gen.v1.urn.opendaylight.model.statistics.types.rev130925.duration.DurationBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.statistics.types.rev130925.node.connector.statistics.BytesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.statistics.types.rev130925.node.connector.statistics.PacketsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyAggregateCase; @@ -111,16 +109,15 @@ public class SinglePurposeMultipartReplyTranslator { private static MeterStatsResponseConvertor meterStatsConvertor = new MeterStatsResponseConvertor(); - public List translate(final DeviceContext deviceContext, final OfHeader msg) { + public List translate(final BigInteger datapathId, final short version, final OfHeader msg) { List listDataObject = new ArrayList<>(); - OpenflowVersion ofVersion = OpenflowVersion.get(deviceContext.getPrimaryConnectionContext().getFeatures().getVersion()); + OpenflowVersion ofVersion = OpenflowVersion.get(version); - final FeaturesReply features = deviceContext.getPrimaryConnectionContext().getFeatures(); if (msg instanceof MultipartReplyMessage) { MultipartReplyMessage mpReply = (MultipartReplyMessage) msg; - NodeId node = SinglePurposeMultipartReplyTranslator.nodeIdFromDatapathId(features.getDatapathId()); + NodeId node = SinglePurposeMultipartReplyTranslator.nodeIdFromDatapathId(datapathId); switch (mpReply.getType()) { case OFPMPFLOW: { FlowsStatisticsUpdateBuilder message = new FlowsStatisticsUpdateBuilder(); @@ -129,7 +126,7 @@ public class SinglePurposeMultipartReplyTranslator { message.setTransactionId(generateTransactionId(mpReply.getXid())); MultipartReplyFlowCase caseBody = (MultipartReplyFlowCase) mpReply.getMultipartReplyBody(); MultipartReplyFlow replyBody = caseBody.getMultipartReplyFlow(); - message.setFlowAndStatisticsMapList(flowStatsConvertor.toSALFlowStatsList(replyBody.getFlowStats(), features.getDatapathId(), ofVersion)); + message.setFlowAndStatisticsMapList(flowStatsConvertor.toSALFlowStatsList(replyBody.getFlowStats(), datapathId, ofVersion)); listDataObject.add(message.build()); return listDataObject; @@ -167,7 +164,7 @@ public class SinglePurposeMultipartReplyTranslator { NodeConnectorStatisticsAndPortNumberMapBuilder statsBuilder = new NodeConnectorStatisticsAndPortNumberMapBuilder(); statsBuilder.setNodeConnectorId( - InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(features.getDatapathId(), + InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(datapathId, portStats.getPortNo(), ofVersion)); BytesBuilder bytesBuilder = new BytesBuilder(); @@ -396,7 +393,7 @@ public class SinglePurposeMultipartReplyTranslator { QueueIdAndStatisticsMapBuilder statsBuilder = new QueueIdAndStatisticsMapBuilder(); statsBuilder.setNodeConnectorId( - InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(features.getDatapathId(), + InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(datapathId, queueStats.getPortNo(), ofVersion)); statsBuilder.setTransmissionErrors(new Counter64(queueStats.getTxErrors())); statsBuilder.setTransmittedBytes(new Counter64(queueStats.getTxBytes())); @@ -408,7 +405,7 @@ public class SinglePurposeMultipartReplyTranslator { statsBuilder.setDuration(durationBuilder.build()); statsBuilder.setQueueId(new QueueId(queueStats.getQueueId())); - statsBuilder.setNodeConnectorId(InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(features.getDatapathId(), + statsBuilder.setNodeConnectorId(InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(datapathId, queueStats.getPortNo(), ofVersion)); statsMap.add(statsBuilder.build());