%     
% $RCSfile: vsize.tex,v $
%
% x-kernel v3.3
%
% Copyright (c) 1996,1993,1991,1990  Arizona Board of Regents
%
%
% $Revision: 1.2 $
% $Date: 1996/02/02 00:04:22 $
%

\subsection{VSIZE}
\index{vsize}

\topic{NAME}
VSIZE (Size Virtual-Protocol)

\topic{SPECIFICATION}

\noindent 
S. O'Malley and L. Peterson.  A Dynamic Network Architecture.  {\it
ACM Transactions on Computer Systems 10}, 2 (May 1992), 110--143.

\topic{SYNOPSIS}

\noindent VSIZE is a virtual protocol that multiplexes messages
through N lower-level protocols based on the size of the message
being sent.  By default, VSIZE determines the maximum packet size that 
each lower level protocol can handle by performing a GETOPTPACKET 
control operation on the first N-1 lower protocols (the last lower 
protocol is assumed to have an infinite maximum packet size). 
VSIZE sends each message using the lower level protocol with the
smallest index
whose optimum packet size is greater than the length of the 
message. 
 
\topic{REALM}

\noindent 
VSIZE is in the ASYNC realm.

\topic{PARTICIPANTS}

\noindent 
VSIZE passes participants to the lower protocols without manipulating
them. 

\topic{CONTROL OPERATIONS}

\noindent 
VSIZE forwards control operations to the ``largest message'' protocol.

\topic{CONFIGURATION}

\noindent 
VSIZE's lower protocols should be order by decreasing efficiency and
increasing packet size.

\bigskip

\noindent
VSIZE recognizes the following ROM options:

\smallskip

{\tt vsize/xxx cutoff C1 C2}: Instantiation {\em xxx} of VSIZE 
should use a cutoff length of C1 bytes for its first down protocol
and a cutoff value of C2 bytes for its second down protocol. 
This control operation allows the user of VSIZE to override the 
GETOPTPACKET.  Note this operation does not check to see if 
the specified cutoff value is less than the maximum packet size 
of the lower level protocol.  

\topic{AUTHOR}

\noindent Ed Menze
