IEN # 9                                            Radia Perlman
Supercedes: None                                             BBN
Replaces: None                                    26 August 1977
Section: 2.2.2.5
                  The Host Simp Protocol Module
                  A rough design specification
                          Radia Perlman
          HOSIMP, the host SIMP protocol module, is  basically  a
multiplexor, allowing fake hosts and a gateway to all talk to the
same SIMP. In addition it can, if desired, do some functions that
otherwise  would have to be duplicated by all processes using it,
such as recognizing a  restart  condition  or  resending  packets
which were refused.
          A  fake  host  will  communicate  with  HOSIMP by first
executing an EMT which HOSIMP  will  define,  passing  parameters
identifying the fake host, and possibly some flags telling HOSIMP
how  to  treat that host, and HOSIMP will return IPP numbers over
which the host can send and receive data to and from  HOSIMP.   A
read  on  the IPP from HOSIMP to the fake host will complete when
the SIMP sends data addressed to that host, either  a  packet  or
information  about  one  of the host's previous packets. A packet
written on the IPP port from the fake host to HOSIMP will be sent
on to the SIMP, after HOSIMP assigns  the  next  sequential  host
reference  number in place of the 7 bit reference number assigned
by the host.  When HOSIMP receives an  accepted  message,  HOSIMP
will  translate  the  host reference number into the 7 bit number
originally assigned by the host. Other  than  that  HOSIMP  could
conceivably just send everything through to the host.
The Gateway/HOSIMP interface
          HOSIMP receives and queues packets from the gateway and
sends  them on to the SIMP after substituting the next sequential
host reference number for the number  supplied  by  the  gateway.
Refused  packets  are  placed  back in the queue of packets to be
sent, whereas accepted packets are discarded.   HOSIMP  does  not
send  any control information back to the gateway. The gateway is
not concerned with restarts, it does not use any of  the  options
that  return control information (like SENT messages), and HOSIMP
drops any packet for which it receives any REFUSED message (other
than resources busy).
Fake Host/HOSIMP interface--option 1
          In this option HOSIMP  behaves  as  it  does  with  the
gateway,   but   it  passes  all  control  messages  (except  for
REFUSED--resources busy) back to the fake host.
Fake Host/HOSIMP interface--option 2
          In  this  option  HOSIMP  does  not   requeue   refused
messages.   HOSIMP,  except  for  substituting  a  different host
reference number, merely passes packets and  control  information
through.  The  fake  host  maintains  its  own  queue of packets.
However, the packet it sends to HOSIMP does get  queued,  because
it must compete with other traffic sources and the packets HOSIMP
has queued for retransmission.
          The  fake host chooses which option it wants by passing
a parameter in the original EMT it executes.
Queuing algorithm
          The method of ordering queued packets  has  yet  to  be
resolved.  One  method  is  giving  gateway  traffic  the highest
priority. Another is to  send  packets  in  the  order  they  are
received. Another would be to simulate as closely as possible the
algorithm the SIMP uses for ordering packets.