Difference between revisions of "RFC1044"

From RFC-Wiki
imported>Admin
(Created page with "Network Working Group K. Hardwick Request for Comments: 1044 NSC ...")
 
Line 1: Line 1:
 
Network Working Group                                        K. Hardwick
 
Network Working Group                                        K. Hardwick
 
Request for Comments:  1044                                          NSC
 
Request for Comments:  1044                                          NSC
                                                        J. Lekashman
+
                                                            J. Lekashman
                                                        NASA-Ames GE
+
                                                            NASA-Ames GE
                                                        February 1988
+
                                                          February 1988
  
  
        Internet Protocol on Network Systems HYPERchannel
+
          Internet Protocol on Network Systems HYPERchannel
                      Protocol Specification
+
                        Protocol Specification
  
 
STATUS OF THIS MEMO
 
STATUS OF THIS MEMO
  
The intent of this document is to provide a complete discussion of
+
  The intent of this document is to provide a complete discussion of
the protocols and techniques used to embed DoD standard Internet
+
  the protocols and techniques used to embed DoD standard Internet
Protocol datagrams (and its associated higher level protocols) on
+
  Protocol datagrams (and its associated higher level protocols) on
Network Systems Corporation's HYPERchannel [1] equipment.
+
  Network Systems Corporation's HYPERchannel [1] equipment.
Distribution of this memo is unlimited.
+
  Distribution of this memo is unlimited.
  
This document is intended for network planners and implementors who
+
  This document is intended for network planners and implementors who
are already familiar with the TCP/IP protocol suite and the
+
  are already familiar with the TCP/IP protocol suite and the
techniques used to carry TCP/IP traffic on common networks such as
+
  techniques used to carry TCP/IP traffic on common networks such as
the DDN or Ethernet.  No great familiarity with NSC products is
+
  the DDN or Ethernet.  No great familiarity with NSC products is
assumed; an appendix is devoted to a review of NSC technologies and
+
  assumed; an appendix is devoted to a review of NSC technologies and
protocols.
+
  protocols.
  
At the time of this first RFC edition, the contents of this document
+
  At the time of this first RFC edition, the contents of this document
has already been reviewed by about a dozen vendors and users active
+
  has already been reviewed by about a dozen vendors and users active
in the use of TCP/IP on HYPERchannel media.  Comments and suggestions
+
  in the use of TCP/IP on HYPERchannel media.  Comments and suggestions
are still welcome (and implementable,) however.
+
  are still welcome (and implementable,) however.
  
Any comments or questions on this specification may be directed to:
+
  Any comments or questions on this specification may be directed to:
  
  Ken Hardwick
+
      Ken Hardwick
  Director, Software Technology
+
      Director, Software Technology
  Network Systems Corporation MS029
+
      Network Systems Corporation MS029
  7600 Boone Avenue North
+
      7600 Boone Avenue North
  Brooklyn Park, MN 55428
+
      Brooklyn Park, MN 55428
  
  Phone: (612) 424-1607
+
      Phone: (612) 424-1607
  
  John Lekashman
+
      John Lekashman
  Nasa Ames Research Center. NAS/GE
+
      Nasa Ames Research Center. NAS/GE
  MS 258-6
+
      MS 258-6
  Moffett Field, CA, 94035
+
      Moffett Field, CA, 94035
+
  
  Phone: (415) 694-4359
+
      Phone: (415) 694-4359
  
  
  
  
 +
Hardwick & Lekashman                                            [Page 1]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
TABLE OF CONTENTS
 
TABLE OF CONTENTS
  
Status of this memo  . . . . . . . . . .  . . . . . . . . . . . .  1
+
    Status of this memo  . . . . . . . . . .  . . . . . . . . . . . .  1
Goals of this document  . . . . . . . .  . . . . . . . . . . . .  3
+
    Goals of this document  . . . . . . . .  . . . . . . . . . . . .  3
Basic HYPERchannel network messages  . .  . . . . . . . . . . . .  4
+
    Basic HYPERchannel network messages  . .  . . . . . . . . . . . .  4
  Basic (16-bit address) Message Proper header  . . . . . . . . .  5
+
      Basic (16-bit address) Message Proper header  . . . . . . . . .  5
  TO addresses and open driver architecture  . . . . . . . . . .  7
+
      TO addresses and open driver architecture  . . . . . . . . . .  7
  Extended (32-bit address) Message Proper header . . . . . . . .  8
+
      Extended (32-bit address) Message Proper header . . . . . . . .  8
  Address Recognition and message forwarding .  . . . . . . . . . 10
+
      Address Recognition and message forwarding .  . . . . . . . . . 10
  32-bit message fields  . . . . . . . . . . . . . . . . . . . . 12
+
      32-bit message fields  . . . . . . . . . . . . . . . . . . . . 12
Broadcasting  . . . . . . . . . . . . . . . . . .  . . . . . . . 14
+
    Broadcasting  . . . . . . . . . . . . . . . . . .  . . . . . . . 14
  
PROTOCOL SPECIFICATION .  .  .  . . . . . . . . . . . . . . . . . 17
+
    PROTOCOL SPECIFICATION .  .  .  . . . . . . . . . . . . . . . . . 17
  Basic (16-bit) Message Encapsulation    . . . . . . . . . . . . 18
+
      Basic (16-bit) Message Encapsulation    . . . . . . . . . . . . 18
  Compatibility with existing implementations . . . . . . . . . . 21
+
      Compatibility with existing implementations . . . . . . . . . . 21
  Extended (32-bit) Message Encapsulation  . . . . . . . . . . . 24
+
      Extended (32-bit) Message Encapsulation  . . . . . . . . . . . 24
  Address Resolution Protocol  . . . . . . . . . . . . . . . . . 27
+
      Address Resolution Protocol  . . . . . . . . . . . . . . . . . 27
  Maximum Transmission Unit . . . . . . . . . . . . . . . . . . . 31
+
      Maximum Transmission Unit . . . . . . . . . . . . . . . . . . . 31
  
ADDRESS RESOLUTION    . . . . . . . . . . . . . . . . . . . . . . 32
+
    ADDRESS RESOLUTION    . . . . . . . . . . . . . . . . . . . . . . 32
  Local Address Resolution  . . . . . . . . . . . . . . . . . . . 33
+
      Local Address Resolution  . . . . . . . . . . . . . . . . . . . 33
  Configuration file format  . . . . . . . . . . . . . . . . . . 34
+
      Configuration file format  . . . . . . . . . . . . . . . . . . 34
  ARP servers  . . . . . . . . . . . . . . . . . . . . . . . . . 35
+
      ARP servers  . . . . . . . . . . . . . . . . . . . . . . . . . 35
  Broadcast ARP  . . . . . . . . . . . . . . . . . . . . . . . . 36
+
      Broadcast ARP  . . . . . . . . . . . . . . . . . . . . . . . . 36
  
Appendix A.
+
    Appendix A.
NSC Product Architecture and Addressing  . . . . . . . . . . . . 38
+
    NSC Product Architecture and Addressing  . . . . . . . . . . . . 38
  
Appendix B.
+
    Appendix B.
Network Systems HYPERchannel protocols    . . . . . . . . . . . . 42
+
    Network Systems HYPERchannel protocols    . . . . . . . . . . . . 42
  
  
Line 103: Line 106:
  
  
 +
Hardwick & Lekashman                                            [Page 2]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
GOALS OF THIS DOCUMENT
 
GOALS OF THIS DOCUMENT
  
In this document, there are four major technical objectives:
+
  In this document, there are four major technical objectives:
  
1.  To bless a "de facto" standard for IP on HYPERchannel that  has
+
  1.  To bless a "de facto" standard for IP on HYPERchannel that  has
    been implemented by Tektronix, Cray, NASA Ames, and others.
+
      been implemented by Tektronix, Cray, NASA Ames, and others.
    We are attempting to resolve some interoperability problems with
+
      We are attempting to resolve some interoperability problems with
    this standard so as to minimize the changes to existing IP on
+
      this standard so as to minimize the changes to existing IP on
    HYPERchannel software.  If any ambiguities remain in the de facto
+
      HYPERchannel software.  If any ambiguities remain in the de facto
    standard, we wish to assist in their resolution.
+
      standard, we wish to assist in their resolution.
  
2.  To address larger networks, NSC's newer network products are
+
  2.  To address larger networks, NSC's newer network products are
    moving to a 32-bit address from the current 16-bit TO address.
+
      moving to a 32-bit address from the current 16-bit TO address.
    This document would introduce the addressing extension to the
+
      This document would introduce the addressing extension to the
    user community and specify how IP datagrams would work in the
+
      user community and specify how IP datagrams would work in the
    new addressing mode.
+
      new addressing mode.
  
3.  To define an Address Resolution Protocol for HYPERchannel and
+
  3.  To define an Address Resolution Protocol for HYPERchannel and
    other NSC products.  It is probably well known that current NSC
+
      other NSC products.  It is probably well known that current NSC
    products do not support the broadcast modes that make ARP
+
      products do not support the broadcast modes that make ARP
    particularly useful.  However, many have expressed interest in
+
      particularly useful.  However, many have expressed interest in
    "ARP  servers" at a known network address.  These servers could
+
      "ARP  servers" at a known network address.  These servers could
    fade away as NSC products with broadcast capability come into
+
      fade away as NSC products with broadcast capability come into
    existence.  Host drivers that can generate and recognize this
+
      existence.  Host drivers that can generate and recognize this
    ARP protocol would be prepared to take advantage of it as the
+
      ARP protocol would be prepared to take advantage of it as the
    pieces fall into place.
+
      pieces fall into place.
  
4.  Part of this effort is to standardize the unofficial "message
+
  4.  Part of this effort is to standardize the unofficial "message
    type" field that reserves byte 8 of the HYPERchannel network
+
      type" field that reserves byte 8 of the HYPERchannel network
    message.  To permit better interoperability, NSC will initiate a
+
      message.  To permit better interoperability, NSC will initiate a
    "network protocol registry" where any interested party may
+
      "network protocol registry" where any interested party may
    obtain a unique value in byte 8 (or bytes 8 and 9) for their own
+
      obtain a unique value in byte 8 (or bytes 8 and 9) for their own
    public, private, commercial or proprietary protocol.  Lists of
+
      public, private, commercial or proprietary protocol.  Lists of
    assigned protocol type numbers and their "owners" will be
+
      assigned protocol type numbers and their "owners" will be
    periodically published by NSC and would be available to
+
      periodically published by NSC and would be available to
    interested parties.
+
      interested parties.
  
  
Line 156: Line 162:
  
  
 +
Hardwick & Lekashman                                            [Page 3]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
BASIC HYPERCHANNEL NETWORK MESSAGES
 
BASIC HYPERCHANNEL NETWORK MESSAGES
  
Unlike most datagram delivery systems, the HYPERchannel network
+
  Unlike most datagram delivery systems, the HYPERchannel network
message consists of two parts:
+
  message consists of two parts:
  
          Message Proper
+
            Message Proper
        +--------------------+
+
            +--------------------+
        |                    |
+
            |                    |
        |                    |
+
            |                    |
        |    10-64 bytes    |
+
            |    10-64 bytes    |
        |                    |
+
            |                    |
        |                    |
+
            |                    |
        +--------------------+
+
            +--------------------+
  
          Associated Data
+
            Associated Data
        +----------------------------------------------------+
+
            +----------------------------------------------------+
        |                                                    |
+
            |                                                    |
        |                                                    |
+
            |                                                    |
        |                                                    |
+
            |                                                    |
        |                                                    |
+
            |                                                    |
        |          Unlimited length                        |
+
            |          Unlimited length                        |
        |                                                    |
+
            |                                                    |
        |                                                    |
+
            |                                                    |
        |                                                    |
+
            |                                                    |
        |                                                    |
+
            |                                                    |
        +----------------------------------------------------+
+
            +----------------------------------------------------+
 +
 
 +
  The first part is a message header that can be up to 64 bytes in
 +
  length.  The first 10 bytes contain information required for the
 +
  delivery of the entire message, and the remainder can be used by
 +
  higher level protocols.  The second part of the message, the
 +
  "Associated Data," can be optionally included with the message
 +
  proper.  In most cases (transmission over HYPERchannel A trunks), the
 +
  length of the associated data is literally unlimited.  Others (such
 +
  as HYPERchannel B or transmission within a local HYPERchannel A A400
 +
  adapter) limit the size of the Associated Data to 4K bytes.  If the
 +
  information sent can be contained within the Message Proper, then the
 +
  Associated Data need not be sent.
  
The first part is a message header that can be up to 64 bytes in
+
  HYPERchannel lower link protocols treat messages with and without
length.  The first 10 bytes contain information required for the
+
  Associated Data quite differently; "Message only" transmissions are
delivery of the entire message, and the remainder can be used by
+
  sent using abbreviated protocols and can be queued in the receiving
higher level protocols.  The second part of the message, the
+
  network adapter, thus minimizing the elapsed time needed to send and
"Associated Data," can be optionally included with the message
+
  receive the messages.  When associated data is provided, the
proper.  In most cases (transmission over HYPERchannel A trunks), the
+
  HYPERchannel A adapters free their logical resources towards driving
length of the associated data is literally unlimited.  Others (such
+
  the host interface and coaxial trunks.
as HYPERchannel B or transmission within a local HYPERchannel A A400
 
adapter) limit the size of the Associated Data to 4K bytes.  If the
 
information sent can be contained within the Message Proper, then the
 
Associated Data need not be sent.
 
  
HYPERchannel lower link protocols treat messages with and without
 
Associated Data quite differently; "Message only" transmissions are
 
sent using abbreviated protocols and can be queued in the receiving
 
network adapter, thus minimizing the elapsed time needed to send and
 
receive the messages.  When associated data is provided, the
 
HYPERchannel A adapters free their logical resources towards driving
 
the host interface and coaxial trunks.
 
  
  
  
  
 +
Hardwick & Lekashman                                            [Page 4]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
BASIC (16-BIT ADDRESS) MESSAGE PROPER HEADER
 
BASIC (16-BIT ADDRESS) MESSAGE PROPER HEADER
  
The first 10 bytes of the network Message Proper are examined by the
+
  The first 10 bytes of the network Message Proper are examined by the
network adapters to control delivery of the network message.  Its
+
  network adapters to control delivery of the network message.  Its
format is as follows:
+
  format is as follows:
  
byte  Message Proper
+
    byte  Message Proper
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  0  |      Trunks to Try          |        Message Flags        |
+
      0  |      Trunks to Try          |        Message Flags        |
      |  TO trunks  |  FROM trunks  |                |EXC|BST|A/D|
+
        |  TO trunks  |  FROM trunks  |                |EXC|BST|A/D|
      +--------------+---------------+-----------------+---+---+---+
+
        +--------------+---------------+-----------------+---+---+---+
  2  |                        Access code                        |
+
      2  |                        Access code                        |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  4  |      Physical addr of      |                  | TO Port |
+
      4  |      Physical addr of      |                  | TO Port |
      |    destination adapter (TO) |                  | number  |
+
        |    destination adapter (TO) |                  | number  |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  6  |  Physical addr of source    |                  |FROM port|
+
      6  |  Physical addr of source    |                  |FROM port|
      |        adapter (FROM)        |                  |  number |
+
        |        adapter (FROM)        |                  |  number |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  8  |                        Message type                        |
+
      8  |                        Message type                        |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  10  |                                                            |
+
    10  |                                                            |
      |            Available for higher level protocols            |
+
        |            Available for higher level protocols            |
      |                                                            |
+
        |                                                            |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  
 
TRUNKS TO TRY
 
TRUNKS TO TRY
  
Consists of two four bit masks indicating which of four possible
+
  Consists of two four bit masks indicating which of four possible
HYPERchannel A coaxial data trunks are to be used to transmit the
+
  HYPERchannel A coaxial data trunks are to be used to transmit the
message and to return it.  If a bit in the mask is ON, then the
+
  message and to return it.  If a bit in the mask is ON, then the
adapter firmware will logically AND it with the mask of installed
+
  adapter firmware will logically AND it with the mask of installed
trunk interfaces and use the result as a candidate list of
+
  trunk interfaces and use the result as a candidate list of
interfaces.  Whenever one of the internal "frames" are sent to
+
  interfaces.  Whenever one of the internal "frames" are sent to
communicate with the destination adapter, the transmission hardware
+
  communicate with the destination adapter, the transmission hardware
electronically selects the first non-busy trunk out of the list of
+
  electronically selects the first non-busy trunk out of the list of
candidates.  Thus, selection of a data trunk is best performed by the
+
  candidates.  Thus, selection of a data trunk is best performed by the
adapter itself rather than by the host.  "Dedicating" trunks to
+
  adapter itself rather than by the host.  "Dedicating" trunks to
specific applications only makes sense in very critical real time
+
  specific applications only makes sense in very critical real time
applications such as streaming data directly from high speed
+
  applications such as streaming data directly from high speed
overrunnable peripherals.
+
  overrunnable peripherals.
  
A second Trunk mask is provided for the receiving adapter when it
+
  A second Trunk mask is provided for the receiving adapter when it
sends frames back to the transmitter, as it is possible to build
+
  sends frames back to the transmitter, as it is possible to build
"asymmetric" configurations of data trunks where trunk 1 on one box
+
  "asymmetric" configurations of data trunks where trunk 1 on one box
  
  
  
 +
Hardwick & Lekashman                                            [Page 5]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
is connected to the trunk 3 interface of a second.  Such
 
configurations are strongly discouraged, but the addressing structure
 
supports it if needed.
 
  
The "trunks to try" field is only used by HYPERchannel A.  To assure
+
  is connected to the trunk 3 interface of a second.  Such
maximum interoperability, a value of 0xFF should be placed in this
+
  configurations are strongly discouraged, but the addressing structure
field to assure delivery over any technology.  Other values should
+
  supports it if needed.
only be used if the particular site hardware is so configured to not
+
 
be physically connected via those trunks.
+
  The "trunks to try" field is only used by HYPERchannel A.  To assure
 +
  maximum interoperability, a value of 0xFF should be placed in this
 +
  field to assure delivery over any technology.  Other values should
 +
  only be used if the particular site hardware is so configured to not
 +
  be physically connected via those trunks.
  
 
MESSAGE FLAGS
 
MESSAGE FLAGS
  
Contains options in message delivery.  In the basic type of message,
+
  Contains options in message delivery.  In the basic type of message,
three bits are used:
+
  three bits are used:
  
ASSOCIATED DATA PRESENT (A/D) is ON if an Associated Data block
+
  ASSOCIATED DATA PRESENT (A/D) is ON if an Associated Data block
follows the Message Proper.  0 if only a message proper is present in
+
  follows the Message Proper.  0 if only a message proper is present in
the network message.  The value of this bit is enforced by the
+
  the network message.  The value of this bit is enforced by the
network adapter firmware.
+
  network adapter firmware.
  
BURST MODE (BST) Enables a special mode for time critical transfers
+
  BURST MODE (BST) Enables a special mode for time critical transfers
where a single HYPERchannel A coaxial trunk is dedicated during
+
  where a single HYPERchannel A coaxial trunk is dedicated during
transmission of the network message.  Not recommended for anything
+
  transmission of the network message.  Not recommended for anything
that won't cause peripheral device overruns if data isn't delivered
+
  that won't cause peripheral device overruns if data isn't delivered
once message transmission starts.
+
  once message transmission starts.
  
EXCEPTION (EXC) Indicates to some channel programmed host interfaces
+
  EXCEPTION (EXC) Indicates to some channel programmed host interfaces
that the message is "out of band" in some way and requires special
+
  that the message is "out of band" in some way and requires special
processing.
+
  processing.
  
 
ACCESS CODE
 
ACCESS CODE
  
A feature to permit adapters to share use of a cable yet still permit
+
  A feature to permit adapters to share use of a cable yet still permit
an "access matrix" of which adapter boxes and physically talk to
+
  an "access matrix" of which adapter boxes and physically talk to
which others.  Not currently in use by anyone, support is being
+
  which others.  Not currently in use by anyone, support is being
discontinued.
+
  discontinued.
  
 
TO ADDRESS
 
TO ADDRESS
  
Consists of three parts.  The high order 8-bits contains the physical
+
  Consists of three parts.  The high order 8-bits contains the physical
address of the network adapter box which is to receive the message.
+
  address of the network adapter box which is to receive the message.
The low order 8-bits are interpreted in different ways depending on
+
  The low order 8-bits are interpreted in different ways depending on
the nature of the receiving network adapter.  If the receiving
+
  the nature of the receiving network adapter.  If the receiving
adapter has different host "ports," then the low order bits of the TO
+
  adapter has different host "ports," then the low order bits of the TO
field are used to designate which interface is to receive the
+
  field are used to designate which interface is to receive the
message.  On IBM data channels, the entire "logical" TO field is
+
  message.  On IBM data channels, the entire "logical" TO field is
interpreted as the subchannel on which the incoming data is to be
+
  interpreted as the subchannel on which the incoming data is to be
presented.  Parts of the logical TO field that are not interpreted by
+
  presented.  Parts of the logical TO field that are not interpreted by
 +
 
  
  
 +
Hardwick & Lekashman                                            [Page 6]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
the network adapter are passed to the host for further
+
  the network adapter are passed to the host for further
interpretation.
+
  interpretation.
  
 
FROM ADDRESS
 
FROM ADDRESS
  
The FROM address is not physically used during the process of
+
  The FROM address is not physically used during the process of
transmitting a network message, but is passed through to the
+
  transmitting a network message, but is passed through to the
receiving host so that a response can be returned to the point of
+
  receiving host so that a response can be returned to the point of
origin.  In general, reversing the TO and FROM 16-bit address fields
+
  origin.  In general, reversing the TO and FROM 16-bit address fields
and the TO and FROM trunk masks can reliably return a message to its
+
  and the TO and FROM trunk masks can reliably return a message to its
destination.
+
  destination.
  
 
MESSAGE TYPE
 
MESSAGE TYPE
  
The following two bytes are reserved for NSC.  Users have been
+
  The following two bytes are reserved for NSC.  Users have been
encouraged to put a zero in byte 8 and anything at all in byte 9 so
+
  encouraged to put a zero in byte 8 and anything at all in byte 9 so
as to not conflict with internal processing of messages by NSC
+
  as to not conflict with internal processing of messages by NSC
firmware.  In the past, this field has been loosely defined as
+
  firmware.  In the past, this field has been loosely defined as
carrying information of interest to NSC equipment carrying the
+
  carrying information of interest to NSC equipment carrying the
message and not as a formal protocol type field.  For example, 0xFF00
+
  message and not as a formal protocol type field.  For example, 0xFF00
in bytes 8 and 9 of the message will cause the receiving adapter to
+
  in bytes 8 and 9 of the message will cause the receiving adapter to
"loop back" the message without delivering it to the attached host.
+
  "loop back" the message without delivering it to the attached host.
  
Concurrent with this document, it is NSC's intent to use both bytes 8
+
  Concurrent with this document, it is NSC's intent to use both bytes 8
and 9 as a formal "protocol type" designator.  Major protocols will
+
  and 9 as a formal "protocol type" designator.  Major protocols will
be assigned a unique value in byte 8 that will (among good citizens)
+
  be assigned a unique value in byte 8 that will (among good citizens)
not duplicate a value generated by a different protocol.  Minor
+
  not duplicate a value generated by a different protocol.  Minor
protocols will have 16-bit values assigned to them so that we won't
+
  protocols will have 16-bit values assigned to them so that we won't
run out when 256 protocols turn up.  Any interested party could
+
  run out when 256 protocols turn up.  Any interested party could
obtain a protocol number or numbers by application to NSC.  In this
+
  obtain a protocol number or numbers by application to NSC.  In this
document, protocol types specific to IP protocols are assigned.
+
  document, protocol types specific to IP protocols are assigned.
  
 
TO ADDRESSES AND OPEN DRIVER ARCHITECTURE
 
TO ADDRESSES AND OPEN DRIVER ARCHITECTURE
  
Since not all 16-bits of the TO address are used for the physical
+
  Since not all 16-bits of the TO address are used for the physical
delivery of the network message, the remainder are considered
+
  delivery of the network message, the remainder are considered
"logical" in that their meaning is physically determined by host
+
  "logical" in that their meaning is physically determined by host
computer software or (in cases such as the FIPS data channel) by
+
  computer software or (in cases such as the FIPS data channel) by
hardware in the host interface.
+
  hardware in the host interface.
 +
 
 +
  Since HYPERchannel is and will be used to support a large variety of
 +
  general and special purpose protocols, it is desirable that several
 +
  independent protocol servers be able to independently share the
 +
  HYPERchannel network interface.  The implementation of many of NSC's
 +
  device drivers as well as those of other parties (such as Cray
 +
  Research) support this service.  Each protocol server that wishes to
 +
  send or receive HYPERchannel network messages logically "connects" to
 +
  a HYPERchannel device driver by specifying the complete 16-bit TO
  
Since HYPERchannel is and will be used to support a large variety of
 
general and special purpose protocols, it is desirable that several
 
independent protocol servers be able to independently share the
 
HYPERchannel network interface.  The implementation of many of NSC's
 
device drivers as well as those of other parties (such as Cray
 
Research) support this service.  Each protocol server that wishes to
 
send or receive HYPERchannel network messages logically "connects" to
 
a HYPERchannel device driver by specifying the complete 16-bit TO
 
  
  
 +
Hardwick & Lekashman                                            [Page 7]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
address it will "own" in the sense that any network message with that
+
  address it will "own" in the sense that any network message with that
TO address will be delivered to that protocol server.
+
  TO address will be delivered to that protocol server.
  
The logical TO field serves a function similar to the TYPE byte in
+
  The logical TO field serves a function similar to the TYPE byte in
the Ethernet 802.2 message header, but differs from it in that the
+
  the Ethernet 802.2 message header, but differs from it in that the
width of the logical TO field varies from host to host, and that no
+
  width of the logical TO field varies from host to host, and that no
values of the logical TO address are reserved for particular
+
  values of the logical TO address are reserved for particular
protocols.  On the other hand, it is possible to have several
+
  protocols.  On the other hand, it is possible to have several
"identical" protocols (such as two independent copies of IP with
+
  "identical" protocols (such as two independent copies of IP with
different HYPERchannel addresses) sharing the same physical
+
  different HYPERchannel addresses) sharing the same physical
HYPERchannel interface.  This makes NSC's addressing approach
+
  HYPERchannel interface.  This makes NSC's addressing approach
identical to the OSI concept that the protocol server to reach is
+
  identical to the OSI concept that the protocol server to reach is
embedded within the address, rather than the IP notion of addressing
+
  embedded within the address, rather than the IP notion of addressing
a "host" and identifying a server through a message type.
+
  a "host" and identifying a server through a message type.
  
Since the HYPERchannel header also has a "message type" field, there
+
  Since the HYPERchannel header also has a "message type" field, there
is some ambiguity concerning the respective roles of the message type
+
  is some ambiguity concerning the respective roles of the message type
and logical TO fields:
+
  and logical TO fields:
  
o  The logical TO field is always used to identify the protocol
+
    o  The logical TO field is always used to identify the protocol
    server which will receive the message.  Once a server has
+
        server which will receive the message.  Once a server has
    specified the complete TO address for the messages it wishes to
+
        specified the complete TO address for the messages it wishes to
    receive, the message will not be delivered to a different
+
        receive, the message will not be delivered to a different
    protocol server regardless of the contents of the message type
+
        protocol server regardless of the contents of the message type
    field.
+
        field.
  
o  Although the "type" field cannot change the protocol server at
+
    o  Although the "type" field cannot change the protocol server at
    the final destination of the message, the type field can be used
+
        the final destination of the message, the type field can be used
    by intermediate processes on the network to process the message
+
        by intermediate processes on the network to process the message
    before it reaches the server destination.  An obvious example is
