package net.floodlightcontroller.perfmon; import java.util.List; import org.openflow.protocol.OFMessage; import net.floodlightcontroller.core.FloodlightContext; import net.floodlightcontroller.core.IOFMessageListener; import net.floodlightcontroller.core.IOFSwitch; import net.floodlightcontroller.core.module.IFloodlightService; public interface IPktInProcessingTimeService extends IFloodlightService { /** * Creates time buckets for a set of modules to measure their performance * @param listeners The message listeners to create time buckets for */ public void bootstrap(List<IOFMessageListener> listeners); /** * Stores a timestamp in ns. Used right before a service handles an * OF message. Only stores if the service is enabled. */ public void recordStartTimeComp(IOFMessageListener listener); public void recordEndTimeComp(IOFMessageListener listener); public void recordStartTimePktIn(); public void recordEndTimePktIn(IOFSwitch sw, OFMessage m, FloodlightContext cntx); public boolean isEnabled(); public void setEnabled(boolean enabled); public CumulativeTimeBucket getCtb(); }