1.7 Watchdog Section for a Network Driver
The watchdog section for a network device driver contains a
watchdog
interface, which attempts to restart the adapter. The
watchdog
interface is
optional in a network device driver. If the network device driver implements
it,
watchdog
is called by a kernel thread if the driver’s interrupt handler has
not shut down the countdown timer within a certain number of seconds of
queueing a data packet for transmission from the upper layer. This indicates
that the adapter is no longer on line.
1.8 Reset Section for a Network Driver
The reset section for a network device driver contains a
reset
interface.
The
reset
interface resets the LAN adapter. This interface is called to
restart the device following a network failure. This interface resets all of the
counters and local variables. It can also free up and reallocate all of the
buffers that the network driver uses.
1.9 ioctl Section for a Network Driver
The ioctl section for network device drivers performs miscellaneous tasks
that have nothing to do with data packet transmission and reception.
Typically, these tasks relate to turning specific features of the hardware
on or off.
The ioctl section contains an
ioctl
interface. You define this entry point in
the
ifnet
data structure.
1.10 Interrupt Section for a Network Driver
The interrupt section for a network device driver contains an interrupt
handler. The interrupt handler processes network device interrupts. You
define the entry point for the interrupt handler by calling the
handler
interfaces. The interrupt handler is called each time that the network
interface receives an interrupt. After identifying which type of interrupt was
received — transmit or receive — the interrupt handler calls the appropriate
routine to process the interrupt.
1.11 Output Section for a Network Driver
The output section for a network device driver formats a data packet for
transmission on the network. The
ether_output( )
routine formats
data packets for Tru64 UNIX network drivers. Despite its name,
ether_output( )
handles the frame formats for Ethernet, token ring, and
FDDI. After it has properly formatted the data packet,
ether_output( )
enqueues the packet on the driver’s send queue and calls the driver’s start
Network Device Driver Environment 1–11