home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_j_p / draft-ietf-pktway-protocol-eep-spec-02.txt < prev    next >
Text File  |  1997-10-15  |  55KB  |  1,333 lines

  1. Network Woking Group                                         Danny Cohen
  2. Internet Draft                                                   Myricom
  3. Expire in six months                                          Craig Lund
  4.                                                        Mercury Computers
  5.                                                            Tony Skjellum
  6.                                             Mississippi State University
  7.                                                             Thom McMahon
  8.                                             Mississippi State University
  9.                                                            Robert George
  10.                                             Mississippi State University
  11.                                                             October 1997
  12.  
  13.              The End-to-End (EEP) PacketWay Protocol for 
  14.           High-Performance Interconnection of Computer Clusters
  15.               <draft-ietf-pktway-protocol-eep-spec-02.txt>
  16.  
  17. Status of this Memo
  18.  
  19.      This document is an Internet-Draft.  Internet-Drafts are working
  20.      documents of the Internet Engineering Task Force (IETF), its
  21.      areas, and its working groups.  Note that other groups may also
  22.      distribute working documents as Internet-Drafts.
  23.  
  24.      Internet-Drafts are draft documents valid for a maximum of six
  25.      months and may be updated, replaced, or obsoleted by other
  26.      documents at any time.  It is inappropriate to use Internet-
  27.      Drafts as reference material or to cite them other than as
  28.      "work in progress."
  29.  
  30.      To view the entire list of current Internet-Drafts, please check
  31.      the "1id-abstracts.txt" listing contained in the Internet-Drafts
  32.      Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
  33.      (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
  34.      Coast), or ftp.isi.edu (US West Coast).
  35.  
  36.  
  37. Table of Content:
  38.  
  39.     1.  Introduction...................................................2
  40.     1a.  PktWay and IP.................................................2
  41.     1b.  General.......................................................4
  42.     1c.  The Level-2 Operation of PktWay...............................5
  43.     2.  A note about the PktWay documents..............................6
  44.     3.  Notations......................................................7
  45.     4.  PktWay EEP Messages............................................7
  46.     4a.  The PktWay Message Structure..................................7
  47.     4b.  The Optional Fields...........................................8
  48.     5.  Optional Sequence of L2RHs and Symbols.........................9
  49.     5a.  L2 Routing Headers (L2RHs)....................................9
  50.     5b.  Symbols......................................................11
  51.     6.  EEP Header....................................................12
  52.     6a.  Version......................................................12
  53.     6b.  Priority.....................................................12
  54.     6c.  Destination-Type.............................................13
  55.     6d.  Packet Type Extension........................................14
  56.     6e.  Packet Type..................................................14
  57.     6f.  Endianness...................................................15
  58.     6g.  Padding Length...............................................15
  59.     6h.  Data Length..................................................15
  60.     6i.  Options flag.................................................15
  61.     6j.  Reserved.....................................................15
  62.     6k.  Source Address...............................................16
  63.     7.  Optional Header Fields........................................16
  64.     8.  Optional Data Block...........................................17
  65.     9.  Optional Trailer Fields.......................................17
  66.    10.  EEP Trailer...................................................18
  67.    11.  Appendix-A: Recommendation for PktWay Address Assignment......18
  68.    12.  Appendix-B: Glossary..........................................19
  69.    13.  Appendix-C: Acronyms and Abbreviations........................20
  70.    14.  Appendix-D: PktWay at a Glance ("cheat-sheet")................22
  71.    15.  Security Considerations.......................................23
  72.    16.  Editor's Address..............................................23
  73.  
  74. Cohen et al                                                    [Page  1]
  75.  
  76. Internet-Draft         PktWay End-to-End Protocol           October 1997
  77.  
  78.  
  79. 1. Introduction
  80.  
  81.    PktWay is an open family of specifications for inter-networking high
  82.    performance SANs (System Area Networks) and high performance LANs
  83.    (Local Area Networks) into computing clusters.
  84.  
  85.    Most modern SANs have much in common, such as high data rates, low
  86.    message latency and low bit error rates.  Such SANs are often packet
  87.    networks made of point-to-point links with flow control and source
  88.    routing.  Yet these SANs do not provide heterogeneous networking
  89.    support, and are subsequently incapable of direct inter-
  90.    communications with other SANs.  PktWay's goal is to provide high
  91.    performance "internetting" of such SANs and of high performance LANs.
  92.  
  93.    The core PktWay protocol comprises the End-to-End Protocol (EEP) and
  94.    the Router-to-Router-Protocol (RRP).  This document specifies the EEP
  95.    (End-to-End) protocol of PktWay.  A companion document
  96.    ("Specification for the Router-to-Router (RRP) PktWay Protocol")
  97.    specifies the Router-to-Router protocol of PktWay.
  98.  
  99.    Computing clusters and modern MPPs (Massively Parallel Processing
  100.    systems) are sets of processors interconnected by high performance
  101.    SANs.  Examples are Intel's Paragon and ASCI-red, CRAY's T3D and T3E,
  102.    and IBM's SP2 and SP3.  Most modern SANs have much in common, such as
  103.    high data rates, low message latency and low bit error rates.  Such
  104.    SANs are often packet networks made of point-to-point links with flow
  105.    control and source routing.
  106.  
  107.    Unfortunately, there is no efficient way to "internet" these SANs -
  108.    to allow each computing node to have high performance communication
  109.    directly with any other computing node, in any other interconnected
  110.    SAN.  Hence, there is no way to interconnect such high performance
  111.    SANs to form as efficient computing cluster as possible.
  112.  
  113.    The objective of PktWay is to provide high performance communication
  114.    among all the processors in a cluster of tightly coupled
  115.    heterogeneous SANs.  PktWay borrows heavily from the experience and
  116.    wisdom of IP, with a few modifications needed for high performance.
  117.    PktWay sacrifices generality and scalability to improve performance.
  118.  
  119.    1a. PktWay and IP
  120.  
  121.       IP is the general solution for "internetting" heterogeneous
  122.       diverse networks, proven for over 25 years.  However, IP was
  123.       designed for the generality required for Wide Area Networks,
  124.       without regard to the high performance requirements of tightly
  125.       coupled systems.  In addition, IP was designed to addresses
  126.       "systems" rather than individual processors in MPPs (as PktWay
  127.       does).  For example, a 9,000 processor system is not expected to
  128.       be assigned 9,000 IP addresses.
  129.  
  130.  
  131. Cohen et al                                                    [Page  2]
  132.  
  133. Internet-Draft         PktWay End-to-End Protocol           October 1997
  134.  
  135.  
  136.       PktWay is slightly below IP in the OSI Reference Model.  It has
  137.       many Level-3 features, like IP, but also can support IP as if
  138.       PktWay was a Level-2 protocol.  Hence, it is below IP.  In
  139.       addition, PktWay supports Level-2 optimizations (such as source
  140.       routing).
  141.  
  142.       Like IP, as a heterogeneous network layer, PktWay packets are
  143.       transported by the native data-link layer of each SAN.  As a
  144.       result, PktWay packets are encapsulated with any native routing
  145.       headers and trailers as required by the local network fabric.
  146.  
  147.       Like IP, PktWay uses routers between its SANs.  When an HR
  148.       (half-router) receives a packet for a destination on its own
  149.       SAN it forwards that packet directly to its destination.  If
  150.       the packet is for a destination out of this SAN, the HR forwards
  151.       it to another HR which is en route to that destination.
  152.  
  153.       Unlike IP, RRP defines the communication among the HRs both
  154.       intra-router and inter-router.  In the IP environment only the
  155.       intra-router communication is not defined, only the inter-router
  156.       communication.
  157.  
  158.       Unlike IP, the PktWay routers do not have to pop each packet back
  159.       to Level-3, and are capable of operating entirely at Level-2, if
  160.       this operation is requested by the communicating hosts.  This
  161.       Level-2 operation is discussed later in this introduction.
  162.  
  163.       Like IP, the PktWay protocol utilizes the native capabilities of
  164.       its constituent SANs and routers.  PktWay defines neither how each
  165.       HR maps the network in the SAN to which it is attached, nor how
  166.       each half-router constructs SAN-headers for each of its hosts.
  167.       The PktWay protocol also does not define how error-checking is
  168.       conducted by each SAN (e.g., CRC8, CRC32, CRC64, or anything
  169.       else).  Instead, PktWay assumes that these capabilities are native
  170.       to each SAN, and defines only how these maps are exchanged, and
  171.       how these error indications are carried from where they were
  172.       detected, to the destination node.
  173.  
  174.       Like IP, the PktWay protocol defines neither how routes are
  175.       selected, nor what corrective actions should be taken in case of
  176.       faults.  Instead, PktWay provides the information needed by the
  177.       host nodes for devising routes and detecting and circumventing
  178.       faults.
  179.  
  180.       Like in IP environments, when hosts are powered up they may
  181.       contact their default half-routers to register themselves and to
  182.       inquire about other hosts (by name or node capabilities).  This
  183.       registration could be used in support of dynamic discovery
  184.       procedures.  The half-routers may help nodes discover each other
  185.       (like IP's DNS) and may provide routing alternatives, possibly
  186.       with different characteristics (e.g., MTU, length, and cost).
  187.       The PktWay protocol does not specify how to choose among them.
  188.  
  189. Cohen et al                                                    [Page  3]
  190.  
  191. Internet-Draft         PktWay End-to-End Protocol           October 1997
  192.  
  193.  
  194.       To sum it all up, PacketWay has learned many lessons from IP, but
  195.       has been heavily optimized for high performance SANs, while IP is
  196.       the protocol of choice for WANs.
  197.  
  198.  
  199.    1b. General
  200.  
  201.       PktWay supports resource discovery, by name or capabilities.
  202.  
  203.       PktWay's unit of data is 64-bit long (8 bytes).  Hence, a PktWay
  204.       packet is always a multiple of 8B quantities.  PktWay provides
  205.       hosts with padding as required.
  206.  
  207.       PktWay iself is big-Endian 8B-word based.  Hence, the terms "first
  208.       bit" and "first byte" are equivalent to MSbit and MSByte.
  209.  
  210.       PktWay handles the Little vs. Big-Endian issue for its payload by
  211.       providing a field in the EEP header which defines the endianness
  212.       and "the chunk-size" of the data in the payload (Data Block).  The
  213.       intent is that byte-swapping hardware, if any, could be used to
  214.       invert the endianness of payloads with uniform data elements
  215.       (e.g., all the data being 32-bit floating point).  Although this
  216.       approach does not address the problems of transporting general
  217.       structures (e.g., a "struct" of C), it does allows the
  218.       participation of smart memory cards as PktWay nodes, as well as
  219.       supporting direct memory access (DMA) operations.
  220.  
  221.       The PktWay protocol is designed to allow wormhole (or
  222.       "cut-through") forwarding, in which a router can start forwarding
  223.       packets after receiving the first four bytes only (that include
  224.       the PktWay-protocol version, priority, and the destination-type)
  225.       without waiting for information that may not be needed for the
  226.       packet forwarding task.  This is unlike IP routers that receive
  227.       the sender address before receiving the destination address, even
  228.       though the former is not always needed whereas the latter is.
  229.  
  230.       PktWay's addresses are short (23 bits) because, unlike IP, PktWay
  231.       is not designed for global operation.  The amount of state that is
  232.       stored in the half-routers per node (type, name, paths,
  233.       capabilities, etc.)  makes it impractical for scalability beyond a
  234.       few tens (hundreds?) of thousands of nodes, over a (relatively)
  235.       small number of SANs.
  236.  
  237.       PktWay does not support SAR (Segmentation And Reassembly).
  238.       Instead, it provides means for hosts to discover the minimum
  239.       transmission unit (MTU) over several alternative paths to any
  240.       other node.  A PktWay packet must never exceed the minimum MTU
  241.       along all the network hops from the source node to the destination
  242.       node.
  243.  
  244.  
  245.  
  246. Cohen et al                                                    [Page  4]
  247.  
  248. Internet-Draft         PktWay End-to-End Protocol           October 1997
  249.  
  250.  
  251.       Several protocol extensions, which are layered on the core PktWay
  252.       protocol, have been defined.  These include dynamic resource and
  253.       routing discovery, secure PktWay, and multicast PktWay.  These
  254.       protocol extensions will be described in documents to be provided
  255.       later.
  256.  
  257.       1c. The Level-2 Operation of PktWay
  258.  
  259.       PktWay's goal is to move data from a source node, (on some
  260.       arbitrary SAN) to a destination node, (either on the same SAN, or
  261.       on another SAN).  Sources and destinations can be physical
  262.       entities, such as a processor or a smart memory board, or logical
  263.       entities, such as a group of cooperating processes or a collection
  264.       of threads.  Sources, destinations, and routers are such nodes.
  265.  
  266.       Within each PktWay configuration all nodes have unique 23-bit
  267.       physical PktWay addresses.  A system designer can assign these
  268.       PktWay addresses manually.  Alternatively, the optional PktWay
  269.       Server Layer may provide a way to assign and discover addresses
  270.       dynamically.  Throughout this document "address" always means the
  271.       23-bit physical PktWay address.
  272.  
  273.       To optimize for performance, PktWay has a data transfer mode that
  274.       directly leverages the native message routing schemes used within
  275.       each SAN.  This mode uses a "Planned Transfer" paradigm.  During
  276.       the planning phase, a source node collects information on optimal
  277.       routes to a destination, expressed in the various native formats
  278.       of all the intervening SANs.  A source node later uses this
  279.       information for low latency transfers to that destination.  In
  280.       PktWay, the transfer phase of a Planned Transfer is called
  281.       "L2-forwarding".  The RRP document demonstrates the use of
  282.       L2-forwarding.
  283.  
  284.       PktWay also supports a more traditional data transfer mode that
  285.       requires no planning.  Such transfers specify the destinations by
  286.       their addresses only.  In PktWay, this more traditional approach
  287.       is called "L3-forwarding".
  288.  
  289.       PktWay packets may be routed by Level-2 (L2) forwarding, Level-3
  290.       (L3) forwarding, or a combination thereof.
  291.  
  292.       In L3-forwarding (similar to IP forwarding), the L2-routing
  293.       through each SAN is determined by an inter-SAN router upon
  294.       entering that SAN.  The router prefixes the packet with an L2
  295.       routing header (such as a source route) corresponding to the
  296.       destination address specified in the packet directing the packet
  297.       either to its destination or to an intermediate router.  It is a
  298.       task for that router to determine the L2-routing-header
  299.       corresponding to the given PktWay-address.
  300.  
  301.  
  302.  
  303. Cohen et al                                                    [Page  5]
  304.  
  305. Internet-Draft         PktWay End-to-End Protocol           October 1997
  306.  
  307.  
  308.       In L2-forwarding the source prefixes the packet with all the
  309.       L2-routing headers needed along the entire path to the
  310.       destination.  Each router has only to get the L2-routing-header
  311.       from the leading L2RH (L2-Routing-Header record) that was provided
  312.       by the source.
  313.  
  314.       PktWay allows hosts to construct a source-route built entirely of
  315.       Level-2 headers, allowing each SAN to exploit the full performance
  316.       of its native interconnection fabric.  These SAN-headers
  317.       (equivalent to MAC-headers) are provided by the SANs that will use
  318.       them, in their native format.  PktWay does not define the format
  319.       of the local routing envelope.  Instead, it defines how the
  320.       encapsulated PktWay packets should be passed between half-routers,
  321.       leaving it up to the local network of each SAN to properly deliver
  322.       the packet.
  323.  
  324.       If hosts so prefer, they can address their destinations either by
  325.       any arbitrary name, a PktWay physical address (which is handled
  326.       like the Level-3 IP-address), or by concatenating a sequence of
  327.       Level-2 SAN-headers.  Although the generation of a sequence of L2
  328.       Routing Headers requires more effort to construct initially,
  329.       PktWay source routing results in considerably lower network
  330.       latencies, as the packets are allowed to cut-through route through
  331.       the intervening SAN networks .
  332.  
  333.  
  334.  
  335. 2. A note about the PacketWay Documents
  336.  
  337.    The PacketWay protocol is defined by a series of documents: 
  338.       * EEP (End-to-End Protocol) 
  339.       * RRP-1 (basic Router-to-Router Protocol) 
  340.       * RRP-2 (dynamic inter-SAN routing) 
  341.       * PktWay enumerations
  342.  
  343.    Each of these documents should include the same "PacketWay at a
  344.    Glance (Cheat-Sheet)", this note, and the Notations page.  They
  345.    should include also (as appendices) a copy of the PacketWay glossary
  346.    of terms and its acronyms and abbreviations list.
  347.  
  348.    The EEP and the RRP documents will be published first as
  349.    Internet-Drafts and later as Proposed-Standards, Draft-Standards,
  350.    and Standards.
  351.  
  352.    The Enumeration Document will be first published as an
  353.    "Informational-RFC" and later will be maintained by IANA.
  354.  
  355.    The enumeration document may be attached to the EEP/RRP documents, as
  356.    a matter of convenience.  The enumeration is NOT a part of the PktWay
  357.    standard, just as RFC0739 (the original "Assigned Numbers" RFC) is
  358.    not a part of RFC0791, that defines IP.
  359.  
  360. Cohen et al                                                    [Page  6]
  361.  
  362. Internet-Draft         PktWay End-to-End Protocol           October 1997
  363.  
  364.    Similarly, the EEP-document has "Appendix-A: A Recommendation for
  365.    PktWay Address Assignment" which is a recommendation only and NOT
  366.    a part of the PktWay standard, just as IP-address-assignment is not
  367.    a part of RFC0791, that defines IP.
  368.  
  369.    The appendices are brought for clearance and convenience.  They are
  370.    not a part of the PktWay specification.
  371.  
  372.    Information about the PktWay activity may be found in the URL:
  373.    http://www.erc.msstate.edu/PktWay/
  374.  
  375.  
  376. 3. Notations
  377.  
  378.    The shorter "PktWay" is used for "PacketWay".
  379.  
  380.    8B means "8-byte" (64 bits).
  381.  
  382.    0x indicates hexadecimal values,  e.g., 0x0100 is 2^8=256(decimal).
  383.  
  384.    0b indicates binary values, e.g., 0b0100 is 4(decimal).
  385.  
  386.    xxxx indicate a field that is discarded without any checking (e.g.,
  387.         padding).
  388.  
  389.    [fff] indicates that fff is an optional field, when appropriate.
  390.  
  391.    [exp] in equations, is the integral part, rounded down, of `exp`.
  392.          e.g., [23/8]=2.
  393.  
  394.    All length fields do not include themselves, and therefore may be
  395.    zero.
  396.  
  397.    Lengths are specified either (a) by byte count, implying that some
  398.    padding bytes may follow to fill 8B-words, or (b) by 8B-word count
  399.    and PL, the number of trailing padding bytes (with PL between 0
  400.    and 7).
  401.  
  402.  
  403.  
  404. 4. PktWay EEP Messages
  405.  
  406.    4a. The Pktway Message Structure
  407.  
  408.       PktWay messages have 6 components, including 4 optional ones:
  409.  
  410.       [1]: [Optional Sequence of L2-Routing-Headers and Symbols] 
  411.       [2]: EEP Header (16 bytes) (PH) 
  412.       [3]: [Optional Header fields] (OH) 
  413.       [4]: [Optional, Most likely: Data Block] (DB) 
  414.       [5]: [Optional Trailer fields] (OT) 
  415.       [6]: EEP Trailer (8 bytes) (TAIL)
  416.  
  417.  
  418. Cohen et al                                                    [Page  7]
  419.  
  420. Internet-Draft         PktWay End-to-End Protocol           October 1997
  421.  
  422.  
  423.    4b. The Optional Fields
  424.  
  425.       [1]: as explained later, if the 9th+10th bits of a messages are
  426.            0b10 then the message starts with an L2RH, but if the 9th
  427.            through the 12th bits of a message are 0b1111 then this
  428.            message starts with a "symbol".  The other values of these
  429.            4 bits indicate the lack of L2RH and symbols and that the
  430.            message begins with the EEP-header.
  431.  
  432.       [3]: if the h-bit in the EEP header [2] is 1 then there are
  433.            optional header (OH) fields.  The sequence of these OH fields
  434.            is terminated with an OH field marked as being the last one
  435.            (with C=1).
  436.  
  437.       [4]: if DL>0, in the EEP header, zero then a Data Block (DB) is
  438.            included in this message.
  439.  
  440.       [5]: the optional header fields, [3], may indicate that some
  441.            optional trailer fields are present after the DB, [4].  The
  442.            order and the formats of the trailer fields are defined by
  443.            the optional header fields.
  444.  
  445.       It is expected that most messages will have Data Blocks (DB), and
  446.       that most messages will not have Optional Header fields (OH), nor
  447.       Optional Trailer fields (OT).
  448.  
  449.       Leading L2RHs and symbols [1] are consumed by the HRs before
  450.       reaching the destination which receives only the other components,
  451.       [2] through [6].  These parts, [2] to [6], constitute the
  452.       End-to-End Protocol of PktWay.
  453.  
  454.       TAIL, the EEP trailer, [6] may be modified along the way to the
  455.       destination, unlike [2], [3], [4] and [5], which arrive exactly as
  456.       sent by the source.
  457.  
  458.       Each PktWay packet may be first L2-forwarded (zero or more times)
  459.       before being L3-forwarded (zero or more times).
  460.  
  461.       Although PktWay headers and trailers are always in Big Endian
  462.       order, the byte order of the Data Block is not defined by PktWay.
  463.  
  464.       Since all the elements of PktWay (L2RHs, EEP-headers, optional
  465.       fields, data, and EEP-trailers) are always multiples of 8B-words,
  466.       it is recommended that PktWay headers (and data) be aligned on
  467.       8B-boundaries in the nodes' memory.
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475. Cohen et al                                                    [Page  8]
  476.  
  477. Internet-Draft         PktWay End-to-End Protocol           October 1997
  478.  
  479.  
  480. 5. Optional Sequence of L2RHs and Symbols [1]
  481.  
  482.    PktWay messages may start with a mix of L2RHs and symbols.
  483.  
  484.    A PktWay source may specify native routes, by placing the native
  485.    routes before the PktWay Header.  The native routes (for all SANs and
  486.    LANs beyond the initial one) must appear within a sequence of PktWay
  487.    L2-Routing-Header records (L2RH).
  488.  
  489.    In certain situations symbols may be included among the L2RHs.  These
  490.    symbols are used for conveying information to the routers that handle
  491.    the messages, such as about encryption.  A symbol does not specify
  492.    its destination and is processed (and consumed) by the entity that
  493.    encounters it.
  494.  
  495.    In L2-forwarding each intermediate HR consumes an L2RH and the
  496.    preceeding symbols (if any).  When a packet reaches its destination
  497.    all of [1] (the Optional Sequence of L2RHs and Symbols) should be
  498.    consumed.
  499.  
  500.    5a. L2 Routing Headers (L2RHs) Records
  501.  
  502.       The contents of the L2RH are totally SAN dependent, with the
  503.       exception of the first 2 bytes that distinguish this record from
  504.       an EEP-header and also provide the Length (0<L<64) indicating the
  505.       number of routing bytes of that L2RH (not including these 2
  506.       bytes).
  507.  
  508.       This distinction (between L2RHs and EEP-headers) is necessary for
  509.       routers that L2-forward packets starting with L2RHs, but
  510.       L3-forward packets starting with EEP-headers.  Similarly, hosts
  511.       expect packets to start with EEP-headers (with optionally
  512.       preceeding symbols), and may discard packets that start with
  513.       L2RHs.
  514.  
  515.       It's up to each SAN to provide padding, as needed, to fill the
  516.       L2RH words.
  517.  
  518.       Each L2RH is defined by the entity that will process it.  In
  519.       addition to routing information per se, it may also include
  520.       demuxing information such as a local message-type.  For example,
  521.       over Myrinet the L2RH should end with 0x0300 which is the
  522.       Myrinet-type assigned to PktWay (and possibly some padding, too).
  523.  
  524.       The L2RH must contain enough information to allow a router to
  525.       create any necessary local routing headers and trailers.  Although
  526.       the low-level network implementation is beyond the scope of this
  527.       document, the native source routing format must be documented in
  528.       sufficient detail to allow for heterogeneous network
  529.       interoperability.
  530.  
  531.  
  532. Cohen et al                                                    [Page  9]
  533.  
  534. Internet-Draft         PktWay End-to-End Protocol           October 1997
  535.  
  536.  
  537.       When a PktWay message is encapsulated inside any native SAN
  538.       message (Paragon or Myrinet, for example), it's up to that SAN to
  539.       distinguish between it and its own native packets.  This is not a
  540.       PktWay issue.  For example, Myrinet uses its Message-Type to
  541.       recognize PktWay messages.
  542.  
  543.       PktWay-Routers on boundaries between SANs L2-forward packets
  544.       starting with L2RH or L3-forward packets starting with
  545.       EEP-headers.  L2RH are distinguished from EEP-headers by the value
  546.       of the first two bits of the Destination-Type field.
  547.  
  548.       5a1. L2RH FORMAT:
  549.  
  550.          Each L2RH is in the format:
  551.  
  552. +--------+--------+--------+--------+--------+--------+--------+--------+
  553. |vv000000|10LLLLLL|  SR01  |  SR02  |........|........|........|  xxxx  |
  554. +--------+--------+--------+--------+--------+--------+--------+--------+
  555.           ^^
  556.  
  557.          The first 2 bits are vv=0b00 for the working version of the
  558.          protocol.  They may have other values for experimental
  559.          versions.
  560.  
  561.          The next 6 bits should be all zeroes.
  562.  
  563.          The next two bits must be 0b10 to indicate that this is an L2RH
  564.          record.  This 0b10 was chosen to be consistent with the 0b10 of
  565.          PktWay-addresses, as described in [2] below.
  566.  
  567.          The next 6 bits are the byte count (L) of the routing
  568.          information that starts in the next byte and is followed by as
  569.          many padding bytes as needed to fill to the next 8B-boundary.
  570.  
  571.          L does not include itself, hence it could be between 0 and 63.
  572.          However, since this record contains some routing bytes, L is
  573.          greater than 0.  The total number of 8B-words in the L2RH is
  574.          [(L+9)/8] where the square brackets indicate the integer part,
  575.          rounded down, of the quantity within.  Therefore, the number of
  576.          padding bytes is PL=8*[(L+9)/8]-2-L.
  577.  
  578.       5a2. L2RH EXAMPLES:
  579.  
  580.          An L2RH with an SR with 5 routing bytes:
  581.  
  582.         0b10   L=5    #1       #2       #3       #4       #5    padding
  583. +--------+--------+--------+--------+--------+--------+--------+--------+
  584. |vv000000|10000101|  SR01  |  SR02  |  SR03  |  SR04  |  SR05  |  xxxx  |
  585. +--------+--------+--------+--------+--------+--------+--------+--------+
  586.           ^^ |<---------- routing information ----------->|
  587.  
  588.  
  589. Cohen et al                                                    [Page 10]
  590.  
  591. Internet-Draft         PktWay End-to-End Protocol           October 1997
  592.  
  593.  
  594.          An L2RH with an SR with 13 routing bytes:
  595.  
  596.         0b10  L=13    #1       #2       #3       #4       #5       #6
  597. +--------+--------+--------+--------+--------+--------+--------+--------+
  598. |00000000|10001101|  SR01  |  SR02  |  SR03  |  SR04  |  SR05  |  SR06  |
  599. +--------+--------+--------+--------+--------+--------+--------+--------+
  600. |  SR07  |  SR08  |  SR09  |  SR10  |  SR11  |  SR12  |  SR13  |  xxxx  |
  601. +--------+--------+--------+--------+--------+--------+--------+--------+
  602.     #7       #8       #9       #10      #11      #12      #13    padding
  603.  
  604.  
  605.  
  606.  
  607.    5b. Symbol Records
  608.  
  609.       5b1. Symbol Format:
  610.  
  611.          Each symbol is in the format:
  612.  
  613. +--------+--------+--------+--------+--------+--------+--------+--------+
  614. |vv000000|1111ssss|ssssssss|ssssssss| Length |  data  |........|........|
  615. +--------+--------+--------+--------+--------+--------+--------+--------+
  616.           ^^^^<---- Symbol-Type --->
  617.  
  618.          The 5th byte is the byte-count (L) of the data for this field
  619.          that starts in the next byte, and is padded with as many
  620.          padding bytes as needed to fill 8B-words.
  621.  
  622.          The length (L) does not include itself, hence it is between 0
  623.          and 255.  The total number of 8B-words in the symbol L2RH is
  624.          [(L+12)/8] where the square brackets indicate the integer part,
  625.          rounded down, of the quantity within.  Therefore, the number of
  626.          padding bytes is PL=8*[(L+12)/8]-2-L.
  627.  
  628.          Symbols may be mixed among the L2RHs, before the EEP-header.
  629.  
  630.          The values of the Symbol-Type field are defined in the PktWay
  631.          Enumeration document.
  632.  
  633.       5b2. Symbol Example:
  634.  
  635.          A symbol with 9 data bytes.
  636.  
  637.         0b1111<---- Symbol Type --->L=9 Bytes
  638. +--------+--------+--------+--------+--------+--------+--------+--------+
  639. |vv000000|1111ssss|ssssssss|ssssssss|00001001|  data1 |  data2 |  data3 |
  640. +--------+--------+--------+--------+--------+--------+--------+--------+
  641. |  data4 |  data5 |  data6 |  data7 |  data8 |  data9 |  xxxx  |  xxxx  |
  642. +--------+--------+--------+--------+--------+--------+--------+--------+
  643.  
  644.  
  645.  
  646. Cohen et al                                                    [Page 11]
  647.  
  648. Internet-Draft         PktWay End-to-End Protocol           October 1997
  649.  
  650.  
  651.  
  652. 6. EEP Header [2]
  653.  
  654.    The EEP (aka PH) has 16 bytes.
  655.  
  656.  2   6               24                     16                16
  657. +-+------+-------+--------+---------+--------+--------+--------+--------+
  658. |V|  P   |    Destination-Type      |  Type-Extension |   Packet-Type   |
  659. +-+-+---++--------------------------+-+------+--------+--------+--------+
  660. | E | PL| Data-Length>=0 (8B-words) |h|  RZ  |0     Source-Address      |
  661. +---+---+--------+--------+---------+-+------+--------+--------+--------+
  662.      4    3             25              1   7                24              
  663.  
  664.    These fields are described below:
  665.  
  666.                                    Bytes.bits
  667.    a. Version                    (V)      0.2
  668.    b. Priority                   (P)      0.6
  669.    c. Destination-Type           (DT)     3.0
  670.    d. Packet Type Extension      (TE)     2.0
  671.    e. Packet Type                (PT)     2.0
  672.    f. Endianness                 (E)      0.4
  673.    g. Padding Length             (PL)     0.3
  674.    h. Data Length                (DL)     3.1
  675.    i. Options flag               (h)      0.1
  676.    j. Reserved                   (RZ)     0.7
  677.    k. Source Address             (SA)     3.0
  678.  
  679.  
  680.    6a. Version (V) 2 bits
  681.  
  682.       This field is static.  Its 2 bits are 0b00 for the working version
  683.       of the protocol.  These bits should have other values for
  684.       co-existing experimental versions.
  685.  
  686.    6b. Priority (P) unsigned integer, 6 bits
  687.  
  688.       It is anticipated that some SANs, especially those working in real
  689.       time, will want to implement priorities.  This field supports such
  690.       usage.
  691.  
  692.       All ones is the highest priority, and all zeroes the lowest.
  693.       Ideally, packets with higher priority should gain access to
  694.       contested resources before packets with lower priority.
  695.       Implementations may ignore the Priority field.
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703. Cohen et al                                                    [Page 12]
  704.  
  705. Internet-Draft         PktWay End-to-End Protocol           October 1997
  706.  
  707.     
  708.    6c. Destination-Type (DT) 24 bits
  709.     
  710.      The purpose of this field is to specify the header type, as well as
  711.      the destination of the packet, when applicable.
  712.  
  713.  
  714.      This field may specify:
  715.     
  716.         * A physical PktWay address (of 23 bits);
  717.         * An L2-Routing-Header (L2RH) of a variable length;
  718.         * A logical address (of 20 bits); or
  719.         * A symbol (of 20 bits).
  720.     
  721.      In addition, it is anticipated that additional types will be needed
  722.      in the future.
  723.     
  724.      A variant of Huffman coding is used to accommodate all these
  725.      methods for the Destination-Type field.  This is done by assigning
  726.      the MSbit of 0 to physical addresses, 2 MSbits of 0b10 to L2RH,
  727.      3 MSbits of 0b110 to future needs, 4 MSbits of 0b1110 to logical
  728.      addresses, and 4 MSbits of 0b1111 to symbols.
  729.     
  730.      This assignment is summarized in the following table:
  731.     
  732.                               MSbits | Method
  733.                              --------+----------
  734.                                0xxx  | Physical
  735.                                10xx  | L2RH    
  736.                                110x  | Reserved
  737.                                1110  | Logical 
  738.                                1111  | Symbol  
  739.     
  740.      A single C-style 16-way switch can dispatch quickly the protocol
  741.      processor to the right handler required for any of the methods used
  742.      to specify the destination.
  743.     
  744.      The Physical addresses are unique within each instance of PktWay.
  745.      Nodes should have addresses assigned to them.  The method of
  746.      assigning unique addresses within each PktWay is not specified
  747.      here.
  748.     
  749.      Examples of potentially addressable PktWay nodes include: groups of
  750.      cooperating processes, an entire MPP, or each of an MPP's many
  751.      processors or processes.
  752.     
  753.      The 0b10xx was chosen for L2RH to be consistent with the 0b10
  754.      indication of L2RHs, as described earlier in this document.
  755.     
  756.      "Logical Addresses" (e.g., for broadcast and for multicast groups)
  757.      are also in this address space.  The destination-Type is a "Logical
  758.      Address" if its 4 MSbits are set to 0b1110.
  759.  
  760. Cohen et al                                                    [Page 13]
  761.  
  762. Internet-Draft         PktWay End-to-End Protocol           October 1997
  763.  
  764.     
  765.        A few Physical-addresses are reserved:
  766.  
  767.        0x000000 Undefined address (illegal where an address is expected,
  768.                 but is allowed in the SA field)
  769.  
  770.        0x7FFFFE ("Hey-You!") This address could be used at power up
  771.              to address nodes or routers, over point-to-point links.
  772.              ("If you receive it, it's for you.")
  773.  
  774.        0x7FFFFF (Broadcast) This address is reserved for broadcast
  775.              operations which may be added in later versions.
  776.              ("If you receive it, it's for you.")
  777.  
  778.  
  779.    6d. Type Extension (TE) 2 bytes
  780.  
  781.      An extension of the following PT field.
  782.  
  783.      Logically, the TE should be after the PT.  However, the PT is
  784.      8B-word aligned, easier to process than the TE which is 2B-aligned,
  785.      but not 8B-aligned. Since the PT is more frequently used than the
  786.      TE, it was assigned to the better aligned field.
  787.  
  788.  
  789.    6e. Packet Type (PT) 2 bytes
  790.  
  791.      The PT field provides the information needed for efficient
  792.      de-multiplexing of multiple protocol layers.  Whereas traditional
  793.      protocol layering requires several stages of sequential
  794.      de-multiplexing, PktWay provides enough information to support a
  795.      single combined de-multiplexing operation (such as in support of
  796.      zero copy TCP).  Thus, the PT field may indicate, for example, that
  797.      the data blocks contain IP, SNMP, ATM, Ethernet, or other layered
  798.      protocols.
  799.  
  800.      PT values to support popular parallel programming APIs such as MPI
  801.      have been defined.  The PktWay Enumeration document defines several
  802.      values for this PT field.
  803.  
  804.      The PT field value of "RRP" indicates that message contains
  805.      commands used in the PktWay Router-to-Router Protocol (RRP).
  806.  
  807.      Some PTs will also use the 2 byte Type Extension (TE) field which
  808.      precedes the PT for passing PT-specific parameters, such as
  809.      implementation specific de-multiplexing information.
  810.  
  811.      RRP messages (as described in the PktWay RRP document) use the TE
  812.      field to distinguish among the various RRP-messages.
  813.  
  814.  
  815.  
  816.  
  817. Cohen et al                                                    [Page 14]
  818.  
  819. Internet-Draft         PktWay End-to-End Protocol           October 1997
  820.  
  821.  
  822.      Special Packet Types
  823.  
  824.        RRP - PktWay's Router/Router protocol (see the RRP document).
  825.  
  826.        ERR - Error reporting packet, usually sent to the Source Address
  827.              (SA, see below) in response to a PktWay message that could
  828.              not be properly handled, such as "Destination Unknown."
  829.              The TE indicates the nature of the error (e.g., UNK) as
  830.              defined in the PktWay Enumeration document.
  831.  
  832.    6f. Endianness (E), 4 bits
  833.  
  834.      If the SAN interface of the receiving-node detects Endianness
  835.      that is different than its own and if the entire Data Block (DB)
  836.      consists of N-byte fields, then it may activate byte-swapping
  837.      hardware for N-byte fields, saving much work for the receiving
  838.      node.
  839.  
  840.      The first bit (MSbit) of E, 'e' indicates whether the DB is in
  841.      Big-Endian order (e=0) or in Little-Endian order (e=1).  The next
  842.      3 bits could control hardware byte swapping, if any, which assumes
  843.      that all the data consists of words of the same length.
  844.  
  845.      The meaning associated with the values of the 3 LSbits of this
  846.      field are defined in the PktWay enumeration document.
  847.  
  848.    6g. Pad Length (PL) unsigned integer, 3 bits
  849.  
  850.      The number of padding bytes that were added at the end of the DB
  851.      (i.e., from the end of the data to the end of the DB).  PL can be
  852.      between 0 and 7.
  853.  
  854.    6h. Data Length (DL) unsigned integer, 25 bits
  855.  
  856.      Length, in 8B-words, of the data block, not including the L2RHs,
  857.      EEP-header, OH, OT, and TAIL, including any optional padding.
  858.      Hence, the net length of the Data Block is 8*DL-PL bytes.  The
  859.      minimum is zero, and the maximum length is (2^25-1)*8 bytes = ~2^28
  860.      = 256 MBytes.
  861.  
  862.    6i. Optional Header-Field Flag (h) 1 bit
  863.  
  864.      This bit is set to 1 if there are one (or more) optional header
  865.      (OH) fields following the standard 16-byte EEP-header.
  866.  
  867.    6j. Reserved (RZ) 7 bits
  868.  
  869.      This field is reserved for future use.  Applications should neither
  870.      use it, nor count on others not to use it.  It should be always set
  871.      to zero (0b0000000).
  872.  
  873.  
  874. Cohen et al                                                    [Page 15]
  875.  
  876. Internet-Draft         PktWay End-to-End Protocol           October 1997
  877.  
  878.  
  879.    6k. Source Address (SA) 24 bit
  880.  
  881.      This field contains the physical address of the packet's original
  882.      source in the same format as the DT.  However, unlike the DT, the
  883.      SA must be a physical address.
  884.  
  885.      Filling in this field is optional.  A value of zero means that the
  886.      SA is not specified.
  887.  
  888.      Routers may use this field to identify the sender to which error
  889.      messages may be returned.
  890.  
  891.  
  892.  
  893. 7. Optional Header Fields (OH) [3]
  894.  
  895.    A PktWay-message has Optional Header fields (OH) following the
  896.    EEP-header, if the Option-Flag (h) is set to 1 in the EEP-header.
  897.  
  898.    Each OH is in the format:
  899.  
  900. +--------+--------+--------+--------+--------+--------+--------+--------+
  901. |tttttttt|LLLLLLLL|  data  |........|........|........|........|........|
  902. +--------+--------+--------+--------+--------+--------+--------+--------+
  903.  
  904.    The first byte indicates the optional header field type (OH-TYPE).
  905.  
  906.    The first bit, T, of the first byte indicates the processing of this
  907.    OH-TYPE:
  908.  
  909.     T=0: Optional (may drop this field if this OH-TYPE is unknown) 
  910.     T=1: Mandatory (should not process this message if this OH-TYPE
  911.                     is unknown)
  912.  
  913.    The second bit, C, of the first byte indicates whether there are more
  914.    header fields (i.e., whether this is the last field of this message).
  915.  
  916.     C=0: More Optional Header fields follow
  917.     C=1: End of Optional Header fields group (i.e., this is the last OH)
  918.  
  919.    The other 6 bits of this byte, tttttt, define application-specific
  920.    OH-TYPEs.
  921.  
  922.    The second byte is the byte-count (L) of the data for this field that
  923.    starts in the next byte, and is padded with as many padding bytes as
  924.    needed to fill 8B-words.
  925.  
  926.    The length (L) does not include itself, hence it is between 0 and
  927.    255.  The total number of 8B-words in the symbol L2RH is [(L+9)/8]
  928.    where the square brackets indicate the integer part, rounded down,
  929.    of the quantity within.  Therefore, the number of padding bytes is
  930.    PL=8*[(L+9)/8]-2-L.
  931.  
  932. Cohen et al                                                    [Page 16]
  933.  
  934. Internet-Draft         PktWay End-to-End Protocol           October 1997
  935.  
  936.  
  937.    Example: An Optional Header Field (OH) with a mandatory OH-TYPE and
  938.    4 data bytes:
  939.  
  940.                L=4    #1       #2       #3       #4    padding  padding
  941. +--------+--------+--------+--------+--------+--------+--------+--------+
  942. |1xtttttt|00000100| data01 | data02 | data03 | data04 |  xxxx  |  xxxx  |
  943. +--------+--------+--------+--------+--------+--------+--------+--------+
  944.                   |<------------- value ------------->|
  945.  
  946.  
  947.  
  948.  
  949. 8. Optional Data Block (DB) [4]
  950.  
  951.    The DB is free for applications to use in any way.  Routers must not
  952.    modify this field.
  953.  
  954.    The DB has DL 8B-words, including optional padding (at the end) of PL
  955.    bytes.  Hence, the number of data bytes is 8*DL-PL.  Both DL and PL
  956.    are specified in the EEP-header.
  957.  
  958.    The maximum length of the DB is 8*(2^25-1)B = ~256 MByte.
  959.  
  960.  
  961.  
  962.  
  963. 9. Optional Trailer Fields (OT) [5]
  964.  
  965.    A PktWay-message has Optional Trailer fields (OT) if so indicated in
  966.    an Optional Header field, e.g., an OH field may indicate that a CRC64
  967.    is in the OT.
  968.  
  969.    An OT may have just the data for an OH defined above (following the
  970.    EEP header), or be a stand alone, self-defined field in the same
  971.    format as OH.
  972.  
  973.    The OT-fields are in the order defined by the OHs.  For example, if
  974.    an OH-field indicating that a CRC32 is in the OT, is followed by
  975.    another OH-fields indicating that a CRC64 is in the OT, then the OT
  976.    with the CRC32 should be followed by the OT with the CRC64.  Self
  977.    defined OT fields must follow OTs defined by the OHs.
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989. Cohen et al                                                    [Page 17]
  990.  
  991. Internet-Draft         PktWay End-to-End Protocol           October 1997
  992.  
  993.  
  994. 10. EEP Trailer (TAIL) [6]
  995.  
  996.    The TAIL consists of only the Error Indication (EI) field which is a
  997.    single 8B-word.
  998.  
  999.    Routers may start forwarding packets toward their destinations before
  1000.    detecting transmission errors (such as in wormhole routing).  The EI
  1001.    field provides such routers with a means to append an error
  1002.    indication to the end of a packet.
  1003.  
  1004.    An all zero EI value means that no error was indicated.  Any non-zero
  1005.    EI value indicates one or more errors.
  1006.  
  1007.    The packet source will usually initialize the EI field to all zeros.
  1008.    However, as an alternative example, a memory board may create a
  1009.    packet with a non zero EI field (EI=1) that indicates that a parity
  1010.    error was detected by the memory board.
  1011.  
  1012.    Each router does an arithmetic left shift, on the EI field by one bit
  1013.    unless its MSbit is 1.  Routers that detect transmission errors also
  1014.    set the LSbit (after the shift) to 1.
  1015.  
  1016.    This provides the ability to identify which routers have indicated
  1017.    errors (if the route is known).
  1018.  
  1019.  
  1020.  
  1021. 11. Appendix-A: A Recommendation for PktWay Address Assignment
  1022.  
  1023.    This section of the EEP document is a recommendation only, and not a
  1024.    part of the PktWay standard.
  1025.  
  1026.    Unlike IP addresses, physical PktWay addresses are not globally
  1027.    unique, but must be locally unique within each PktWay configuration.
  1028.    Hence, when SANs that were developed independently are interconnected
  1029.    to form a PktWay, conflicting physical addresses may occur.
  1030.  
  1031.    It is recommended not to attempt to assure local uniqueness of
  1032.    physical addresses by subdividing the global address space (hence,
  1033.    attempting to achieve global uniqueness).
  1034.  
  1035.    Instead, it is recommended that every SAN would have local PktWay
  1036.    addresses, between 1 and the number of its local nodes, and also have
  1037.    a global "bias" to be added to all the addresses in that SAN.  Hence,
  1038.    by proper setting of the biases of interconnected SANs, the local
  1039.    uniqueness of PktWay addresses is achieved.
  1040.  
  1041.    The coordination of these biases is left (at least now) for manual
  1042.    (static) out-of-band coordination.
  1043.  
  1044.    The use of such biases simplifies the mapping of physical addresses
  1045.    to their SANs.
  1046.  
  1047. Cohen et al                                                    [Page 18]
  1048.  
  1049. Internet-Draft         PktWay End-to-End Protocol           October 1997
  1050.  
  1051.  
  1052. 12. Appendix-B: Glossary
  1053.  
  1054.    Address:       A unique designation of a node (actually an interface
  1055.                   to that node) or a SAN.
  1056.    Buddy-HR:       HRs are "buddies" if they are on the same SAN.
  1057.    Cut-Thru:       See wormhole.
  1058.    Destination:    The node to which a packet is intended
  1059.    Dynamic-Routing: Routing according to dynamic information
  1060.                    (i.e., acquired  at run time, rather than pre-set).
  1061.    Endianness:     The property of being Big-Endian or Little-Endian
  1062.                    (transmission order, etc.)
  1063.    Ethertype:      A 16-bit value designating the type of Level-3
  1064.                    packets carried by a Level-2 communication system.
  1065.    HR:             Half-Router, the part of a router that handles one
  1066.                    network only.
  1067.    L2-Forwarding:  Forwarding based on Level-2 (i.e., data-link layer
  1068.                    of the ISORM) information, e.g., the native technique
  1069.                    of each SAN or LAN.  Also called "source routing."
  1070.    L3-Forwarding:  Forwarding based on end-to-end
  1071.                    (Level-3 i.e., network layer of the ISORM) addresses.
  1072.                    Also called "destination routing."
  1073.    Map:            The topology of a network.
  1074.    Mapper:         A node on a SAN/LAN that has the map and an RT
  1075.                    for that network.  It is expected that the mapper
  1076.                    dynamically updates the map and the RT.
  1077.    Multi-homed Node: A node with more than one network interface, where
  1078.                    each interface has another address.
  1079.    Node:           Whatever can send and receive packets 
  1080.                    (e.g., a computer, an MPP, a software process, etc.)
  1081.    Node structure: A C-struct (or equivalent) containing values for some
  1082.                    attributes of a node.
  1083.    Planned Transfer: Transfer of information, occurs after an initial
  1084.                    phase in which the sender decides which Level-2 route
  1085.                    to use for that transfer.
  1086.    RCVF:           The "Received From" set includes all the physical
  1087.                    addresses through which an RT was disseminated,
  1088.                    starting with the address of the mapper that created
  1089.                    that RT.
  1090.    Re-direct-message: A message that tells nodes which HR should be
  1091.                    used in order to get to a certain remote address.
  1092.    Router:         The inter-SAN communication device
  1093.    Security Context: A relationship between 2 (or more) nodes that
  1094.                    defines how the nodes utilize security services to
  1095.                    communicate securely. 
  1096.    Source:         The node that created a packet.
  1097.    Source-Route:   A Level-2 route that is chosen for a packet by its 
  1098.                    source.
  1099.    Symbol:         Data preceeding the EEP header of a PktWay message,
  1100.                    interleaving with the L2RHs.
  1101.  
  1102.  
  1103.  
  1104. Cohen et al                                                    [Page 19]
  1105.  
  1106. Internet-Draft         PktWay End-to-End Protocol           October 1997
  1107.  
  1108.    Twin-HR:        Two HRs are twins if they both are parts of the same
  1109.                    inter-SAN router.
  1110.    Wormhole-routing: (aka cut-thru routing) forwarding packets out of
  1111.                    switches as soon as possible, without storing that
  1112.                    entire packet in the switch (unlike Stop-and-forward)
  1113.    Zero-copy TCP:  A TCP system that copies data directly between the
  1114.                    user area and the network device, bypassing OS copies
  1115.  
  1116.  
  1117. 13. Appendix-C: Acronyms and Abbreviations
  1118.  
  1119.    0bNNNN  The binary number NNNN (e.g., 0b0100 is 4-decimal)
  1120.    0xNNNN  The hexadecimal number NNNN (e.g., 0x0100 is 256-decimal)
  1121.    8B      8 byte (64 bits) entity
  1122.    ADDR    The Address-record of RRP
  1123.    APIn    Application/Program Interface
  1124.    AT      Address Type
  1125.    ATM     Asynchronous Transmission Mode
  1126.    B       Byte (e.g., 4B)
  1127.    b       bit (e.g., 32b)
  1128.    BC      Byte Count (of parameters)
  1129.    BER     Bit Error Rate
  1130.    CAPA    The CAPAbility-record of RRP
  1131.    CC      Capability Code
  1132.    CSR     Common Source-Route
  1133.    DA      Destination Address
  1134.    DB      Data Block
  1135.    DL      Data Length (in 8B words)
  1136.    DSP     Digital Signal Processor
  1137.    DT      Destination-Type
  1138.    e       The MSbit of E
  1139.    E       The Endianness field (in the EEP header)
  1140.    EEP     End/End Protocol
  1141.    EI      Error Indication
  1142.    GP      General Purpose
  1143.    GVL2    An RRP message, requesting L2 route to a given destination
  1144.    GVRT    An RRP message asking an HR to give its routing tables
  1145.    h       Optional header fields flag
  1146.    HR      Half Router
  1147.    HRTO    An RRP message asking which HR to use for a given destination
  1148.    ID      Identification
  1149.    IGMP    Internet Group Management Protocol
  1150.    INFO    An RRP message providing information about nodes
  1151.    IP      The Internet protocol
  1152.    ISORM   The ISO Reference Model
  1153.    L       Length field (exclusive of itself)
  1154.    L2      Level-2 of the ISORM (Link)
  1155.    L2RH    Level-2 Routing Header 
  1156.    L2SR    Source Route
  1157.    L3      Level-3 of the ISORM (Network)
  1158.    LA      Logical Address
  1159.    LADR    The Logical-addresses-record of RRP
  1160.  
  1161. Cohen et al                                                    [Page 20]
  1162.  
  1163. Internet-Draft         PktWay End-to-End Protocol           October 1997
  1164.  
  1165.    LAN     Local Area Network
  1166.    LRT     Local Routing Table
  1167.    LSbit   Least Significant bit
  1168.    LSbyte  Least Significant byte
  1169.    MAC     Message Authentication Code / Media Access Control
  1170.    MPI     Message Passing Interface
  1171.    MPP     Massively Parallel Processing system
  1172.    MSbit   Most Significant bit
  1173.    MSbyte  Most Significant byte
  1174.    MSU     Mississippi State University
  1175.    MTU     Maximum Transmission Unit
  1176.    MTUR    The MTU-record of RRP
  1177.    M/C     Multicast
  1178.    NAME    The name-record of RRP
  1179.    NFS     Network File Server
  1180.    OH      Optional Header field
  1181.    OH-TYPE The Type of an Optional Header field
  1182.    OT      Optional Trailer field
  1183.    P       The Priority field
  1184.    PAD     Padding After Data
  1185.    PBD     Padding Before Data
  1186.    PCI     The Peripheral Component Interconnect "standard"
  1187.    PH      PacketWay Header 
  1188.    PL      Padding Length (always in bytes)
  1189.    PPP     The Point-to-Point Protocol
  1190.    PROM    Programmable ROM (Read-Only-Memory)
  1191.    PT      Packet Type (2B)
  1192.    PVM     Parallel Virtual Machine
  1193.    PW      The Myrinet Packet Type assigned to PktWay (PW=0x0300)
  1194.    Q       Quality (of a path)
  1195.    RCVF    Received-From list, or the Received-From record of RRP
  1196.    RDRC    A re-direct message of RRP
  1197.    RH      Routing Header 
  1198.    RID     Record ID
  1199.    RL      Record Length (in 8B-words)
  1200.    RRP     Router/Router Protocol
  1201.    RT-hd   RT (Routing Table) header
  1202.    RT      Routing Table
  1203.    RTBL    An RRP message proving a Routing Table
  1204.    RTHD    The Routing-Table-Header record of RRP
  1205.    RTyp    RRP's Record Type
  1206.    RZ      The Reserved field (in the EEP header)
  1207.    SA      Source Address
  1208.    SAN     System Area Network
  1209.    SAN-ID  The 24-bit PktWay-address of a SAN
  1210.    SAR     Segmentation and Reassembly
  1211.    SN      Serial Number
  1212.    SNID    SAN-ID
  1213.    SNMP    Simple Network Management Protocol
  1214.    SR      Source Route (always at Level-2)
  1215.    SRQR    The Source-Route-and-Q-record of RRP
  1216.    ST      Symbol Type
  1217.  
  1218. Cohen et al                                                    [Page 21]
  1219.  
  1220. Internet-Draft         PktWay End-to-End Protocol           October 1997
  1221.  
  1222.    TAIL    PacketWay EEP Trailer
  1223.    TE      Type Extension (2B)
  1224.    TELL    An RRP message requesting information about nodes
  1225.             partially specified
  1226.    UNK     Unknown
  1227.    V       Version
  1228.    WRU?    An RRP message asking its recipient to identify itself
  1229.    XRT     External Routing Table
  1230.    xxxx    A padding byte
  1231.  
  1232.  
  1233. 14. Appendix-4: PktWay at a Glance (aka "The Cheat-Sheet")
  1234.  
  1235.  2   6    type       24                     16                16
  1236. +-+------+-------+--------+---------+--------+--------+--------+--------+
  1237. |V|  P   |     Destination-Type     |  Type-Extension |   Packet-Type   |
  1238. +-+-+---++--------------------------+-+------+--------+-----------------+
  1239. | E | PL|   Data-Length (8B-words)  |h|  RZ  |0     Source-Address      |
  1240. +---+---+--------+--------+---------+-+------+--------+--------+--------+
  1241.   4    3             25              1   7    1           23
  1242.  
  1243.                 type = 0xxx Physical Address
  1244.                        10xx L2RH
  1245.                        110x Reserved
  1246.                        1110 Logical Address
  1247.                        1111 Symbols
  1248. L2RH:
  1249.   2   6    2   6      8        8        8        8        8        8
  1250. +--------+--------+--------+--------+--------+--------+--------+--------+
  1251. |V|  P   |10LLLLLL|  SR01  |  SR02  |........|........|........|........|
  1252. +--------+--------+--------+--------+--------+--------+--------+--------+
  1253.             Length
  1254. Symbol:
  1255.   2   6     4   6     8        8        8        8        8        8
  1256. +--------+--------+--------+--------+--------+--------+--------+--------+
  1257. |V|  P   |1111ssss|ssssssss|ssssssss| Length |  data  |........|........|
  1258. +--------+--------+--------+--------+--------+--------+--------+--------+
  1259.               <---- Symbol Type --->
  1260. Optional Header:
  1261.   2   6      8        8        8        8        8        8        8
  1262. +--------+--------+--------+--------+--------+--------+--------+--------+
  1263. |TCtttttt|LLLLLLLL|  data  |........|........|........|........|........|
  1264. +--------+--------+--------+--------+--------+--------+--------+--------+
  1265. T: 0=optional, 1=mandatory;  C: 0=more OH-fields follow, 1=last OH-field
  1266.  
  1267. RRP Record:
  1268.     8        8        8        8        8        8        8        8
  1269. +--------+--------+--------+--------+--------+--------+--------+--------+
  1270. |  RTyp  |   PL   |       RL        |........|........|........|........|
  1271. +--------+--------+--------+--------+--------+--------+--------+--------+
  1272. RRP-messages: GVL2, L2SR, RDRC, TELL, INFO, HRTO, WRU,  GVRT, RTBL;
  1273.         RTyp: ADDR, NAME, CAPA, LADR, SRQR, MTUR, RCVF, RTHD;
  1274.  
  1275. Cohen et al                                                    [Page 22]
  1276.  
  1277. Internet-Draft         PktWay End-to-End Protocol           October 1997
  1278.  
  1279.  
  1280.  
  1281.  
  1282. 15. Security Considerations
  1283.  
  1284.    This RFC raises no security issues.
  1285.  
  1286.  
  1287.  
  1288. 16. Editor' Address
  1289.  
  1290.    Danny Cohen
  1291.    Myricom, Inc.
  1292.    325 N. Santa Anita Ave
  1293.    Arcadia, CA 91006
  1294.  
  1295.    Phone: 626-821-5555
  1296.    Fax:   626-821-5316
  1297.    Email: Cohen@myri.com
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332. Cohen et al                                                    [Page 23]
  1333.