@Override public void run() { if (sw.getRole() == RoleState.MASTER) { log.trace("LongFlowsTask Collecting AdaptiveStats for {}", sw.getStringId()); // skip collecting because CalAndShortFlowsTask collects entire flow stats from a given switch sw if (callCountLongFlowsTask == ENTIRE_POLL_TIMES) { callCountLongFlowsTask = LONG_POLL_TIMES; } else { longFlowsTaskInternal(); callCountLongFlowsTask += LONG_POLL_TIMES; } } } }
@Override public void run() { if (sw.getRole() == RoleState.MASTER) { log.trace("MidFlowsTask Collecting AdaptiveStats for {}", sw.getStringId()); // skip collecting because CalAndShortFlowsTask collects entire flow stats from a given switch sw if (callCountMidFlowsTask == ENTIRE_POLL_TIMES) { callCountMidFlowsTask = MID_POLL_TIMES; } else { midFlowsTaskInternal(); callCountMidFlowsTask += MID_POLL_TIMES; } } } }
@Override public void run() { if (sw.getRole() == RoleState.MASTER) { log.trace("CalAndShortFlowsTask Collecting AdaptiveStats for {}", sw.getStringId()); if (isFirstTimeStart) { // isFirstTimeStart, get entire flow stats from a given switch sw log.trace("CalAndShortFlowsTask Collecting Entire AdaptiveStats at first time start for {}", sw.getStringId()); ofFlowStatsRequestAllSend(); callCountCalAndShortFlowsTask += CAL_AND_POLL_TIMES; isFirstTimeStart = false; } else if (callCountCalAndShortFlowsTask == ENTIRE_POLL_TIMES) { // entire_poll_times, get entire flow stats from a given switch sw log.trace("CalAndShortFlowsTask Collecting Entire AdaptiveStats for {}", sw.getStringId()); ofFlowStatsRequestAllSend(); callCountCalAndShortFlowsTask = CAL_AND_POLL_TIMES; //TODO: check flows deleted in switch, but exist in controller flow table, then remove them // } else { calAndShortFlowsTaskInternal(); callCountCalAndShortFlowsTask += CAL_AND_POLL_TIMES; } } } }
@Override public void run() { if (sw.getRole() == RoleState.MASTER) { log.trace("Collecting stats for {}", sw.getStringId()); OFTableStatsRequest request = sw.factory().buildTableStatsRequest() .build(); sw.sendMsg(request); } } }
/** * Sends port statistic request to switch. */ private void sendPortStatistic() { if (sw.getRole() != RoleState.MASTER) { return; } Long statsXid = xidAtomic.getAndIncrement(); OFPortStatsRequest statsRequest = sw.factory().buildPortStatsRequest() .setPortNo(OFPort.ANY) .setXid(statsXid) .build(); sw.sendMsg(statsRequest); }
private void sendGroupStatistic() { if (log.isTraceEnabled()) { log.trace("sendGroupStatistics {}:{}", sw.getStringId(), sw.getRole()); } if (sw.getRole() != RoleState.MASTER) { return; } Long statsXid = OpenFlowGroupProvider.getXidAndAdd(2); OFGroupStatsRequest statsRequest = sw.factory().buildGroupStatsRequest() .setGroup(OFGroup.ALL) .setXid(statsXid) .build(); sw.sendMsg(statsRequest); Long descXid = statsXid + 1; OFGroupDescStatsRequest descStatsRequest = sw.factory().buildGroupDescStatsRequest() .setXid(descXid) .build(); sw.sendMsg(descStatsRequest); }
@Override public void run() { if (sw.getRole() == RoleState.MASTER) { log.trace("Collecting stats for {}", sw.getStringId()); OFFlowStatsRequest request = sw.factory().buildFlowStatsRequest() .setMatch(sw.factory().matchWildcardAll()) .setTableId(TableId.ALL) .setOutPort(OFPort.NO_MASK) .build(); sw.sendMsg(request); } } }