+ sendAllFlowTablesStatisticsRequest(targetNodeRef);
+
+ }catch(Exception e){
+ spLogger.error("Exception occured while sending statistics requests : {}",e);
+ }
+
+ if(targetNode.getAugmentation(FlowCapableNode.class) != null){
+
+ spLogger.info("Send request for stats collection to node : {})",targetNode.getId());
+
+ try{
+ sendAllGroupStatisticsRequest(targetNodeRef);
+ Thread.sleep(1000);
+ sendAllMeterStatisticsRequest(targetNodeRef);
+ Thread.sleep(1000);
+ sendGroupDescriptionRequest(targetNodeRef);
+ Thread.sleep(1000);
+ sendMeterConfigStatisticsRequest(targetNodeRef);
+ Thread.sleep(1000);
+ }catch(Exception e){
+ spLogger.error("Exception occured while sending statistics requests : {}", e);
+ }
+ }
+ }
+ }
+
+ private void sendAllFlowTablesStatisticsRequest(NodeRef targetNodeRef) {
+ final GetFlowTablesStatisticsInputBuilder input =
+ new GetFlowTablesStatisticsInputBuilder();
+
+ input.setNode(targetNodeRef);
+
+ @SuppressWarnings("unused")
+ Future<RpcResult<GetFlowTablesStatisticsOutput>> response =
+ flowTableStatsService.getFlowTablesStatistics(input.build());
+ }
+
+ private void sendAllFlowsStatsFromAllTablesRequest(NodeRef targetNode){
+ final GetAllFlowsStatisticsFromAllFlowTablesInputBuilder input =
+ new GetAllFlowsStatisticsFromAllFlowTablesInputBuilder();
+
+ input.setNode(targetNode);
+
+ @SuppressWarnings("unused")
+ Future<RpcResult<GetAllFlowsStatisticsFromAllFlowTablesOutput>> response =
+ flowStatsService.getAllFlowsStatisticsFromAllFlowTables(input.build());
+
+ }
+
+ private void sendAggregateFlowsStatsFromAllTablesRequest(NodeKey targetNodeKey) throws InterruptedException, ExecutionException{
+
+ List<Short> tablesId = getTablesFromNode(targetNodeKey);
+
+ if(tablesId.size() != 0){
+ for(Short id : tablesId){