+
        before it reaches the server destination.  An obvious example is
    the 0xFF00 message loopback type function, where network
+
        the 0xFF00 message loopback type function, where network
    processing to loop back the message results in nondelivery to
+
        processing to loop back the message results in nondelivery to
    the TO address.  In the future, intermediate nodes may process
+
        the TO address.  In the future, intermediate nodes may process
    "in transit" messages based on the message type only for
+
        "in transit" messages based on the message type only for
    purposes such as security validation, aging of certain
+
        purposes such as security validation, aging of certain
    datagrams, and network management.
+
        datagrams, and network management.
  
 
EXTENDED (32-BIT ADDRESS) MESSAGE PROPER HEADER
 
EXTENDED (32-BIT ADDRESS) MESSAGE PROPER HEADER
  
In the original days of HYPERchannel, the limitation of 256 adapter
+
  In the original days of HYPERchannel, the limitation of 256 adapter
"boxes" that could be addressed in a network message was deemed
+
  "boxes" that could be addressed in a network message was deemed
sufficient as 40 or so adapters was considered a "large" network.  As
+
  sufficient as 40 or so adapters was considered a "large" network.  As
with the Ethernet, more recent networks have resulted in a need to
+
  with the Ethernet, more recent networks have resulted in a need to
address larger networks.  Although a few ad hoc modes have existed to
+
  address larger networks.  Although a few ad hoc modes have existed to
address larger HYPERchannel networks for some years, newer
+
  address larger HYPERchannel networks for some years, newer
technologies of HYPERchannel equipment have logically extended the
+
  technologies of HYPERchannel equipment have logically extended the
network message to support 32-bits of addressing, with 24 of those
+
  network message to support 32-bits of addressing, with 24 of those
bits to designate a physical network adapter.
+
  bits to designate a physical network adapter.
  
  
  
 +
Hardwick & Lekashman                                            [Page 8]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
This 32-bit header has been designed so that existing network
 
adapters are capable of sending and receiving these messages.  Only
 
the network bridges need the intelligence to select messages
 
designated for them.
 
  
 +
  This 32-bit header has been designed so that existing network
 +
  adapters are capable of sending and receiving these messages.  Only
 +
  the network bridges need the intelligence to select messages
 +
  designated for them.
  
  
Line 475: Line 498:
  
  
 +
Hardwick & Lekashman                                            [Page 9]
  
    +------------------------------+-----------------------------+
+
RFC 1044           IP on Network Systems HYPERchannel     February 1988
  0  |      Trunks to Try           |        Message Flags        |
 
    |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
 
    +--------------+---------------+---+---+--+--+---+---+---+---+
 
  2  |        TO Domain #          |        TO Network #        |
 
    |                              |                            |
 
    +------------------------------+-----------------------------+
 
  4  |O|    Physical addr of        |                  | TO Port |
 
    |N|  destination adapter (TO)  |                  | number  |
 
    +------------------------------+-----------------------------+
 
  6  |O| Physical addr of source    |                  |FROM port|
 
    |N|    adapter (FROM)        |                  |  number |
 
    +------------------------------+-----------------------------+
 
  8  |                        Message type                      |
 
    |                                                            |
 
    +------------------------------+-----------------------------+
 
  10 |          FROM Domain #      |      FROM Network #        |
 
    |                              |                            |
 
    +------------------------------+-----------------------------+
 
  12 |          - reserved -        |        age count          |
 
    |                              |                            |
 
    +------------------------------+-----------------------------+
 
  14 |      Next Header Offset      |      Header End Offset      |
 
    |        (normally 16)        |        (normally 16)        |
 
    +------------------------------+-----------------------------+
 
  16 |                  Start of user protocol                    |
 
    |              bytes 16 - 64 of message proper              |
 
    |                                                            |
 
     +------------------------------+-----------------------------+
 
  
       Associated Data
+
 
+-----------------------------------------------------------------+
+
        +------------------------------+-----------------------------+
|                                                                |
+
    0  |      Trunks to Try          |        Message Flags        |
|    As with basic format network messages                      |
+
        |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
|                                                                |
+
        +--------------+---------------+---+---+--+--+---+---+---+---+
+-----------------------------------------------------------------+
+
    2  |        TO Domain #          |        TO Network #        |
 +
        |                              |                            |
 +
        +------------------------------+-----------------------------+
 +
    4  |O|    Physical addr of        |                  | TO Port |
 +
        |N|  destination adapter (TO)  |                  | number  |
 +
        +------------------------------+-----------------------------+
 +
    6  |O| Physical addr of source    |                  |FROM port|
 +
        |N|    adapter (FROM)        |                  |  number |
 +
        +------------------------------+-----------------------------+
 +
    8  |                        Message type                      |
 +
        |                                                            |
 +
        +------------------------------+-----------------------------+
 +
    10 |          FROM Domain #      |      FROM Network #        |
 +
        |                              |                            |
 +
        +------------------------------+-----------------------------+
 +
    12 |          - reserved -        |        age count          |
 +
        |                              |                            |
 +
        +------------------------------+-----------------------------+
 +
    14 |      Next Header Offset      |      Header End Offset      |
 +
        |       (normally 16)        |        (normally 16)        |
 +
        +------------------------------+-----------------------------+
 +
    16 |                  Start of user protocol                    |
 +
        |              bytes 16 - 64 of message proper              |
 +
        |                                                            |
 +
        +------------------------------+-----------------------------+
 +
 
 +
          Associated Data
 +
  +-----------------------------------------------------------------+
 +
  |                                                                |
 +
  |    As with basic format network messages                      |
 +
  |                                                                |
 +
  +-----------------------------------------------------------------+
  
 
ADDRESS RECOGNITION AND MESSAGE FORWARDING
 
ADDRESS RECOGNITION AND MESSAGE FORWARDING
  
With the 32-bit form of addressing, NSC is keeping with the premise
+
  With the 32-bit form of addressing, NSC is keeping with the premise
that the native HYPERchannel address bears a direct relation to the
+
  that the native HYPERchannel address bears a direct relation to the
position of the equipment in an extended HYPERchannel network.
+
  position of the equipment in an extended HYPERchannel network.
 +
 
 +
  Each collection of "locally" attached NSC network adapters that are
 +
  connected by coax or fiber optic cable (with the possible addition of
 +
  nonselective repeaters such as the ATRn series) is considered a
 +
  "network".  Each network can have up to 256 directly addressable
 +
  adapters attached to it which can be reached by the basic format
 +
 
  
Each collection of "locally" attached NSC network adapters that are
 
connected by coax or fiber optic cable (with the possible addition of
 
nonselective repeaters such as the ATRn series) is considered a
 
"network".  Each network can have up to 256 directly addressable
 
adapters attached to it which can be reached by the basic format
 
  
 +
Hardwick & Lekashman                                          [Page 10]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 +
  network message.
  
network message.
+
  Existing bridges or "link adapters" can be programmed to become
 +
  "selective repeaters" in that they can receive network messages
 +
  containing a subset of network addresses send them over the bridge
 +
  medium (if present) and reintroduce them on the other network.  Such
 +
  interconnected local area networks are considered a single network
 +
  from an addressing point of view.
  
Existing bridges or "link adapters" can be programmed to become
+
  A large NSC network can have up to 64K networks which can be
"selective repeaters" in that they can receive network messages
+
  complexly interconnected by network bridges and/or "backbone"
containing a subset of network addresses send them over the bridge
+
  networks which distribute data between other networks.  To simplify
medium (if present) and reintroduce them on the other network.  Such
+
  the mechanics of message forwarding, the 16-bit network field is
interconnected local area networks are considered a single network
+
  divided into two eight quantities, a "network number" identifying
from an addressing point of view.
+
  which network is to receive the message and a "domain number" which
 +
  specifies which network of networks is the recipient.
  
A large NSC network can have up to 64K networks which can be
+
  The bridge technology adapters which move messages between networks
complexly interconnected by network bridges and/or "backbone"
+
  have address recognition hardware which examines all the 24-bits in
networks which distribute data between other networksTo simplify
+
  bytes 2-5 of the network message header to determine if the bridge
the mechanics of message forwarding, the 16-bit network field is
+
  should accept the message for forwardingAt any given instant of
divided into two eight quantities, a "network number" identifying
+
  time in the network, each bridge will have a list of networks and
which network is to receive the message and a "domain number" which
+
  domains that it should accept for forwarding to a network at the
specifies which network of networks is the recipient.
+
  other end of the bridge. Each Adapter (Including Newer Technology
 +
  host adapters) contains in address recognition hardware:
  
The bridge technology adapters which move messages between networks
+
    o  domainmask -- a 256-bit mask of domain numbers that should  be
have address recognition hardware which examines all the 24-bits in
+
        accepted for forwarding (not local processing) by this adapter.
bytes 2-5 of the network message header to determine if the bridge
+
    o  MyDomain  -- the  value  of the domain on which this host
should accept the message for forwarding.  At any given instant of
+
        adapter or bridge end is installed.
time in the network, each bridge will have a list of networks and
+
    o  NetworkMask -- a 256-bit mask of network numbers that should be
domains that it should accept for forwarding to a network at the
+
        accepted for forwarding by this adapter.
other end of the bridge.  Each Adapter (Including Newer Technology
+
    o  MyNetwork  -  the value of the network on which this host
host adapters) contains in address recognition hardware:
+
        adapter or bridge end is installed.
 +
    o  AddressMask -- A 256-bit mask of the local network addresses
 +
        that should be accepted by the adapter.
 +
    o  MyAddress -- the "base address" of the box, which must be
 +
        supplied in any message that is directed to control processes
 +
        within the adapter, such as a loopback message.
  
o  domainmask -- a 256-bit mask of domain numbers that should  be
+
  Address recognition takes place using the algorithm:
    accepted for forwarding (not local processing) by this adapter.
 
o  MyDomain  --  the value  of the domain on which this host
 
    adapter or bridge end is installed.
 
o  NetworkMask -- a 256-bit mask of network numbers that should be
 
    accepted for forwarding by this adapter.
 
o  MyNetwork  -  the  value of the network on which this host
 
    adapter or bridge end is installed.
 
o  AddressMask -- A 256-bit mask of the local network addresses
 
    that should be accepted by the adapter.
 
o  MyAddress -- the "base address" of the box, which must be
 
    supplied in any message that is directed to control processes
 
    within the adapter, such as a loopback message.
 
  
Address recognition takes place using the algorithm:
+
          IF Domain IN DomainMask OR
 +
              IF (Domain = MyDomain AND Network IN NetworkMask) OR
 +
                IF (Domain = MyDomain AND Network = MyNetwork AND
 +
                    Address IN AddressMask) THEN accept-message
 +
                                            ELSE ignore-message.
  
        IF Domain IN DomainMask OR
 
          IF (Domain = MyDomain AND Network IN NetworkMask) OR
 
              IF (Domain = MyDomain AND Network = MyNetwork AND
 
                Address IN AddressMask) THEN accept-message
 
                                        ELSE ignore-message.
 
  
  
  
 +
Hardwick & Lekashman                                          [Page 11]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
This algorithm means that an adapter's hardware address recognition
+
  This algorithm means that an adapter's hardware address recognition
logic will accept any messages to the box itself, any secondary or
+
  logic will accept any messages to the box itself, any secondary or
aliased local addresses owned by the adapter, and any message
+
  aliased local addresses owned by the adapter, and any message
directed to a remote network or domain that that particular adapter
+
  directed to a remote network or domain that that particular adapter
is prepared to forward.
+
  is prepared to forward.
  
  
Line 593: Line 626:
 
TRUNK MASK
 
TRUNK MASK
  
Is as in the basic network message.  Messages that are to be
+
  Is as in the basic network message.  Messages that are to be
delivered outside the immediate network should have 0xFF in this byte
+
  delivered outside the immediate network should have 0xFF in this byte
so that all possible trunks in intermediate networks should be tried.
+
  so that all possible trunks in intermediate networks should be tried.
Locally delivered 32-bit messages may still contain specially
+
  Locally delivered 32-bit messages may still contain specially
tailored trunk masks to satisfy local delivery needs.
+
  tailored trunk masks to satisfy local delivery needs.
  
 
MESSAGE FLAGS
 
MESSAGE FLAGS
  
The currently defined bits remain as before.  Three new bits have
+
  The currently defined bits remain as before.  Three new bits have
been defined since that time.
+
  been defined since that time.
 +
 
 +
  CRC (END-END MESSAGE INTEGRITY).  Newer technology host adapters are
 +
  capable of generating a 32-bit CRC for the entire network message as
 +
  soon as it is received over the channel or bus interface from the
 +
  host.  This 32-bit CRC is appended to the end of the associated data
 +
  block and is preserved through the entire delivery process until it
 +
  is checked by the host adapter that is the ultimate recipient of the
 +
  message, which removes it.  This end to end integrity checking is
 +
  designed to provide a high degree of assurance that data has been
 +
  correctly moved through all intermediate LAN's, geographic links, and
 +
  internal adapter hardware and processes.
  
CRC (END-END MESSAGE INTEGRITY).  Newer technology host adapters are
+
  SRC (SOURCE FROM ADDRESS CORRECT).  This bit is provided to take
capable of generating a 32-bit CRC for the entire network message as
+
  advantage of the physical nature of the network address to optionally
soon as it is received over the channel or bus interface from the
+
  verify that the 32-bit FROM address provided in the network message
host.  This 32-bit CRC is appended to the end of the associated data
+
  is in fact the location that the message originated.  If the bit is
block and is preserved through the entire delivery process until it
+
  not set by the transmitting host, no particular processing occurs on
is checked by the host adapter that is the ultimate recipient of the
+
  the messageIf the bit is set, then all intermediate adapters
message, which removes it.  This end to end integrity checking is
+
  involved in the delivery of the message have the privilege of turning
designed to provide a high degree of assurance that data has been
+
  the bit off if the received message FROM address is not a TO address
correctly moved through all intermediate LAN's, geographic links, and
+
  that would be delivered to the originator if the message were going
internal adapter hardware and processes.
+
  the opposite direction.
  
SRC (SOURCE FROM ADDRESS CORRECT).  This bit is provided to take
+
  If the message is received by a host computer with this bit still
advantage of the physical nature of the network address to optionally
+
  set, then the FROM address is guaranteed correct in the sense that
verify that the 32-bit FROM address provided in the network message
+
  returning a message with TO and FROM information reversed will result
is in fact the location that the message originated.  If the bit is
+
  in delivery of the message to the process that actually originated
not set by the transmitting host, no particular processing occurs on
 
the message.  If the bit is set, then all intermediate adapters
 
involved in the delivery of the message have the privilege of turning
 
the bit off if the received message FROM address is not a TO address
 
that would be delivered to the originator if the message were going
 
the opposite direction.
 
  
If the message is received by a host computer with this bit still
 
set, then the FROM address is guaranteed correct in the sense that
 
returning a message with TO and FROM information reversed will result
 
in delivery of the message to the process that actually originated
 
  
  
 +
Hardwick & Lekashman                                          [Page 12]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
it.  By careful attention to the physical security of adapters and
+
  it.  By careful attention to the physical security of adapters and
intermediate links between networks, a high degree of security can be
+
  intermediate links between networks, a high degree of security can be
built into systems that simply examine the FROM address of a message
+
  built into systems that simply examine the FROM address of a message
to determine the legitimacy of its associated request.
+
  to determine the legitimacy of its associated request.
  
GNA (GLOBAL NETWORK ADDRESSING).  This bit ON indicates that 32-bit
+
  GNA (GLOBAL NETWORK ADDRESSING).  This bit ON indicates that 32-bit
addressing is present in the message.  When this bit is on, bytes 2-3
+
  addressing is present in the message.  When this bit is on, bytes 2-3
(Domain and Network numbers) should also be nonzero.
+
  (Domain and Network numbers) should also be nonzero.
  
 
TO ADDRESS
 
TO ADDRESS
  
Four bytes contain the TO address, which is used to deliver the
+
  Four bytes contain the TO address, which is used to deliver the
network message as described in "Address Recognition and Message
+
  network message as described in "Address Recognition and Message
Forwarding" on page 8.  The "logical" part of the TO address is used
+
  Forwarding" on page 8.  The "logical" part of the TO address is used
to designate a protocol server exactly as in the basic format network
+
  to designate a protocol server exactly as in the basic format network
message header.
+
  message header.
  
The existing "address" field has its high order bit reserved as an
+
  The existing "address" field has its high order bit reserved as an
outnet bit for compatibility with existing A-series network adapter
+
  outnet bit for compatibility with existing A-series network adapter
equipment.  Were it not for this bit, the A-series adapters would
+
  equipment.  Were it not for this bit, the A-series adapters would
attempt to accept messages that were "passing through" the local
+
  attempt to accept messages that were "passing through" the local
network on their way elsewhere simply because the address field
+
  network on their way elsewhere simply because the address field
matched while the the Domain and Network numbers (ignored by the A-
+
  matched while the the Domain and Network numbers (ignored by the A-
series adapters) were quite different.
+
  series adapters) were quite different.
  
This "outnet" bit is used in the following way:
+
  This "outnet" bit is used in the following way:
  
o  All network adapters (of  any type) in an extended set of
+
    o  All network adapters (of  any type) in an extended set of
    networks containing A-Series adapters that will ever use 32-bit
+
        networks containing A-Series adapters that will ever use 32-bit
    addressing must have their addresses in the range 00-7F (hex.)
+
        addressing must have their addresses in the range 00-7F (hex.)
  
o  If a message is to be sent to a destination on a nonlocal
+
    o  If a message is to be sent to a destination on a nonlocal
    network and domain on such an extended network, then the
+
        network and domain on such an extended network, then the
    high order bit of the address field is turned on.
+
        high order bit of the address field is turned on.
  
o  When the last bridge in the chain realizes that it is about to
+
    o  When the last bridge in the chain realizes that it is about to
    forward the message to its final destination (the Domain and
+
        forward the message to its final destination (the Domain and
    Network numbers are local), then it turns the Outnet bit off.
+
        Network numbers are local), then it turns the Outnet bit off.
    This will result in local delivery to the destination adapter.
+
        This will result in local delivery to the destination adapter.
  
 
FROM ADDRESS
 
FROM ADDRESS
  
The FROM address follows the same logic as the TO address in that any
+
  The FROM address follows the same logic as the TO address in that any
message can be returned to its source by reversing the FROM and TO
+
  message can be returned to its source by reversing the FROM and TO
fields of the message.  Since so many protocols examine byte 8 of the
+
  fields of the message.  Since so many protocols examine byte 8 of the
message to determine its type, the FROM field has been split so that
+
  message to determine its type, the FROM field has been split so that
the Domain and Network numbers extend into bytes 10-11.
+
  the Domain and Network numbers extend into bytes 10-11.
 +
 
  
  
  
 +
Hardwick & Lekashman                                          [Page 13]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
MESSAGE TYPE
 
MESSAGE TYPE
  
This field (informally defined in the past) has been extended to 16-
+
  This field (informally defined in the past) has been extended to 16-
bits so that a unique value can be assigned to any present or future
+
  bits so that a unique value can be assigned to any present or future
protocol which is layer on HYPERchannel messages for either private
+
  protocol which is layer on HYPERchannel messages for either private
or public use.
+
  or public use.
  
 
AGE COUNT
 
AGE COUNT
  
This field serves the same purpose as the IP "time to live" in that
+
  This field serves the same purpose as the IP "time to live" in that
it prevents datagrams from endlessly circulating about in an
+
  it prevents datagrams from endlessly circulating about in an
improperly configured network.  Each time a 32-bit message passes
+
  improperly configured network.  Each time a 32-bit message passes
through a bridge, the Age Count is decremented by one.  When the
+
  through a bridge, the Age Count is decremented by one.  When the
result is zero, the message is discarded by the bridge.
+
  result is zero, the message is discarded by the bridge.
  
 
NEXT HEADER OFFSET AND HEADER END OFFSET
 
NEXT HEADER OFFSET AND HEADER END OFFSET
  
These are used as fields to optionally provide "loose source
+
  These are used as fields to optionally provide "loose source
routing", where a list of 32-bit TO addresses can be provided by the
+
  routing", where a list of 32-bit TO addresses can be provided by the
transmitter to explicitly determine the path of a message through the
+
  transmitter to explicitly determine the path of a message through the
network.  If this feature is not used, both these fields would
+
  network.  If this feature is not used, both these fields would
contain the value 16 (decimal) to both indicate extra TO addresses
+
  contain the value 16 (decimal) to both indicate extra TO addresses
are absent and that the beginning of protocol data following the
+
  are absent and that the beginning of protocol data following the
HYPERchannel header is in byte 16.
+
  HYPERchannel header is in byte 16.
  
Although it is conceivable that a HYPERchannel IP process could use
+
  Although it is conceivable that a HYPERchannel IP process could use
this source routing capability to direct messages to hosts or
+
  this source routing capability to direct messages to hosts or
gateways, this capability is not felt to be of sufficient value to IP
+
  gateways, this capability is not felt to be of sufficient value to IP
to build it into a HYPERchannel IP protocol.
+
  to build it into a HYPERchannel IP protocol.
  
In the future, all higher level protocols should be able to examine
+
  In the future, all higher level protocols should be able to examine
Header End Offset to determine the start of the higher level protocol
+
  Header End Offset to determine the start of the higher level protocol
information.
+
  information.
  
 
BROADCASTING
 
BROADCASTING
  
NSC message forwarding protocols use low level link protocols to
+
  NSC message forwarding protocols use low level link protocols to
negotiate transmission of a message to its next destination on the
+
  negotiate transmission of a message to its next destination on the
network.  Furthermore, NSC network boxes often "fan out" so that
+
  network.  Furthermore, NSC network boxes often "fan out" so that
several hosts share the same network transmission equipment as in the
+
  several hosts share the same network transmission equipment as in the
A400 adapter.  Both these characteristics mean that providing a
+
  A400 adapter.  Both these characteristics mean that providing a
genuine broadcast capability is not a trivial task, and in fact no
+
  genuine broadcast capability is not a trivial task, and in fact no
current implementations of NSC technology support a broadcast
+
  current implementations of NSC technology support a broadcast
capability.
+
  capability.
 +
 
 +
  The last several years have seen broadcast applications mature to the
 +
  point where they have virtually unquestioned utility on a local and
 +
  sometimes campuswide basis.  Accordingly, new NSC technologies will
 +
 
  
The last several years have seen broadcast applications mature to the
 
point where they have virtually unquestioned utility on a local and
 
sometimes campuswide basis.  Accordingly, new NSC technologies will
 
  
 +
Hardwick & Lekashman                                          [Page 14]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 +
  support a broadcast capability.  Information on the use of this
 +
  capability is included here as it is essential to the discussion of
 +
  the Address Resolution Protocol later in this document.
  
support a broadcast capability.  Information on the use of this
+
  Broadcast capability will be supported only with the extended (32-bit
capability is included here as it is essential to the discussion of
+
  address) message formatA broadcast message will have the following
the Address Resolution Protocol later in this document.
+
  general appearance:
  
Broadcast capability will be supported only with the extended (32-bit
+
    byte  Message Proper
address) message format. A broadcast message will have the following
+
        +------------------------------+-----------------------------+
general appearance:
+
      0  |      Trunks to Try          |        Message Flags        |
 +
        |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
 +
        +--------------+---------------+---+---+--+--+---+---+---+---+
 +
      2  |      TO Domain Number      |      TO Network Number      |
 +
        |          or 0xFF            |          or 0xFF            |
 +
        +------------------------------+-----------------------------+
 +
      4  |          0xFF              |  Broadcast channel number  |
 +
        |                              |                            |
 +
        +------------------------------+-----------------------------+
 +
      6  |O| Physical addr of source    |                  |FROM port|
 +
        |N|    adapter (FROM)        |                  |  number |
 +
        +------------------------------+-----------------------------+
 +
      8  |                        Message type                      |
 +
        |                                                            |
 +
        +------------------------------+-----------------------------+
 +
      10 |    FROM Domain Number      |    FROM Network Number      |
 +
        |                              |                            |
 +
        +------------------------------+-----------------------------+
 +
      12 |          - reserved -        |        age count          |
 +
        |                              |                            |
 +
        +------------------------------+-----------------------------+
 +
      14 |      Next Header Offset      |      Header End Offset      |
 +
        |        (normally 16)        |        (normally 16)       |
 +
        +------------------------------+-----------------------------+
 +
      16 |                  Start of user protocol                    |
 +
        |              bytes 16 - 64 of message proper              |
 +
        |                                                            |
 +
        +------------------------------+-----------------------------+
 +
          Associated Data
 +
    +-----------------------------------------------------------------+
 +
    |                                                                |
 +
    |    As with basic format network messages                      |
 +
    |    Maximum associated data size 1K bytes.                     |
 +
    |                                                                |
 +
    +-----------------------------------------------------------------+
  
byte  Message Proper
 
      +------------------------------+-----------------------------+
 
  0  |      Trunks to Try          |        Message Flags        |
 
      |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
 
      +--------------+---------------+---+---+--+--+---+---+---+---+
 
  2  |      TO Domain Number      |      TO Network Number      |
 
      |          or 0xFF            |          or 0xFF            |
 
      +------------------------------+-----------------------------+
 
  4  |          0xFF              |  Broadcast channel number  |
 
      |                              |                            |
 
      +------------------------------+-----------------------------+
 
  6  |O| Physical addr of source    |                  |FROM port|
 
      |N|    adapter (FROM)        |                  |  number |
 
      +------------------------------+-----------------------------+
 
  8  |                        Message type                      |
 
      |                                                            |
 
      +------------------------------+-----------------------------+
 
  10 |    FROM Domain Number      |    FROM Network Number      |
 
      |                              |                            |
 
      +------------------------------+-----------------------------+
 
  12 |          - reserved -        |        age count          |
 
      |                              |                            |
 
      +------------------------------+-----------------------------+
 
  14 |      Next Header Offset      |      Header End Offset      |
 
      |        (normally 16)        |        (normally 16)        |
 
      +------------------------------+-----------------------------+
 
  16 |                  Start of user protocol                    |
 
      |              bytes 16 - 64 of message proper              |
 
      |                                                            |
 
      +------------------------------+-----------------------------+
 
      Associated Data
 
+-----------------------------------------------------------------+
 
|                                                                |
 
|    As with basic format network messages                      |
 
|    Maximum associated data size 1K bytes.                      |
 
|                                                                |
 
+-----------------------------------------------------------------+
 
  
  
Line 791: Line 834:
  
  
 +
Hardwick & Lekashman                                          [Page 15]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
TRUNKS TO TRY AND MESSAGE FLAGS
 
TRUNKS TO TRY AND MESSAGE FLAGS
  
These fields are defined just as with a normal 32-bit message.  All
+
  These fields are defined just as with a normal 32-bit message.  All
bits in the Message Flags field are valid with broadcast modes.
+
  bits in the Message Flags field are valid with broadcast modes.
  
 
BROADCAST ADDRESS
 
BROADCAST ADDRESS
  
For Domain, Network and Adapter Address fields, the value 0xFF is
+
  For Domain, Network and Adapter Address fields, the value 0xFF is
reserved for use by the broadcast mechanism.  A value of 0xFF in the
+
  reserved for use by the broadcast mechanism.  A value of 0xFF in the
adapter address field indicates to the local network hardware that
+
  adapter address field indicates to the local network hardware that
this message is to be sent to all connected network equipment on the
+
  this message is to be sent to all connected network equipment on the
individual network.
+
  individual network.
  
A value of 0xFF in the network or domain fields, respectively
+
  A value of 0xFF in the network or domain fields, respectively
indicates a request that the scope of the broadcast exceed the local
+
  indicates a request that the scope of the broadcast exceed the local
network.  The bridging link adapters will receive the broadcast
+
  network.  The bridging link adapters will receive the broadcast
message along with everyone else and will examine the "Broadcast
+
  message along with everyone else and will examine the "Broadcast
