1.SH 29P Protocol Drivers 3.PP 4The file server described so far 5waits for 9P protocol messages to 6appear in its input queue. 7It processes each message and 8sends the reply back to the originator. 9There are groups of processes that 10perform protocol I/O on some network or 11device and the resulting messages 12are sent to the file system queue. 13The simplest of these is the driver 14for the Cyclone I/O board. 15The Cyclone is a fiber machine-to-machine 16interface on a VME bus. 17Each Cyclone board has an i960 computer on it. 18The i960 can do DMA transfers on the VME bus 19and can transmit and receive bytes over its 20fiber interface. 21The microcode on the i960 manages a set of 22buffers in the host memory. 23When a 9P message arrives on the fiber interface, 24the message is transferred into the host memory 25and placed in circular queue of buffers. 26The cyclone also has a circular queue of 27messages to transmit. 28The transfer rate averages about a megabyte per second and 29the latency is a few microseconds for a small 30message. 31Almost no protocol is involved. 32It is possible to checksum the messages, 33but there is such a low error rate that it 34has been disabled. 35.PP 36There are two Cyclones on Bootes. 37One interface goes to our main CPU server 38while the other is not used. 39.PP 40There is a set of two processes 41.CW lai 42and 43.CW lao 44that perform Ethernet input and output. 45These processes send Ethernet messages 46to/from two more processes 47.CW ilo 48and 49.CW ilt 50that do the IL reliable datagram protocol 51on top of IP packets. 52.PP 53There is another suite of five processes 54.CW dki , 55.CW dko , 56.CW dkp , 57.CW dkt , 58and 59.CW dkl 60that do the Datakit URP protocol on top of a 61Datakit device driver. 62The structure is such that more protocol 63stacks can be added to feed the file system. 64.PP 65The last process in Bootes, 66.CW con , 67reads the console 68and calls internal subroutines to 69executes commands typed. 70Since there is only one process, 71only one command can be executing at a 72time. 73See 74.I fs (8) 75for a description of the 76commands available at the console. 77