package net.floodlightcontroller.core.internal; import net.floodlightcontroller.core.IOFSwitchBackend; import net.floodlightcontroller.debugcounter.IDebugCounter; import net.floodlightcontroller.debugcounter.IDebugCounterService; import net.floodlightcontroller.debugcounter.IDebugCounterService.MetaData; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD", justification = "It is ok to predefine Debug Counters that are not yet used") public class ControllerCounters { public final String prefix = ControllerCounters.class.getSimpleName(); public final String statsPrefix = IOFSwitchBackend.class.getPackage().getName(); public final IDebugCounter packetParsingError; public final IDebugCounter dispatchMessageWhileStandby; public final IDebugCounter dispatchMessage; public final IDebugCounter packetIn; public ControllerCounters(IDebugCounterService debugCounters) { debugCounters.registerModule(prefix); debugCounters.registerModule(OFConnectionCounters.COUNTER_MODULE); dispatchMessageWhileStandby = debugCounters.registerCounter(prefix, "dispatch-message-while-slave", "Number of times an OF message was received " + "and supposed to be dispatched but the " + "controller was in SLAVE role and the message " + "was not dispatched"); // does this cnt make sense? more specific?? per type? // count stops? dispatchMessage = debugCounters.registerCounter(prefix, "dispatch-message", "Number of times an OF message was dispatched " + "to registered modules"); // TODO: FIXME // Need a better way to handle these packetParsingError = debugCounters.registerCounter(prefix, "packet-parsing-error", "Number of times the packet parsing " + "encountered an error", MetaData.ERROR); packetIn = debugCounters.registerCounter(prefix, "packet-in", "Number of packet_in's seen"); } }