%
% machnetipc.tex
%
% $Revision: 1.1 $
% $Date: 1995/07/28 21:18:29 $
%

\protspec{MachNetIPC}{MachNetIPC (a network implementation of Mach IPC)}
\index{machnetipc}

\topic{SPECIFICATION}

Mach3 Kernel Principles, with appropriate extensions.

\topic{SYNOPSIS}

\noindent MachNetIPC generalizes Mach IPC to work between machines
connected by networking services.

\topic{REALM}

MachNetIPC is in the anchor protocol realm; it is specific to the Mach3
platform.

\topic{PARTICIPANTS}

The SSR protocol communicates trivially with MachNetIPC using
two elements in the participant stack: the Mach reply port for
the client request, and the IP address of the remote host.  To
accomplish this, SSR and MachNetIPC must reside in the same Mach task.

SSR is only used to bootstrap initial Mach ports.  All other addressing
is done implicitly through Mach message passing that involves MachNetIPC
as an intermediary.

\topic{CONTROL OPERATIONS}

There are no control operations.

\topic{CONFIGURATION}

MachNetIPC uses CHAN as its transport protocol, and BIDCTL for detecting
host reboots.  There is an unused option for two transport protocols, and
that is why {\em udp } occurs in the configuration line:

\noindent {\tt name=machripc protocols=chan,udp,bidctl;}

In addition, the {\em srx} and {\em rrx} protocols must be included in
the configuration.  There is a tight interface between these and MachNetIPC
that is achieved via subroutine calls, not \xk{} operations.

\topic{CAVEATS and DISCLAIMERS}

The network port identifiers are fragile for the time
being.  They are based on the lower 24 bits of the IP address
and an 8 bit sequence number.  This is inadequate and will be
changed in the near future.

Behavior under heavy load or with machine reboots during complex
port transfers have not thoroughly been tested.

\topic{AUTHOR}

\noindent Hilarie Orman