Channel" field and their internal switches to determine if the
+
  Channel" field and their internal switches to determine if the
message should be forwarded to other remote networks.
+
  message should be forwarded to other remote networks.
  
If the Network and Domain fields contain the local network and
+
  If the Network and Domain fields contain the local network and
domain, then the broadcast message will only be broadcast within the
+
  domain, then the broadcast message will only be broadcast within the
local network.  If a remote Network and Domain is specified, then the
+
  local network.  If a remote Network and Domain is specified, then the
message will be delivered as a single message to the remote network
+
  message will be delivered as a single message to the remote network
and broadcast there.
+
  and broadcast there.
  
 
BROADCAST CHANNEL
 
BROADCAST CHANNEL
  
Since individual hosts and protocol servers generally are not
+
  Since individual hosts and protocol servers generally are not
interested in all broadcast messages that float about the network, a
+
  interested in all broadcast messages that float about the network, a
filtering mechanism is provided in the header and network adapter
+
  filtering mechanism is provided in the header and network adapter
equipment so that only proper classes of broadcast messages are
+
  equipment so that only proper classes of broadcast messages are
delivered to the end point.
+
  delivered to the end point.
  
Broadcast channel numbers in the range 00-0xFF will be assigned by
+
  Broadcast channel numbers in the range 00-0xFF will be assigned by
NSC much like the "message type" field.  Host protocol servers
+
  NSC much like the "message type" field.  Host protocol servers
specify a specific TO address containing a channel number (such as
+
  specify a specific TO address containing a channel number (such as
0xFF04) when they bind themselves to the HYPERchannel device driver.
+
  0xFF04) when they bind themselves to the HYPERchannel device driver.
The driver and the underlying equipment will deliver only broadcast
+
  The driver and the underlying equipment will deliver only broadcast
messages with the correct channel number to the protocol server.  If
+
  messages with the correct channel number to the protocol server.  If
a protocol server wishes to receive several different broadcast
+
  a protocol server wishes to receive several different broadcast
messages, it must bind itself to the driver several times with the
+
  messages, it must bind itself to the driver several times with the
desired addresses.
+
  desired addresses.
  
Link adapters that are prepared to handle multinetwork broadcast
+
  Link adapters that are prepared to handle multinetwork broadcast
messages may be equipped with switches to determine which broadcast
+
  messages may be equipped with switches to determine which broadcast
channels will be propagated into the next network.  Since
+
  channels will be propagated into the next network.  Since
multinetwork broadcast is an arrangement that must be configured with
+
  multinetwork broadcast is an arrangement that must be configured with
  
  
  
 +
Hardwick & Lekashman                                          [Page 16]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
care, these switches are off by default.
+
 
 +
  care, these switches are off by default.
  
 
FROM ADDRESS
 
FROM ADDRESS
  
The FROM address is constructed just as with a normal 32-bit network
+
  The FROM address is constructed just as with a normal 32-bit network
message.  The Source Address Correct bit is processed just as with a
+
  message.  The Source Address Correct bit is processed just as with a
normal message.
+
  normal message.
  
 
MESSAGE TYPE
 
MESSAGE TYPE
  
Message type is defined as with normal messages.  Presumably
+
  Message type is defined as with normal messages.  Presumably
broadcast applications will have unique message types that are not
+
  broadcast applications will have unique message types that are not
generally found in normal messages.
+
  generally found in normal messages.
  
 
AGE COUNT
 
AGE COUNT
  
Age count is vitally important in a multinetwork broadcast as "loops"
+
  Age count is vitally important in a multinetwork broadcast as "loops"
in the network can cause a great deal of activity until all the
+
  in the network can cause a great deal of activity until all the
progeny of the original broadcast message die out.
+
  progeny of the original broadcast message die out.
  
 
PROTOCOL SPECIFICATION
 
PROTOCOL SPECIFICATION
  
This section contains information on the technique used to
+
  This section contains information on the technique used to
encapsulate IP datagrams on the HYPERchannel network message.  It
+
  encapsulate IP datagrams on the HYPERchannel network message.  It
contains three sections to describe three protocol packagings:
+
  contains three sections to describe three protocol packagings:
  
o  The technique used to encapsulate IP datagrams on the basic
+
    o  The technique used to encapsulate IP datagrams on the basic
    16-bit network message.  This is a de facto standard that has
+
        16-bit network message.  This is a de facto standard that has
    been in use for several years and is documented here to make it
+
        been in use for several years and is documented here to make it
    official.
+
        official.
  
o  The encapsulation technique for IP datagrams on 32 bit network
+
    o  The encapsulation technique for IP datagrams on 32 bit network
    messages.
+
        messages.
  
o  The definition of an Address Resolution Protocol on
+
    o  The definition of an Address Resolution Protocol on
    HYPERchannel.
+
        HYPERchannel.
  
  
Line 898: Line 946:
  
  
 +
Hardwick & Lekashman                                          [Page 17]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
BASIC (16-BIT) MESSAGE ENCAPSULATION
 
BASIC (16-BIT) MESSAGE ENCAPSULATION
  
        Message Proper
+
          Message Proper
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  0  |      Trunks to Try          |        Message Flags        |
+
      0  |      Trunks to Try          |        Message Flags        |
      |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
+
        |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  2  |                      Access code 0000                      |
+
      2  |                      Access code 0000                      |
      |                  (no longer supported)                    |
+
        |                  (no longer supported)                    |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  4  |      Physical addr of      |  Protocol server  |Dest Port|
+
      4  |      Physical addr of      |  Protocol server  |Dest Port|
      |    destination adapter      |  logical address  | number  |
+
        |    destination adapter      |  logical address  | number  |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  6  |      Physical addr of      |    Originating    | Src Port|
+
      6  |      Physical addr of      |    Originating    | Src Port|
      |      source  adapter        |  server address  |  number |
+
        |      source  adapter        |  server address  |  number |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  8  |    IP on HYPERchannel        |  Offset to start of IP    |
+
      8  |    IP on HYPERchannel        |  Offset to start of IP    |
      |    type code  0x05          |  header from message start  |
+
        |    type code  0x05          |  header from message start  |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  10  |      IP type designator      |  Offset to start of IP    |
+
    10  |      IP type designator      |  Offset to start of IP    |
      |          0x34              |    header from byte 12      |
+
        |          0x34              |    header from byte 12      |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  12  |          Padding (variable length incl. zero bytes)        |
+
    12  |          Padding (variable length incl. zero bytes)        |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  Off |          First (64-Offset) bytes of IP datagram            |
+
    Off |          First (64-Offset) bytes of IP datagram            |
      |                                                            |
+
        |                                                            |
      |                                                            |
+
        |                                                            |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
        Associated Data
+
          Associated Data
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
      |                                                            |
+
        |                                                            |
      |                Remainder of IP datagram                    |
+
        |                Remainder of IP datagram                    |
      |                                                            |
+
        |                                                            |
      |            No associated data is present if IP            |
+
        |            No associated data is present if IP            |
      |            datagram fits in the Message Proper            |
+
        |            datagram fits in the Message Proper            |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  
 
TRUNK MASK
 
TRUNK MASK
  
From the vantage of an IP driver, any trunk mask is valid so long as
+
  From the vantage of an IP driver, any trunk mask is valid so long as
it results in successful delivery of the HYPERchannel network message
+
  it results in successful delivery of the HYPERchannel network message
to its destination.  There is no reason to check this field for
+
  to its destination.  There is no reason to check this field for
validity on reception of the message.  Specification of the Trunk
+
  validity on reception of the message.  Specification of the Trunk
Mask on output is a local affair that could be specified by the
+
  Mask on output is a local affair that could be specified by the
transmitting driver's address resolution tables.
+
  transmitting driver's address resolution tables.
  
  
  
 +
Hardwick & Lekashman                                          [Page 18]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
MESSAGE FLAGS
 
MESSAGE FLAGS
  
No use is made of the Flags field (byte 1) other than to
+
  No use is made of the Flags field (byte 1) other than to
appropriately set the Associated Data bit.  Burst Mode and the
+
  appropriately set the Associated Data bit.  Burst Mode and the
Exception bit should not be used with IP.
+
  Exception bit should not be used with IP.
  
 
ACCESS CODE
 
ACCESS CODE
  
Although some current implementations of IP on HYPERchannel support
+
  Although some current implementations of IP on HYPERchannel support
the access code, no one appears to be using it at the current time.
+
  the access code, no one appears to be using it at the current time.
Since this field is currently reserved for the use of 32-bit
+
  Since this field is currently reserved for the use of 32-bit
addresses, no value other than 0000 should be placed in this field.
+
  addresses, no value other than 0000 should be placed in this field.
  
 
TO ADDRESS
 
TO ADDRESS
  
The TO field is generally obtained by a local IP driver through a
+
  The TO field is generally obtained by a local IP driver through a
table lookup algorithm where a 16-bit TO address is found that
+
  table lookup algorithm where a 16-bit TO address is found that
corresponds to the IP address of a local host or gateway.  The high
+
  corresponds to the IP address of a local host or gateway.  The high
order bits of the TO address of course refer to the adapter number
+
  order bits of the TO address of course refer to the adapter number
the adapter attached to the destination host.
+
  the adapter attached to the destination host.
  
The logical TO field should contain the protocol server address of
+
  The logical TO field should contain the protocol server address of
the HYPERchannel IP driver for that host as determined by the host's
+
  the HYPERchannel IP driver for that host as determined by the host's
system administrator.  Many HYPERchannel TCP/IP drivers in the field
+
  system administrator.  Many HYPERchannel TCP/IP drivers in the field
today are not "open" in that any network message delivered to that
+
  today are not "open" in that any network message delivered to that
host will be presumed to be an IP datagram regardless of the logical
+
  host will be presumed to be an IP datagram regardless of the logical
TO field; however any transmitting IP process should be capable of
+
  TO field; however any transmitting IP process should be capable of
generating the entire 16-bit TO field in order to generate a message
+
  generating the entire 16-bit TO field in order to generate a message
capable of reaching a destination IP process.
+
  capable of reaching a destination IP process.
  
The process of determining which HYPERchannel address will receive an
+
  The process of determining which HYPERchannel address will receive an
IP datagram based on its IP address is a major topic that is covered
+
  IP datagram based on its IP address is a major topic that is covered
in "Address Resolution".
+
  in "Address Resolution".
  
 
FROM ADDRESS
 
FROM ADDRESS
  
The FROM address is filled in with the address that the local driver
+
  The FROM address is filled in with the address that the local driver
expects to receive from the network, but no particular use is make of
+
  expects to receive from the network, but no particular use is make of
the FROM address.
+
  the FROM address.
  
 
MESSAGE TYPE
 
MESSAGE TYPE
  
Network Systems requests that a value of 5 (decimal) be placed in
+
  Network Systems requests that a value of 5 (decimal) be placed in
this byte to uniquely indicate that the network message is being used
+
  this byte to uniquely indicate that the network message is being used
to carry IP traffic.  No other well-behaved protocol using
+
  to carry IP traffic.  No other well-behaved protocol using
HYPERchannel should duplicate this value of 5.
+
  HYPERchannel should duplicate this value of 5.
  
  
Line 1,004: Line 1,058:
  
  
 +
Hardwick & Lekashman                                          [Page 19]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
Many current implementations of IP on HYPERchannel place a zero or
 
other values in this field simply because no value was reserved for
 
IP usage.  Transmitting versions of IP should always place a 5 in
 
this field; receiving IP's should presume a delivered message to be
 
an IP datagram until proven otherwise regardless of the contents of
 
the Message Type field.
 
  
Developers should note that it is often convenient to permit
+
  Many current implementations of IP on HYPERchannel place a zero or
reception of the value 0xFF00 in bytes 8 and 9 of the IP datagram.
+
  other values in this field simply because no value was reserved for
Transmitting a message with this value will cause it to be looped
+
  IP usage.  Transmitting versions of IP should always place a 5 in
back at the destination adapter and returned to the protocol server
+
  this field; receiving IP's should presume a delivered message to be
designate in the FROM address.  This permits the developer have host
+
  an IP datagram until proven otherwise regardless of the contents of
applications talk to others on the same host for purposes of network
+
  the Message Type field.
interface or other protocol debugging.
+
 
 +
  Developers should note that it is often convenient to permit
 +
  reception of the value 0xFF00 in bytes 8 and 9 of the IP datagram.
 +
  Transmitting a message with this value will cause it to be looped
 +
  back at the destination adapter and returned to the protocol server
 +
  designate in the FROM address.  This permits the developer have host
 +
  applications talk to others on the same host for purposes of network
 +
  interface or other protocol debugging.
 
IP HEADER OFFSET
 
IP HEADER OFFSET
  
Byte 9 contains the offset to the start of the IP header within the
+
  Byte 9 contains the offset to the start of the IP header within the
message proper, such that the Message Proper address plus the IP
+
  message proper, such that the Message Proper address plus the IP
header offset generates the address of the first byte of the IP
+
  header offset generates the address of the first byte of the IP
header (at least on byte addressable machines.)
+
  header (at least on byte addressable machines.)
  
This field is redundant with the offset field in byte 11, and is
+
  This field is redundant with the offset field in byte 11, and is
present for cosmetic compatibility with 32-bit implementations.  On
+
  present for cosmetic compatibility with 32-bit implementations.  On
reception, the value in byte 11 should take precedence.
+
  reception, the value in byte 11 should take precedence.
  
As part of the migration to larger HYPERchannel headers, this field
+
  As part of the migration to larger HYPERchannel headers, this field
will become significant with the 32-bit addressing format, as the
+
  will become significant with the 32-bit addressing format, as the
length of the header is no longer 10 bytes and byte 11 is used for
+
  length of the header is no longer 10 bytes and byte 11 is used for
other purposes.
+
  other purposes.
  
 
IP TYPE DESIGNATOR
 
IP TYPE DESIGNATOR
  
Early implementations of IP drivers on HYPERchannel wanted to leave
+
  Early implementations of IP drivers on HYPERchannel wanted to leave
bytes 8 and 9 alone for NSC use and place a "message type" field in
+
  bytes 8 and 9 alone for NSC use and place a "message type" field in
later in the message.  A value of 0x34 had been selected by earlier
+
  later in the message.  A value of 0x34 had been selected by earlier
developers for reasons that are now of only historical interest.
+
  developers for reasons that are now of only historical interest.
Once again, implementations should generate this value on
+
  Once again, implementations should generate this value on
transmission, but not check it on input, assuming that an IP datagram
+
  transmission, but not check it on input, assuming that an IP datagram
is present in the message.
+
  is present in the message.
  
 
IP HEADER OFFSET
 
IP HEADER OFFSET
  
This value is used by a number of commercial implementations of IP on
+
  This value is used by a number of commercial implementations of IP on
HYPERchannel to align the start of the IP header within the network
+
  HYPERchannel to align the start of the IP header within the network
message.  This offset is relative to byte 12 of the network message
+
  message.  This offset is relative to byte 12 of the network message
so that a value of zero indicates that the IP header begins in byte
+
  so that a value of zero indicates that the IP header begins in byte
12.  This value should be both correctly generated on transmission,
+
  12.  This value should be both correctly generated on transmission,
and always respected on input processing.
+
  and always respected on input processing.
  
  
  
 +
Hardwick & Lekashman                                          [Page 20]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
The maximum permissible offset in this field is 52 indicating that
+
 
the IP header begins at the start of the associated data block.
+
  The maximum permissible offset in this field is 52 indicating that
 +
  the IP header begins at the start of the associated data block.
  
 
IP DATAGRAM CONTENTS
 
IP DATAGRAM CONTENTS
  
Beginning at the offset designated in byte 11, the IP datagram is
+
  Beginning at the offset designated in byte 11, the IP datagram is
treated as a contiguous block of data that flows from byte 63 of the
+
  treated as a contiguous block of data that flows from byte 63 of the
message proper into the first byte of associated data, so that the
+
  message proper into the first byte of associated data, so that the
entire message plus data is treated as a single contiguous block.
+
  entire message plus data is treated as a single contiguous block.
  
If the IP header is small enough to fit within the entire network
+
  If the IP header is small enough to fit within the entire network
message, then only the message proper is transmitted.  The length of
+
  message, then only the message proper is transmitted.  The length of
the message proper sent should always be 64 bytes, even if the IP
+
  the message proper sent should always be 64 bytes, even if the IP
datagram and HYPERchannel header do not occupy all 64 bytes of the
+
  datagram and HYPERchannel header do not occupy all 64 bytes of the
message proper.
+
  message proper.
  
If the datagram flows over into the associated data, then both
+
  If the datagram flows over into the associated data, then both
message and data are sent.  Since a number of machines cannot send a
+
  message and data are sent.  Since a number of machines cannot send a
length of data to the HYPERchannel that is an exact number of bytes
+
  length of data to the HYPERchannel that is an exact number of bytes
(due to 16-64 bits on the channel bus,) the length of the associated
+
  (due to 16-64 bits on the channel bus,) the length of the associated
data received should not be used as a guide to the length of the IP
+
  data received should not be used as a guide to the length of the IP
datagram -- this should be extracted from the IP header.  A driver
+
  datagram -- this should be extracted from the IP header.  A driver
should verify, of course, that the associated data received is at
+
  should verify, of course, that the associated data received is at
least as long as is needed to hold the entire IP datagram.
+
  least as long as is needed to hold the entire IP datagram.
  
 
COMPATIBILITY WITH EXISTING IMPLEMENTATIONS
 
COMPATIBILITY WITH EXISTING IMPLEMENTATIONS
  
The basic format described here is clearly a compromise between
+
  The basic format described here is clearly a compromise between
several implementations of IP on HYPERchannel.  Not all existing
+
  several implementations of IP on HYPERchannel.  Not all existing
implementations are interoperable with the standard described above.
+
  implementations are interoperable with the standard described above.
Currently there are two known "families" of IP HYPERchannel drivers
+
  Currently there are two known "families" of IP HYPERchannel drivers
in existence:
+
  in existence:
  
 
THE "CRAY-NASA AMES" PROTOCOL
 
THE "CRAY-NASA AMES" PROTOCOL
  
This protocol is in the widest production use and has the largest
+
  This protocol is in the widest production use and has the largest
number of supported drivers in existence.  It is interoperable and
+
  number of supported drivers in existence.  It is interoperable and
identical with the standard described above with the sole exception
+
  identical with the standard described above with the sole exception
that bytes 8 and 9 are set to zero by these drivers.  As these bytes
+
  that bytes 8 and 9 are set to zero by these drivers.  As these bytes
are ignored by most implementations of this driver, they have been
+
  are ignored by most implementations of this driver, they have been
assigned values to formalize the use of the message type field and to
+
  assigned values to formalize the use of the message type field and to
make it consistent with the 32-bit protocol.
+
  make it consistent with the 32-bit protocol.
  
 
THE "TEKTRONIX-BERKELEY" PROTOCOL
 
THE "TEKTRONIX-BERKELEY" PROTOCOL
  
This protocol was historically the first IP on HYPERchannel
+
  This protocol was historically the first IP on HYPERchannel
implementation developed (at Tektronix) and subsequently made its way
+
  implementation developed (at Tektronix) and subsequently made its way
to Berkeley and BSD UNIX.  This protocol is not interoperable with
+
  to Berkeley and BSD UNIX.  This protocol is not interoperable with
 +
 
 +
 
  
 +
Hardwick & Lekashman                                          [Page 21]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 +
  the standard described above due to several distinct differences.
  
the standard described above due to several distinct differences.
+
  First, bytes 8 through 11 are always zero.  The IP header always
 +
  starts on byte 12.  Comments in some of these drivers designate byte
 +
  11 as an "IP header offset" field, but apparently this value is never
 +
  processed.
  
First, bytes 8 through 11 are always zero.  The IP header always
+
  The major difference (and the incompatibility) concerns the packaging
starts on byte 12Comments in some of these drivers designate byte
+
  of the IP datagram into the network messageDue to historical
11 as an "IP header offset" field, but apparently this value is never
+
  difficulties in the early 80's with the sending and receiving of very
processed.
+
  small blocks of associated data on VAXes, this protocol the takes a
 +
  curious approach to the placement of the IP header and the headers of
 +
  higher level protocols (such as TCP or UDP.)
  
The major difference (and the incompatibility) concerns the packaging
+
    o  If the entire length of the IP datagram is 54 bytes or less,
of the IP datagram into the network message.  Due to historical
+
        it is possible to fit the entire datagram and the HYPERchannel
difficulties in the early 80's with the sending and receiving of very
+
        header in the 64 byte message properIn this case, no
small blocks of associated data on VAXes, this protocol the takes a
+
        associated data is sent; only a message proper is used to carry
curious approach to the placement of the IP header and the headers of
+
        the data.  The length of the message proper transmitted is the
higher level protocols (such as TCP or UDP.)
+
        exact length needed to enclose the IP datagram; no padding bytes
 +
        are sent at the end of the message.
  
o  If the entire length of the IP datagram is 54 bytes or less,
+
    o  If the length of the IP header is greater than 54 bytes, then:
    it is possible to fit the entire datagram and the HYPERchannel
 
    header in the 64 byte message proper.  In this case, no
 
    associated data is sent; only a message proper is used to carry
 
    the data.  The length of the message proper transmitted is the
 
    exact length needed to enclose the IP datagram; no padding bytes
 
    are sent at the end of the message.
 
  
  o  If the length of the IP header is greater than 54 bytes, then:
+
        -  All higher level protocol information (TCP/UDP header and
 +
            their associated data fields) are placed in the associated
 +
            data block, with the TCP/UDP header beginning at the start
 +
            of the associated data block.
  
    All higher level protocol information (TCP/UDP header and
+
        On transmission, the length of the message proper
        their associated data fields) are placed in the associated
+
            transmitted is set to the length of the HYPERchannel header
        data block, with the TCP/UDP header beginning at the start
+
            plus the IP header -- it is not padded out to 64 bytes.
        of the associated data block.
+
            The length of the associated data sent should be sufficient
 +
            to accommodate the TCP/UDP header and its data fields.
  
    -  On transmission, the length of the message proper
 
        transmitted is set to the length of the HYPERchannel header
 
        plus the IP header --  it is not padded out to 64 bytes.
 
        The length of the associated data sent should be sufficient
 
        to accommodate the TCP/UDP header and its data fields.
 
  
  
Line 1,162: Line 1,226:
  
  
 +
Hardwick & Lekashman                                          [Page 22]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
WHICH PROTOCOL IS BEST?
 
WHICH PROTOCOL IS BEST?
  
In choosing which to follow, the "Cray-Ames" approach was taken for
+
  In choosing which to follow, the "Cray-Ames" approach was taken for
several reasons:
+
  several reasons:
  
1.  Cray Research has performed exemplary work in dealing with other
+
    1.  Cray Research has performed exemplary work in dealing with other
    vendors to provide IP on HYPERchannel from the Cray computers to
+
        vendors to provide IP on HYPERchannel from the Cray computers to
    other hosts.  As a result, there are 4 or 5 vendor supported
+
        other hosts.  As a result, there are 4 or 5 vendor supported
    implementations of IP on HYPERchannel that use this approach.
+
        implementations of IP on HYPERchannel that use this approach.
  
2.  The two part structure of the message proper has its uses when a
+
    2.  The two part structure of the message proper has its uses when a
    machine wishes to make protocol decisions before staging the
+
        machine wishes to make protocol decisions before staging the
    transfer of an immense block of associated data into memory.
+
        transfer of an immense block of associated data into memory.
    Many network coprocessors and intelligent I/O subsystems find it
+
        Many network coprocessors and intelligent I/O subsystems find it
    simpler to read in the entire network message before deciding
+
        simpler to read in the entire network message before deciding
    what to do with it.  Arbitrarily catenating the two components
+
        what to do with it.  Arbitrarily catenating the two components
    does this best and permits streaming of messages from future
+
        does this best and permits streaming of messages from future
    technology network adapters.
+
        technology network adapters.
  
3.  Some TCP users (mostly  secure  DoD  sites) intend to load up IP
+
    3.  Some TCP users (mostly  secure  DoD  sites) intend to load up IP
    datagrams with optional fields in the future.  The
+
        datagrams with optional fields in the future.  The
    Tektronix-Berkeley implementation has problems if the IP header
+
        Tektronix-Berkeley implementation has problems if the IP header
    length exceeds 54 bytes.
+
        length exceeds 54 bytes.
  
  
Line 1,216: Line 1,282:
  
  
 +
Hardwick & Lekashman                                          [Page 23]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
EXTENDED (32-BIT) MESSAGE ENCAPSULATION
 
EXTENDED (32-BIT) MESSAGE ENCAPSULATION
  
        Message Proper
+
          Message Proper
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  0  |      Trunks to Try          |1|      Message Flags      |
+
      0  |      Trunks to Try          |1|      Message Flags      |
      |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
+
        |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  2  |    Destination  Domain      |    Destination  Network    |
+
      2  |    Destination  Domain      |    Destination  Network    |
      |        Number              |          Number            |
+
        |        Number              |          Number            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  4  |O|    Physical addr of      |  Protocol server  |Dest Port|
+
      4  |O|    Physical addr of      |  Protocol server  |Dest Port|
      |N|  destination adapter      |  logical address  | number  |
+
        |N|  destination adapter      |  logical address  | number  |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  6  |O|    Physical addr of      |    Originating    | Src Port|
+
      6  |O|    Physical addr of      |    Originating    | Src Port|
      |N|    source  adapter        |  server address  |  number |
+
        |N|    source  adapter        |  server address  |  number |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  8  |    IP on HYPERchannel        |  Offset to start of IP    |
+
      8  |    IP on HYPERchannel        |  Offset to start of IP    |
      |    type code  0x06          |      datagram header        |
+
        |    type code  0x06          |      datagram header        |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  10 |    Source Domain Number      |  Source Network Number    |
+
      10 |    Source Domain Number      |  Source Network Number    |
      |                              |                            |
+
        |                              |                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  12 |          - reserved -        |        Age Count          |
+
      12 |          - reserved -        |        Age Count          |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  14 |      Next Header Offset      |      Header End Offset      |
+
      14 |      Next Header Offset      |      Header End Offset      |
      |                              |      (usually 16)          |
+
        |                              |      (usually 16)          |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  16 |        Padding to IP header start (usually 0 bytes)      |
+
      16 |        Padding to IP header start (usually 0 bytes)      |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  Off|    Entire IP datagram if datagram length <= (64-Offset)  |
+
      Off|    Entire IP datagram if datagram length <= (64-Offset)  |
      |                                                            |
+
        |                                                            |
      |        else first (64-Offset) bytes of IP datagram        |
+
        |        else first (64-Offset) bytes of IP datagram        |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  
        Associated Data
+
          Associated Data
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
      |                                                            |
+
        |                                                            |
      |                  Remainder of IP datagram                |
+
        |                  Remainder of IP datagram                |
      |                                                            |
+
        |                                                            |
      |            No associated data is present if IP            |
+
        |            No associated data is present if IP            |
      |            datagram fits in the Message Proper            |
+
        |            datagram fits in the Message Proper            |
      |                                                            |
+
        |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  
 
TRUNK MASK
 
TRUNK MASK
  
From the vantage of an IP driver, any trunk mask is valid so long as
+
  From the vantage of an IP driver, any trunk mask is valid so long as
  
  
  
 +
Hardwick & Lekashman                                          [Page 24]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
it results in successful delivery of the HYPERchannel network message
 
to its destination.  There is no reason to check this field for
 
validity on reception of the message.  Specification of the Trunk
 
Mask on output is a local affair that can be specified by the
 
transmitting driver's address resolution tables.
 
  
The use of 0xFF in this value is strongly encouraged for any message
+
  it results in successful delivery of the HYPERchannel network message
other than those using exotic trunk configurations on a single local
+
  to its destination.  There is no reason to check this field for
