import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.openflowplugin.impl.datastore.MultipartWriterProvider;
import org.opendaylight.openflowplugin.impl.services.util.RequestInputUtils;
-import org.opendaylight.openflowplugin.impl.statistics.services.direct.AbstractQueueDirectStatisticsService;
+import org.opendaylight.openflowplugin.impl.statistics.services.direct.AbstractGetQueueStatistics;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Counter32;
import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetQueueStatisticsOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetQueueStatisticsOutputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.queue.rev130925.QueueId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.model.statistics.types.rev130925.duration.DurationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReply;
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.MultipartReplyQueueCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.queue._case.MultipartReplyQueue;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.queue._case.multipart.reply.queue.QueueStats;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueueCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.queue._case.MultipartRequestQueueBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMap;
import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMapKey;
import org.opendaylight.yangtools.yang.binding.util.BindingMap;
-public class QueueDirectStatisticsService extends AbstractQueueDirectStatisticsService<MultipartReply> {
-
- public QueueDirectStatisticsService(final RequestContextStack requestContextStack,
- final DeviceContext deviceContext,
- final ConvertorExecutor convertorExecutor,
- final MultipartWriterProvider statisticsWriterProvider) {
+public final class MultiGetQueueStatistics extends AbstractGetQueueStatistics<MultipartReply> {
+ public MultiGetQueueStatistics(final RequestContextStack requestContextStack, final DeviceContext deviceContext,
+ final ConvertorExecutor convertorExecutor, final MultipartWriterProvider statisticsWriterProvider) {
super(requestContextStack, deviceContext, convertorExecutor, statisticsWriterProvider);
}
final var queueIdAndStatisticsMap =
BindingMap.<QueueIdAndStatisticsMapKey, QueueIdAndStatisticsMap>orderedBuilder();
- for (final MultipartReply mpReply : input) {
- final MultipartReplyQueueCase caseBody = (MultipartReplyQueueCase) mpReply.getMultipartReplyBody();
- final MultipartReplyQueue replyBody = caseBody.getMultipartReplyQueue();
-
- for (final QueueStats queueStats : replyBody.nonnullQueueStats()) {
- final DurationBuilder durationBuilder = new DurationBuilder()
- .setSecond(new Counter32(queueStats.getDurationSec()))
- .setNanosecond(new Counter32(queueStats.getDurationNsec()));
-
- final QueueId queueId = new QueueId(queueStats.getQueueId());
- final NodeConnectorId nodeConnectorId = InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(
- getDatapathId(), queueStats.getPortNo(), getOfVersion());
+ for (var mpReply : input) {
+ final var caseBody = (MultipartReplyQueueCase) mpReply.getMultipartReplyBody();
+ final var replyBody = caseBody.getMultipartReplyQueue();
- final QueueIdAndStatisticsMapBuilder statsBuilder = new QueueIdAndStatisticsMapBuilder()
- .setNodeConnectorId(nodeConnectorId)
- .setQueueId(queueId)
+ for (var queueStats : replyBody.nonnullQueueStats()) {
+ queueIdAndStatisticsMap.add(new QueueIdAndStatisticsMapBuilder()
+ .setNodeConnectorId(InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(
+ getDatapathId(), queueStats.getPortNo(), getOfVersion()))
+ .setQueueId(new QueueId(queueStats.getQueueId()))
.setTransmissionErrors(new Counter64(queueStats.getTxErrors()))
.setTransmittedBytes(new Counter64(queueStats.getTxBytes()))
.setTransmittedPackets(new Counter64(queueStats.getTxPackets()))
- .setDuration(durationBuilder.build());
-
- queueIdAndStatisticsMap.add(statsBuilder.build());
+ .setDuration(new DurationBuilder()
+ .setSecond(new Counter32(queueStats.getDurationSec()))
+ .setNanosecond(new Counter32(queueStats.getDurationNsec()))
+ .build())
+ .build());
}
}
@Override
protected OfHeader buildRequest(final Xid xid, final GetQueueStatisticsInput input) {
- final MultipartRequestQueueBuilder mprQueueBuilder = new MultipartRequestQueueBuilder();
-
+ final var mprQueueBuilder = new MultipartRequestQueueBuilder();
if (input.getQueueId() != null) {
mprQueueBuilder.setQueueId(input.getQueueId().getValue());
} else {