<dec f='src/src/sys/net/if_strip.c' l='268' type='void strip_watchdog(struct ifnet * ifp)'/>
<use f='src/src/sys/net/if_strip.c' l='413' u='r' c='strip_clone_create'/>
<def f='src/src/sys/net/if_strip.c' l='1452' ll='1530' type='void strip_watchdog(struct ifnet * ifp)'/>
<doc f='src/src/sys/net/if_strip.c' l='1431'>/*
 * Strip watchdog routine.
 * The radio hardware is balky. When sent long packets or bursts of small
 * packets, the radios crash and reboots into Hayes-emulation mode.
 * The transmit-side machinery, the error parser, and strip_watchdog()
 * implement a simple finite state machine.
 *
 * We attempt to send a probe to the radio every ST_PROBE seconds. There
 * is no direct way to tell if the radio is in starmode, so we send it a
 * malformed starmode packet -- a frame with no destination address --
 * and expect to an &quot;name missing&quot; error response from the radio within
 * 1 second. If we hear such a response, we assume the radio is alive
 * for the next ST_PROBE seconds.
 * If we don&apos;t hear a starmode-error response from  the radio, we reset it.
 *
 * Probes, and parsing of error responses,  are normally done inside the send
 * and receive side respectively. This watchdog routine examines the
 * state-machine variables. If there are no packets to send to the radio
 * during an entire probe interval, strip_output  will not be called,
 * so we send a probe on its behalf.
 */</doc>
