
Packet Types
Myrinet® is a registered trademark of Myricom, Inc.
Some Myrinet users design their own hardware or interface firmware (Myrinet Control Programs, or MCPs) with their own kind of Myrinet traffic. To allow different kinds of traffic to share a Myrinet, if only physically, each device should be able to recognize which packets form its own kind of traffic, and which packets are from some other kind of traffic. For example, Myricom MCPs send out scouting packets to all nodes on the Myrinet as part of a mapping process. A non-Myricom device should at least recognize that these packets are not its own, and drop any that it receives. Alternatively, the device might participate in the mapping process. In any case, the first requirement for any sort of non-interference or cooperation between interspecific devices is a standard packet typing scheme, and a self-consistent assignment of packet types.
The standard packet typing scheme is specified in the ANSI/VITA 26/1998 Myrinet specifications (referred to hereinafter as "ANSI Myrinet"). A Myrinet packet type (often known as the Myri_type) has exactly the same purpose as an Ethernet type (often known the Ether_type). These types allow packets of different protocols to share the same physical network without interference.
Warning: With Myrinet, different traffic on the same network runs the risk of creating a deadlock unless there is some global coordination of routes.
Section 3.4 of "ANSI Myrinet" requires that the first four bytes following the (variable-length) source route in a Myrinet packet are the Myrinet packet type. The most significant bit in each byte of the source route is 1. The most significant bit in the first byte of the 4-byte type is 0.
This scheme identifies the end of the source route and the beginning of the type field in any Myrinet packet. This Myrinet requirement is valuable for "scouting" a Myrinet efficiently. Myrinet switches treat a source-route byte whose most-significant bit is 0 to be invalid (ANSI Myrinet Rule 3.4-3), so that this packet will be dropped.
Inasmuch as the most significant bit in the first byte of the Myrinet type is 0, the range of possible types is from 0x00000000 to 0x7FFFFFFF. (Myrinets are big endian.)
All packet types assigned to date are composed of two byes that are treated as the Myrinet packet type, with the second two bytes as a subtype. In other words, each type that is shown here as 0x0000 - 0x7FFF has two additional bytes that may be used as a subtype (or for any other purpose).
Requesting your own Myrinet Packet Type
If you are writing your own MCP and need some Myrinet Packet Types for yourself, choose a type that hasn't already been taken, and submit it to Myricom tech support (help@myri.com). They will tell you when your type have been added to the official table (below). Please include in your request:
Table of Assigned Myrinet Packet Types
| Organization | Type Range | Description |
|---|---|---|
| Myricom | 0x0000 | Reserved (hardware safety) |
| Myricom | 0x0001 | V2 Data Packet |
| Myricom | 0x0002 | V2 Mapping Packet |
| Myricom | 0x0003 | V2 Data Packet |
| Myricom | 0x0004 | Data Packet |
| Myricom | 0x0005 | MyriMap |
| Myricom | 0x0006 | MyriProbe |
| Myricom | 0x0007 | MyriOption |
| Myricom | 0x0008 | GM (GM-1 & GM-2 use different subtypes) |
| Myricom | 0x0009 | GM-2 & MX Ethernet Emulation |
| Myricom | 0x000A | Compact Ethernet over Myrinet |
| Myricom | 0x000B - 0x000E | Reserved |
| Myricom | 0x000F | GM-1 Mapping |
| Myricom | 0x0010 | Link test packets |
| Myricom | 0x0011 - 0x001F | Reserved |
| Myricom | 0x0020 | GM-1 Ethernet Emulation |
| Myricom | 0x0021 | MX |
| Myricom | 0x0022 | Open-MX |
| Myricom | 0x0023 - 0x00FF | Reserved |
| UC Berkeley | 0x0100 | Active Messages |
| UCLA CS Dept. | 0x0110 | SSN-Multicasting |
| FM | 0x0200 - 0x0207 | Fast Messages |
| PacketWay | 0x0300 | PacketWay Protocol |
| MPICH (Mississippi State) | 0x0301 - 0x0302 | BDM MCP |
| Myricom | 0x0310 | Reserved |
| Universidad Politecnica de Valencia(DSD/GAP) | 0x0320 | ITB Packets |
| CSPI | 0x0330 | CSPI |
| MPI Software Technology | 0x0340 | MPI |
| LHPC | 0x0350 | BIP |
| Myricom | 0x0360 | Reserved |
| Digital Equipment Corporation | 0x0370 | CLF |
| Real World Computing Partnership | 0x0400 | PM |
| espensk@stud.cs.uit.no | 0x0410 | Simple MFM frame |
| Computer Systems Group, Dept. of Mathematics and Computer Science, Vrije Universiteit | 0x0450 | LFC/Orca |
| Reserved | 0x04F0 - 0x04FF | Reserved |
| Hughes Aircraft Co., MPI | 0x0500 | MPI |
| UVa CS Dept. Isotach | 0x0600 - 0x0601 | Isotach |
| CASL (Georgia Tech) | 0x0636 | GRIM packets |
| Universidade Federal de Santa Catarina | 0x0666 | SNOW project |
| Intel | 0x0700 | VIA (Virtual Interface Architecture) |
| Sandia | 0x0800 | Portals |
| Cornell | 0x0900 | U-Net |
| Sanders | 0x0A00 | Sanders Packets |
| Air Force Research Lab (AFRL) | 0x0B00 | AFRL Packets |
| University of Utah Computer Science Dept. | 0x0C00 | Multichannel Protocol |
| Myricom | 0x1000 - 0x700E | Reserved |
| Myricom | 0x700F | GM-2 & MX mapping |
| Myricom | 0x7010 - 0x7FFF | Reserved |
| Myricom | 0x8000 - 0xFFFF | Disallowed (ANSI Myrinet) |
Note: Types in the range 0x1000 - 0x7FFF may be used with the Lanai X hardware to separate packets into an alternate channel (section 9 of the Lanai X documentation); thus, type 0x700F is used for GM-2 and MX mapping.
![]()
Last updated: 02 April 2007