network.
+
  validity on reception of the message.  Specification of the Trunk
 +
  Mask on output is a local affair that can be specified by the
 +
  transmitting driver's address resolution tables.
 +
 
 +
  The use of 0xFF in this value is strongly encouraged for any message
 +
  other than those using exotic trunk configurations on a single local
 +
  network.
  
 
MESSAGE FLAGS
 
MESSAGE FLAGS
  
Several new bits have been defined here.
+
  Several new bits have been defined here.
 +
 
 +
  EXTENDED ADDRESSING.  This bit should be set ON whenever a 32-bit
 +
  address (Network and/or Domain numbers nonzero) is present in the
 +
  message.  It should always be OFF with the 16-bit message header.  If
 +
  this bit is improperly set, delivery of the message to the (apparent)
 +
  destination is unlikely.
  
EXTENDED ADDRESSINGThis bit should be set ON whenever a 32-bit
+
  END-TO-END CRCSome newer technology adapters are equipped to place
address (Network and/or Domain numbers nonzero) is present in the
+
  a 32-bit CRC of the associated data at the end of the associated data
messageIt should always be OFF with the 16-bit message header.  If
+
  block when this bit is onSimilarly equipped adapters will examine
this bit is improperly set, delivery of the message to the (apparent)
+
  the trailing 32-bits of associated data (when the bit is on) to
destination is unlikely.
+
  determine if the message contents have been corrupted at any stage of
 +
  the transmission.
  
END-TO-END CRC.  Some newer technology adapters are equipped to place
+
  Transmitting device drivers should include the ability to set this
a 32-bit CRC of the associated data at the end of the associated data
+
  bit on transmission as a configuration option similar to the specific
block when this bit is onSimilarly equipped adapters will examine
+
  HYPERchannel device interface usedThe bit should be generated to
the trailing 32-bits of associated data (when the bit is on) to
+
  be turned ON if the HYPERchannel IP driver is attached to an adapter
determine if the message contents have been corrupted at any stage of
+
  equipped to generated CRC information -- it should be left OFF in all
the transmission.
+
  other circumstances.
  
Transmitting device drivers should include the ability to set this
+
  If a message arrives at the host with the CRC bit still on, this
bit on transmission as a configuration option similar to the specific
+
  indicates that the CRC information was placed at the end of
HYPERchannel device interface usedThe bit should be generated to
+
  associated data by the transmitting adapter and not removed by the
be turned ON if the HYPERchannel IP driver is attached to an adapter
+
  receiving adapter; thus the associated data will be four bytes longer
equipped to generated CRC information -- it should be left OFF in all
+
  than otherwise expectedSince the IP datagram length is self
other circumstances.
+
  contained in the network message, this should not impact IP drivers.
  
If a message arrives at the host with the CRC bit still on, this
+
  It is possible for host computers to both generate and check this CRC
indicates that the CRC information was placed at the end of
+
  information to match the hardware assisted generation and checking
associated data by the transmitting adapter and not removed by the
+
  logic in newer network adaptersContact NSC if there are particular
receiving adapter; thus the associated data will be four bytes longer
+
  applications requiring exceptional data integrity that could benefit
than otherwise expectedSince the IP datagram length is self
+
  from host generation and checking.
contained in the network message, this should not impact IP drivers.
 
  
It is possible for host computers to both generate and check this CRC
 
information to match the hardware assisted generation and checking
 
logic in newer network adapters.  Contact NSC if there are particular
 
applications requiring exceptional data integrity that could benefit
 
from host generation and checking.
 
  
  
  
  
 +
Hardwick & Lekashman                                          [Page 25]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
FROM ADDRESS CORRECT.  This bit should be set by all transmitting IP
+
  FROM ADDRESS CORRECT.  This bit should be set by all transmitting IP
drivers who have endeavored to provide a completely correct FROM
+
  drivers who have endeavored to provide a completely correct FROM
address that properly reflects the adapter interface used.  No action
+
  address that properly reflects the adapter interface used.  No action
should be taken on this bit by the receiving IP driver at this time.
+
  should be taken on this bit by the receiving IP driver at this time.
Additional work needs to be done to determine the action an IP driver
+
  Additional work needs to be done to determine the action an IP driver
should take if it detects a real or imagined "security violation"
+
  should take if it detects a real or imagined "security violation"
should a message arrive with this bit absent.
+
  should a message arrive with this bit absent.
  
 
TO ADDRESS
 
TO ADDRESS
  
The TO address logically constitutes bytes 2-5 of the network
+
  The TO address logically constitutes bytes 2-5 of the network
message.
+
  message.
  
NETWORK AND DOMAIN NUMBERS.  The Network and Domain numbers should
+
  NETWORK AND DOMAIN NUMBERS.  The Network and Domain numbers should
both be nonzero when 32-bit addressing is used.  If the message is
+
  both be nonzero when 32-bit addressing is used.  If the message is
local in nature, then the local Network and Domain numbers should be
+
  local in nature, then the local Network and Domain numbers should be
placed in this field.
+
  placed in this field.
  
ADAPTER ADDRESS.  Contains the adapter address as in the basic
+
  ADAPTER ADDRESS.  Contains the adapter address as in the basic
message.  The high order bit of this eight bit field (the "outnet"
+
  message.  The high order bit of this eight bit field (the "outnet"
bit) should be set to zero if the destination network and domain are
+
  bit) should be set to zero if the destination network and domain are
the same as the transmitting host's.  The high order bit should be
+
  the same as the transmitting host's.  The high order bit should be
set to one if the destination host is not in the local network or
+
  set to one if the destination host is not in the local network or
domain.
+
  domain.
  
LOGICAL TO AND SUBADDRESS.  The logical TO field should contain the
+
  LOGICAL TO AND SUBADDRESS.  The logical TO field should contain the
protocol server address of the HYPERchannel IP driver for that host
+
  protocol server address of the HYPERchannel IP driver for that host
as determined by the host's system administrator.
+
  as determined by the host's system administrator.
  
 
FROM ADDRESS
 
FROM ADDRESS
  
The FROM address is filled in with the address that the local driver
+
  The FROM address is filled in with the address that the local driver
expects to receive from the network, but no particular use is made of
+
  expects to receive from the network, but no particular use is made of
the FROM address.
+
  the FROM address.
  
 
MESSAGE TYPE
 
MESSAGE TYPE
  
The value 6 must be placed in this byte to uniquely indicate that the
+
  The value 6 must be placed in this byte to uniquely indicate that the
network message is being used to carry IP traffic.  No other well-
+
  network message is being used to carry IP traffic.  No other well-
behaved protocol using HYPERchannel should duplicate this value of 6.
+
  behaved protocol using HYPERchannel should duplicate this value of 6.
 +
 
 +
  Note that all IP drivers should be prepared to send and receive the
 +
  basic format network messages using the 16-bit HYPERchannel
 +
  addresses.  The driver can distinguish an incoming network message by
 +
  the value of byte 8 -- 32-bit messages will always have a 6 in byte
 +
  8, while 16-bit messages should have a 5 here.  For interoperability
 +
  with older drivers, a value of 0 here should be treated as 16 address
 +
  bit messages.
  
Note that all IP drivers should be prepared to send and receive the
 
basic format network messages using the 16-bit HYPERchannel
 
addresses.  The driver can distinguish an incoming network message by
 
the value of byte 8 -- 32-bit messages will always have a 6 in byte
 
8, while 16-bit messages should have a 5 here.  For interoperability
 
with older drivers, a value of 0 here should be treated as 16 address
 
bit messages.
 
  
  
 +
Hardwick & Lekashman                                          [Page 26]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
IP HEADER OFFSET
 
IP HEADER OFFSET
  
Byte 9 contains the offset to the start of the IP header within the
+
  Byte 9 contains the offset to the start of the IP header within the
message proper, such that the Message Proper address plus the IP
+
  message proper, such that the Message Proper address plus the IP
header offset generates the address of the first byte of the IP
+
  header offset generates the address of the first byte of the IP
header (at least on byte addressable machines.)
+
  header (at least on byte addressable machines.)
  
Unlike the 16-bit header, receiving IP drivers should assume that
+
  Unlike the 16-bit header, receiving IP drivers should assume that
this field contains a correct offset to the IP header and examine the
+
  this field contains a correct offset to the IP header and examine the
information at that offset for conformance to an IP datagram header.
+
  information at that offset for conformance to an IP datagram header.
  
Valid offsets are in the range of 16 through 44 bytes, inclusive.
+
  Valid offsets are in the range of 16 through 44 bytes, inclusive.
The limitation of 44 bytes is imposed so that routing decisions on
+
  The limitation of 44 bytes is imposed so that routing decisions on
the vast majority of IP datagrams can be made by examining only the
+
  the vast majority of IP datagrams can be made by examining only the
message proper, as the basic IP datagram will fit into the message
+
  message proper, as the basic IP datagram will fit into the message
proper if it begins at an offset of 44.
+
  proper if it begins at an offset of 44.
  
 
IP DATAGRAM CONTENTS
 
IP DATAGRAM CONTENTS
  
The message and data are treated as logically contiguous entities
+
  The message and data are treated as logically contiguous entities
where the first byte of associated data immediately follows the 64th
+
  where the first byte of associated data immediately follows the 64th
byte of the message proper.
+
  byte of the message proper.
  
If the entire IP datagram is less than or equal to (64-offset) bytes
+
  If the entire IP datagram is less than or equal to (64-offset) bytes
in length it will fit into the Message Proper.  If so, only a message
+
  in length it will fit into the Message Proper.  If so, only a message
proper containing the HYPERchannel header and IP datagram is sent on
+
  proper containing the HYPERchannel header and IP datagram is sent on
the network.
+
  the network.
  
If the IP datagram is greater than this length, the IP datagram
+
  If the IP datagram is greater than this length, the IP datagram
spills over into the associated data.  On transmission, a 64 byte
+
  spills over into the associated data.  On transmission, a 64 byte
message proper is sent followed by as many bytes of associated data
+
  message proper is sent followed by as many bytes of associated data
as are needed to send the entire datagram.
+
  as are needed to send the entire datagram.
  
On reception, the message proper can be read into the start of an IP
+
  On reception, the message proper can be read into the start of an IP
input buffer and the associated data read into memory 64 bytes from
+
  input buffer and the associated data read into memory 64 bytes from
the start of the message.  If the received message is in fact a 32-
+
  the start of the message.  If the received message is in fact a 32-
bit address message, no "shuffling" of the message will be required
+
  bit address message, no "shuffling" of the message will be required
to build a contiguous IP datagram -- it's right there at buffer+16.
+
  to build a contiguous IP datagram -- it's right there at buffer+16.
  
 
ADDRESS RESOLUTION PROTOCOL
 
ADDRESS RESOLUTION PROTOCOL
  
Address Resolution Protocol has achieved a great deal of success on
+
  Address Resolution Protocol has achieved a great deal of success on
the Ethernet as it permits a local IP network to configure itself
+
  the Ethernet as it permits a local IP network to configure itself
simply by having each node know its own IP address.  Those unfamiliar
+
  simply by having each node know its own IP address.  Those unfamiliar
with the intent, protocol, and logic of the Address Resolution
+
  with the intent, protocol, and logic of the Address Resolution
Protocol should refer to RFC-826, "An Ethernet Address Resolution
+
  Protocol should refer to RFC-826, "An Ethernet Address Resolution
Protocol" [2].
+
  Protocol" [2].
 +
 
 +
 
  
  
 +
Hardwick & Lekashman                                          [Page 27]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 +
  A later section of this document describes four techniques where a
 +
  target HYPERchannel address is to obtained given the destination's IP
 +
  address.  The protocol is defined in this section for completeness.
  
A later section of this document describes four techniques where a
+
          Message Proper
target HYPERchannel address is to obtained given the destination's IP
+
        +------------------------------+-----------------------------+
address.  The protocol is defined in this section for completeness.
+
      0  |      Trunks to Try          |1|      Message Flags      |
 +
        |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
 +
        +------------------------------+-----------------------------+
 +
      2  |      Server Domain or        |      Server Network or      |
 +
        |          0xFF                |          0xFF              |
 +
        +------------------------------+-----------------------------+
 +
      4  |  Server Adapter Address or  | Server logical addr/port or |
 +
        |          0xFF              |            07              |
 +
        +------------------------------+-----------------------------+
 +
      6  |O|    Physical addr of       |    Originating    | Src Port|
 +
        |N|    source  adapter        |  server address   |  number |
 +
        +------------------------------+-----------------------------+
 +
      8  |                      NSC ARP type code                    |
 +
        |            07              |            00              |
 +
        +------------------------------+-----------------------------+
 +
      10 |        Source Domain        |      Source Network        |
 +
        +------------------------------+-----------------------------+
 +
      12 |          - reserved -        |        Age Count          |
 +
        +------------------------------+-----------------------------+
 +
      14 |      Next Header Offset      |      Header End Offset      |
 +
        |        (usually 16)          |      (usually 16)          |
 +
        +------------------------------+-----------------------------+
 +
      16 |        Padding to start of IP info (usually 0 bytes)      |
 +
        +------------------------------+-----------------------------+
  
        Message Proper
 
      +------------------------------+-----------------------------+
 
  0  |      Trunks to Try          |1|      Message Flags      |
 
      |  TO trunks  |  FROM trunks  |GNA|CRC|    |SRC|EXC|BST|A/D|
 
      +------------------------------+-----------------------------+
 
  2  |      Server Domain or        |      Server Network or      |
 
      |          0xFF                |          0xFF              |
 
      +------------------------------+-----------------------------+
 
  4  |  Server Adapter Address or  | Server logical addr/port or |
 
      |          0xFF              |            07              |
 
      +------------------------------+-----------------------------+
 
  6  |O|    Physical addr of      |    Originating    | Src Port|
 
      |N|    source  adapter        |  server address  |  number |
 
      +------------------------------+-----------------------------+
 
  8  |                      NSC ARP type code                    |
 
      |            07              |            00              |
 
      +------------------------------+-----------------------------+
 
  10 |        Source Domain        |      Source Network        |
 
      +------------------------------+-----------------------------+
 
  12 |          - reserved -        |        Age Count          |
 
      +------------------------------+-----------------------------+
 
  14 |      Next Header Offset      |      Header End Offset      |
 
      |        (usually 16)          |      (usually 16)          |
 
      +------------------------------+-----------------------------+
 
  16 |        Padding to start of IP info (usually 0 bytes)      |
 
      +------------------------------+-----------------------------+
 
  
  
Line 1,480: Line 1,562:
  
  
 +
Hardwick & Lekashman                                          [Page 28]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  Off |          ARP hardware address type for HYPERchannel        |
+
    Off |          ARP hardware address type for HYPERchannel        |
      |                              8                            |
+
        |                              8                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +2 |                HYPERchannel protocol type                |
+
      +2 |                HYPERchannel protocol type                |
      |            06                          00                |
+
        |            06                          00                |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +4 | HYPERchannel address length  |    IP address length      |
+
      +4 | HYPERchannel address length  |    IP address length      |
      |            6                |          4                |
+
        |            6                |          4                |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +6 |              ARP opcode (request or reply)                |
+
      +6 |              ARP opcode (request or reply)                |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +8 |          Domain              |          Network          |
+
      +8 |          Domain              |          Network          |
      +-          Sender's 32-bit HYPERchannel address          -+
+
        +-          Sender's 32-bit HYPERchannel address          -+
  +10 |      Adapter address        |    Logical addr/port      |
+
    +10 |      Adapter address        |    Logical addr/port      |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +12 |                      Source's MTU size                    |
+
    +12 |                      Source's MTU size                    |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +14 |                              |                            |
+
    +14 |                              |                            |
      +-                Sender's 32-bit IP address                -+
+
        +-                Sender's 32-bit IP address                -+
  +16 |                                                            |
+
    +16 |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +18 |          Domain              |          Network          |
+
    +18 |          Domain              |          Network          |
      +-        Destination's 32-bit HYPERchannel address        -+
+
        +-        Destination's 32-bit HYPERchannel address        -+
  +20 |                (to be determined on request)              |
+
    +20 |                (to be determined on request)              |
      |      Adapter address        |    Logical addr/port      |
+
        |      Adapter address        |    Logical addr/port      |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +22 |                  Destination's MTU size                    |
+
    +22 |                  Destination's MTU size                    |
      |              (to be determined on request)                |
+
        |              (to be determined on request)                |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  +24 |                              |                            |
+
    +24 |                              |                            |
      +-            Destination's 32-bit IP address              -+
+
        +-            Destination's 32-bit IP address              -+
  +26 |                                                            |
+
    +26 |                                                            |
      +------------------------------+-----------------------------+
+
        +------------------------------+-----------------------------+
  
Layout of the fields of this ARP message is a fairly straightforward
+
  Layout of the fields of this ARP message is a fairly straightforward
exercise given the standards of ARP and the 32-bit message header.  A
+
  exercise given the standards of ARP and the 32-bit message header.  A
few fields are worth remarking upon:
+
  few fields are worth remarking upon:
  
 
TO ADDRESS
 
TO ADDRESS
  
The TO address of an ARP message will be one of two classes of
+
  The TO address of an ARP message will be one of two classes of
address.  A "normal" address indicates that the message is an ARP
+
  address.  A "normal" address indicates that the message is an ARP
response, or that it is an ARP request directed at an ARP server at a
+
  response, or that it is an ARP request directed at an ARP server at a
well known address on the local network.  For those HYPERchannel
+
  well known address on the local network.  For those HYPERchannel
networks which are equipped to broadcast, a value of 0xFFFFFF07 in
+
  networks which are equipped to broadcast, a value of 0xFFFFFF07 in
the TO address will (by convention) be picked up only by those
+
  the TO address will (by convention) be picked up only by those
protocol servers prepared to interpret and respond to ARP messages.
+
  protocol servers prepared to interpret and respond to ARP messages.
 +
 
  
  
 +
Hardwick & Lekashman                                          [Page 29]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
The issue of which address to use in an ARP request is discussed in
+
  The issue of which address to use in an ARP request is discussed in
the Address Resolution section.
+
  the Address Resolution section.
  
 
FROM ADDRESS
 
FROM ADDRESS
  
Must be the correct FROM address of the user protocol server issuing
+
  Must be the correct FROM address of the user protocol server issuing
an ARP request.  The Source Correct bit in the Message Flags byte
+
  an ARP request.  The Source Correct bit in the Message Flags byte
should be set by this requesting server, as some ARP servers may
+
  should be set by this requesting server, as some ARP servers may
someday choose to issue ARP information on an "need to know" basis in
+
  someday choose to issue ARP information on an "need to know" basis in
secure environments.  With an ARP response, the FROM address will
+
  secure environments.  With an ARP response, the FROM address will
contain the "normal" HYPERchannel address of the protocol server
+
  contain the "normal" HYPERchannel address of the protocol server
responding to the ARP address, even if that server was reached via
+
  responding to the ARP address, even if that server was reached via
broadcast mechanisms.
+
  broadcast mechanisms.
  
ARP responses are returned to the party specified in the FROM address
+
  ARP responses are returned to the party specified in the FROM address
specified in the message header, rather than the address in the
+
  specified in the message header, rather than the address in the
"Source HYPERchannel Address" field within the body of the ARP
+
  "Source HYPERchannel Address" field within the body of the ARP
message.
+
  message.
  
 
MESSAGE TYPE
 
MESSAGE TYPE
  
The 16-bit value 0x0700 is reserved for the exclusive use of ARP.
+
  The 16-bit value 0x0700 is reserved for the exclusive use of ARP.
Unlike IP messages, no provision is made for the ARP message to begin
+
  Unlike IP messages, no provision is made for the ARP message to begin
at an arbitrary offset within the message proper, so the value in
+
  at an arbitrary offset within the message proper, so the value in
byte 9 is an extension of the message type.
+
  byte 9 is an extension of the message type.
  
 
HEADER END OFFSET
 
HEADER END OFFSET
  
ARP uses the 32-bit addressing convention that byte 15 contains the
+
  ARP uses the 32-bit addressing convention that byte 15 contains the
offset to the start of user protocol (and hence the end of user
+
  offset to the start of user protocol (and hence the end of user
protocol information).  Note that this is not a substitute for the IP
+
  protocol information).  Note that this is not a substitute for the IP
offset fields, as this field also serves as the end of HYPERchannel
+
  offset fields, as this field also serves as the end of HYPERchannel
header information -- future NSC message processing code may well
+
  header information -- future NSC message processing code may well
take exception to "garbage" between the actual header end and the
+
  take exception to "garbage" between the actual header end and the
start of user data.
+
  start of user data.
  
 
HYPERCHANNEL HARDWARE TYPE CODE
 
HYPERCHANNEL HARDWARE TYPE CODE
  
This 16-bit number is assigned a formal ARP hardware type of 8.
+
  This 16-bit number is assigned a formal ARP hardware type of 8.
  
 
HYPERCHANNEL PROTOCOL TYPE
 
HYPERCHANNEL PROTOCOL TYPE
  
On the Ethernet, this field is used to distinguish IP from all other
+
  On the Ethernet, this field is used to distinguish IP from all other
protocols that may require address resolution.  To be logically
+
  protocols that may require address resolution.  To be logically
consistent, this field is identical to bytes 8 and 9 0x0600 in a 32-
+
  consistent, this field is identical to bytes 8 and 9 0x0600 in a 32-
bit address HYPERchannel message carrying an IP datagram.
+
  bit address HYPERchannel message carrying an IP datagram.
 +
 
  
  
  
  
 +
Hardwick & Lekashman                                          [Page 30]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
HYPERCHANNEL ADDRESS LENGTH
 
HYPERCHANNEL ADDRESS LENGTH
  
This contains the value 6, a sufficient number of bytes to
+
  This contains the value 6, a sufficient number of bytes to
accommodate the four byte HYPERchannel address and 2 bytes to
+
  accommodate the four byte HYPERchannel address and 2 bytes to
indicate the largest IP datagram size that source and destination can
+
  indicate the largest IP datagram size that source and destination can
handle.
+
  handle.
  
 
SOURCE AND DESTINATION HYPERCHANNEL ADDRESS
 
SOURCE AND DESTINATION HYPERCHANNEL ADDRESS
  
This field contains the Domain, Network, and Adapter/port address of
+
  This field contains the Domain, Network, and Adapter/port address of
source and destination, respectively.  A value of 0000 in the Domain
+
  source and destination, respectively.  A value of 0000 in the Domain
and Network fields has special significance as this is interpreted as
+
  and Network fields has special significance as this is interpreted as
a request to send and receive 16-bit HYPERchannel headers rather than
+
  a request to send and receive 16-bit HYPERchannel headers rather than
32-bit headers.  If 32-bit headers are to be used within a single
+
  32-bit headers.  If 32-bit headers are to be used within a single
HYPERchannel network, then the local domain and network numbers may
+
  HYPERchannel network, then the local domain and network numbers may
be specified.
+
  be specified.
  
 
MAXIMUM TRANSMISSION UNIT
 
MAXIMUM TRANSMISSION UNIT
  
HYPERchannel LAN technology is such that messages of unlimited length
+
  HYPERchannel LAN technology is such that messages of unlimited length
may be sent between hosts.  Since host throughput on a network is
+
  may be sent between hosts.  Since host throughput on a network is
generally limited by the rate the network equipment can be
+
  generally limited by the rate the network equipment can be
functioned, larger transmission sizes result in higher bulk transfer
+
  functioned, larger transmission sizes result in higher bulk transfer
performance.  Since not every host will be able to handle the maximum
+
  performance.  Since not every host will be able to handle the maximum
size IP datagram, a more flexible means of MTU (maximum transmission
+
  size IP datagram, a more flexible means of MTU (maximum transmission
unit) size negotiation than simply wiring the same value into every
+
  unit) size negotiation than simply wiring the same value into every
network host is needed.  With this field, each host declares the
+
  network host is needed.  With this field, each host declares the
maximum IP datagram size (not the associated data block size) it is
+
  maximum IP datagram size (not the associated data block size) it is
prepared to receive.  Transmitting IP drivers should be prepared to
+
  prepared to receive.  Transmitting IP drivers should be prepared to
send the minimum of the source and destination IP sizes negotiated at
+
  send the minimum of the source and destination IP sizes negotiated at
ARP time.
+
  ARP time.
  
The MTU size sent refers to the maximum size of IP header + data.  It
+
  The MTU size sent refers to the maximum size of IP header + data.  It
does not include the length of the HYPERchannel Hardware header or
+
  does not include the length of the HYPERchannel Hardware header or
any offset between the header and the start of the IP datagram.
+
  any offset between the header and the start of the IP datagram.
Since it is the option of the transmitting hosts to use an offset of
+
  Since it is the option of the transmitting hosts to use an offset of
up to 44 bytes a receiving host must in any event be prepared to
+
  up to 44 bytes a receiving host must in any event be prepared to
receive a 64 byte Message Proper and an Associated Data block of
+
  receive a 64 byte Message Proper and an Associated Data block of
MTU-20 (that is 64 - 44, or the length of the basic IP header).
+
  MTU-20 (that is 64 - 44, or the length of the basic IP header).
  
    An example of a typical 16-bit packet is:
+
        An example of a typical 16-bit packet is:
  
        12 bytes hardware header.
+
            12 bytes hardware header.
        12 bytes offset.
+
            12 bytes offset.
        40 bytes IP/TCP header.
+
            40 bytes IP/TCP header.
      4096 bytes of data.
+
          4096 bytes of data.
    This gives an MTU of 4136.
+
      This gives an MTU of 4136.
  
  
  
  
 +
Hardwick & Lekashman                                          [Page 31]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
    An example of a typical 32-bit packet is:
 
  
        16 bytes hardware header.
+
       An example of a typical 32-bit packet is:
          8 bytes offset.
 
        40 bytes  IP/TCP header.
 
       4096 bytes of associated data,
 
    This also gives an MTU of 4136.
 
  
The offset values are chosen so that the typical packet causes user
+
            16 bytes hardware header.
data to be page aligned at the start of the associated data area.
+
            8 bytes offset.
This is an implementation decision, which can certainly be modified
+
            40 bytes  IP/TCP header.
as required.
+
          4096 bytes of associated data,
 +
      This also gives an MTU of 4136.
  
The maximum maximum transmission unit is 65536, the current largest
+
  The offset values are chosen so that the typical packet causes user
size IP datagram.  In order to allow this value to fit into a 16-bit
+
  data to be page aligned at the start of the associated data area.
field, the offset length is not included in the MTU. This MTU size
+
  This is an implementation decision, which can certainly be modified
is not a requirement that a local host be equipped to send or receive
+
  as required.
datagrams of that size; it simply indicates the maximum capacity of
 
the receiving host.
 
  
A note on trunk masks:
+
  The maximum maximum transmission unit is 65536, the current largest
 +
  size IP datagram.  In order to allow this value to fit into a 16-bit
 +
  field, the offset length is not included in the MTU.  This MTU size
 +
  is not a requirement that a local host be equipped to send or receive
 +
  datagrams of that size; it simply indicates the maximum capacity of
 +
  the receiving host.
  
There is no field for specifying trunk masks.  This is intentional,
+
  A note on trunk masks:
as new NSC hardware will contain trunk reachability information,
+
 
eliminating the need for the host to maintain hardware configuration
+
  There is no field for specifying trunk masks.  This is intentional,
layouts.  All HYPERchannel messages generated as a result of an ARP
+
  as new NSC hardware will contain trunk reachability information,
response should use 0xFF in the trunk mask.
+
  eliminating the need for the host to maintain hardware configuration
 +
  layouts.  All HYPERchannel messages generated as a result of an ARP
 +
  response should use 0xFF in the trunk mask.
  
 
ADDRESS RESOLUTION
 
ADDRESS RESOLUTION
  
This section describes techniques used by an IP driver to determine
+
  This section describes techniques used by an IP driver to determine
the HYPERchannel address and header that a message should contain
+
  the HYPERchannel address and header that a message should contain
