- public Future<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(GetMeterStatisticsInput input) {
- //Generate xid to associate it with the request
- Long xid = this.getSessionContext().getNextXid();
-
- LOG.debug("Preprae statistics request for Meter ({}) - Transaction id - {}",input.getMeterId().getValue(),xid);
-
- // Create multipart request header
- MultipartRequestInputBuilder mprInput = new MultipartRequestInputBuilder();
- mprInput.setType(MultipartType.OFPMPMETER);
- mprInput.setVersion(version);
- mprInput.setXid(xid);
- mprInput.setFlags(new MultipartRequestFlags(false));
-
- // Create multipart request body for fetch all the meter stats
- MultipartRequestMeterCaseBuilder caseBuilder = new MultipartRequestMeterCaseBuilder();
- MultipartRequestMeterBuilder mprMeterBuild = new MultipartRequestMeterBuilder();
- //Select specific meter
- mprMeterBuild.setMeterId(new MeterId(input.getMeterId().getValue()));
- caseBuilder.setMultipartRequestMeter(mprMeterBuild.build());
-
- //Set request body to main multipart request
- mprInput.setMultipartRequestBody(caseBuilder.build());
-
- //Send the request, no cookies associated, use any connection
- LOG.debug("Send meter statistics request :{}",mprMeterBuild);
- this.messageService.multipartRequest(mprInput.build(), null);
-
- // Prepare rpc return output. Set xid and send it back.
- LOG.debug("Return results and transaction id back to caller");
- GetMeterStatisticsOutputBuilder output = new GetMeterStatisticsOutputBuilder();
- output.setTransactionId(generateTransactionId(xid));
- output.setMeterStats(null);
-
- Collection<RpcError> errors = Collections.emptyList();
- RpcResult<GetMeterStatisticsOutput> rpcResult = Rpcs.getRpcResult(true, output.build(), errors);
- return Futures.immediateFuture(rpcResult);
- }
-
- @Override
- public Future<RpcResult<GetAllNodeConnectorsStatisticsOutput>> getAllNodeConnectorsStatistics(GetAllNodeConnectorsStatisticsInput arg0) {
-
- //Generate xid to associate it with the request
- Long xid = this.getSessionContext().getNextXid();
-
- LOG.info("Prepare port statistics request for all ports of node {} - TrasactionId - {}",arg0.getNode().getValue(),xid);
-
- // Create multipart request header
- MultipartRequestInputBuilder mprInput = new MultipartRequestInputBuilder();
- mprInput.setType(MultipartType.OFPMPPORTSTATS);
- mprInput.setVersion(version);
- mprInput.setXid(xid);
- mprInput.setFlags(new MultipartRequestFlags(false));
-
- // Create multipart request body to fetch stats for all the port of the node
- MultipartRequestPortStatsCaseBuilder caseBuilder = new MultipartRequestPortStatsCaseBuilder();
- MultipartRequestPortStatsBuilder mprPortStatsBuilder = new MultipartRequestPortStatsBuilder();
- //Select all ports
- mprPortStatsBuilder.setPortNo(OFConstants.OFPP_ANY);
- caseBuilder.setMultipartRequestPortStats(mprPortStatsBuilder.build());
-
- //Set request body to main multipart request
- mprInput.setMultipartRequestBody(caseBuilder.build());
-
- //Send the request, no cookies associated, use any connection
- LOG.debug("Send port statistics request :{}",mprPortStatsBuilder.build().toString());
- this.messageService.multipartRequest(mprInput.build(), null);
-
- // Prepare rpc return output. Set xid and send it back.
- GetAllNodeConnectorsStatisticsOutputBuilder output = new GetAllNodeConnectorsStatisticsOutputBuilder();
- output.setTransactionId(generateTransactionId(xid));
-
- Collection<RpcError> errors = Collections.emptyList();
- RpcResult<GetAllNodeConnectorsStatisticsOutput> rpcResult = Rpcs.getRpcResult(true, output.build(), errors);
- return Futures.immediateFuture(rpcResult);