.SH 9P Protocol Drivers .PP The file server described so far waits for 9P protocol messages to appear in its input queue. It processes each message and sends the reply back to the originator. There are groups of processes that perform protocol I/O on some network or device and the resulting messages are sent to the file system queue. The simplest of these is the driver for the Cyclone I/O board. The Cyclone is a fiber machine-to-machine interface on a VME bus. Each Cyclone board has an i960 computer on it. The i960 can do DMA transfers on the VME bus and can transmit and receive bytes over its fiber interface. The microcode on the i960 manages a set of buffers in the host memory. When a 9P message arrives on the fiber interface, the message is transferred into the host memory and placed in circular queue of buffers. The cyclone also has a circular queue of messages to transmit. The transfer rate averages about a megabyte per second and the latency is a few microseconds for a small message. Almost no protocol is involved. It is possible to checksum the messages, but there is such a low error rate that it has been disabled. .PP There are two Cyclones on Bootes. One interface goes to our main CPU server while the other is not used. .PP There is a set of two processes .CW lai and .CW lao that perform Ethernet input and output. These processes send Ethernet messages to/from two more processes .CW ilo and .CW ilt that do the IL reliable datagram protocol on top of IP packets. .PP There is another suite of five processes .CW dki , .CW dko , .CW dkp , .CW dkt , and .CW dkl that do the Datakit URP protocol on top of a Datakit device driver. The structure is such that more protocol stacks can be added to feed the file system. .PP The last process in Bootes, .CW con , reads the console and calls internal subroutines to executes commands typed. Since there is only one process, only one command can be executing at a time. See .I fs (8) for a description of the commands available at the console.