given an IP datagram containing an IP address.  It describes
+
  given an IP datagram containing an IP address.  It describes
techniques that are local to specific hosts (and hence can be
+
  techniques that are local to specific hosts (and hence can be
modified without regard to the activities or techniques of other
+
  modified without regard to the activities or techniques of other
hosts) as well as techniques to use the Address Resolution Protocol
+
  hosts) as well as techniques to use the Address Resolution Protocol
on existing HYPERchannel equipment to better manage IP addresses.
+
  on existing HYPERchannel equipment to better manage IP addresses.
  
It also discusses the migration of name resolution on one of four
+
  It also discusses the migration of name resolution on one of four
steps.
+
  steps.
  
1.  Truncation of the IP address to form a HYPERchannel address.
+
    1.  Truncation of the IP address to form a HYPERchannel address.
  
2.  Local resolution of HYPERchannel addresses through configuration
+
    2.  Local resolution of HYPERchannel addresses through configuration
    files.
+
        files.
  
3.  Centralized resolution of HYPERchannel addresses through an "ARP
+
    3.  Centralized resolution of HYPERchannel addresses through an "ARP
    server" driven by a configuration file.
+
        server" driven by a configuration file.
  
  
  
 +
Hardwick & Lekashman                                          [Page 32]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
4.  Distributed resolution of HYPERchannel addresses using a "real"
+
 
    address Resolution Protocol on future HYPERchannel media
+
    4.  Distributed resolution of HYPERchannel addresses using a "real"
    supporting a broadcast mode.
+
        address Resolution Protocol on future HYPERchannel media
 +
        supporting a broadcast mode.
  
 
IP ADDRESS TRUNCATION
 
IP ADDRESS TRUNCATION
  
A number of IP on HYPERchannel implementations support modes where
+
  A number of IP on HYPERchannel implementations support modes where
the HYPERchannel address is generated by placing the low order 16-
+
  the HYPERchannel address is generated by placing the low order 16-
bits of the IP address in the TO address of the message proper.  This
+
  bits of the IP address in the TO address of the message proper.  This
more or less treats a set of HYPERchannel boxes addressable through
+
  more or less treats a set of HYPERchannel boxes addressable through
16-bit HYPERchannel addresses as a Class B IP network.
+
  16-bit HYPERchannel addresses as a Class B IP network.
  
This approach certainly offers simplicity:  IP addresses are simply
+
  This approach certainly offers simplicity:  IP addresses are simply
chosen to match HYPERchannel addresses and no IP address
+
  chosen to match HYPERchannel addresses and no IP address
"configuration files" need be kept.  Although this approach works in
+
  "configuration files" need be kept.  Although this approach works in
an environment where the HYPERchannel completely constitutes a Class
+
  an environment where the HYPERchannel completely constitutes a Class
B network, or where connection to a larger IP network is not a
+
  B network, or where connection to a larger IP network is not a
concern, its long term use is discouraged for several reasons:
+
  concern, its long term use is discouraged for several reasons:
  
o  It simply will not work with any Class C address (the physical
+
    o  It simply will not work with any Class C address (the physical
    TO address is not controllable) or a Class A address (where host
+
        TO address is not controllable) or a Class A address (where host
    addresses are generally carefully administered.)  In addition,
+
        addresses are generally carefully administered.)  In addition,
    it will not support subnetworks.  It is quite incompatible with
+
        it will not support subnetworks.  It is quite incompatible with
    32-bit HYPERchannel addresses.
+
        32-bit HYPERchannel addresses.
  
o  By decoupling the IP and HYPERchannel addresses through more
+
    o  By decoupling the IP and HYPERchannel addresses through more
    complex address resolution, the characters of the two addresses
+
        complex address resolution, the characters of the two addresses
    allow greater site flexibility:  the IP address becomes
+
        allow greater site flexibility:  the IP address becomes
    "logical" in character so that an address can move about a site
+
        "logical" in character so that an address can move about a site
    with the user or host; the HYPERchannel address maintains its
+
        with the user or host; the HYPERchannel address maintains its
    physical character so that a HYPERchannel address carefully
+
        physical character so that a HYPERchannel address carefully
    identifies the physical location of the source and destination
+
        identifies the physical location of the source and destination
    within the extended HYPERchannel network.
+
        within the extended HYPERchannel network.
  
 
LOCAL ADDRESS RESOLUTION
 
LOCAL ADDRESS RESOLUTION
  
The current state of address resolution art with IP on HYPERchannel
+
  The current state of address resolution art with IP on HYPERchannel
works as follows:  given an arbitrary IP address, the IP HYPERchannel
+
  works as follows:  given an arbitrary IP address, the IP HYPERchannel
driver looks up an entry with that address in a (generally hashed)
+
  driver looks up an entry with that address in a (generally hashed)
table.  If found, the table entry contains the first 6 bytes of the
+
  table.  If found, the table entry contains the first 6 bytes of the
HYPERchannel header that is used to send the IP datagram to the next
+
  HYPERchannel header that is used to send the IP datagram to the next
IP node on the internet.  Since implementations such as the 4.3BSD
+
  IP node on the internet.  Since implementations such as the 4.3BSD
UNIX IP are clever enough to provide its lower level drivers with the
+
  UNIX IP are clever enough to provide its lower level drivers with the
IP address of the next gateway as well as the destination address on
+
  IP address of the next gateway as well as the destination address on
the internet (assuming the message is not delivered locally on the
+
  the internet (assuming the message is not delivered locally on the
HYPERchannel,) the number of entries in this table is more or less
+
  HYPERchannel,) the number of entries in this table is more or less
manageable, as it must only contain the IP hosts and gateway
+
  manageable, as it must only contain the IP hosts and gateway
addresses that are directly accessible on the HYPERchannel.
+
  addresses that are directly accessible on the HYPERchannel.
  
  
  
 +
Hardwick & Lekashman                                          [Page 33]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
CONFIGURATION FILE FORMAT
 
CONFIGURATION FILE FORMAT
  
So long as this technique of address resolution is used, the
+
  So long as this technique of address resolution is used, the
techniques used are exclusively local to the host in the sense that
+
  techniques used are exclusively local to the host in the sense that
the techniques used to generate and store the information in the
+
  the techniques used to generate and store the information in the
table are irrelevant to other hosts.
+
  table are irrelevant to other hosts.
  
Shown here is a typical file format.  This file should probably be
+
  Shown here is a typical file format.  This file should probably be
program generated from a database, as asymmetric trunk configurations
+
  program generated from a database, as asymmetric trunk configurations
and multiply homed hosts can cause differences in physical routing
+
  and multiply homed hosts can cause differences in physical routing
and trunk usage.  This format is documented here to illustrate what
+
  and trunk usage.  This format is documented here to illustrate what
sort of information must be kept at the link layer.
+
  sort of information must be kept at the link layer.
  
The file consists of source lines each with the form:
+
  The file consists of source lines each with the form:
  
  <type> <hostname> <trunks/flags> <domain/net> <addr> <MTU>
+
      <type> <hostname> <trunks/flags> <domain/net> <addr> <MTU>
  
  an example:
+
      an example:
  
        <type>  <hostname>            <t/f> <dom/net> <addr>  <MTU>
+
          <type>  <hostname>            <t/f> <dom/net> <addr>  <MTU>
        # Random front end
+
          # Random front end
        host    hyper.nsco.com          FF88    0103    3702    4148
+
          host    hyper.nsco.com          FF88    0103    3702    4148
        # because we want to show the 4 byte format
+
          # because we want to show the 4 byte format
        host    192.12.102.1            FF00    0000    2203    1024
+
          host    192.12.102.1            FF00    0000    2203    1024
        # Small packets, interactive traffic.
+
          # Small packets, interactive traffic.
        host    cray-b.nas.nasa.gov    FF88    0103    4401    4148
+
          host    cray-b.nas.nasa.gov    FF88    0103    4401    4148
        # The other interface, for big packets.
+
          # The other interface, for big packets.
        ahost  cray-b.nas.nasa.gov    FF88    0103    4501    32768
+
          ahost  cray-b.nas.nasa.gov    FF88    0103    4501    32768
        # A loopback interface, (What else)
+
          # A loopback interface, (What else)
        loop    loop37.nsco.com        FF00    0000    3700    4148
+
          loop    loop37.nsco.com        FF00    0000    3700    4148
        # And of course an example of arp service.
+
          # And of course an example of arp service.
        arpserver hcgate.nsco.com      FF88    0103    7F07
+
          arpserver hcgate.nsco.com      FF88    0103    7F07
  
Comments may begin with  either # or ;.
+
    Comments may begin with  either # or ;.
Case is not significant in any field.
+
    Case is not significant in any field.
  
<type> indicates the type of entity to be defined.
+
    <type> indicates the type of entity to be defined.
  Currently defined types are "host," "ahost", "loop," "address,"
+
      Currently defined types are "host," "ahost", "loop," "address,"
  and "arpserver".
+
      and "arpserver".
  
  host    This token indicates an IP  host.  The following field  is
+
      host    This token indicates an IP  host.  The following field  is
          expected to be a name that can be resolved to an IP
+
              expected to be a name that can be resolved to an IP
          address.
+
              address.
  
  ahost  This field indicates an additional network interface to
+
      ahost  This field indicates an additional network interface to
          the same host.  This may be used for performance
+
              the same host.  This may be used for performance
          enhancements.
+
              enhancements.
  
  
  
  
 +
Hardwick & Lekashman                                          [Page 34]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  loop    Sets a flag in the entry for that host so that  0xFF00 is
 
          placed in bytes 8 and 9 of the message.  This will cause
 
          the IP datagram  to be directed towards the specified host
 
          (which must still be a valid host name) and looped back
 
          within the remote adapter.  This facility serves both as a
 
          debugging aid and as a crude probe of the availability of
 
          the remote network adapter.
 
  
   arpserver This indicates an address to use for directing ARP
+
      loop   Sets a flag in the entry for that host so that  0xFF00 is
          requests to the networkIf several arpserver addresses
+
              placed in bytes 8 and 9 of the messageThis will cause
          are specified, they will be tried in turn until a response
+
              the IP datagram  to be directed towards the specified host
          is received (or we run out of servers.) An arpserver with
+
              (which must still be a valid host name) and looped back
          the appropriate  broadcast address of FFFF FF07 would
+
              within the remote adapterThis facility serves both as a
          cause an ARP broadcast to take place when broadcasting
+
              debugging aid and as a crude probe of the availability of
          becomes available.  Broadcast and specific addresses may
+
              the remote network adapter.
          be used in combination.
 
  
<hostname> This field is the logical name of the destinationFor a
+
      arpserver This indicates an address to use for directing ARP
host it is the logical name to be given to the local naming service
+
              requests to the networkIf several arpserver addresses
to determine the associated IP addressThis field may contain four
+
              are specified, they will be tried in turn until a response
decimal numbers separated by dots, in which case it is assumed to be
+
              is received (or we run out of servers.)  An arpserver with
the explicit IP address.
+
              the appropriate  broadcast address of FFFF FF07 would
 +
              cause an ARP broadcast to take place when broadcasting
 +
              becomes availableBroadcast and specific addresses may
 +
              be used in combination.
  
<trunks/flags> This field is the value to be placed in bytes 0 and 1
+
  <hostname> This field is the logical name of the destinationFor a
of the message header when sending to this hostThe associated data
+
  host it is the logical name to be given to the local naming service
bit need not be supplied as the driver must control it.  All other
+
  to determine the associated IP address.  This field may contain four
bits are sent as provided.  This field is a hexidecimal number.
+
  decimal numbers separated by dots, in which case it is assumed to be
 +
  the explicit IP address.
  
<domain/net> This field is the value to be placed in the Domain and
+
  <trunks/flags> This field is the value to be placed in bytes 0 and 1
Network number field of the message.  A value of 0000 in this field
+
  of the message header when sending to this hostThe associated data
indicates that the destination should be reached by constructing a
+
  bit need not be supplied as the driver must control it.  All other
16-bit HYPERchannel header, rather than a 32-bit header.
+
  bits are sent as provided.  This field is a hexidecimal number.
  
<address> This field is the value to be placed in the 16-bit TO field
+
  <domain/net> This field is the value to be placed in the Domain and
to reach <hostname>This field is a hexidecimal number.
+
  Network number field of the messageA value of 0000 in this field
 +
  indicates that the destination should be reached by constructing a
 +
  16-bit HYPERchannel header, rather than a 32-bit header.
  
<MTU> This field contains the largest size IP datagram that the
+
  <address> This field is the value to be placed in the 16-bit TO field
destination host is prepared to receive.  This field is a decimal
+
  to reach <hostname>.  This field is a hexidecimal number.
number.  This field is optional.  If not present, a value of 4148 is
+
 
assumed.  See the earlier discussion on Maximum Transmission Unit for
+
  <MTU> This field contains the largest size IP datagram that the
more detail.
+
  destination host is prepared to receive.  This field is a decimal
 +
  number.  This field is optional.  If not present, a value of 4148 is
 +
  assumed.  See the earlier discussion on Maximum Transmission Unit for
 +
  more detail.
  
 
ARP SERVERS
 
ARP SERVERS
  
The primary problem with local host address resolution is that
+
  The primary problem with local host address resolution is that
changes or additions to hosts on the local net must be replicated to
+
  changes or additions to hosts on the local net must be replicated to
every HYPERchannel host in that network.  While this is manageable
+
  every HYPERchannel host in that network.  While this is manageable
for up to half a dozen hosts, it becomes quite unmanageable for
+
  for up to half a dozen hosts, it becomes quite unmanageable for
  
  
  
 +
Hardwick & Lekashman                                          [Page 35]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
larger networks.  An approach that can be implemented using existing
 
HYPERchannel technology is to have a server on the HYPERchannel
 
network provide the HYPERchannel destination address that is
 
associated with an IP address.
 
  
Although this is strictly a point-to-point request/response dialogue
+
  larger networks.  An approach that can be implemented using existing
between two network nodes, the Address Resolution Protocol which was
+
  HYPERchannel technology is to have a server on the HYPERchannel
originally designed for Ethernet (but thoughtfully constructed to
+
  network provide the HYPERchannel destination address that is
work with any pair of link and network addresses) performs an
+
  associated with an IP address.
excellent job.
 
  
ARP servers can be reached simply by placing the address of the
+
  Although this is strictly a point-to-point request/response dialogue
server in the 32-bit TO address of the network message.  ARP servers
+
  between two network nodes, the Address Resolution Protocol which was
only "listen" to messages that arrive on their well known normal
+
  originally designed for Ethernet (but thoughtfully constructed to
address; they do not respond to ARP broadcast messages.  Properly
+
  work with any pair of link and network addresses) performs an
equipped IP drivers should respond to the broadcast messages when
+
  excellent job.
they appear.
 
  
If an ARP server receives a message containing an IP address it does
+
  ARP servers can be reached simply by placing the address of the
not know how to resolve, it ignores the message so that another ARP
+
  server in the 32-bit TO address of the network message.  ARP servers
server might be addressed at the source's next attempt.
+
  only "listen" to messages that arrive on their well known normal
 +
  address; they do not respond to ARP broadcast messages.  Properly
 +
  equipped IP drivers should respond to the broadcast messages when
 +
  they appear.
  
If the address is resolvable, it places the known HYPERchannel
+
  If an ARP server receives a message containing an IP address it does
address and MTU size in the response and returns it to the location
+
  not know how to resolve, it ignores the message so that another ARP
in the HYPERchannel header FROM address.
+
  server might be addressed at the source's next attempt.
  
Unlike a broadcast ARP, the ARP server will be required to service
+
  If the address is resolvable, it places the known HYPERchannel
two requests when two hosts that are initially unknown to one another
+
  address and MTU size in the response and returns it to the location
attempt to get in touch.  Since the destination did not receive the
+
  in the HYPERchannel header FROM address.
ARP request, it must contact the ARP server when its higher level
 
protocols first generate a datagram to respond to the the source's
 
first IP datagram to go through to the destination.
 
  
The source configuration file described in the previous section was
+
  Unlike a broadcast ARP, the ARP server will be required to service
explicitly designed so that it could be sufficient as a data base for
+
  two requests when two hosts that are initially unknown to one another
an ARP server as well as an individual host.
+
  attempt to get in touch.  Since the destination did not receive the
 +
  ARP request, it must contact the ARP server when its higher level
 +
  protocols first generate a datagram to respond to the the source's
 +
  first IP datagram to go through to the destination.
 +
 
 +
  The source configuration file described in the previous section was
 +
  explicitly designed so that it could be sufficient as a data base for
 +
  an ARP server as well as an individual host.
  
 
BROADCAST ARP
 
BROADCAST ARP
  
When a local HYPERchannel network contains a broadcast capability,
+
  When a local HYPERchannel network contains a broadcast capability,
any IP driver wishing to perform HYPERchannel address resolution may
+
  any IP driver wishing to perform HYPERchannel address resolution may
be configured to emit the ARP message on a broadcast instead of a
+
  be configured to emit the ARP message on a broadcast instead of a
well known address.  IP drivers on other hosts are presumed to know
+
  well known address.  IP drivers on other hosts are presumed to know
if their local HYPERchannel interface can send broadcast messages; if
+
  if their local HYPERchannel interface can send broadcast messages; if
so, they arrange to "listen" on the FF07 broadcast TO address for
+
  so, they arrange to "listen" on the FF07 broadcast TO address for
ARP.
+
  ARP.
  
Processing of a received ARP broadcast message is otherwise identical
+
  Processing of a received ARP broadcast message is otherwise identical
  
  
  
 +
Hardwick & Lekashman                                          [Page 36]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
to RFC-826:
 
  
o  Messages are responded to if and only if the destination IP
+
  to RFC-826:
    driver is authoritative for the designated IP address.
 
  
Whenever an ARP message is processed, the IP driver takes the
+
    Messages are responded to if and only if the destination IP
    source HYPERchannel address and MTU size and adds it to its
+
        driver is authoritative for the designated IP address.
    address resolution tables.  Thus the driver is equipped to
 
    turn around the IP datagram that arrives from the destination
 
    host when contact is made.
 
  
Each IP driver may have address resolutions that are set through a
+
    o  Whenever an ARP message is processed, the IP driver takes the
static routing table (the configuration file specified above).  If
+
        source HYPERchannel address and MTU size and adds it to its
ARP information arrives that contradicts a static entry (as opposed
+
        address resolution tablesThus the driver is equipped to
to previously set dynamic ARP information) then the ARP information
+
        turn around the IP datagram that arrives from the destination
should be ignoredThis decision is made on the premise that the
+
        host when contact is made.
only useful purpose of static routing in a broadcast ARP environment
 
is to add authentication, as it's easy to lie with ARP.
 
  
 +
  Each IP driver may have address resolutions that are set through a
 +
  static routing table (the configuration file specified above).  If
 +
  ARP information arrives that contradicts a static entry (as opposed
 +
  to previously set dynamic ARP information) then the ARP information
 +
  should be ignored.  This decision is made on the premise that the
 +
  only useful purpose of static routing in a broadcast ARP environment
 +
  is to add authentication, as it's easy to lie with ARP.
  
  
Line 1,958: Line 2,065:
  
  
 +
 +
Hardwick & Lekashman                                          [Page 37]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
APPENDIX A.  NSC PRODUCT ARCHITECTURE AND ADDRESSING
 
APPENDIX A.  NSC PRODUCT ARCHITECTURE AND ADDRESSING
  
This section is intended to be a concise review of the state of the
+
  This section is intended to be a concise review of the state of the
art in NSC networks and the techniques they provide for the delivery
+
  art in NSC networks and the techniques they provide for the delivery
of messages.  Those who are thoroughly familiar with HYPERchannel may
+
  of messages.  Those who are thoroughly familiar with HYPERchannel may
wish to only skim this section; however, there is material on new
+
  wish to only skim this section; however, there is material on new
technologies and addressing formats that are not yet generally known
+
  technologies and addressing formats that are not yet generally known
to most of NSC's customers.
+
  to most of NSC's customers.
  
 
NETWORK SYSTEMS HYPERCHANNEL TECHNOLOGIES
 
NETWORK SYSTEMS HYPERCHANNEL TECHNOLOGIES
  
Network Systems manufactures several different network technologies
+
  Network Systems manufactures several different network technologies
that use very different media and link controls, but still provide a
+
  that use very different media and link controls, but still provide a
common host interface in both the protocol and hardware sense of the
+
  common host interface in both the protocol and hardware sense of the
term.  These four technologies are:
+
  term.  These four technologies are:
 +
 
 +
    o  HYPERchannel A -- A 50-megabit, baseband, CSMA with collision
 +
        avoidance  network using a coaxial cable bus.  Individual
 +
        HYPERchannel "network adapters" can control up to 4 of these
 +
        coaxial cable "trunks,"  providing up to 200 megabits of
 +
        capacity on a fully interconnected network.  HYPERchannel A
 +
        is NSC's earliest product and has been in production since
 +
        1977.  It is principally used to interconnect larger
 +
        mainframe computers and high speed mainframe peripherals such
 +
        as tape drives and laser printers.
  
o  HYPERchannel A -- A 50-megabit, baseband, CSMA with collision
+
    o  HYPERchannel B -- a 10-megabit, baseband, CSMA with collision
    avoidance network using a coaxial cable bus.  Individual
+
        avoidance network using a single coaxial cable bus.  This
    HYPERchannel "network adapters" can control up to 4 of these
+
        technology is used for direct host to host communications under
    coaxial cable "trunks,"  providing up to 200 megabits of
+
        the name HYPERchannel B, and for terminal connections under the
    capacity on a fully interconnected network.  HYPERchannel A
+
        name HYPERbus.  It is currently used for three major
    is NSC's earliest product and has been in production since
+
        applications -- local networks of ASCII terminals, networks
    1977.  It is principally used to interconnect larger
+
        of IBM 3270 terminals, and host to host communications of
    mainframe computers and high speed mainframe peripherals such
+
        smaller computers.
    as tape drives and laser printers.
 
  
HYPERchannel B -- a 10-megabit, baseband, CSMA with collision
+
    DATAPIPE[3] -- a 275-megabit fiber optic "backbone" network
    avoidance network using a single coaxial cable bus.  This
+
        that interconnects lower speed local area networks within a 20
    technology is used for direct host to host communications under
+
        mile range, and to provide an ultra-high-performance network for
    the name HYPERchannel B, and for terminal connections under the
+
        the next generation of supercomputers and optical storage
    name HYPERbusIt is currently used for three major
+
        systemsA prototype version of DATApipe is currently under
    applications -- local networks of ASCII terminals, networks
+
        development at a customer site.
    of IBM 3270 terminals, and host to host communications of
 
    smaller computers.
 
  
DATAPIPE[3]  -- a 275-megabit fiber optic "backbone" network
+
    Bridges and Network Distance Extensions -- NSC quickly
    that interconnects lower speed local area networks within a 20
+
        discovered that its customers wanted very high speeds over
    mile range, and to provide an ultra-high-performance network for
+
        geographic areas, not just within the range of several miles
    the next generation of supercomputers and optical storage
+
        that is conceivable with a coaxial cable networkStarting
    systemsA prototype version of DATApipe is currently under
+
        in 1978, NSC began to build a series of "link adapters" that
    development at a customer site.
+
        are integral bridges between local area networks. These link
  
o  Bridges and Network Distance Extensions -- NSC quickly
 
    discovered that its customers wanted very high speeds over
 
    geographic areas, not just within the range of several miles
 
    that is conceivable with a coaxial cable network.  Starting
 
    in 1978, NSC began to build a series of "link adapters" that
 
    are integral bridges between local area networks.  These link
 
  
  
 +
Hardwick & Lekashman                                          [Page 38]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
    adapters support common high speed communications media such
+
        adapters support common high speed communications media such
    as Telco T1 circuits, private microwave, high speed
+
        as Telco T1 circuits, private microwave, high speed
    satellite links, and fiber optic point to point connections.
+
        satellite links, and fiber optic point to point connections.
  
 
ATTACHMENT TO HOST COMPUTERS
 
ATTACHMENT TO HOST COMPUTERS
  
Network Systems' high speed interfaces use the attachment techniques
+
  Network Systems' high speed interfaces use the attachment techniques
of the manufacturer's highest speed peripheral controllers in order
+
  of the manufacturer's highest speed peripheral controllers in order
to achieve burst transfer rates of tens of megabits per second.
+
  to achieve burst transfer rates of tens of megabits per second.
These attachment techniques fall into three categories:
+
  These attachment techniques fall into three categories:
  
 
"MAINFRAME" DATA CHANNEL ATTACHMENT
 
"MAINFRAME" DATA CHANNEL ATTACHMENT
  +-----------+-------+                  +------------+  | | | |
+
      +-----------+-------+                  +------------+  | | | |
  |          |      |                  |HYPERchannel+--+ | | |
+
      |          |      |                  |HYPERchannel+--+ | | |
  |          |      +-------------------+  Network  +--|-+ | |
+
      |          |      +-------------------+  Network  +--|-+ | |
  | Host      |  I/O  +-------------------+  Adapter  +--|-|-+ |
+
      | Host      |  I/O  +-------------------+  Adapter  +--|-|-+ |
  |          |      |  Standard host  |            +--|-|-|-+
+
      |          |      |  Standard host  |            +--|-|-|-+
  | Computer  |Control|    data channel  +------------+  | | | |
+
      | Computer  |Control|    data channel  +------------+  | | | |
  |          |      |
+
      |          |      |
  |          |      |
+
      |          |      |
  |          |      |
+
      |          |      |
  |          |      |
+
      |          |      |
  +-----------+-------+
+
      +-----------+-------+
 +
 
 +
  The network adapter contains interface boards and firmware to be
 +
  cabled to the manufacturer's data channel, such as would be done with
 +
  a disk or tape controller.  Mainframe network adapters do not emulate
 +
  an existing manufacturer's device (such as a tape drive) but are
 +
  supported by software which functions the channel and adapter to send
 +
  and receive network messages.
  
The network adapter contains interface boards and firmware to be
+
  Models of HYPERchannel adapters are available for essentially all
cabled to the manufacturer's data channel, such as would be done with
+
  large scale computers worldwide.
a disk or tape controller.  Mainframe network adapters do not emulate
 
an existing manufacturer's device (such as a tape drive) but are
 
supported by software which functions the channel and adapter to send
 
and receive network messages.
 
  
Models of HYPERchannel adapters are available for essentially all
 
large scale computers worldwide.
 
  
  
Line 2,063: Line 2,178:
  
  
 +
Hardwick & Lekashman                                          [Page 39]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
MINICOMPUTER AND WORKSTATION ATTACHMENT
 
MINICOMPUTER AND WORKSTATION ATTACHMENT
  
Since the network adapter contains lots of expensive, high speed
+
  Since the network adapter contains lots of expensive, high speed
logic, a different technique is used to provide attachment to
+
  logic, a different technique is used to provide attachment to
minicomputers and workstations.
+
  minicomputers and workstations.
  
  +-------------+        +---------------+      +--------------+
+
      +-------------+        +---------------+      +--------------+
  |            |        |              |      |              |
+
      |            |        |              |      |              |
  | Minicomputer|        |  Supermini    |      | Workstation  |
+
      | Minicomputer|        |  Supermini    |      | Workstation  |
  |            |        |              |      |              |
+
      |            |        |              |      |              |
  +-----+-------+        +-------+-------+      +-------+------+
+
      +-----+-------+        +-------+-------+      +-------+------+
  |    |  DMA  |        |      |  DMA  |      |  DMA  |      |
+
      |    |  DMA  |        |      |  DMA  |      |  DMA  |      |
  |    |control|        |      |control|      |control|      |
+
      |    |control|        |      |control|      |control|      |
  +-----+---++--+        +-------+--++---+      +--++---+------+
+
      +-----+---++--+        +-------+--++---+      +--++---+------+
            ||                      ||              ||
+
                ||                      ||              ||
            ||                      ||              ||
+
                ||                      ||              ||
            |+----------+          ||    +---------+|
+
                |+----------+          ||    +---------+|
            +----------+|          ||    |+---------+
+
                +----------+|          ||    |+---------+
                        ||          ||    ||
+
                          ||          ||    ||
                      +-++--+-----+--++-+--++-+
+
                        +-++--+-----+--++-+--++-+
                      |    |    |    |    |
+
                        |    |    |    |    |
                      +-----+-----+-----+-----+
+
                        +-----+-----+-----+-----+
                      |        x400          |
+
                        |        x400          |
                      |    Network Adapter    |
+
                        |    Network Adapter    |
                      |                      |
+
                        |                      |
                      +-------+-+-+-+---------+
+
                        +-------+-+-+-+---------+
                              | | | |
+
                                | | | |
            ------------------|-|-|-+----------------
+
              ------------------|-|-|-+----------------
            ------------------|-|-+------------------
+
              ------------------|-|-+------------------
            ------------------|-+--------------------
+
              ------------------|-+--------------------
            ------------------+----------------------
+
              ------------------+----------------------
  
In this case, NSC provides a DMA controller designed for direct
+
  In this case, NSC provides a DMA controller designed for direct
connection to that minicomputer's backplane bus.  These DMA
+
  connection to that minicomputer's backplane bus.  These DMA
controllers accept functions and burst blocks of data from host
+
  controllers accept functions and burst blocks of data from host
memory to a channel cable that is connected to one of four ports on a
+
  memory to a channel cable that is connected to one of four ports on a
"general purpose computer adapter."  This adapter multiplexes
+
  "general purpose computer adapter."  This adapter multiplexes
transmissions to and from the HYPERchannel trunks from up to four
+
  transmissions to and from the HYPERchannel trunks from up to four
attached processors.
+
  attached processors.
  
  
Line 2,117: Line 2,234:
  
  
 +
Hardwick & Lekashman                                          [Page 40]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
NETWORK COPROCESSORS
 
NETWORK COPROCESSORS
  
For about 10 different bus systems, Network systems provides a
+
  For about 10 different bus systems, Network systems provides a
"smart" DMA controller containing onboard memory and a Motorola 68010
+
  "smart" DMA controller containing onboard memory and a Motorola 68010
protocol processor.
+
  protocol processor.
  
    +------------+-----+---------------+-------+
+
      +------------+-----+---------------+-------+
    |            |    |  Coprocessor |      |        +--------+
+
      |            |    |  Coprocessor |      |        +--------+
    |            |Host |    MC 68010  |Adapter+--------+  x400  |
+
      |            |Host |    MC 68010  |Adapter+--------+  x400  |
    |    HOST    |DMA  |  256K memory |  DMA  +--------+ Adapter|
+
      |    HOST    |DMA  |  256K memory |  DMA  +--------+ Adapter|
    |            |    |              |      |        +--------+
+
      |            |    |              |      |        +--------+
    |    Memory  +-----+---------------+-------+
+
      |    Memory  +-----+---------------+-------+
    |            |
+
      |            |
    +------------+
+
      +------------+
  
This class of interface works through the network coprocessor's
+
  This class of interface works through the network coprocessor's
direct access to host memory.  Network transmit and receive request
+
  direct access to host memory.  Network transmit and receive request
packets are placed in a common "mailbox" area and extracted by the
+
  packets are placed in a common "mailbox" area and extracted by the
coprocessor.  The coprocessor reads and writes system memory as
+
  coprocessor.  The coprocessor reads and writes system memory as
required to service network requests in the proper order.  The
+
  required to service network requests in the proper order.  The
coprocessors currently provide a service to read or write network
+
  coprocessors currently provide a service to read or write network
messages (called Driver service as it is more or less identical to
+
  messages (called Driver service as it is more or less identical to
HYPERchannel dumb DMA drivers) and a service for NETEX, which is
+
  HYPERchannel dumb DMA drivers) and a service for NETEX, which is
NSC's OSI-like communications protocol.
+
  NSC's OSI-like communications protocol.
  
  
Line 2,170: Line 2,290:
  
  
 +
Hardwick & Lekashman                                          [Page 41]
 +
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
 
APPENDIX B. NETWORK SYSTEMS HYPERCHANNEL PROTOCOLS
 
APPENDIX B. NETWORK SYSTEMS HYPERCHANNEL PROTOCOLS
  
The protocols implemented by NSC within its own boxes are designed
+
  The protocols implemented by NSC within its own boxes are designed
for the needs of the different technologies.  A compact summation of
+
  for the needs of the different technologies.  A compact summation of
these protocols is:
+
  these protocols is:
  
  HYPERchannel B        HYPERchannel A            DATApipe
+
      HYPERchannel B        HYPERchannel A            DATApipe
  10 Mbits/second      50-200 Mbits/second    275 Mbits/second
+
    10 Mbits/second      50-200 Mbits/second    275 Mbits/second
 
  +----------------------+----------------------+---------------------+
 
  +----------------------+----------------------+---------------------+
 
  |                                                                  |
 
  |                                                                  |
Line 2,205: Line 2,328:
 
  +----------------------+----------------------+---------------------+
 
  +----------------------+----------------------+---------------------+
  
Without getting into great detail on these internal protocols, a few
+
  Without getting into great detail on these internal protocols, a few
points are particularly interesting to system designers:
+
  points are particularly interesting to system designers:
 +
 
 +
    o  All three technologies supply the same interface to the host
 +
        computer or network coprocessor, a service to send and receive
 +
        network messages that are datagrams from the host's vantage in
 +
        that each contains sufficient information to deliver the message
 +
        in and of itself.  Since this datagram and its header fields are
 +
        of paramount interest to the host implementor, it is discussed
 +
        in detail below.
  
o  All three technologies supply the same interface to the host
+
    o  All technologies use acknowledgments at a very low level to
    computer or network coprocessor, a service to send and receive
+
        determine if packets  have been successfully delivered.  In
    network messages that are datagrams from the host's vantage in
+
        addition to permitting a highly tuned contention mechanism for
    that each contains sufficient information to deliver the message
+
        the coax medium, it also permits HYPERchannel A to balance the
    in and of itself. Since this datagram and its header fields are
 
    of paramount interest to the host implementor, it is discussed
 
    in detail below.
 
  
o  All technologies use acknowledgments at a very low level to
 
    determine if packets  have been successfully delivered.  In
 
    addition to permitting  a highly tuned contention mechanism for
 
    the coax medium, it also permits HYPERchannel A to balance the
 
  
  
 +
Hardwick & Lekashman                                          [Page 42]
  
 +
RFC 1044          IP on Network Systems HYPERchannel      February 1988
  
  
    load over several coax cables -- a feat that has proven very
+
        load over several coax cables -- a feat that has proven very
    difficult on, for example, Ethernet.
+
        difficult on, for example, Ethernet.
  
o  All boxes go to some lengths to assure that resources exist
+
    o  All boxes go to some lengths to assure that resources exist
    in the receiving box before actual transmission takes place.
+
        in the receiving box before actual transmission takes place.
    HYPERchannel B uses a virtual circuit that endures for several
+
        HYPERchannel B uses a virtual circuit that endures for several
    seconds of inactivity after one host first attempts to send a
+
        seconds of inactivity after one host first attempts to send a
    message to the other.  Traffic over this "working virtual
+
        message to the other.  Traffic over this "working virtual
    circuit" is flow controlled from source to destination and
+
        circuit" is flow controlled from source to destination and
    buffer resources are reserved for the path.
+
        buffer resources are reserved for the path.
  
HYPERchannel A exchanges frames at very high rates to determine that
+
  HYPERchannel A exchanges frames at very high rates to determine that
the receiver is ready to receive data and to control its flow as data
+
  the receiver is ready to receive data and to control its flow as data
moves through the network.
+
  moves through the network.
  
DATApipe propagation time is relatively long compared to the time
+
  DATApipe propagation time is relatively long compared to the time
needed to send an internal packet of 2K-4K bytes.  As a result,
+
  needed to send an internal packet of 2K-4K bytes.  As a result,
DATApipe controllers use a streamlined TP4-like transport protocol to
+
  DATApipe controllers use a streamlined TP4-like transport protocol to
assure delivery of frames between DATApipe boxes.
+
  assure delivery of frames between DATApipe boxes.
  
 
REFERENCES
 
REFERENCES
  
  [1]  HYPERchannel is a trademark of Network Systems Corporation.
+
      [1]  HYPERchannel is a trademark of Network Systems Corporation.
 +
 
 +
      [2]  Plummer, D., "An Ethernet Address Resolution Protocol",
 +
            RFC-826, Symbolics, September 1982.
 +
 
 +
      [3]  DATApipe is a registered trademark of Network Systems
 +
            Corporation.
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
  
  [2]  Plummer, D., "An Ethernet Address Resolution Protocol",
 
        RFC-826, Symbolics, September 1982.
 
  
  [3]   DATApipe is a registered trademark of Network Systems
+
Hardwick & Lekashman                                          [Page 43]
        Corporation.
 

Revision as of 22:45, 22 September 2020

Network Working Group K. Hardwick Request for Comments: 1044 NSC

                                                           J. Lekashman
                                                           NASA-Ames GE
                                                          February 1988


          Internet Protocol on Network Systems HYPERchannel
                        Protocol Specification

STATUS OF THIS MEMO

  The intent of this document is to provide a complete discussion of
  the protocols and techniques used to embed DoD standard Internet
  Protocol datagrams (and its associated higher level protocols) on
  Network Systems Corporation's HYPERchannel [1] equipment.
  Distribution of this memo is unlimited.
  This document is intended for network planners and implementors who
  are already familiar with the TCP/IP protocol suite and the
  techniques used to carry TCP/IP traffic on common networks such as
  the DDN or Ethernet.  No great familiarity with NSC products is
  assumed; an appendix is devoted to a review of NSC technologies and
  protocols.
  At the time of this first RFC edition, the contents of this document
  has already been reviewed by about a dozen vendors and users active
  in the use of TCP/IP on HYPERchannel media.  Comments and suggestions
  are still welcome (and implementable,) however.
  Any comments or questions on this specification may be directed to:
     Ken Hardwick
     Director, Software Technology
     Network Systems Corporation MS029
     7600 Boone Avenue North
     Brooklyn Park, MN 55428
     Phone: (612) 424-1607
     John Lekashman
     Nasa Ames Research Center. NAS/GE
     MS 258-6
     Moffett Field, CA, 94035
     [email protected]
     Phone: (415) 694-4359



Hardwick & Lekashman [Page 1]

RFC 1044 IP on Network Systems HYPERchannel February 1988


TABLE OF CONTENTS

   Status of this memo  . . . . . . . . . .  . . . . . . . . . . . .  1
   Goals of this document   . . . . . . . .  . . . . . . . . . . . .  3
   Basic HYPERchannel network messages  . .  . . . . . . . . . . . .  4
     Basic (16-bit address) Message Proper header  . . . . . . . . .  5
     TO addresses and open driver architecture   . . . . . . . . . .  7
     Extended (32-bit address) Message Proper header . . . . . . . .  8
     Address Recognition and message forwarding .  . . . . . . . . . 10
     32-bit message fields   . . . . . . . . . . . . . . . . . . . . 12
   Broadcasting   . . . . . . . . . . . . . . . . . .  . . . . . . . 14
   PROTOCOL SPECIFICATION .  .  .  . . . . . . . . . . . . . . . . . 17
     Basic (16-bit) Message Encapsulation    . . . . . . . . . . . . 18
     Compatibility with existing implementations . . . . . . . . . . 21
     Extended (32-bit) Message Encapsulation   . . . . . . . . . . . 24
     Address Resolution Protocol   . . . . . . . . . . . . . . . . . 27
     Maximum Transmission Unit . . . . . . . . . . . . . . . . . . . 31
   ADDRESS RESOLUTION    . . . . . . . . . . . . . . . . . . . . . . 32
     Local Address Resolution  . . . . . . . . . . . . . . . . . . . 33
     Configuration file format   . . . . . . . . . . . . . . . . . . 34
     ARP servers   . . . . . . . . . . . . . . . . . . . . . . . . . 35
     Broadcast ARP   . . . . . . . . . . . . . . . . . . . . . . . . 36
   Appendix A.
   NSC Product Architecture and Addressing   . . . . . . . . . . . . 38
   Appendix B.
   Network Systems HYPERchannel protocols    . . . . . . . . . . . . 42











Hardwick & Lekashman [Page 2]

RFC 1044 IP on Network Systems HYPERchannel February 1988


GOALS OF THIS DOCUMENT

  In this document, there are four major technical objectives:
  1.  To bless a "de facto" standard for IP on HYPERchannel that  has
      been implemented by Tektronix, Cray, NASA Ames, and others.
      We are attempting to resolve some interoperability problems with
      this standard so as to minimize the changes to existing IP on
      HYPERchannel software.  If any ambiguities remain in the de facto
      standard, we wish to assist in their resolution.
  2.  To address larger networks, NSC's newer network products are
      moving to a 32-bit address from the current 16-bit TO address.
      This document would introduce the addressing extension to the
      user community and specify how IP datagrams would work in the
      new addressing mode.
  3.  To define an Address Resolution Protocol for HYPERchannel and
      other NSC products.  It is probably well known that current NSC
      products do not support the broadcast modes that make ARP
      particularly useful.  However, many have expressed interest in
      "ARP  servers" at a known network address.  These servers could
      fade away as NSC products with broadcast capability come into
      existence.  Host drivers that can generate and recognize this
      ARP protocol would be prepared to take advantage of it as the
      pieces fall into place.
  4.  Part of this effort is to standardize the unofficial "message
      type" field that reserves byte 8 of the HYPERchannel network
      message.  To permit better interoperability, NSC will initiate a
      "network protocol registry" where any interested party may
      obtain a unique value in byte 8 (or bytes 8 and 9) for their own
      public, private, commercial or proprietary protocol.  Lists of
      assigned protocol type numbers and their "owners" will be
      periodically published by NSC and would be available to
      interested parties.








Hardwick & Lekashman [Page 3]

RFC 1044 IP on Network Systems HYPERchannel February 1988


BASIC HYPERCHANNEL NETWORK MESSAGES

  Unlike most datagram delivery systems, the HYPERchannel network
  message consists of two parts:
            Message Proper
           +--------------------+
           |                    |
           |                    |
           |     10-64 bytes    |
           |                    |
           |                    |
           +--------------------+
            Associated Data
           +----------------------------------------------------+
           |                                                    |
           |                                                    |
           |                                                    |
           |                                                    |
           |           Unlimited length                         |
           |                                                    |
           |                                                    |
           |                                                    |
           |                                                    |
           +----------------------------------------------------+
  The first part is a message header that can be up to 64 bytes in
  length.  The first 10 bytes contain information required for the
  delivery of the entire message, and the remainder can be used by
  higher level protocols.  The second part of the message, the
  "Associated Data," can be optionally included with the message
  proper.  In most cases (transmission over HYPERchannel A trunks), the
  length of the associated data is literally unlimited.  Others (such
  as HYPERchannel B or transmission within a local HYPERchannel A A400
  adapter) limit the size of the Associated Data to 4K bytes.  If the
  information sent can be contained within the Message Proper, then the
  Associated Data need not be sent.
  HYPERchannel lower link protocols treat messages with and without
  Associated Data quite differently; "Message only" transmissions are
  sent using abbreviated protocols and can be queued in the receiving
  network adapter, thus minimizing the elapsed time needed to send and
  receive the messages.  When associated data is provided, the
  HYPERchannel A adapters free their logical resources towards driving
  the host interface and coaxial trunks.



Hardwick & Lekashman [Page 4]

RFC 1044 IP on Network Systems HYPERchannel February 1988


BASIC (16-BIT ADDRESS) MESSAGE PROPER HEADER

  The first 10 bytes of the network Message Proper are examined by the
  network adapters to control delivery of the network message.  Its
  format is as follows:
   byte   Message Proper
        +------------------------------+-----------------------------+
     0  |      Trunks to Try           |        Message Flags        |
        |   TO trunks  |  FROM trunks  |                 |EXC|BST|A/D|
        +--------------+---------------+-----------------+---+---+---+
     2  |                        Access code                         |
        |                                                            |
        +------------------------------+-----------------------------+
     4  |       Physical addr of       |                   | TO Port |
        |     destination adapter (TO) |                   | number  |
        +------------------------------+-----------------------------+
     6  |  Physical addr of source     |                   |FROM port|
        |        adapter (FROM)        |                   |  number |
        +------------------------------+-----------------------------+
     8  |                        Message type                        |
        |                                                            |
        +------------------------------+-----------------------------+
    10  |                                                            |
        |            Available for higher level protocols            |
        |                                                            |
        |                                                            |
        +------------------------------+-----------------------------+

TRUNKS TO TRY

  Consists of two four bit masks indicating which of four possible
  HYPERchannel A coaxial data trunks are to be used to transmit the
  message and to return it.  If a bit in the mask is ON, then the
  adapter firmware will logically AND it with the mask of installed
  trunk interfaces and use the result as a candidate list of
  interfaces.  Whenever one of the internal "frames" are sent to
  communicate with the destination adapter, the transmission hardware
  electronically selects the first non-busy trunk out of the list of
  candidates.  Thus, selection of a data trunk is best performed by the
  adapter itself rather than by the host.  "Dedicating" trunks to
  specific applications only makes sense in very critical real time
  applications such as streaming data directly from high speed
  overrunnable peripherals.
  A second Trunk mask is provided for the receiving adapter when it
  sends frames back to the transmitter, as it is possible to build
  "asymmetric" configurations of data trunks where trunk 1 on one box


Hardwick & Lekashman [Page 5]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  is connected to the trunk 3 interface of a second.  Such
  configurations are strongly discouraged, but the addressing structure
  supports it if needed.
  The "trunks to try" field is only used by HYPERchannel A.  To assure
  maximum interoperability, a value of 0xFF should be placed in this
  field to assure delivery over any technology.  Other values should
  only be used if the particular site hardware is so configured to not
  be physically connected via those trunks.

MESSAGE FLAGS

  Contains options in message delivery.  In the basic type of message,
  three bits are used:
  ASSOCIATED DATA PRESENT (A/D) is ON if an Associated Data block
  follows the Message Proper.  0 if only a message proper is present in
  the network message.  The value of this bit is enforced by the
  network adapter firmware.
  BURST MODE (BST) Enables a special mode for time critical transfers
  where a single HYPERchannel A coaxial trunk is dedicated during
  transmission of the network message.  Not recommended for anything
  that won't cause peripheral device overruns if data isn't delivered
  once message transmission starts.
  EXCEPTION (EXC) Indicates to some channel programmed host interfaces
  that the message is "out of band" in some way and requires special
  processing.

ACCESS CODE

  A feature to permit adapters to share use of a cable yet still permit
  an "access matrix" of which adapter boxes and physically talk to
  which others.  Not currently in use by anyone, support is being
  discontinued.

TO ADDRESS

  Consists of three parts.  The high order 8-bits contains the physical
  address of the network adapter box which is to receive the message.
  The low order 8-bits are interpreted in different ways depending on
  the nature of the receiving network adapter.  If the receiving
  adapter has different host "ports," then the low order bits of the TO
  field are used to designate which interface is to receive the
  message.  On IBM data channels, the entire "logical" TO field is
  interpreted as the subchannel on which the incoming data is to be
  presented.  Parts of the logical TO field that are not interpreted by


Hardwick & Lekashman [Page 6]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  the network adapter are passed to the host for further
  interpretation.

FROM ADDRESS

  The FROM address is not physically used during the process of
  transmitting a network message, but is passed through to the
  receiving host so that a response can be returned to the point of
  origin.  In general, reversing the TO and FROM 16-bit address fields
  and the TO and FROM trunk masks can reliably return a message to its
  destination.

MESSAGE TYPE

  The following two bytes are reserved for NSC.  Users have been
  encouraged to put a zero in byte 8 and anything at all in byte 9 so
  as to not conflict with internal processing of messages by NSC
  firmware.  In the past, this field has been loosely defined as
  carrying information of interest to NSC equipment carrying the
  message and not as a formal protocol type field.  For example, 0xFF00
  in bytes 8 and 9 of the message will cause the receiving adapter to
  "loop back" the message without delivering it to the attached host.
  Concurrent with this document, it is NSC's intent to use both bytes 8
  and 9 as a formal "protocol type" designator.  Major protocols will
  be assigned a unique value in byte 8 that will (among good citizens)
  not duplicate a value generated by a different protocol.  Minor
  protocols will have 16-bit values assigned to them so that we won't
  run out when 256 protocols turn up.  Any interested party could
  obtain a protocol number or numbers by application to NSC.  In this
  document, protocol types specific to IP protocols are assigned.

TO ADDRESSES AND OPEN DRIVER ARCHITECTURE

  Since not all 16-bits of the TO address are used for the physical
  delivery of the network message, the remainder are considered
  "logical" in that their meaning is physically determined by host
  computer software or (in cases such as the FIPS data channel) by
  hardware in the host interface.
  Since HYPERchannel is and will be used to support a large variety of
  general and special purpose protocols, it is desirable that several
  independent protocol servers be able to independently share the
  HYPERchannel network interface.  The implementation of many of NSC's
  device drivers as well as those of other parties (such as Cray
  Research) support this service.  Each protocol server that wishes to
  send or receive HYPERchannel network messages logically "connects" to
  a HYPERchannel device driver by specifying the complete 16-bit TO


Hardwick & Lekashman [Page 7]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  address it will "own" in the sense that any network message with that
  TO address will be delivered to that protocol server.
  The logical TO field serves a function similar to the TYPE byte in
  the Ethernet 802.2 message header, but differs from it in that the
  width of the logical TO field varies from host to host, and that no
  values of the logical TO address are reserved for particular
  protocols.  On the other hand, it is possible to have several
  "identical" protocols (such as two independent copies of IP with
  different HYPERchannel addresses) sharing the same physical
  HYPERchannel interface.  This makes NSC's addressing approach
  identical to the OSI concept that the protocol server to reach is
  embedded within the address, rather than the IP notion of addressing
  a "host" and identifying a server through a message type.
  Since the HYPERchannel header also has a "message type" field, there
  is some ambiguity concerning the respective roles of the message type
  and logical TO fields:
   o   The logical TO field is always used to identify the protocol
       server which will receive the message.  Once a server has
       specified the complete TO address for the messages it wishes to
       receive, the message will not be delivered to a different
       protocol server regardless of the contents of the message type
       field.
   o   Although the "type" field cannot change the protocol server at
       the final destination of the message, the type field can be used
       by intermediate processes on the network to process the message
       before it reaches the server destination.  An obvious example is
       the 0xFF00 message loopback type function, where network
       processing to loop back the message results in nondelivery to
       the TO address.  In the future, intermediate nodes may process
       "in transit" messages based on the message type only for
       purposes such as security validation, aging of certain
       datagrams, and network management.

EXTENDED (32-BIT ADDRESS) MESSAGE PROPER HEADER

  In the original days of HYPERchannel, the limitation of 256 adapter
  "boxes" that could be addressed in a network message was deemed
  sufficient as 40 or so adapters was considered a "large" network.  As
  with the Ethernet, more recent networks have resulted in a need to
  address larger networks.  Although a few ad hoc modes have existed to
  address larger HYPERchannel networks for some years, newer
  technologies of HYPERchannel equipment have logically extended the
  network message to support 32-bits of addressing, with 24 of those
  bits to designate a physical network adapter.


Hardwick & Lekashman [Page 8]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  This 32-bit header has been designed so that existing network
  adapters are capable of sending and receiving these messages.  Only
  the network bridges need the intelligence to select messages
  designated for them.
























Hardwick & Lekashman [Page 9]

RFC 1044 IP on Network Systems HYPERchannel February 1988


       +------------------------------+-----------------------------+
    0  |      Trunks to Try           |        Message Flags        |
       |   TO trunks  |  FROM trunks  |GNA|CRC|     |SRC|EXC|BST|A/D|
       +--------------+---------------+---+---+--+--+---+---+---+---+
    2  |         TO Domain #          |         TO Network #        |
       |                              |                             |
       +------------------------------+-----------------------------+
    4  |O|    Physical addr of        |                   | TO Port |
       |N|  destination adapter (TO)  |                   | number  |
       +------------------------------+-----------------------------+
    6  |O| Physical addr of source    |                   |FROM port|
       |N|     adapter (FROM)         |                   |  number |
       +------------------------------+-----------------------------+
    8  |                         Message type                       |
       |                                                            |
       +------------------------------+-----------------------------+
    10 |          FROM Domain #       |       FROM Network #        |
       |                              |                             |
       +------------------------------+-----------------------------+
    12 |          - reserved -        |         age count           |
       |                              |                             |
       +------------------------------+-----------------------------+
    14 |      Next Header Offset      |      Header End Offset      |
       |        (normally 16)         |        (normally 16)        |
       +------------------------------+-----------------------------+
    16 |                  Start of user protocol                    |
       |              bytes 16 - 64 of message proper               |
       |                                                            |
       +------------------------------+-----------------------------+
         Associated Data
  +-----------------------------------------------------------------+
  |                                                                 |
  |     As with basic format network messages                       |
  |                                                                 |
  +-----------------------------------------------------------------+

ADDRESS RECOGNITION AND MESSAGE FORWARDING

  With the 32-bit form of addressing, NSC is keeping with the premise
  that the native HYPERchannel address bears a direct relation to the
  position of the equipment in an extended HYPERchannel network.
  Each collection of "locally" attached NSC network adapters that are
  connected by coax or fiber optic cable (with the possible addition of
  nonselective repeaters such as the ATRn series) is considered a
  "network".  Each network can have up to 256 directly addressable
  adapters attached to it which can be reached by the basic format


Hardwick & Lekashman [Page 10]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  network message.
  Existing bridges or "link adapters" can be programmed to become
  "selective repeaters" in that they can receive network messages
  containing a subset of network addresses send them over the bridge
  medium (if present) and reintroduce them on the other network.  Such
  interconnected local area networks are considered a single network
  from an addressing point of view.
  A large NSC network can have up to 64K networks which can be
  complexly interconnected by network bridges and/or "backbone"
  networks which distribute data between other networks.  To simplify
  the mechanics of message forwarding, the 16-bit network field is
  divided into two eight quantities, a "network number" identifying
  which network is to receive the message and a "domain number" which
  specifies which network of networks is the recipient.
  The bridge technology adapters which move messages between networks
  have address recognition hardware which examines all the 24-bits in
  bytes 2-5 of the network message header to determine if the bridge
  should accept the message for forwarding.  At any given instant of
  time in the network, each bridge will have a list of networks and
  domains that it should accept for forwarding to a network at the
  other end of the bridge.  Each Adapter (Including Newer Technology
  host adapters) contains in address recognition hardware:
   o   domainmask -- a 256-bit mask of domain numbers that should  be
       accepted for forwarding (not local processing) by this adapter.
   o   MyDomain  --  the  value  of the domain on which this host
       adapter or bridge end is installed.
   o   NetworkMask -- a 256-bit mask of network numbers that should be
       accepted for forwarding by this adapter.
   o   MyNetwork  -  the  value of the network on which this host
       adapter or bridge end is installed.
   o   AddressMask -- A 256-bit mask of the local network addresses
       that should be accepted by the adapter.
   o   MyAddress -- the "base address" of the box, which must be
       supplied in any message that is directed to control processes
       within the adapter, such as a loopback message.
  Address recognition takes place using the algorithm:
          IF Domain IN DomainMask OR
             IF (Domain = MyDomain AND Network IN NetworkMask) OR
                IF (Domain = MyDomain AND Network = MyNetwork AND
                   Address IN AddressMask) THEN accept-message
                                           ELSE ignore-message.



