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