%
% $RCSfile: xklance.tex,v $
%
% $Revision: 1.1 $
% $Date: 1995/07/28 21:22:55 $
%

\protspec{XKLANCE}{XKLANCE (Mach3 in-kernel lance ethernet driver)}
\index{xklance}

\topic{SPECIFICATION}

\noindent

XKLANCE is a Mach in-kernel ethernet driver, presenting both a
mach kernel interface and an \xk{} interface.


\topic{SYNOPSIS}

\noindent 

Each instantiation of XKLANCE is associated with a single ethernet
device.  XKLANCE can be configured to either copy incoming packets
to both the \xk{} and the standard Mach networking interface (thus
both the in-kernel \xk{} and the Unix server will see packets) or to
bypass the Mach interface and not allow the Unix server to see any
packets. 

If compiled with ALLOW\_NON\_XK\_USERS defined, XKLANCE will check the
value of the global variable xklanceAllUsers to determine whether to
allow non-\xk{} users to send and receive network packets through the
standard Mach interfaces.


\topic{REALM}

XKLANCE is in the ASYNC realm, supporting the ethernet driver interface
described in the ETH appendix.


\topic{PARTICIPANTS}

XKLANCE supports the ethernet driver interface rather than a standard
xkernel UPI interface and thus makes no use of participant stacks.


\topic{EXTERNAL INTERFACE}

XKLANCE supports the ethernet driver interface
described in the ETH appendix.


\topic{CONFIGURATION}

XKLANCE requires no lower protocol.  The last digit of the instance
name must correspond to the unit device number for the particular
instantiation.  E.g., 

\medskip

{\tt name=xklance/SE0;}

\medskip

\noindent for device 0.


\topic{AUTHORS}

\noindent Richard Schroeppel, Hilarie Orman (modifications to Mach
kernel source distribution)

