%
% $Log: fddi.tex,v $
% Revision 1.2  1996/02/02 00:04:22  slm
% Updated copyright and version.
%
% Revision 1.1  1995/07/28  21:16:52  slm
% Initial revision
%
% Revision 1.3.1.1  1994/10/20  23:59:23  hkaram
% New branch
%
% Revision 1.3  1994/08/02  23:55:43  davidm
% Sectioning commands now use \protspec and \topic so latex2html has
% an easier time.
%
% Revision 1.2  1994/07/05  00:42:34  ho
% Indexed.
%
% Revision 1.1  1994/03/14  18:55:10  umass
% Initial revision
%

\subsection{FDDI}
\index{fddi}

\topic{NAME}
FDDI (FDDI Protocol)

\topic{SYNOPSIS}

\noindent 
This hardware-independent protocol provides the interface between the
rest of the \xk{} 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.

\topic{REALM}

\noindent
FDDI is in the ASYNC realm.

\topic{PARTICIPANTS}

\noindent
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.

\topic{CONTROL OPERATIONS}

\begin{description}

\item[{\tt MAC\_SETPROMISCUOUS:}]
Sets the corresponding device controller in promiscuous mode and
deliver copies of all packets to this session.  (session only)
\begin{description}
\item[{\rm Input:}] none
\item[{\rm Output:}] none
\end{description}

\end{description}

\topic{EXTERNAL INTERFACE}

\noindent
FDDI driver protocols should include the file 
{\var 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 {\em 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:

\begin{verbatim}

        typedef struct {
            FDDIhost     dst;
            FDDIhost     src;
            u_short     type;
        } FDDIhdr;

\end{verbatim}

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.

\topic{CONFIGURATION}

\noindent
Each instantiation of FDDI should be configured above its corresponding
driver protocol.

\medskip
\noindent
FDDI recognizes the following ROM options:

\smallskip

{\tt fddi/xxx mtu N}:
Instantiation xxx of FDDI should an MTU of N.  

\topic{AUTHOR}

\noindent David Yates