Hardwick & Lekashman [Page 11]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  This algorithm means that an adapter's hardware address recognition
  logic will accept any messages to the box itself, any secondary or
  aliased local addresses owned by the adapter, and any message
  directed to a remote network or domain that that particular adapter
  is prepared to forward.


32-BIT MESSAGE FIELDS

TRUNK MASK

  Is as in the basic network message.  Messages that are to be
  delivered outside the immediate network should have 0xFF in this byte
  so that all possible trunks in intermediate networks should be tried.
  Locally delivered 32-bit messages may still contain specially
  tailored trunk masks to satisfy local delivery needs.

MESSAGE FLAGS

  The currently defined bits remain as before.  Three new bits have
  been defined since that time.
  CRC (END-END MESSAGE INTEGRITY).  Newer technology host adapters are
  capable of generating a 32-bit CRC for the entire network message as
  soon as it is received over the channel or bus interface from the
  host.  This 32-bit CRC is appended to the end of the associated data
  block and is preserved through the entire delivery process until it
  is checked by the host adapter that is the ultimate recipient of the
  message, which removes it.  This end to end integrity checking is
  designed to provide a high degree of assurance that data has been
  correctly moved through all intermediate LAN's, geographic links, and
  internal adapter hardware and processes.
  SRC (SOURCE FROM ADDRESS CORRECT).  This bit is provided to take
  advantage of the physical nature of the network address to optionally
  verify that the 32-bit FROM address provided in the network message
  is in fact the location that the message originated.  If the bit is
  not set by the transmitting host, no particular processing occurs on
  the message.  If the bit is set, then all intermediate adapters
  involved in the delivery of the message have the privilege of turning
  the bit off if the received message FROM address is not a TO address
  that would be delivered to the originator if the message were going
  the opposite direction.
  If the message is received by a host computer with this bit still
  set, then the FROM address is guaranteed correct in the sense that
  returning a message with TO and FROM information reversed will result
  in delivery of the message to the process that actually originated


Hardwick & Lekashman [Page 12]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  it.  By careful attention to the physical security of adapters and
  intermediate links between networks, a high degree of security can be
  built into systems that simply examine the FROM address of a message
  to determine the legitimacy of its associated request.
  GNA (GLOBAL NETWORK ADDRESSING).  This bit ON indicates that 32-bit
  addressing is present in the message.  When this bit is on, bytes 2-3
  (Domain and Network numbers) should also be nonzero.

TO ADDRESS

  Four bytes contain the TO address, which is used to deliver the
  network message as described in "Address Recognition and Message
  Forwarding" on page 8.  The "logical" part of the TO address is used
  to designate a protocol server exactly as in the basic format network
  message header.
  The existing "address" field has its high order bit reserved as an
  outnet bit for compatibility with existing A-series network adapter
  equipment.  Were it not for this bit, the A-series adapters would
  attempt to accept messages that were "passing through" the local
  network on their way elsewhere simply because the address field
  matched while the the Domain and Network numbers (ignored by the A-
  series adapters) were quite different.
  This "outnet" bit is used in the following way:
   o   All network adapters (of  any type) in an extended set of
       networks containing A-Series adapters that will ever use 32-bit
       addressing must have their addresses in the range 00-7F (hex.)
   o   If a message is to be sent to a destination on a nonlocal
       network and domain on such an extended network, then the
       high order bit of the address field is turned on.
   o   When the last bridge in the chain realizes that it is about to
       forward the message to its final destination (the Domain and
       Network numbers are local), then it turns the Outnet bit off.
       This will result in local delivery to the destination adapter.

FROM ADDRESS

  The FROM address follows the same logic as the TO address in that any
  message can be returned to its source by reversing the FROM and TO
  fields of the message.  Since so many protocols examine byte 8 of the
  message to determine its type, the FROM field has been split so that
  the Domain and Network numbers extend into bytes 10-11.



Hardwick & Lekashman [Page 13]

RFC 1044 IP on Network Systems HYPERchannel February 1988


MESSAGE TYPE

  This field (informally defined in the past) has been extended to 16-
  bits so that a unique value can be assigned to any present or future
  protocol which is layer on HYPERchannel messages for either private
  or public use.

AGE COUNT

  This field serves the same purpose as the IP "time to live" in that
  it prevents datagrams from endlessly circulating about in an
  improperly configured network.  Each time a 32-bit message passes
  through a bridge, the Age Count is decremented by one.  When the
  result is zero, the message is discarded by the bridge.

NEXT HEADER OFFSET AND HEADER END OFFSET

  These are used as fields to optionally provide "loose source
  routing", where a list of 32-bit TO addresses can be provided by the
  transmitter to explicitly determine the path of a message through the
  network.  If this feature is not used, both these fields would
  contain the value 16 (decimal) to both indicate extra TO addresses
  are absent and that the beginning of protocol data following the
  HYPERchannel header is in byte 16.
  Although it is conceivable that a HYPERchannel IP process could use
  this source routing capability to direct messages to hosts or
  gateways, this capability is not felt to be of sufficient value to IP
  to build it into a HYPERchannel IP protocol.
  In the future, all higher level protocols should be able to examine
  Header End Offset to determine the start of the higher level protocol
  information.

BROADCASTING

  NSC message forwarding protocols use low level link protocols to
  negotiate transmission of a message to its next destination on the
  network.  Furthermore, NSC network boxes often "fan out" so that
  several hosts share the same network transmission equipment as in the
  A400 adapter.  Both these characteristics mean that providing a
  genuine broadcast capability is not a trivial task, and in fact no
  current implementations of NSC technology support a broadcast
  capability.
  The last several years have seen broadcast applications mature to the
  point where they have virtually unquestioned utility on a local and
  sometimes campuswide basis.  Accordingly, new NSC technologies will


Hardwick & Lekashman [Page 14]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  support a broadcast capability.  Information on the use of this
  capability is included here as it is essential to the discussion of
  the Address Resolution Protocol later in this document.
  Broadcast capability will be supported only with the extended (32-bit
  address) message format.  A broadcast message will have the following
  general appearance:
   byte   Message Proper
        +------------------------------+-----------------------------+
     0  |      Trunks to Try           |        Message Flags        |
        |   TO trunks  |  FROM trunks  |GNA|CRC|     |SRC|EXC|BST|A/D|
        +--------------+---------------+---+---+--+--+---+---+---+---+
     2  |       TO Domain Number       |      TO Network Number      |
        |          or 0xFF             |          or 0xFF            |
        +------------------------------+-----------------------------+
     4  |           0xFF               |   Broadcast channel number  |
        |                              |                             |
        +------------------------------+-----------------------------+
     6  |O| Physical addr of source    |                   |FROM port|
        |N|     adapter (FROM)         |                   |  number |
        +------------------------------+-----------------------------+
     8  |                         Message type                       |
        |                                                            |
        +------------------------------+-----------------------------+
     10 |     FROM Domain Number       |    FROM Network Number      |
        |                              |                             |
        +------------------------------+-----------------------------+
     12 |          - reserved -        |         age count           |
        |                              |                             |
        +------------------------------+-----------------------------+
     14 |      Next Header Offset      |      Header End Offset      |
        |        (normally 16)         |        (normally 16)        |
        +------------------------------+-----------------------------+
     16 |                  Start of user protocol                    |
        |              bytes 16 - 64 of message proper               |
        |                                                            |
        +------------------------------+-----------------------------+
         Associated Data
   +-----------------------------------------------------------------+
   |                                                                 |
   |     As with basic format network messages                       |
   |     Maximum associated data size 1K bytes.                      |
   |                                                                 |
   +-----------------------------------------------------------------+




Hardwick & Lekashman [Page 15]

RFC 1044 IP on Network Systems HYPERchannel February 1988


TRUNKS TO TRY AND MESSAGE FLAGS

  These fields are defined just as with a normal 32-bit message.  All
  bits in the Message Flags field are valid with broadcast modes.

BROADCAST ADDRESS

  For Domain, Network and Adapter Address fields, the value 0xFF is
  reserved for use by the broadcast mechanism.  A value of 0xFF in the
  adapter address field indicates to the local network hardware that
  this message is to be sent to all connected network equipment on the
  individual network.
  A value of 0xFF in the network or domain fields, respectively
  indicates a request that the scope of the broadcast exceed the local
  network.  The bridging link adapters will receive the broadcast
  message along with everyone else and will examine the "Broadcast
  Channel" field and their internal switches to determine if the
  message should be forwarded to other remote networks.
  If the Network and Domain fields contain the local network and
  domain, then the broadcast message will only be broadcast within the
  local network.  If a remote Network and Domain is specified, then the
  message will be delivered as a single message to the remote network
  and broadcast there.

BROADCAST CHANNEL

  Since individual hosts and protocol servers generally are not
  interested in all broadcast messages that float about the network, a
  filtering mechanism is provided in the header and network adapter
  equipment so that only proper classes of broadcast messages are
  delivered to the end point.
  Broadcast channel numbers in the range 00-0xFF will be assigned by
  NSC much like the "message type" field.  Host protocol servers
  specify a specific TO address containing a channel number (such as
  0xFF04) when they bind themselves to the HYPERchannel device driver.
  The driver and the underlying equipment will deliver only broadcast
  messages with the correct channel number to the protocol server.  If
  a protocol server wishes to receive several different broadcast
  messages, it must bind itself to the driver several times with the
  desired addresses.
  Link adapters that are prepared to handle multinetwork broadcast
  messages may be equipped with switches to determine which broadcast
  channels will be propagated into the next network.  Since
  multinetwork broadcast is an arrangement that must be configured with


Hardwick & Lekashman [Page 16]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  care, these switches are off by default.

FROM ADDRESS

  The FROM address is constructed just as with a normal 32-bit network
  message.  The Source Address Correct bit is processed just as with a
  normal message.

MESSAGE TYPE

  Message type is defined as with normal messages.  Presumably
  broadcast applications will have unique message types that are not
  generally found in normal messages.

AGE COUNT

  Age count is vitally important in a multinetwork broadcast as "loops"
  in the network can cause a great deal of activity until all the
  progeny of the original broadcast message die out.

PROTOCOL SPECIFICATION

  This section contains information on the technique used to
  encapsulate IP datagrams on the HYPERchannel network message.  It
  contains three sections to describe three protocol packagings:
   o   The technique used to encapsulate IP datagrams on the basic
       16-bit network message.  This is a de facto standard that has
       been in use for several years and is documented here to make it
       official.
   o   The encapsulation technique for IP datagrams on 32 bit network
       messages.
   o   The definition of an Address Resolution Protocol on
       HYPERchannel.








Hardwick & Lekashman [Page 17]

RFC 1044 IP on Network Systems HYPERchannel February 1988


BASIC (16-BIT) MESSAGE ENCAPSULATION

          Message Proper
        +------------------------------+-----------------------------+
     0  |      Trunks to Try           |        Message Flags        |
        |   TO trunks  |  FROM trunks  |GNA|CRC|     |SRC|EXC|BST|A/D|
        +------------------------------+-----------------------------+
     2  |                      Access code 0000                      |
        |                   (no longer supported)                    |
        +------------------------------+-----------------------------+
     4  |       Physical addr of       |  Protocol server  |Dest Port|
        |     destination adapter      |  logical address  | number  |
        +------------------------------+-----------------------------+
     6  |       Physical addr of       |    Originating    | Src Port|
        |       source  adapter        |  server address   |  number |
        +------------------------------+-----------------------------+
     8  |    IP on HYPERchannel        |   Offset to start of IP     |
        |    type code  0x05           |  header from message start  |
        +------------------------------+-----------------------------+
    10  |      IP type designator      |   Offset to start of IP     |
        |           0x34               |    header from byte 12      |
        +------------------------------+-----------------------------+
    12  |          Padding (variable length incl. zero bytes)        |
        |                                                            |
        +------------------------------+-----------------------------+
    Off |          First (64-Offset) bytes of IP datagram            |
        |                                                            |
        |                                                            |
        |                                                            |
        +------------------------------+-----------------------------+
          Associated Data
        +------------------------------+-----------------------------+
        |                                                            |
        |                Remainder of IP datagram                    |
        |                                                            |
        |            No associated data is present if IP             |
        |            datagram fits in the Message Proper             |
        |                                                            |
        +------------------------------+-----------------------------+

TRUNK MASK

  From the vantage of an IP driver, any trunk mask is valid so long as
  it results in successful delivery of the HYPERchannel network message
  to its destination.  There is no reason to check this field for
  validity on reception of the message.  Specification of the Trunk
  Mask on output is a local affair that could be specified by the
  transmitting driver's address resolution tables.


Hardwick & Lekashman [Page 18]

RFC 1044 IP on Network Systems HYPERchannel February 1988


MESSAGE FLAGS

  No use is made of the Flags field (byte 1) other than to
  appropriately set the Associated Data bit.  Burst Mode and the
  Exception bit should not be used with IP.

ACCESS CODE

  Although some current implementations of IP on HYPERchannel support
  the access code, no one appears to be using it at the current time.
  Since this field is currently reserved for the use of 32-bit
  addresses, no value other than 0000 should be placed in this field.

TO ADDRESS

  The TO field is generally obtained by a local IP driver through a
  table lookup algorithm where a 16-bit TO address is found that
  corresponds to the IP address of a local host or gateway.  The high
  order bits of the TO address of course refer to the adapter number
  the adapter attached to the destination host.
  The logical TO field should contain the protocol server address of
  the HYPERchannel IP driver for that host as determined by the host's
  system administrator.  Many HYPERchannel TCP/IP drivers in the field
  today are not "open" in that any network message delivered to that
  host will be presumed to be an IP datagram regardless of the logical
  TO field; however any transmitting IP process should be capable of
  generating the entire 16-bit TO field in order to generate a message
  capable of reaching a destination IP process.
  The process of determining which HYPERchannel address will receive an
  IP datagram based on its IP address is a major topic that is covered
  in "Address Resolution".

FROM ADDRESS

  The FROM address is filled in with the address that the local driver
  expects to receive from the network, but no particular use is make of
  the FROM address.

MESSAGE TYPE

  Network Systems requests that a value of 5 (decimal) be placed in
  this byte to uniquely indicate that the network message is being used
  to carry IP traffic.  No other well-behaved protocol using
  HYPERchannel should duplicate this value of 5.



Hardwick & Lekashman [Page 19]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  Many current implementations of IP on HYPERchannel place a zero or
  other values in this field simply because no value was reserved for
  IP usage.  Transmitting versions of IP should always place a 5 in
  this field; receiving IP's should presume a delivered message to be
  an IP datagram until proven otherwise regardless of the contents of
  the Message Type field.
  Developers should note that it is often convenient to permit
  reception of the value 0xFF00 in bytes 8 and 9 of the IP datagram.
  Transmitting a message with this value will cause it to be looped
  back at the destination adapter and returned to the protocol server
  designate in the FROM address.  This permits the developer have host
  applications talk to others on the same host for purposes of network
  interface or other protocol debugging.

IP HEADER OFFSET

  Byte 9 contains the offset to the start of the IP header within the
  message proper, such that the Message Proper address plus the IP
  header offset generates the address of the first byte of the IP
  header (at least on byte addressable machines.)
  This field is redundant with the offset field in byte 11, and is
  present for cosmetic compatibility with 32-bit implementations.  On
  reception, the value in byte 11 should take precedence.
  As part of the migration to larger HYPERchannel headers, this field
  will become significant with the 32-bit addressing format, as the
  length of the header is no longer 10 bytes and byte 11 is used for
  other purposes.

IP TYPE DESIGNATOR

  Early implementations of IP drivers on HYPERchannel wanted to leave
  bytes 8 and 9 alone for NSC use and place a "message type" field in
  later in the message.  A value of 0x34 had been selected by earlier
  developers for reasons that are now of only historical interest.
  Once again, implementations should generate this value on
  transmission, but not check it on input, assuming that an IP datagram
  is present in the message.

IP HEADER OFFSET

  This value is used by a number of commercial implementations of IP on
  HYPERchannel to align the start of the IP header within the network
  message.  This offset is relative to byte 12 of the network message
  so that a value of zero indicates that the IP header begins in byte
  12.  This value should be both correctly generated on transmission,
  and always respected on input processing.


Hardwick & Lekashman [Page 20]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  The maximum permissible offset in this field is 52 indicating that
  the IP header begins at the start of the associated data block.

IP DATAGRAM CONTENTS

  Beginning at the offset designated in byte 11, the IP datagram is
  treated as a contiguous block of data that flows from byte 63 of the
  message proper into the first byte of associated data, so that the
  entire message plus data is treated as a single contiguous block.
  If the IP header is small enough to fit within the entire network
  message, then only the message proper is transmitted.  The length of
  the message proper sent should always be 64 bytes, even if the IP
  datagram and HYPERchannel header do not occupy all 64 bytes of the
  message proper.
  If the datagram flows over into the associated data, then both
  message and data are sent.  Since a number of machines cannot send a
  length of data to the HYPERchannel that is an exact number of bytes
  (due to 16-64 bits on the channel bus,) the length of the associated
  data received should not be used as a guide to the length of the IP
  datagram -- this should be extracted from the IP header.  A driver
  should verify, of course, that the associated data received is at
  least as long as is needed to hold the entire IP datagram.

COMPATIBILITY WITH EXISTING IMPLEMENTATIONS

  The basic format described here is clearly a compromise between
  several implementations of IP on HYPERchannel.  Not all existing
  implementations are interoperable with the standard described above.
  Currently there are two known "families" of IP HYPERchannel drivers
  in existence:

THE "CRAY-NASA AMES" PROTOCOL

  This protocol is in the widest production use and has the largest
  number of supported drivers in existence.  It is interoperable and
  identical with the standard described above with the sole exception
  that bytes 8 and 9 are set to zero by these drivers.  As these bytes
  are ignored by most implementations of this driver, they have been
  assigned values to formalize the use of the message type field and to
  make it consistent with the 32-bit protocol.

THE "TEKTRONIX-BERKELEY" PROTOCOL

  This protocol was historically the first IP on HYPERchannel
  implementation developed (at Tektronix) and subsequently made its way
  to Berkeley and BSD UNIX.  This protocol is not interoperable with


Hardwick & Lekashman [Page 21]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  the standard described above due to several distinct differences.
  First, bytes 8 through 11 are always zero.  The IP header always
  starts on byte 12.  Comments in some of these drivers designate byte
  11 as an "IP header offset" field, but apparently this value is never
  processed.
  The major difference (and the incompatibility) concerns the packaging
  of the IP datagram into the network message.  Due to historical
  difficulties in the early 80's with the sending and receiving of very
  small blocks of associated data on VAXes, this protocol the takes a
  curious approach to the placement of the IP header and the headers of
  higher level protocols (such as TCP or UDP.)
   o   If the entire length of the IP datagram is 54 bytes or less,
       it is possible to fit the entire datagram and the HYPERchannel
       header in the 64 byte message proper.  In this case, no
       associated data is sent; only a message proper is used to carry
       the data.  The length of the message proper transmitted is the
       exact length needed to enclose the IP datagram; no padding bytes
       are sent at the end of the message.
   o   If the length of the IP header is greater than 54 bytes, then:
       -   All higher level protocol information (TCP/UDP header and
           their associated  data fields) are placed in the associated
           data block, with the TCP/UDP header beginning at the start
           of the associated data block.
       -   On transmission, the length of the message proper
           transmitted is set to the length of the HYPERchannel header
           plus the IP header --  it is not padded out to 64 bytes.
           The length of the associated data sent should be sufficient
           to accommodate the TCP/UDP header and its data fields.









Hardwick & Lekashman [Page 22]

RFC 1044 IP on Network Systems HYPERchannel February 1988


WHICH PROTOCOL IS BEST?

  In choosing which to follow, the "Cray-Ames" approach was taken for
  several reasons:
   1.  Cray Research has performed exemplary work in dealing with other
       vendors to provide IP on HYPERchannel from the Cray computers to
       other hosts.  As a result, there are 4 or 5 vendor supported
       implementations of IP on HYPERchannel that use this approach.
   2.  The two part structure of the message proper has its uses when a
       machine wishes to make protocol decisions before staging the
       transfer of an immense block of associated data into memory.
       Many network coprocessors and intelligent I/O subsystems find it
       simpler to read in the entire network message before deciding
       what to do with it.  Arbitrarily catenating the two components
       does this best and permits streaming of messages from future
       technology network adapters.
   3.  Some TCP users (mostly  secure  DoD  sites) intend to load up IP
       datagrams with optional fields in the future.  The
       Tektronix-Berkeley implementation has problems if the IP header
       length exceeds 54 bytes.















Hardwick & Lekashman [Page 23]

RFC 1044 IP on Network Systems HYPERchannel February 1988


EXTENDED (32-BIT) MESSAGE ENCAPSULATION

          Message Proper
        +------------------------------+-----------------------------+
     0  |      Trunks to Try           |1|       Message Flags       |
        |   TO trunks  |  FROM trunks  |GNA|CRC|     |SRC|EXC|BST|A/D|
        +------------------------------+-----------------------------+
     2  |    Destination  Domain       |    Destination  Network     |
        |         Number               |           Number            |
        +------------------------------+-----------------------------+
     4  |O|     Physical addr of       |  Protocol server  |Dest Port|
        |N|  destination adapter       |  logical address  | number  |
        +------------------------------+-----------------------------+
     6  |O|     Physical addr of       |    Originating    | Src Port|
        |N|     source  adapter        |  server address   |  number |
        +------------------------------+-----------------------------+
     8  |    IP on HYPERchannel        |   Offset to start of IP     |
        |    type code  0x06           |      datagram header        |
        +------------------------------+-----------------------------+
     10 |    Source Domain Number      |   Source Network Number     |
        |                              |                             |
        +------------------------------+-----------------------------+
     12 |          - reserved -        |         Age Count           |
        +------------------------------+-----------------------------+
     14 |      Next Header Offset      |      Header End Offset      |
        |                              |       (usually 16)          |
        +------------------------------+-----------------------------+
     16 |         Padding to IP header start (usually 0 bytes)       |
        |                                                            |
        +------------------------------+-----------------------------+
     Off|     Entire IP datagram if datagram length <= (64-Offset)   |
        |                                                            |
        |        else first (64-Offset) bytes of IP datagram         |
        +------------------------------+-----------------------------+
          Associated Data
        +------------------------------+-----------------------------+
        |                                                            |
        |                   Remainder of IP datagram                 |
        |                                                            |
        |            No associated data is present if IP             |
        |            datagram fits in the Message Proper             |
        |                                                            |
        +------------------------------+-----------------------------+

TRUNK MASK

  From the vantage of an IP driver, any trunk mask is valid so long as


Hardwick & Lekashman [Page 24]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  it results in successful delivery of the HYPERchannel network message
  to its destination.  There is no reason to check this field for
  validity on reception of the message.  Specification of the Trunk
  Mask on output is a local affair that can be specified by the
  transmitting driver's address resolution tables.
  The use of 0xFF in this value is strongly encouraged for any message
  other than those using exotic trunk configurations on a single local
  network.

MESSAGE FLAGS

  Several new bits have been defined here.
  EXTENDED ADDRESSING.  This bit should be set ON whenever a 32-bit
  address (Network and/or Domain numbers nonzero) is present in the
  message.  It should always be OFF with the 16-bit message header.  If
  this bit is improperly set, delivery of the message to the (apparent)
  destination is unlikely.
  END-TO-END CRC.  Some newer technology adapters are equipped to place
  a 32-bit CRC of the associated data at the end of the associated data
  block when this bit is on.  Similarly equipped adapters will examine
  the trailing 32-bits of associated data (when the bit is on) to
  determine if the message contents have been corrupted at any stage of
  the transmission.
  Transmitting device drivers should include the ability to set this
  bit on transmission as a configuration option similar to the specific
  HYPERchannel device interface used.  The bit should be generated to
  be turned ON if the HYPERchannel IP driver is attached to an adapter
  equipped to generated CRC information -- it should be left OFF in all
  other circumstances.
  If a message arrives at the host with the CRC bit still on, this
  indicates that the CRC information was placed at the end of
  associated data by the transmitting adapter and not removed by the
  receiving adapter; thus the associated data will be four bytes longer
  than otherwise expected.  Since the IP datagram length is self
  contained in the network message, this should not impact IP drivers.
  It is possible for host computers to both generate and check this CRC
  information to match the hardware assisted generation and checking
  logic in newer network adapters.  Contact NSC if there are particular
  applications requiring exceptional data integrity that could benefit
  from host generation and checking.



Hardwick & Lekashman [Page 25]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  FROM ADDRESS CORRECT.  This bit should be set by all transmitting IP
  drivers who have endeavored to provide a completely correct FROM
  address that properly reflects the adapter interface used.  No action
  should be taken on this bit by the receiving IP driver at this time.
  Additional work needs to be done to determine the action an IP driver
  should take if it detects a real or imagined "security violation"
  should a message arrive with this bit absent.

TO ADDRESS

  The TO address logically constitutes bytes 2-5 of the network
  message.
  NETWORK AND DOMAIN NUMBERS.  The Network and Domain numbers should
  both be nonzero when 32-bit addressing is used.  If the message is
  local in nature, then the local Network and Domain numbers should be
  placed in this field.
  ADAPTER ADDRESS.  Contains the adapter address as in the basic
  message.  The high order bit of this eight bit field (the "outnet"
  bit) should be set to zero if the destination network and domain are
  the same as the transmitting host's.  The high order bit should be
  set to one if the destination host is not in the local network or
  domain.
  LOGICAL TO AND SUBADDRESS.  The logical TO field should contain the
  protocol server address of the HYPERchannel IP driver for that host
  as determined by the host's system administrator.

FROM ADDRESS

  The FROM address is filled in with the address that the local driver
  expects to receive from the network, but no particular use is made of
  the FROM address.

MESSAGE TYPE

  The value 6 must be placed in this byte to uniquely indicate that the
  network message is being used to carry IP traffic.  No other well-
  behaved protocol using HYPERchannel should duplicate this value of 6.
  Note that all IP drivers should be prepared to send and receive the
  basic format network messages using the 16-bit HYPERchannel
  addresses.  The driver can distinguish an incoming network message by
  the value of byte 8 -- 32-bit messages will always have a 6 in byte
  8, while 16-bit messages should have a 5 here.  For interoperability
  with older drivers, a value of 0 here should be treated as 16 address
  bit messages.


Hardwick & Lekashman [Page 26]

RFC 1044 IP on Network Systems HYPERchannel February 1988


IP HEADER OFFSET

  Byte 9 contains the offset to the start of the IP header within the
  message proper, such that the Message Proper address plus the IP
  header offset generates the address of the first byte of the IP
  header (at least on byte addressable machines.)
  Unlike the 16-bit header, receiving IP drivers should assume that
  this field contains a correct offset to the IP header and examine the
  information at that offset for conformance to an IP datagram header.
  Valid offsets are in the range of 16 through 44 bytes, inclusive.
  The limitation of 44 bytes is imposed so that routing decisions on
  the vast majority of IP datagrams can be made by examining only the
  message proper, as the basic IP datagram will fit into the message
  proper if it begins at an offset of 44.

IP DATAGRAM CONTENTS

  The message and data are treated as logically contiguous entities
  where the first byte of associated data immediately follows the 64th
  byte of the message proper.
  If the entire IP datagram is less than or equal to (64-offset) bytes
  in length it will fit into the Message Proper.  If so, only a message
  proper containing the HYPERchannel header and IP datagram is sent on
  the network.
  If the IP datagram is greater than this length, the IP datagram
  spills over into the associated data.  On transmission, a 64 byte
  message proper is sent followed by as many bytes of associated data
  as are needed to send the entire datagram.
  On reception, the message proper can be read into the start of an IP
  input buffer and the associated data read into memory 64 bytes from
  the start of the message.  If the received message is in fact a 32-
  bit address message, no "shuffling" of the message will be required
  to build a contiguous IP datagram -- it's right there at buffer+16.

