Skip to content
Snippets Groups Projects
Commit 8432cc35 authored by Sovietaced's avatar Sovietaced
Browse files

Patch for issue #406

parent 1d6e21ea
No related branches found
No related tags found
No related merge requests found
......@@ -1804,7 +1804,6 @@ public class Controller implements IFloodlightProviderService,
// Get the starting time (overall and per-component) of
// the processing chain for this packet if performance
// monitoring is turned on
pktinProcTime.bootstrap(listeners);
pktinProcTime.recordStartTimePktIn();
Command cmd;
for (IOFMessageListener listener : listeners) {
......
......@@ -37,6 +37,12 @@ public class PerfMonDataResource extends ServerResource {
get(IPktInProcessingTimeService.class.getCanonicalName());
setStatus(Status.SUCCESS_OK, "OK");
// If the user is requesting this they must think that it is enabled,
// so lets enable it to prevent from erroring out
if (!pktinProcTime.isEnabled()){
pktinProcTime.setEnabled(true);
logger.warn("Requesting performance monitor data when performance monitor is disabled. Turning it on");
}
// Allocate output object
if (pktinProcTime.isEnabled()) {
CumulativeTimeBucket ctb = pktinProcTime.getCtb();
......
......@@ -26,6 +26,7 @@ import java.util.List;
import java.util.Map;
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.annotations.LogMessageCategory;
......@@ -37,6 +38,7 @@ import net.floodlightcontroller.core.module.IFloodlightService;
import net.floodlightcontroller.restserver.IRestApiService;
import org.openflow.protocol.OFMessage;
import org.openflow.protocol.OFType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -69,6 +71,7 @@ public class PktInProcessingTime
implements IFloodlightModule, IPktInProcessingTimeService {
protected IFloodlightProviderService floodlightProvider;
// Our dependencies
private IRestApiService restApi;
......@@ -99,19 +102,19 @@ public class PktInProcessingTime
@Override
public void bootstrap(List<IOFMessageListener> listeners) {
if (!isInited) {
ctb = new CumulativeTimeBucket(listeners);
isInited = true;
}
}
@Override
public boolean isEnabled() {
return isEnabled && isInited;
return isEnabled;
}
@Override
public void setEnabled(boolean enabled) {
if(enabled){
bootstrap(floodlightProvider.getListeners().get(OFType.PACKET_IN));
}
this.isEnabled = enabled;
logger.debug("Setting module to " + isEnabled);
}
......@@ -191,12 +194,15 @@ public class PktInProcessingTime
Collection<Class<? extends IFloodlightService>> l =
new ArrayList<Class<? extends IFloodlightService>>();
l.add(IRestApiService.class);
l.add(IFloodlightProviderService.class);
return l;
}
@Override
public void init(FloodlightModuleContext context)
throws FloodlightModuleException {
floodlightProvider = context
.getServiceImpl(IFloodlightProviderService.class);
restApi = context.getServiceImpl(IRestApiService.class);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment