diff options
Diffstat (limited to 'doc/rfc/rfc1044.txt')
-rw-r--r-- | doc/rfc/rfc1044.txt | 2405 |
1 files changed, 2405 insertions, 0 deletions
diff --git a/doc/rfc/rfc1044.txt b/doc/rfc/rfc1044.txt new file mode 100644 index 0000000..b7d29d3 --- /dev/null +++ b/doc/rfc/rfc1044.txt @@ -0,0 +1,2405 @@ +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 + lekash@orville.nas.nasa.gov + + 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] + |