ADDRESS RESOLUTION PROTOCOL

  Address Resolution Protocol has achieved a great deal of success on
  the Ethernet as it permits a local IP network to configure itself
  simply by having each node know its own IP address.  Those unfamiliar
  with the intent, protocol, and logic of the Address Resolution
  Protocol should refer to RFC-826, "An Ethernet Address Resolution
  Protocol" [2].



Hardwick & Lekashman [Page 27]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  A later section of this document describes four techniques where a
  target HYPERchannel address is to obtained given the destination's IP
  address.  The protocol is defined in this section for completeness.
          Message Proper
        +------------------------------+-----------------------------+
     0  |      Trunks to Try           |1|       Message Flags       |
        |   TO trunks  |  FROM trunks  |GNA|CRC|     |SRC|EXC|BST|A/D|
        +------------------------------+-----------------------------+
     2  |      Server Domain or        |      Server Network or      |
        |          0xFF                |           0xFF              |
        +------------------------------+-----------------------------+
     4  |   Server Adapter Address or  | Server logical addr/port or |
        |           0xFF               |             07              |
        +------------------------------+-----------------------------+
     6  |O|     Physical addr of       |    Originating    | Src Port|
        |N|     source  adapter        |  server address   |  number |
        +------------------------------+-----------------------------+
     8  |                      NSC ARP type code                     |
        |             07               |             00              |
        +------------------------------+-----------------------------+
     10 |         Source Domain        |       Source Network        |
        +------------------------------+-----------------------------+
     12 |          - reserved -        |         Age Count           |
        +------------------------------+-----------------------------+
     14 |      Next Header Offset      |      Header End Offset      |
        |        (usually 16)          |       (usually 16)          |
        +------------------------------+-----------------------------+
     16 |        Padding to start of IP info (usually 0 bytes)       |
        +------------------------------+-----------------------------+











Hardwick & Lekashman [Page 28]

RFC 1044 IP on Network Systems HYPERchannel February 1988


        +------------------------------+-----------------------------+
    Off |          ARP hardware address type for HYPERchannel        |
        |                              8                             |
        +------------------------------+-----------------------------+
     +2 |                 HYPERchannel protocol type                 |
        |             06                           00                |
        +------------------------------+-----------------------------+
     +4 | HYPERchannel address length  |     IP address length       |
        |             6                |           4                 |
        +------------------------------+-----------------------------+
     +6 |               ARP opcode (request or reply)                |
        +------------------------------+-----------------------------+
     +8 |          Domain              |           Network           |
        +-           Sender's 32-bit HYPERchannel address           -+
    +10 |       Adapter address        |     Logical addr/port       |
        +------------------------------+-----------------------------+
    +12 |                      Source's MTU size                     |
        +------------------------------+-----------------------------+
    +14 |                              |                             |
        +-                Sender's 32-bit IP address                -+
    +16 |                                                            |
        +------------------------------+-----------------------------+
    +18 |          Domain              |           Network           |
        +-        Destination's 32-bit HYPERchannel address         -+
    +20 |                (to be determined on request)               |
        |       Adapter address        |     Logical addr/port       |
        +------------------------------+-----------------------------+
    +22 |                  Destination's MTU size                    |
        |               (to be determined on request)                |
        +------------------------------+-----------------------------+
    +24 |                              |                             |
        +-             Destination's 32-bit IP address              -+
    +26 |                                                            |
        +------------------------------+-----------------------------+
  Layout of the fields of this ARP message is a fairly straightforward
  exercise given the standards of ARP and the 32-bit message header.  A
  few fields are worth remarking upon:

TO ADDRESS

  The TO address of an ARP message will be one of two classes of
  address.  A "normal" address indicates that the message is an ARP
  response, or that it is an ARP request directed at an ARP server at a
  well known address on the local network.  For those HYPERchannel
  networks which are equipped to broadcast, a value of 0xFFFFFF07 in
  the TO address will (by convention) be picked up only by those
  protocol servers prepared to interpret and respond to ARP messages.


Hardwick & Lekashman [Page 29]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  The issue of which address to use in an ARP request is discussed in
  the Address Resolution section.

FROM ADDRESS

  Must be the correct FROM address of the user protocol server issuing
  an ARP request.  The Source Correct bit in the Message Flags byte
  should be set by this requesting server, as some ARP servers may
  someday choose to issue ARP information on an "need to know" basis in
  secure environments.  With an ARP response, the FROM address will
  contain the "normal" HYPERchannel address of the protocol server
  responding to the ARP address, even if that server was reached via
  broadcast mechanisms.
  ARP responses are returned to the party specified in the FROM address
  specified in the message header, rather than the address in the
  "Source HYPERchannel Address" field within the body of the ARP
  message.

MESSAGE TYPE

  The 16-bit value 0x0700 is reserved for the exclusive use of ARP.
  Unlike IP messages, no provision is made for the ARP message to begin
  at an arbitrary offset within the message proper, so the value in
  byte 9 is an extension of the message type.

HEADER END OFFSET

  ARP uses the 32-bit addressing convention that byte 15 contains the
  offset to the start of user protocol (and hence the end of user
  protocol information).  Note that this is not a substitute for the IP
  offset fields, as this field also serves as the end of HYPERchannel
  header information -- future NSC message processing code may well
  take exception to "garbage" between the actual header end and the
  start of user data.

HYPERCHANNEL HARDWARE TYPE CODE

  This 16-bit number is assigned a formal ARP hardware type of 8.

HYPERCHANNEL PROTOCOL TYPE

  On the Ethernet, this field is used to distinguish IP from all other
  protocols that may require address resolution.  To be logically
  consistent, this field is identical to bytes 8 and 9 0x0600 in a 32-
  bit address HYPERchannel message carrying an IP datagram.



Hardwick & Lekashman [Page 30]

RFC 1044 IP on Network Systems HYPERchannel February 1988


HYPERCHANNEL ADDRESS LENGTH

  This contains the value 6, a sufficient number of bytes to
  accommodate the four byte HYPERchannel address and 2 bytes to
  indicate the largest IP datagram size that source and destination can
  handle.

SOURCE AND DESTINATION HYPERCHANNEL ADDRESS

  This field contains the Domain, Network, and Adapter/port address of
  source and destination, respectively.  A value of 0000 in the Domain
  and Network fields has special significance as this is interpreted as
  a request to send and receive 16-bit HYPERchannel headers rather than
  32-bit headers.  If 32-bit headers are to be used within a single
  HYPERchannel network, then the local domain and network numbers may
  be specified.

MAXIMUM TRANSMISSION UNIT

  HYPERchannel LAN technology is such that messages of unlimited length
  may be sent between hosts.  Since host throughput on a network is
  generally limited by the rate the network equipment can be
  functioned, larger transmission sizes result in higher bulk transfer
  performance.  Since not every host will be able to handle the maximum
  size IP datagram, a more flexible means of MTU (maximum transmission
  unit) size negotiation than simply wiring the same value into every
  network host is needed.  With this field, each host declares the
  maximum IP datagram size (not the associated data block size) it is
  prepared to receive.  Transmitting IP drivers should be prepared to
  send the minimum of the source and destination IP sizes negotiated at
  ARP time.
  The MTU size sent refers to the maximum size of IP header + data.  It
  does not include the length of the HYPERchannel Hardware header or
  any offset between the header and the start of the IP datagram.
  Since it is the option of the transmitting hosts to use an offset of
  up to 44 bytes a receiving host must in any event be prepared to
  receive a 64 byte Message Proper and an Associated Data block of
  MTU-20 (that is 64 - 44, or the length of the basic IP header).
       An example of a typical 16-bit packet is:
           12 bytes hardware header.
           12 bytes offset.
           40 bytes IP/TCP header.
         4096 bytes of data.
      This gives an MTU of 4136.



Hardwick & Lekashman [Page 31]

RFC 1044 IP on Network Systems HYPERchannel February 1988


      An example of a typical 32-bit packet is:
           16 bytes hardware header.
            8 bytes offset.
           40 bytes  IP/TCP header.
         4096 bytes of associated data,
      This also gives an MTU of 4136.
  The offset values are chosen so that the typical packet causes user
  data to be page aligned at the start of the associated data area.
  This is an implementation decision, which can certainly be modified
  as required.
  The maximum maximum transmission unit is 65536, the current largest
  size IP datagram.  In order to allow this value to fit into a 16-bit
  field, the offset length is not included in the MTU.  This MTU size
  is not a requirement that a local host be equipped to send or receive
  datagrams of that size; it simply indicates the maximum capacity of
  the receiving host.
  A note on trunk masks:
  There is no field for specifying trunk masks.  This is intentional,
  as new NSC hardware will contain trunk reachability information,
  eliminating the need for the host to maintain hardware configuration
  layouts.  All HYPERchannel messages generated as a result of an ARP
  response should use 0xFF in the trunk mask.

ADDRESS RESOLUTION

  This section describes techniques used by an IP driver to determine
  the HYPERchannel address and header that a message should contain
  given an IP datagram containing an IP address.  It describes
  techniques that are local to specific hosts (and hence can be
  modified without regard to the activities or techniques of other
  hosts) as well as techniques to use the Address Resolution Protocol
  on existing HYPERchannel equipment to better manage IP addresses.
  It also discusses the migration of name resolution on one of four
  steps.
   1.  Truncation of the IP address to form a HYPERchannel address.
   2.  Local resolution of HYPERchannel addresses through configuration
       files.
   3.  Centralized resolution of HYPERchannel addresses through an "ARP
       server" driven by a configuration file.


Hardwick & Lekashman [Page 32]

RFC 1044 IP on Network Systems HYPERchannel February 1988


   4.  Distributed resolution of HYPERchannel addresses using a "real"
       address Resolution Protocol on future HYPERchannel media
       supporting a broadcast mode.

IP ADDRESS TRUNCATION

  A number of IP on HYPERchannel implementations support modes where
  the HYPERchannel address is generated by placing the low order 16-
  bits of the IP address in the TO address of the message proper.  This
  more or less treats a set of HYPERchannel boxes addressable through
  16-bit HYPERchannel addresses as a Class B IP network.
  This approach certainly offers simplicity:  IP addresses are simply
  chosen to match HYPERchannel addresses and no IP address
  "configuration files" need be kept.  Although this approach works in
  an environment where the HYPERchannel completely constitutes a Class
  B network, or where connection to a larger IP network is not a
  concern, its long term use is discouraged for several reasons:
   o   It simply will not work with any Class C address (the physical
       TO address is not controllable) or a Class A address (where host
       addresses are generally carefully administered.)  In addition,
       it will not support subnetworks.  It is quite incompatible with
       32-bit HYPERchannel addresses.
   o   By decoupling the IP and HYPERchannel addresses through more
       complex address resolution, the characters of the two addresses
       allow greater site flexibility:  the IP address becomes
       "logical" in character so that an address can move about a site
       with the user or host; the HYPERchannel address maintains its
       physical character so that a HYPERchannel address carefully
       identifies the physical location of the source and destination
       within the extended HYPERchannel network.

LOCAL ADDRESS RESOLUTION

  The current state of address resolution art with IP on HYPERchannel
  works as follows:  given an arbitrary IP address, the IP HYPERchannel
  driver looks up an entry with that address in a (generally hashed)
  table.  If found, the table entry contains the first 6 bytes of the
  HYPERchannel header that is used to send the IP datagram to the next
  IP node on the internet.  Since implementations such as the 4.3BSD
  UNIX IP are clever enough to provide its lower level drivers with the
  IP address of the next gateway as well as the destination address on
  the internet (assuming the message is not delivered locally on the
  HYPERchannel,) the number of entries in this table is more or less
  manageable, as it must only contain the IP hosts and gateway
  addresses that are directly accessible on the HYPERchannel.


Hardwick & Lekashman [Page 33]

RFC 1044 IP on Network Systems HYPERchannel February 1988


CONFIGURATION FILE FORMAT

  So long as this technique of address resolution is used, the
  techniques used are exclusively local to the host in the sense that
  the techniques used to generate and store the information in the
  table are irrelevant to other hosts.
  Shown here is a typical file format.  This file should probably be
  program generated from a database, as asymmetric trunk configurations
  and multiply homed hosts can cause differences in physical routing
  and trunk usage.  This format is documented here to illustrate what
  sort of information must be kept at the link layer.
  The file consists of source lines each with the form:
     <type> <hostname> <trunks/flags> <domain/net> <addr> <MTU>
     an example:
          <type>  <hostname>             <t/f> <dom/net> <addr>  <MTU>
          # Random front end
          host    hyper.nsco.com          FF88    0103    3702    4148
          # because we want to show the 4 byte format
          host    192.12.102.1            FF00    0000    2203    1024
          # Small packets, interactive traffic.
          host    cray-b.nas.nasa.gov     FF88    0103    4401    4148
          # The other interface, for big packets.
          ahost   cray-b.nas.nasa.gov     FF88    0103    4501    32768
          # A loopback interface, (What else)
          loop    loop37.nsco.com         FF00    0000    3700    4148
          # And of course an example of arp service.
          arpserver hcgate.nsco.com       FF88    0103    7F07
   Comments may begin with  either # or ;.
   Case is not significant in any field.
   <type> indicates the type of entity to be defined.
     Currently defined types are "host," "ahost", "loop," "address,"
     and "arpserver".
     host    This token indicates an IP  host.  The following field  is
             expected to be a name that can be resolved to an IP
             address.
     ahost   This field indicates an additional network interface to
             the same host.  This may be used for performance
             enhancements.



Hardwick & Lekashman [Page 34]

RFC 1044 IP on Network Systems HYPERchannel February 1988


     loop    Sets a flag in the entry for that host so that  0xFF00 is
             placed in bytes 8 and 9 of the message.  This will cause
             the IP datagram  to be directed towards the specified host
             (which must still be a valid host name) and looped back
             within the remote adapter.  This facility serves both as a
             debugging aid and as a crude probe of the availability of
             the remote network adapter.
     arpserver This indicates an address to use for directing ARP
             requests to the network.  If several arpserver addresses
             are specified, they will be tried in turn until a response
             is received (or we run out of servers.)  An arpserver with
             the  appropriate  broadcast address of FFFF FF07 would
             cause an ARP broadcast to take place when broadcasting
             becomes available.  Broadcast and specific addresses may
             be used in combination.
  <hostname> This field is the logical name of the destination.  For a
  host it is the logical name to be given to the local naming service
  to determine the associated IP address.  This field may contain four
  decimal numbers separated by dots, in which case it is assumed to be
  the explicit IP address.
  <trunks/flags> This field is the value to be placed in bytes 0 and 1
  of the message header when sending to this host.  The associated data
  bit need not be supplied as the driver must control it.  All other
  bits are sent as provided.  This field is a hexidecimal number.
  <domain/net> This field is the value to be placed in the Domain and
  Network number field of the message.  A value of 0000 in this field
  indicates that the destination should be reached by constructing a
  16-bit HYPERchannel header, rather than a 32-bit header.
  <address> This field is the value to be placed in the 16-bit TO field
  to reach <hostname>.  This field is a hexidecimal number.
  <MTU> This field contains the largest size IP datagram that the
  destination host is prepared to receive.  This field is a decimal
  number.  This field is optional.  If not present, a value of 4148 is
  assumed.  See the earlier discussion on Maximum Transmission Unit for
  more detail.

ARP SERVERS

  The primary problem with local host address resolution is that
  changes or additions to hosts on the local net must be replicated to
  every HYPERchannel host in that network.  While this is manageable
  for up to half a dozen hosts, it becomes quite unmanageable for


Hardwick & Lekashman [Page 35]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  larger networks.  An approach that can be implemented using existing
  HYPERchannel technology is to have a server on the HYPERchannel
  network provide the HYPERchannel destination address that is
  associated with an IP address.
  Although this is strictly a point-to-point request/response dialogue
  between two network nodes, the Address Resolution Protocol which was
  originally designed for Ethernet (but thoughtfully constructed to
  work with any pair of link and network addresses) performs an
  excellent job.
  ARP servers can be reached simply by placing the address of the
  server in the 32-bit TO address of the network message.  ARP servers
  only "listen" to messages that arrive on their well known normal
  address; they do not respond to ARP broadcast messages.  Properly
  equipped IP drivers should respond to the broadcast messages when
  they appear.
  If an ARP server receives a message containing an IP address it does
  not know how to resolve, it ignores the message so that another ARP
  server might be addressed at the source's next attempt.
  If the address is resolvable, it places the known HYPERchannel
  address and MTU size in the response and returns it to the location
  in the HYPERchannel header FROM address.
  Unlike a broadcast ARP, the ARP server will be required to service
  two requests when two hosts that are initially unknown to one another
  attempt to get in touch.  Since the destination did not receive the
  ARP request, it must contact the ARP server when its higher level
  protocols first generate a datagram to respond to the the source's
  first IP datagram to go through to the destination.
  The source configuration file described in the previous section was
  explicitly designed so that it could be sufficient as a data base for
  an ARP server as well as an individual host.

BROADCAST ARP

  When a local HYPERchannel network contains a broadcast capability,
  any IP driver wishing to perform HYPERchannel address resolution may
  be configured to emit the ARP message on a broadcast instead of a
  well known address.  IP drivers on other hosts are presumed to know
  if their local HYPERchannel interface can send broadcast messages; if
  so, they arrange to "listen" on the FF07 broadcast TO address for
  ARP.
  Processing of a received ARP broadcast message is otherwise identical


Hardwick & Lekashman [Page 36]

RFC 1044 IP on Network Systems HYPERchannel February 1988


  to RFC-826:
   o   Messages are responded to if and only if the destination IP
       driver is authoritative for the designated IP address.
   o   Whenever an ARP message is processed, the IP driver takes the
       source HYPERchannel address and MTU size and adds it to its
       address resolution tables.  Thus the driver is equipped to
       turn around the IP datagram that arrives from the destination
       host when contact is made.
  Each IP driver may have address resolutions that are set through a
  static routing table (the configuration file specified above).  If
  ARP information arrives that contradicts a static entry (as opposed
  to previously set dynamic ARP information) then the ARP information
  should be ignored.  This decision is made on the premise that the
  only useful purpose of static routing in a broadcast ARP environment
  is to add authentication, as it's easy to lie with ARP.

















Hardwick & Lekashman [Page 37]

RFC 1044 IP on Network Systems HYPERchannel February 1988


APPENDIX A. NSC PRODUCT ARCHITECTURE AND ADDRESSING

  This section is intended to be a concise review of the state of the
  art in NSC networks and the techniques they provide for the delivery
  of messages.  Those who are thoroughly familiar with HYPERchannel may
  wish to only skim this section; however, there is material on new
  technologies and addressing formats that are not yet generally known
  to most of NSC's customers.

NETWORK SYSTEMS HYPERCHANNEL TECHNOLOGIES

  Network Systems manufactures several different network technologies
  that use very different media and link controls, but still provide a
  common host interface in both the protocol and hardware sense of the
  term.  These four technologies are:
   o   HYPERchannel A -- A 50-megabit, baseband, CSMA with collision
       avoidance  network using a coaxial cable bus.  Individual
       HYPERchannel "network adapters" can control up to 4 of these
       coaxial cable "trunks,"  providing up to 200 megabits of
       capacity on a fully interconnected network.  HYPERchannel A
       is NSC's earliest product and has been in production since
       1977.  It is principally used to interconnect larger
       mainframe computers and high speed mainframe peripherals such
       as tape drives and laser printers.
   o   HYPERchannel  B -- a 10-megabit, baseband, CSMA with collision
       avoidance network using a single coaxial cable bus.  This
       technology is used for direct host to host communications under
       the name HYPERchannel B, and for terminal connections under the
       name HYPERbus.  It is currently used for three major
       applications -- local networks of ASCII terminals, networks
       of IBM 3270 terminals, and host to host communications of
       smaller computers.
   o   DATAPIPE[3]  --  a 275-megabit fiber optic "backbone" network
       that interconnects lower speed local area networks within a 20
       mile range, and to provide an ultra-high-performance network for
       the next generation of supercomputers and optical storage
       systems.  A prototype version of DATApipe is currently under
       development at a customer site.
   o   Bridges and Network Distance Extensions -- NSC quickly
       discovered that its customers wanted very high speeds over
       geographic areas, not just within the range of several miles
       that is conceivable with a coaxial cable network.  Starting
       in 1978, NSC began to build a series of "link adapters" that
       are integral bridges between local area networks.  These link


Hardwick & Lekashman [Page 38]

RFC 1044 IP on Network Systems HYPERchannel February 1988


       adapters support common high speed communications media such
       as Telco T1 circuits, private microwave, high speed
       satellite links, and fiber optic point to point connections.

ATTACHMENT TO HOST COMPUTERS

  Network Systems' high speed interfaces use the attachment techniques
  of the manufacturer's highest speed peripheral controllers in order
  to achieve burst transfer rates of tens of megabits per second.
  These attachment techniques fall into three categories:

"MAINFRAME" DATA CHANNEL ATTACHMENT

     +-----------+-------+                   +------------+  | | | |
     |           |       |                   |HYPERchannel+--+ | | |
     |           |       +-------------------+  Network   +--|-+ | |
     | Host      |  I/O  +-------------------+  Adapter   +--|-|-+ |
     |           |       |   Standard host   |            +--|-|-|-+
     | Computer  |Control|    data channel   +------------+  | | | |
     |           |       |
     |           |       |
     |           |       |
     |           |       |
     +-----------+-------+
  The network adapter contains interface boards and firmware to be
  cabled to the manufacturer's data channel, such as would be done with
  a disk or tape controller.  Mainframe network adapters do not emulate
  an existing manufacturer's device (such as a tape drive) but are
  supported by software which functions the channel and adapter to send
  and receive network messages.
  Models of HYPERchannel adapters are available for essentially all
  large scale computers worldwide.










Hardwick & Lekashman [Page 39]

RFC 1044 IP on Network Systems HYPERchannel February 1988


MINICOMPUTER AND WORKSTATION ATTACHMENT

  Since the network adapter contains lots of expensive, high speed
  logic, a different technique is used to provide attachment to
  minicomputers and workstations.
     +-------------+        +---------------+       +--------------+
     |             |        |               |       |              |
     | Minicomputer|        |  Supermini    |       | Workstation  |
     |             |        |               |       |              |
     +-----+-------+        +-------+-------+       +-------+------+
     |     |  DMA  |        |       |  DMA  |       |  DMA  |      |
     |     |control|        |       |control|       |control|      |
     +-----+---++--+        +-------+--++---+       +--++---+------+
               ||                      ||              ||
               ||                      ||              ||
               |+----------+           ||    +---------+|
               +----------+|           ||    |+---------+
                          ||           ||    ||
                        +-++--+-----+--++-+--++-+
                        |     |     |     |     |
                        +-----+-----+-----+-----+
                        |         x400          |
                        |    Network Adapter    |
                        |                       |
                        +-------+-+-+-+---------+
                                | | | |
              ------------------|-|-|-+----------------
              ------------------|-|-+------------------
              ------------------|-+--------------------
              ------------------+----------------------
  In this case, NSC provides a DMA controller designed for direct
  connection to that minicomputer's backplane bus.  These DMA
  controllers accept functions and burst blocks of data from host
  memory to a channel cable that is connected to one of four ports on a
  "general purpose computer adapter."  This adapter multiplexes
  transmissions to and from the HYPERchannel trunks from up to four
  attached processors.







Hardwick & Lekashman [Page 40]

RFC 1044 IP on Network Systems HYPERchannel February 1988


NETWORK COPROCESSORS

  For about 10 different bus systems, Network systems provides a
  "smart" DMA controller containing onboard memory and a Motorola 68010
  protocol processor.
      +------------+-----+---------------+-------+
      |            |     |   Coprocessor |       |        +--------+
      |            |Host |    MC 68010   |Adapter+--------+  x400  |
      |    HOST    |DMA  |   256K memory |  DMA  +--------+ Adapter|
      |            |     |               |       |        +--------+
      |    Memory  +-----+---------------+-------+
      |            |
      +------------+
  This class of interface works through the network coprocessor's
  direct access to host memory.  Network transmit and receive request
  packets are placed in a common "mailbox" area and extracted by the
  coprocessor.  The coprocessor reads and writes system memory as
  required to service network requests in the proper order.  The
  coprocessors currently provide a service to read or write network
  messages (called Driver service as it is more or less identical to
  HYPERchannel dumb DMA drivers) and a service for NETEX, which is
  NSC's OSI-like communications protocol.














Hardwick & Lekashman [Page 41]

RFC 1044 IP on Network Systems HYPERchannel February 1988


APPENDIX B. NETWORK SYSTEMS HYPERCHANNEL PROTOCOLS

  The protocols implemented by NSC within its own boxes are designed
  for the needs of the different technologies.  A compact summation of
  these protocols is:
     HYPERchannel B         HYPERchannel A            DATApipe
    10 Mbits/second       50-200 Mbits/second     275 Mbits/second
+----------------------+----------------------+---------------------+
|                                                                   |
|                  HYPERchannel network message                     |
|                 connectionless datagram protocol                  |
|                                                                   |
+----------------------+----------------------+---------------------+
|    "HYPERchannel     |                      |                     |
|  compatibility mode" |    HYPERchannel A    |     DATApipe        |
|   Virtual circuit    |   reservation and    |   acknowledgment    |
|   estab. & control   |    flow control      |    & flow control   |
+----------------------+      protocol        |      protocol       |
|                      |                      |                     |
|  Virtual Circuits    |                      |                     |
|    Flow Control      |                      |                     |
+----------------------+----------------------+---------------------+
|    CSMA / VT         |      CSMA / CA       |                     |
|  frame (datagram)    |  frame (datagram)    | TDMA packet delivery|
|    delivery and      |   delivery and       |                     |
|   acknowledgment     |  acknowledgment      |                     |
+----------------------+----------------------+---------------------+
|                      |                      |    Fiber optics     |
|     75 ohm coax      |  1-4 75 ohm coax     | (various cable sizes|
|       cable          |      cables          |  and xmission modes)|
+----------------------+----------------------+---------------------+
  Without getting into great detail on these internal protocols, a few
  points are particularly interesting to system designers:
   o   All three technologies supply the same interface to the host
       computer or network coprocessor, a service to send and receive
       network messages that are datagrams from the host's vantage in
       that each contains sufficient information to deliver the message
       in and of itself.  Since this datagram and its header fields are
       of paramount interest to the host implementor, it is discussed
       in detail below.
   o   All technologies use acknowledgments at a very low level to
       determine if packets  have been successfully delivered.  In
       addition to permitting  a highly tuned contention mechanism for
       the coax medium, it also permits HYPERchannel A to balance the


Hardwick & Lekashman [Page 42]

RFC 1044 IP on Network Systems HYPERchannel February 1988


       load over several coax cables -- a feat that has proven very
       difficult on, for example, Ethernet.
   o   All boxes go to some lengths to assure that resources exist
       in the receiving box before actual transmission takes place.
       HYPERchannel B uses a virtual circuit that endures for several
       seconds of inactivity after one host first attempts to send a
       message to the other.  Traffic over this "working virtual
       circuit" is flow controlled from source to destination and
       buffer resources are reserved for the path.
  HYPERchannel A exchanges frames at very high rates to determine that
  the receiver is ready to receive data and to control its flow as data
  moves through the network.
  DATApipe propagation time is relatively long compared to the time
  needed to send an internal packet of 2K-4K bytes.  As a result,
  DATApipe controllers use a streamlined TP4-like transport protocol to
  assure delivery of frames between DATApipe boxes.

REFERENCES

     [1]   HYPERchannel is a trademark of Network Systems Corporation.
     [2]   Plummer, D., "An Ethernet Address Resolution Protocol",
           RFC-826, Symbolics, September 1982.
     [3]   DATApipe is a registered trademark of Network Systems
           Corporation.












Hardwick & Lekashman [Page 43]