X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fstatistics%2Fservices%2Fdirect%2Fmultilayer%2FMeterDirectStatisticsService.java;h=a0d2b5310c964feb295b6e7c10e40c0d5c19e6a8;hb=b38d2cf19dcfd741fff8fdcaa754bbe01b8403bc;hp=6b8c70c23769ef093310000724e7ccaf5b057678;hpb=617a0726d931230945a8a8d28a6e34be39f56b16;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/multilayer/MeterDirectStatisticsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/multilayer/MeterDirectStatisticsService.java index 6b8c70c237..a0d2b5310c 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/multilayer/MeterDirectStatisticsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/multilayer/MeterDirectStatisticsService.java @@ -11,18 +11,26 @@ package org.opendaylight.openflowplugin.impl.statistics.services.direct.multilay import java.util.ArrayList; import java.util.List; import java.util.Optional; +import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; +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.AbstractMeterDirectStatisticsService; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData; +import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetMeterStatisticsInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetMeterStatisticsOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetMeterStatisticsOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStats; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterId; 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.MultipartReplyMeterCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter._case.MultipartReplyMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCaseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter._case.MultipartRequestMeterBuilder; public class MeterDirectStatisticsService extends AbstractMeterDirectStatisticsService { @@ -44,7 +52,8 @@ public class MeterDirectStatisticsService extends AbstractMeterDirectStatisticsS for (final MultipartReply mpReply : input) { final MultipartReplyMeterCase caseBody = (MultipartReplyMeterCase) mpReply.getMultipartReplyBody(); final MultipartReplyMeter replyBody = caseBody.getMultipartReplyMeter(); - final Optional> meterStatsList = getConvertorExecutor().convert(replyBody.getMeterStats(), data); + final Optional> meterStatsList = + getConvertorExecutor().convert(replyBody.getMeterStats(), data); meterStatsList.ifPresent(meterStats::addAll); } } @@ -54,4 +63,21 @@ public class MeterDirectStatisticsService extends AbstractMeterDirectStatisticsS .build(); } + @Override + protected OfHeader buildRequest(final Xid xid, final GetMeterStatisticsInput input) { + final MultipartRequestMeterBuilder mprMeterBuild = new MultipartRequestMeterBuilder(); + + if (input.getMeterId() != null) { + mprMeterBuild.setMeterId(new MeterId(input.getMeterId().getValue())); + } else { + mprMeterBuild.setMeterId(new MeterId(OFConstants.OFPM_ALL)); + } + + return RequestInputUtils.createMultipartHeader(getMultipartType(), xid.getValue(), getVersion()) + .setMultipartRequestBody(new MultipartRequestMeterCaseBuilder() + .setMultipartRequestMeter(mprMeterBuild.build()) + .build()) + .build(); + } + }