[openib-general] InfiniBand EndPort Liveness and Responsiveness
Hal Rosenstock
halr at voltaire.com
Mon Jul 25 06:04:57 PDT 2005
Hi,
Here is a writeup on proposed IB endport liveness and resposiveness.
This "grew" out of discussions on ibping on this list some time ago.
Thanks in advance for any comments on this.
-- Hal
InfiniBand EndPort Liveness and Responsiveness
Motivation
While there exist methods to obtain some degree of the liveness and
responsiveness of an InfiniBand end port using existing mechanisms
(e.g. SM Get attribute), these rely on a lack of protection as well
as not allowing sufficient flexibility. In addition, less of the
end port stack may be exercised.
IBA supports general service (GS) vendor classes. There are 2 ranges
of these: the first range does not support RMPP whereas the second
range does. OpenIB has a vendor OUI of 0x001405. A vendor class of
0x34 (in vendor class 2 range) would be utilized for this. The class
version in the MAD header indicates the version of this. Currently,
this is version 1.
Packet Format
(Refer to IBA 1.2 p. 1006 for vendor class 2 MAD format)
Bytes 40-255 are defined as vendor data as follows:
In MAD if not RMPP'd, or in first MAD if RMPP'd:
Byte 40: Type (1 byte)
1 - Echo request
2 - Echo response
3 - Timestamp request
4 - Timestamp response
5 - LID/GUID information request
6 - LID/GUID information response
Byte 41-43: Reserved
Byte 44-45: Identifier
Byte 46-47: Sequence Number
Byte 48-255: Data for Type
In subsequent (non first) RMPP MADs:
Byte 40-255: Continued Data for Type
Echo
The data received in the echo request message must be returned
in the echo reply message.
The identifier and sequence number may be used by the echo sender to aid
in matching the replies with the echo requests. For example, the identifier
might be used like a port in TCP or UDP to identify a session, and the sequence
number might be incremented on each echo request sent. The echoer returns
these same values in the echo reply.
can be RMPP'd or not
In MAD if not RMPP'd, or in first MAD if RMPP'd:
Byte 48-255: Echo data
Identifier. 16 bits.
This field is used to help match echo requests to the associated reply.
It may be set to zero.
Sequence number. 16 bits.
This field is used to help match echo requests to the associated reply.
It may be zero.
Echo Data. Variable length.
Implementation specific data.
Timestamp
The data received (a timestamp) in the message is returned in the reply
together with an additional timestamp. The timestamp is 32 bits of
milliseconds since midnight UT.
The Originate Timestamp is the time the sender last touched the message
before sending it, the Receive Timestamp is the time the echoer first touched
it on receipt, and the Transmit Timestamp is the time the echoer last touched
the message on sending it.
If the time is not available in miliseconds or cannot be provided with respect
to midnight UT then any time can be inserted in a timestamp provided the high
order bit of the timestamp is also set to indicate this non-standard value.
The identifier and sequence number may be used by the echo sender to aid in
matching the replies with the requests. For example, the identifier might be
used like a port in TCP or UDP to identify a session, and the sequence number
might be incremented on each request sent. The destination returns these same
values in the reply.
can be RMPP'd or not
In MAD if not RMPP'd, or in first MAD if RMPP'd:
Byte 48-51: Originate timestamp
Byte 52-55: Receive timestamp
Byte 56-59: Transmit timestamp
The preferred form for a timestamp value (the "standard value") is in units of
milliseconds since midnight Universal Time. However, it may be difficult to
provide this value with millisecond resolution. For example, many systems use
clocks that update only at line frequency, 50 or 60 times per second.
Therefore, some latitude is allowed in a "standard value":
(a) A "standard value" MUST be updated at least 15 times per second (i.e., at
most the six low-order bits of the value may be undefined).
(b) The accuracy of a "standard value" MUST approximate that of operator-set
CPU clocks, i.e., correct within a few minutes.
LID/GUID information
Obtain the LID and port GUID of the requested port.
can be RMPP'd or not
In MAD if not RMPP'd, or in first MAD if RMPP'd:
Byte 48-49: LID
Byte 50-57: Port GUID
More information about the general
mailing list