FDDI (FDDI Protocol)
This hardware-independent protocol provides the interface between the rest of the x-kernel protocols and the actual FDDI drivers. It has a UPI interface to protocols above it and interacts with the drivers through a specialized UPI interface. There should be a separate instantiation of the FDDI protocol for each driver protocol.
FDDI is in the ASYNC realm.
FDDI expects a single remote participant with an FDDIhost pointer on the top of the stack. If the local participant is present it is ignored.
FDDI driver protocols should include the file protocols/fddi/fddi_i.h which defines the interface between FDDI and the drivers.
FDDI will openenable its driver protocol once at initialization time, without a participant list. This gives the driver protocol the XObj it should use in xDemux when it delivers messages.
FDDI calls xPush with the driver protocol object (not a session) to send a message. FDDI never opens the lower protocol.
FDDI will attach a pointer to an FDDIhdr as a message attribute for each outgoing message:
typedef struct { FDDIhost dst; FDDIhost src; u_short type; } FDDIhdr;
FDDI requires that the driver attach a message attribute pointing to an appropriate FDDIhdr structure for every incoming message. For both incoming and outgoing messages, the FDDIhdr type field will be in network byte order.
FDDI requires the driver protocol to implement the control op GETMYHOST.
Each instantiation of FDDI should be configured above its corresponding driver protocol.
FDDI recognizes the following ROM options:
fddi/xxx mtu N: Instantiation xxx of FDDI should an MTU of N.
David Yates