The majority of these definitions apply only to InfiniBand and are not applicable to general RDMA devices. However, a few are used as part of the kernel API for all device types (eg NODE_CA).
For ease of use it is recommended to import this module as:
import rdma.IBA as IBA;
The module includes Python versions of the IBA defined binary structure. The Python version is unpacked, accessing the IBA defined member names is simply done by acessing the property name. The tables in the reference indicate the valid member names, the bit position start_bit:end_bit (bit count) and a description of the Python type used for the attribute.
The class attributes starting with MAD_ are metadata used by the RPC functions in rdma.madtransactor.MADTransactor to generate the correct attribute ID, and validate that the RPC is valid.
All classes in this section are derived from rdma.binstruct.BinStruct and contain implementations of those methods. Use the pack_into() and unpack_from() methods to produce the binary layout of the structure.
Constructors will also accept a bytes or another BinStruct instance:
data = bytes('\0'*IBA.SMPFormat.MAD_LENGTH);
hdr = IBA.MADHeader(data);
sfmt = IBA.SMPFormat(hdr);
dfmt = IBA.SMPFormatDirected(sfmt);
When referring to another BinStruct instance the new instance is unpacked using the original byte buffer that the first instance was unpacked from. Changing the attributes has no effect.
Note
This is based on Python’s struct module, which requires a bytes object for unpack and a bytearray for packing. This conversion is generally handled transparently..
Structures named *Format are generally a full MAD, and need to be ‘casted’ to read the data:
fmt = IBA.SMPFormat(data);
pinf = IBA.SMPPortInfo(fmt.data);
All of the BinStruct classes feature an automatic pretty printer for the class content. The pretty printer understands some of the structure of the data and properly pretty prints things like the data member of a *Format object. Here is the dump pretty print output for a SAFormat containing a SAPathRecord:
SAFormat
0 01030281 baseVersion=1,mgmtClass=3,classVersion=2,method=129
4 00000000 status=0,classSpecific=0
8 000028D6 transactionID=44902842023172
12 C1F2BD04
16 00350000 attributeID=53,reserved_144=0
20 00000000 attributeModifier=0
24 00000000 RMPPVersion=0,RMPPType=0,RRespTime=0,RMPPFlags=0,RMPPStatus=0
28 00000000 data1=0
32 00000000 data2=0
36 00000000 SMKey=0
40 00000000
44 00080000 attributeOffset=8,reserved_368=0
48 00000000 componentMask=2072
52 00000818
+ data SAPathRecord
56 00000000 serviceID=0
60 00000000
64 FE800000 DGID=GID('fe80::2:c903:0:1491')
68 00000000
72 0002C903
76 00001491
80 FE800000 SGID=GID('fe80::2:c903:0:1491')
84 00000000
88 0002C903
92 00001491
96 00050005 DLID=5,SLID=5
100 00000000 rawTraffic=0,reserved_353=0,flowLabel=0,hopLimit=0
104 0080FFFF TClass=0,reversible=1,numbPath=0,PKey=65535
108 00008483 QOSClass=0,SL=0,MTUSelector=2,MTU=4,rateSelector=2,rate=3
112 80000000 packetLifeTimeSelector=2,packetLifeTime=0,preference=0,reserved_464=0
116 00000000 reserved_480=0
Notice that the use of SAPathRecord for the payload is automatically deduced based on the value of attributeID. The printer shows the decimal byte offset and raw hex bytes in the left columns and shows a decode of the attribute names corresponding to that byte position in the right hand area.
The pretty printer is invoked by calling the printer() method of the structure to print. This example shows how to produce an arbitary MAD printer:
IBA.get_fmt_payload(buf[1],buf[2],0)[0](buf).printer(sys.stdout);
This is the dotted pretty print format:
SAFormat
baseVersion.....................1
mgmtClass.......................3
classVersion....................2
method..........................146
status..........................0
classSpecific...................0
transactionID...................44950782152048
attributeID.....................53
reserved_144....................0
attributeModifier...............0
RMPPVersion.....................1
RMPPType........................1
RRespTime.......................0
RMPPFlags.......................7
RMPPStatus......................0
data1...........................1
data2...........................84
SMKey...........................0
attributeOffset.................8
reserved_368....................0
componentMask...................12
data.serviceID..................0
data.DGID.......................GID('fe80::2:c903:0:1491')
data.SGID.......................GID('fe80::2:c903:0:1491')
data.DLID.......................5
data.SLID.......................5
data.rawTraffic.................0
data.reserved_353...............0
data.flowLabel..................0
data.hopLimit...................0
data.TClass.....................0
data.reversible.................1
data.numbPath...................0
data.PKey.......................65535
data.QOSClass...................0
data.SL.........................0
data.MTUSelector................2
data.MTU........................4
data.rateSelector...............2
data.rate.......................3
data.packetLifeTimeSelector.....2
data.packetLifeTime.............0
data.preference.................0
data.reserved_464...............0
data.reserved_480...............0
Subnet Administration Get RPCs have an annoying ComponentMask field which is a bitfield indicating which subfields are relevant. Computing the correct value for this can be quite difficult. The RPC generator computes the proper values for all RPCs and stores them in the class variable COMPONENT_MASK. The helper class rdma.IBA.ComponentMask uses this information to automate computing the ComponentMask value. For example:
obj = IBA.SAPathRecord()
cm = IBA.ComponentMask(obj);
cm.DGID = IBA.GID("::1");
cm.DLID = 2;
assert(cm.component_mask == 20)
Passing a ComponentMask into the SubnAdm* RPC methods will automatically correctly set the ComponentMask value of the MAD.
The library has some limited support for versioning the MAD Formats, but it is not yet fully developed. The basic notion is that each version of a management class will have a separate Format class and separate attribute classes. The attribute class will be enhanced to contain the lowest format version it applies to and the generic layer will instantiate the correct Format class.
Generally the message is that client programmers should ignore versions, and the library will forever process todays current version with the current code.
Server side is a bit different, as the incoming MAD will be decoded according to the version capability of the library, so some defensive code will be required there.
Base class for all *Format type packet layouts.
buf is either an instance of BinStruct or a bytes representing the data to unpack into the instance. offset is the starting offset in buf for unpacking. If no arguments are given then all attributes are set to 0.
Return a short description of the RPC described by this format.
Base class for all binary structure objects (MADs, etc). When pickled this class re-packs the structure and stores it as a bytes value. This reduces the storage overhead from pickling and allows the library to upgrade to different internal storage methods in future.
buf is either an instance of BinStruct or a bytes representing the data to unpack into the instance. offset is the starting offset in buf for unpacking. If no arguments are given then all attributes are set to 0.
Overridden in derived classes. Compact this instance into the bytearray buf starting at offset.
Pretty print the structure. F is the output file, offset is added to all printed offsets and header causes the display of the class type on the first line. format may be dump or dotted.
Overridden in derived classes. Expand the bytes buf starting at offset into this instance.
Overridden in derived classes. Set this instance back to the initial all zeros value.
Starting at offset in buf assign count entries each mlen bits wide to indexes in inp.
Decodes a fixed length string from a IBA MAD (such as rdma.IBA.SMPNodeDescription) These strings are considered to be UTF-8 and null padding is removed.
Convert to a display string. This escapes values like repr but returns with no extra adornment like quotes or a starting u. The intent of this function is to provide a safe printable that has undesired values escaped. FIXME: This should not be so aggressive with repr, that throws away the unicode as well.
Decode a Port Info linkSpeedActive value into a string.
Decode a Port Info port state value into a string.
Convert a link with constant into an integer number of lanes.
Decode a MAD status into a string.
Decode a Node Type value into a string.
Decode a Port Info port physical state value into a string.
Return the rate (eg a rdma.IBA.SAPathRecord.rate) value as an integer bits/sec.
This tries to emulate the libib structure print format. Members are printed one per line with values aligned on column 32.
Pretty print the structure s. F is the output file, offset is added to all printed offsets and name_prefix is used to prefix names when descending.
Convert a rate in integer bits/sec to an IBA rate (eg a rdma.IBA.SAPathRecord.rate). The lowest matching rate constant is returned.
Bases: object
This is a wrapper class for managing IBA structures with a component mask. Attribute access is overridden and tracked by mapping the attribute name to the component mask bit index to build up a component mask value as the class is used.
obj is wrappered
The computed component_mask
The original object that is wrappered.
Include the component mask value name in the calculation. Normally this happens automatically as attributes are accessed.
Raises ValueError: | |
---|---|
If name is not a valid component name |
Bases: str
Stores a GID in internal format. In string format a GID is formatted like an IPv6 addres eg fe80::2:c903:0:1491. Externally the class looks like a string that formats to the GID. pack_into() is used to store the GID in network format. Instances are immutable and can be hashed.
Convert from a string to our GID representation. s is the input string and if raw is True then s must be a length 16 bytes.
If s is None then the ZERO_GID is instantiated. Invoking as GID(prefix=PREFIX,guid=GUID) will construct a GID by concatenating the PREFIX to GUID. GUID should be a rdma.IBA.GUID while PREFIX can be 8 bytes, an integer or a rdma.IBA.GID.
Raises ValueError: | |
---|---|
If the string can not be parsed. |
Return the GUID portion of the GID.
Pack the value into a byte array.
Bases: str
Stores a GUID in internal format. In string format a GUID is formatted as 0002:c903:0000:1491. Externally the class looks like a string that formats to the GUID. pack_into() is used to store the GUID in network format. Instances are immutable and can be hashed.
Convert from a string to our GUID representation. s is the input string and if raw is True then s must be a length 8 bytes.
If s is None then the ZERO_GUID is instantiated. s can also be an integer.
Raises ValueError: | |
---|---|
If the string can not be parsed. |
Pack the value into a byte array.
All zeros GID value.
All zeros GUID value.
Convert the string s into a end port address. s can be a GID, port GUID or LID. The result of this function is a GID or int.
Raises ValueError: | |
---|---|
If the string can not be parsed. |
Converts the string s into an integer assuming it is a LID. If multicast is False then the LID must be a valid unicast LID. If multicast is True then the LID must be a valid multicast LID. If multicast is None then any 16 bit value is accepted.
Raises ValueError: | |
---|---|
If the string can not be parsed. |
Return all the LIDs described by lid and lmc. Similar to range
Take a timeout value in float seconds and convert it into the IBA format that satisfies sec <= 4.096 us * 2**ret
rdma.IBA.NODE_CA | 0x1 | 1 = (1 << 0) |
rdma.IBA.NODE_SWITCH | 0x2 | 2 = (1 << 1) |
rdma.IBA.NODE_ROUTER | 0x3 | 3 |
rdma.IBA.MAX_PORTS | 0xfe | 254 |
rdma.IBA.INVALID_PORT | 0xff | 255 |
rdma.IBA.MAX_PKEYS | 0x10000 | 65536 = (1 << 16) |
rdma.IBA.MAX_GUIDS | 0x100 | 256 = (1 << 8) |
rdma.IBA.MAX_PKT_WORDS | 0x41f | 1055 |
rdma.IBA.LID_RESERVED | 0x0 | 0 |
rdma.IBA.LID_MULTICAST | 0xc000 | 49152 |
rdma.IBA.LID_PERMISSIVE | 0xffff | 65535 |
rdma.IBA.LID_COUNT_UNICAST | 0xc000 | 49152 |
rdma.IBA.LID_COUNT_MULTICAST | 0x3fff | 16383 |
rdma.IBA.PKEY_DEFAULT | 0xffff | 65535 |
rdma.IBA.PKEY_PARTIAL_DEFAULT | 0x7fff | 32767 |
rdma.IBA.PKEY_INVALID | 0x0 | 0 |
rdma.IBA.IB_DEFAULT_QP0_QKEY | 0x0 | 0 |
rdma.IBA.IB_DEFAULT_QP1_QKEY | 0x80010000 | 2147549184 |
rdma.IBA.LNH_GRH | 0x1 | 1 = (1 << 0) |
rdma.IBA.LNH_IBA | 0x2 | 2 = (1 << 1) |
rdma.IBA.GID_DEFAULT_PREFIX | 0xfe80000000000000 | 18338657682652659712L |
rdma.IBA.MTU_256 | 0x1 | 1 = (1 << 0) |
rdma.IBA.MTU_512 | 0x2 | 2 = (1 << 1) |
rdma.IBA.MTU_1024 | 0x3 | 3 |
rdma.IBA.MTU_2048 | 0x4 | 4 = (1 << 2) |
rdma.IBA.MTU_4096 | 0x5 | 5 |
rdma.IBA.LINK_WIDTH_1x | 0x1 | 1 = (1 << 0) |
rdma.IBA.LINK_WIDTH_4x | 0x2 | 2 = (1 << 1) |
rdma.IBA.LINK_WIDTH_8x | 0x4 | 4 = (1 << 2) |
rdma.IBA.LINK_WIDTH_12x | 0x8 | 8 = (1 << 3) |
rdma.IBA.LINK_SPEED_2Gb5 | 0x1 | 1 = (1 << 0) |
rdma.IBA.LINK_SPEED_5Gb0 | 0x2 | 2 = (1 << 1) |
rdma.IBA.LINK_SPEED_10Gb0 | 0x4 | 4 = (1 << 2) |
rdma.IBA.PR_RATE_2Gb5 | 0x2 | 2 = (1 << 1) |
rdma.IBA.PR_RATE_10Gb0 | 0x3 | 3 |
rdma.IBA.PR_RATE_30Gb0 | 0x4 | 4 = (1 << 2) |
rdma.IBA.PR_RATE_5Gb0 | 0x5 | 5 |
rdma.IBA.PR_RATE_20Gb0 | 0x6 | 6 |
rdma.IBA.PR_RATE_40Gb0 | 0x7 | 7 |
rdma.IBA.PR_RATE_60Gb0 | 0x8 | 8 = (1 << 3) |
rdma.IBA.PR_RATE_80Gb0 | 0x9 | 9 |
rdma.IBA.PR_RATE_120Gb0 | 0xa | 10 |
rdma.IBA.PORT_STATE_DOWN | 0x1 | 1 = (1 << 0) |
rdma.IBA.PORT_STATE_INIT | 0x2 | 2 = (1 << 1) |
rdma.IBA.PORT_STATE_ARMED | 0x3 | 3 |
rdma.IBA.PORT_STATE_ACTIVE | 0x4 | 4 = (1 << 2) |
rdma.IBA.PHYS_PORT_STATE_SLEEP | 0x1 | 1 = (1 << 0) |
rdma.IBA.PHYS_PORT_STATE_POLLING | 0x2 | 2 = (1 << 1) |
rdma.IBA.PHYS_PORT_STATE_DISABLED | 0x3 | 3 |
rdma.IBA.PHYS_PORT_STATE_CFG_TRAIN | 0x4 | 4 = (1 << 2) |
rdma.IBA.PHYS_PORT_STATE_LINK_UP | 0x5 | 5 |
rdma.IBA.PHYS_PORT_STATE_LINK_ERR_RECOVERY | 0x6 | 6 |
rdma.IBA.PHYS_PORT_STATE_PHY_TEST | 0x7 | 7 |
rdma.IBA.MAD_METHOD_GET | 0x1 | 1 = (1 << 0) |
rdma.IBA.MAD_METHOD_SET | 0x2 | 2 = (1 << 1) |
rdma.IBA.MAD_METHOD_SEND | 0x3 | 3 |
rdma.IBA.MAD_METHOD_GET_RESP | 0x81 | 129 |
rdma.IBA.MAD_METHOD_TRAP | 0x5 | 5 |
rdma.IBA.MAD_METHOD_TRAP_REPRESS | 0x7 | 7 |
rdma.IBA.MAD_METHOD_GET_TABLE | 0x12 | 18 |
rdma.IBA.MAD_METHOD_GET_TRACE_TABLE | 0x13 | 19 |
rdma.IBA.MAD_METHOD_GET_MULTI | 0x14 | 20 |
rdma.IBA.MAD_METHOD_DELETE | 0x15 | 21 |
rdma.IBA.MAD_METHOD_RESPONSE | 0x80 | 128 = (1 << 7) |
rdma.IBA.MAD_BASE_VERSION | 0x1 | 1 = (1 << 0) |
rdma.IBA.MAD_NOTICE_FATAL | 0x0 | 0 |
rdma.IBA.MAD_NOTICE_URGENT | 0x1 | 1 = (1 << 0) |
rdma.IBA.MAD_NOTICE_SECURITY | 0x2 | 2 = (1 << 1) |
rdma.IBA.MAD_NOTICE_SM | 0x3 | 3 |
rdma.IBA.MAD_NOTICE_INFO | 0x4 | 4 = (1 << 2) |
rdma.IBA.MAD_STATUS_BUSY | 0x1 | 1 = (1 << 0) |
rdma.IBA.MAD_STATUS_REDIRECT | 0x2 | 2 = (1 << 1) |
rdma.IBA.MAD_STATUS_BAD_VERSION | 0x4 | 4 = (1 << 2) |
rdma.IBA.MAD_STATUS_UNSUP_METHOD | 0x8 | 8 = (1 << 3) |
rdma.IBA.MAD_STATUS_UNSUP_METHOD_ATTR_COMBO | 0xc | 12 |
rdma.IBA.MAD_STATUS_INVALID_ATTR_OR_MODIFIER | 0x1c | 28 |
rdma.IBA.MAD_STATUS_DIRECTED_RESPONSE | 0x8000 | 32768 = (1 << 15) |
rdma.IBA.MAD_STATUS_SA_NO_RESOURCE | 0x1 | 1 = (1 << 0) |
rdma.IBA.MAD_STATUS_SA_REQ_INVALID | 0x2 | 2 = (1 << 1) |
rdma.IBA.MAD_STATUS_SA_NO_RECORDS | 0x3 | 3 |
rdma.IBA.MAD_STATUS_SA_TOO_MANY_RECORDS | 0x4 | 4 = (1 << 2) |
rdma.IBA.MAD_STATUS_SA_INVALID_GID | 0x5 | 5 |
rdma.IBA.MAD_STATUS_SA_INSUFFICIENT_COMPONENTS | 0x6 | 6 |
rdma.IBA.MAD_STATUS_SA_DENIED | 0x7 | 7 |
rdma.IBA.MAD_STATUS_CLASS_SHIFT | 0x8 | 8 = (1 << 3) |
rdma.IBA.MAD_STATUS_CLASS_MASK | 0x7f | 127 |
rdma.IBA.MAD_SUBNET | 0x1 | 1 = (1 << 0) |
rdma.IBA.MAD_SUBNET_DIRECTED | 0x81 | 129 |
rdma.IBA.MAD_SUBNET_ADMIN | 0x3 | 3 |
rdma.IBA.MAD_COMMUNICATIONS | 0x7 | 7 |
rdma.IBA.MAD_PERFORMANCE | 0x4 | 4 = (1 << 2) |
rdma.IBA.MAD_DEVICE | 0x6 | 6 |
rdma.IBA.MAD_SNMP | 0x8 | 8 = (1 << 3) |
rdma.IBA.RMPP_ACTIVE | 0x1 | 1 = (1 << 0) |
rdma.IBA.RMPP_FIRST | 0x2 | 2 = (1 << 1) |
rdma.IBA.RMPP_LAST | 0x4 | 4 = (1 << 2) |
rdma.IBA.generatesTraps | 0x1 | 1 = (1 << 0) |
rdma.IBA.implementsNotice | 0x2 | 2 = (1 << 1) |
rdma.IBA.allPortSelect | 0x100 | 256 = (1 << 8) |
rdma.IBA.portCountersXmitWaitSupported | 0x1000 | 4096 = (1 << 12) |
rdma.IBA.isSM | 0x2 | 2 = (1 << 1) |
rdma.IBA.isNoticeSupported | 0x4 | 4 = (1 << 2) |
rdma.IBA.isTrapSupported | 0x8 | 8 = (1 << 3) |
rdma.IBA.isAutomaticMigrationSupported | 0x20 | 32 = (1 << 5) |
rdma.IBA.isSLMappingSupported | 0x40 | 64 = (1 << 6) |
rdma.IBA.isMKeyNVRAM | 0x80 | 128 = (1 << 7) |
rdma.IBA.isPKeyNVRAM | 0x100 | 256 = (1 << 8) |
rdma.IBA.isLEDInfoSupported | 0x200 | 512 = (1 << 9) |
rdma.IBA.isSMdisabled | 0x400 | 1024 = (1 << 10) |
rdma.IBA.isSystemImageGUIDSupported | 0x800 | 2048 = (1 << 11) |
rdma.IBA.isPKeySwitchExternalPortTrapSupported | 0x1000 | 4096 = (1 << 12) |
rdma.IBA.isCommunicationManagementSupported | 0x10000 | 65536 = (1 << 16) |
rdma.IBA.isSNMPTunnelingSupported | 0x20000 | 131072 = (1 << 17) |
rdma.IBA.isReinitSupported | 0x40000 | 262144 = (1 << 18) |
rdma.IBA.isDeviceManagementSupported | 0x80000 | 524288 = (1 << 19) |
rdma.IBA.isVendorClassSupported | 0x100000 | 1048576 = (1 << 20) |
rdma.IBA.isDRNoticeSupported | 0x200000 | 2097152 = (1 << 21) |
rdma.IBA.isCapabilityMaskNoticeSupported | 0x400000 | 4194304 = (1 << 22) |
rdma.IBA.isBootManagementSupported | 0x800000 | 8388608 = (1 << 23) |
rdma.IBA.isLinkRoundTripLatencySupported | 0x1000000 | 16777216 = (1 << 24) |
rdma.IBA.isClientReregistrationSupported | 0x2000000 | 33554432 = (1 << 25) |
rdma.IBA.isOtherLocalChangesNoticeSupported | 0x4000000 | 67108864 = (1 << 26) |
rdma.IBA.isLinkSpeedWidthPairsTableSupported | 0x8000000 | 134217728 = (1 << 27) |
Alternate Path Response (section 12.8.2)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
additionalInfoLength | 8:9 (8) | int |
APstatus | 9:10 (8) | int |
reserved_80 | 10:12 (16) | int |
additionalInfo | 12:84 (576) | bytearray (72) |
privateData | 84:232 (1184) | bytearray (148) |
Reply To Request For Communication Release (section 12.6.11)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
privateData | 8:232 (1792) | bytearray (224) |
Request For Communication Release (Disconnection Request) (section 12.6.10)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
remoteQPN | 8:11 (24) | int |
reserved_88 | 11:12 (8) | int |
privateData | 12:232 (1760) | bytearray (220) |
Load Alternate Path (section 12.8.1)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
QKey | 8:12 (32) | int |
RQPN | 12:15 (24) | int |
RCMTimeout | 15:15[5] (5) | int |
reserved_125 | 15[5]:16 (3) | int |
reserved_128 | 16:20 (32) | int |
altSLID | 20:22 (16) | int |
altDLID | 22:24 (16) | int |
altSGID | 24:40 (128) | GID |
altDGID | 40:56 (128) | GID |
altFlowLabel | 56:58[4] (20) | int |
reserved_468 | 58[4]:59 (4) | int |
altTClass | 59:60 (8) | int |
altHopLimit | 60:61 (8) | int |
reserved_488 | 61:61[2] (2) | int |
altIPD | 61[2]:62 (6) | int |
altSL | 62:62[4] (4) | int |
altSubnetLocal | 62[4]:62[5] (1) | int |
reserved_501 | 62[5]:63 (3) | int |
altLocalACKTimeout | 63:63[5] (5) | int |
reserved_509 | 63[5]:64 (3) | int |
privateData | 64:232 (1344) | bytearray (168) |
Message Receipt Acknowledgement (section 12.6.6)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
messageMRAed | 8:8[2] (2) | int |
reserved_66 | 8[2]:9 (6) | int |
serviceTimeout | 9:9[5] (5) | int |
reserved_77 | 9[5]:10 (3) | int |
reserved_80 | 10:12 (16) | int |
privateData | 12:232 (1760) | bytearray (220) |
Path Information (section 12.6)
Member | Position | Type |
---|---|---|
SLID | 0:2 (16) | int |
DLID | 2:4 (16) | int |
SGID | 4:20 (128) | GID |
DGID | 20:36 (128) | GID |
flowLabel | 36:38[4] (20) | int |
reserved_308 | 38[4]:39 (4) | int |
reserved_312 | 39:39[2] (2) | int |
PD | 39[2]:40 (6) | int |
TClass | 40:41 (8) | int |
hopLimit | 41:42 (8) | int |
SL | 42:42[4] (4) | int |
subnetLocal | 42[4]:42[5] (1) | int |
reserved_341 | 42[5]:43 (3) | int |
localACKTimeout | 43:43[5] (5) | int |
reserved_349 | 43[5]:44 (3) | int |
Reject (section 12.6.7)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
messageRejected | 8:8[2] (2) | int |
reserved_66 | 8[2]:9 (6) | int |
rejectInfoLength | 9:9[7] (7) | int |
reserved_79 | 9[7]:10 (1) | int |
reason | 10:12 (16) | int |
ARI | 12:84 (576) | bytearray (72) |
privateData | 84:232 (1184) | bytearray (148) |
Reply To Request For Communication (section 12.6.8)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
localQKey | 8:12 (32) | int |
localQPN | 12:15 (24) | int |
reserved_120 | 15:16 (8) | int |
localEEContext | 16:19 (24) | int |
reserved_152 | 19:20 (8) | int |
startingPSN | 20:23 (24) | int |
reserved_184 | 23:24 (8) | int |
responderResources | 24:25 (8) | int |
initiatorDepth | 25:26 (8) | int |
targetACKDelay | 26:26[5] (5) | int |
failoverAccepted | 26[5]:26[7] (2) | int |
flowControl | 26[7]:27 (1) | int |
RNRRetryCount | 27:27[3] (3) | int |
reserved_219 | 27[3]:28 (5) | int |
LGUID | 28:36 (64) | GUID |
privateData | 36:232 (1568) | bytearray (196) |
Request for Communication (section 12.6.5)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
reserved_32 | 4:8 (32) | int |
serviceID | 8:16 (64) | int |
LGUID | 16:24 (64) | GUID |
localCMQKey | 24:28 (32) | int |
localQKey | 28:32 (32) | int |
localQPN | 32:35 (24) | int |
responderResources | 35:36 (8) | int |
localEECN | 36:39 (24) | int |
initiatorDepth | 39:40 (8) | int |
remoteEECN | 40:43 (24) | int |
remoteResponseTimeout | 43:43[5] (5) | int |
transportService | 43[5]:43[7] (2) | int |
flowControl | 43[7]:44 (1) | int |
startingPSN | 44:47 (24) | int |
localResponseTimeout | 47:47[5] (5) | int |
retryCount | 47[5]:48 (3) | int |
PKey | 48:50 (16) | int |
pathPacketMTU | 50:50[4] (4) | int |
RDCExists | 50[4]:50[5] (1) | int |
RNRRetryCount | 50[5]:51 (3) | int |
maxCMRetries | 51:51[4] (4) | int |
reserved_412 | 51[4]:52 (4) | int |
primaryPath | 52:96 (352) | CMPath |
alternatePath | 96:140 (352) | CMPath |
privateData | 140:232 (736) | bytearray (92) |
Ready To Use (section 12.6.9)
Member | Position | Type |
---|---|---|
LCID | 0:4 (32) | int |
RCID | 4:8 (32) | int |
privateData | 8:232 (1792) | bytearray (224) |
Service ID Resolution Response (section 12.11.2)
Member | Position | Type |
---|---|---|
requestID | 0:4 (32) | int |
QPN | 4:7 (24) | int |
status | 7:8 (8) | int |
serviceID | 8:16 (64) | int |
QKey | 16:20 (32) | int |
classPortinfo | 20:92 (576) | MADClassPortInfo |
privateData | 92:232 (1120) | bytearray (140) |
Service ID Resolution Request (section 12.11.1)
Member | Position | Type |
---|---|---|
requestID | 0:4 (32) | int |
reserved_32 | 4:8 (32) | int |
serviceID | 8:16 (64) | int |
privateData | 16:232 (1728) | bytearray (216) |
Class Port Info (section 13.4.8.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
classVersion | 1:2 (8) | int |
capabilityMask | 2:4 (16) | int |
capabilityMask2 | 4:7[3] (27) | int |
respTimeValue | 7[3]:8 (5) | int |
redirectGID | 8:24 (128) | GID |
redirectTC | 24:25 (8) | int |
redirectSL | 25:25[4] (4) | int |
redirectFL | 25[4]:28 (20) | int |
redirectLID | 28:30 (16) | int |
redirectPKey | 30:32 (16) | int |
reserved_256 | 32:33 (8) | int |
redirectQP | 33:36 (24) | int |
redirectQKey | 36:40 (32) | int |
trapGID | 40:56 (128) | GID |
trapTC | 56:57 (8) | int |
trapSL | 57:57[4] (4) | int |
trapFL | 57[4]:60 (20) | int |
trapLID | 60:62 (16) | int |
trapPKey | 62:64 (16) | int |
trapHL | 64:65 (8) | int |
trapQP | 65:68 (24) | int |
trapQKey | 68:72 (32) | int |
MAD Base Header (section 13.4.3)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
MAD Base Header Directed (section 13.4.3)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
D | 4:4[1] (1) | int |
status | 4[1]:6 (15) | int |
hopPointer | 6:7 (8) | int |
hopCount | 7:8 (8) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
InformInfo (section 13.4.8.3)
Member | Position | Type |
---|---|---|
GID | 0:16 (128) | GID |
LIDRangeBegin | 16:18 (16) | int |
LIDRangeEnd | 18:20 (16) | int |
reserved_160 | 20:22 (16) | int |
isGeneric | 22:23 (8) | int |
subscribe | 23:24 (8) | int |
type | 24:26 (16) | int |
trapNumber | 26:28 (16) | int |
QPN | 28:31 (24) | int |
reserved_248 | 31:31[3] (3) | int |
respTimeValue | 31[3]:32 (5) | int |
reserved_256 | 32:33 (8) | int |
producerType | 33:36 (24) | int |
RMPP Data Packet (section 13.6.2.3)
Member | Position | Type |
---|---|---|
RMPPHeader | 0:28 (224) | RMPPShortHeader |
reserved_224 | 28:32 (32) | int |
reserved_256 | 32:36 (32) | int |
errorData | 36:256 (1760) | bytearray (220) |
RMPP Data Packet (section 13.6.2.3)
Member | Position | Type |
---|---|---|
RMPPHeader | 0:28 (224) | RMPPShortHeader |
segmentNumber | 28:32 (32) | int |
newWindowLast | 32:36 (32) | int |
reserved_288 | 36:256 (1760) | bytearray (220) |
RMPP Data Packet (section 13.6.2.3)
Member | Position | Type |
---|---|---|
RMPPHeader | 0:28 (224) | RMPPShortHeader |
segmentNumber | 28:32 (32) | int |
payLoadLength | 32:36 (32) | int |
data | 36:256 (1760) | bytearray (220) |
RMPP Header Fields (section 13.6.2.1)
Member | Position | Type |
---|---|---|
MADHeader | 0:24 (192) | MADHeader |
RMPPVersion | 24:25 (8) | int |
RMPPType | 25:26 (8) | int |
RRespTime | 26:26[5] (5) | int |
RMPPFlags | 26[5]:27 (3) | int |
RMPPStatus | 27:28 (8) | int |
data1 | 28:32 (32) | int |
data2 | 32:36 (32) | int |
RMPP Header Fields (section 13.6.2.1)
Member | Position | Type |
---|---|---|
MADHeader | 0:24 (192) | MADHeader |
RMPPVersion | 24:25 (8) | int |
RMPPType | 25:26 (8) | int |
RRespTime | 26:26[5] (5) | int |
RMPPFlags | 26[5]:27 (3) | int |
RMPPStatus | 27:28 (8) | int |
RMPP Data Packet (section 13.6.2.3)
Member | Position | Type |
---|---|---|
RMPPHeader | 0:28 (224) | RMPPShortHeader |
reserved_224 | 28:32 (32) | int |
reserved_256 | 32:36 (32) | int |
errorData | 36:256 (1760) | bytearray (220) |
An aggregation of: MADHeader
SMP Format - LID Routed (section 14.2.1.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
MKey | 24:32 (64) | int |
reserved_256 | 32:64 (256) | bytearray (32) |
data | 64:128 (512) | bytearray (64) |
reserved_1024 | 128:256 (1024) | bytearray (128) |
An aggregation of: MADHeaderDirected
SMP Format - Direct Routed (section 14.2.1.2)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
D | 4:4[1] (1) | int |
status | 4[1]:6 (15) | int |
hopPointer | 6:7 (8) | int |
hopCount | 7:8 (8) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
MKey | 24:32 (64) | int |
drSLID | 32:34 (16) | int |
drDLID | 34:36 (16) | int |
reserved_288 | 36:64 (224) | bytearray (28) |
data | 64:128 (512) | bytearray (64) |
initialPath | 128:192 (8) | [bytearray (64)]*64 |
returnPath | 192:256 (8) | [bytearray (64)]*64 |
Assigned GUIDs (section 14.2.5.5)
Member | Position | Type |
---|---|---|
GUIDBlock | 0:64 (64) | [GUID]*8 |
LID/Port Block Element (section 14.2.5.11)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
valid | 2:2[1] (1) | int |
LMC | 2[1]:2[4] (3) | int |
reserved_20 | 2[4]:3 (4) | int |
port | 3:4 (8) | int |
Turn on/off LED (section 14.2.5.15)
Member | Position | Type |
---|---|---|
ledMask | 0:0[1] (1) | int |
reserved_1 | 0[1]:4 (31) | int |
Linear Forwarding Table Information (section 14.2.5.10)
Member | Position | Type |
---|---|---|
portBlock | 0:64 (8) | [bytearray (64)]*64 |
Multicast Forwarding Table Information (section 14.2.5.12)
Member | Position | Type |
---|---|---|
portMaskBlock | 0:64 (16) | [int]*32 |
Node Description String (section 14.2.5.2)
Member | Position | Type |
---|---|---|
nodeString | 0:64 (8) | [bytearray (64)]*64 |
Generic Node Data (section 14.2.5.3)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
classVersion | 1:2 (8) | int |
nodeType | 2:3 (8) | int |
numPorts | 3:4 (8) | int |
systemImageGUID | 4:12 (64) | GUID |
nodeGUID | 12:20 (64) | GUID |
portGUID | 20:28 (64) | GUID |
partitionCap | 28:30 (16) | int |
deviceID | 30:32 (16) | int |
revision | 32:36 (32) | int |
localPortNum | 36:37 (8) | int |
vendorID | 37:40 (24) | int |
Partition Table (section 14.2.5.7)
Member | Position | Type |
---|---|---|
PKeyBlock | 0:64 (16) | [int]*32 |
Port Information (section 14.2.5.6)
Member | Position | Type |
---|---|---|
MKey | 0:8 (64) | int |
GIDPrefix | 8:16 (64) | int |
LID | 16:18 (16) | int |
masterSMLID | 18:20 (16) | int |
capabilityMask | 20:24 (32) | int |
diagCode | 24:26 (16) | int |
MKeyLeasePeriod | 26:28 (16) | int |
localPortNum | 28:29 (8) | int |
linkWidthEnabled | 29:30 (8) | int |
linkWidthSupported | 30:31 (8) | int |
linkWidthActive | 31:32 (8) | int |
linkSpeedSupported | 32:32[4] (4) | int |
portState | 32[4]:33 (4) | int |
portPhysicalState | 33:33[4] (4) | int |
linkDownDefaultState | 33[4]:34 (4) | int |
MKeyProtectBits | 34:34[2] (2) | int |
reserved_274 | 34[2]:34[5] (3) | int |
LMC | 34[5]:35 (3) | int |
linkSpeedActive | 35:35[4] (4) | int |
linkSpeedEnabled | 35[4]:36 (4) | int |
neighborMTU | 36:36[4] (4) | int |
masterSMSL | 36[4]:37 (4) | int |
VLCap | 37:37[4] (4) | int |
initType | 37[4]:38 (4) | int |
VLHighLimit | 38:39 (8) | int |
VLArbitrationHighCap | 39:40 (8) | int |
VLArbitrationLowCap | 40:41 (8) | int |
initTypeReply | 41:41[4] (4) | int |
MTUCap | 41[4]:42 (4) | int |
VLStallCount | 42:42[3] (3) | int |
HOQLife | 42[3]:43 (5) | int |
operationalVLs | 43:43[4] (4) | int |
partitionEnforcementInbound | 43[4]:43[5] (1) | int |
partitionEnforcementOutbound | 43[5]:43[6] (1) | int |
filterRawInbound | 43[6]:43[7] (1) | int |
filterRawOutbound | 43[7]:44 (1) | int |
MKeyViolations | 44:46 (16) | int |
PKeyViolations | 46:48 (16) | int |
QKeyViolations | 48:50 (16) | int |
GUIDCap | 50:51 (8) | int |
clientReregister | 51:51[1] (1) | int |
reserved_409 | 51[1]:51[3] (2) | int |
subnetTimeOut | 51[3]:52 (5) | int |
reserved_416 | 52:52[3] (3) | int |
respTimeValue | 52[3]:53 (5) | int |
localPhyErrors | 53:53[4] (4) | int |
overrunErrors | 53[4]:54 (4) | int |
maxCreditHint | 54:56 (16) | int |
reserved_448 | 56:57 (8) | int |
linkRoundTripLatency | 57:60 (24) | int |
Random Forwarding Table Information (section 14.2.5.11)
Member | Position | Type |
---|---|---|
LIDPortBlock | 0:64 (32) | [SMPLIDPortBlock]*16 |
Service Level to Virtual Lane mapping Information (section 14.2.5.8)
Member | Position | Type |
---|---|---|
SLtoVL | 0:8 (4) | [int]*16 |
Subnet Management Information (section 14.2.5.13)
Member | Position | Type |
---|---|---|
GUID | 0:8 (64) | GUID |
SMKey | 8:16 (64) | int |
actCount | 16:20 (32) | int |
priority | 20:20[4] (4) | int |
SMState | 20[4]:21 (4) | int |
reserved_168 | 21:24 (24) | int |
Switch Information (section 14.2.5.4)
Member | Position | Type |
---|---|---|
linearFDBCap | 0:2 (16) | int |
randomFDBCap | 2:4 (16) | int |
multicastFDBCap | 4:6 (16) | int |
linearFDBTop | 6:8 (16) | int |
defaultPort | 8:9 (8) | int |
defaultMulticastPrimaryPort | 9:10 (8) | int |
defaultMulticastNotPrimaryPort | 10:11 (8) | int |
lifeTimeValue | 11:11[5] (5) | int |
portStateChange | 11[5]:11[6] (1) | int |
optimizedSLtoVLMappingProgramming | 11[6]:12 (2) | int |
LIDsPerPort | 12:14 (16) | int |
partitionEnforcementCap | 14:16 (16) | int |
inboundEnforcementCap | 16:16[1] (1) | int |
outboundEnforcementCap | 16[1]:16[2] (1) | int |
filterRawInboundCap | 16[2]:16[3] (1) | int |
filterRawOutboundCap | 16[3]:16[4] (1) | int |
enhancedPort0 | 16[4]:16[5] (1) | int |
reserved_133 | 16[5]:17 (3) | int |
reserved_136 | 17:20 (24) | int |
List of Weights (section 14.2.5.9)
Member | Position | Type |
---|---|---|
VLWeightBlock | 0:64 (16) | [int]*32 |
Vendor Specific Diagnostic (section 14.2.5.14)
Member | Position | Type |
---|---|---|
nextIndex | 0:2 (16) | int |
reserved_16 | 2:4 (16) | int |
diagData | 4:64 (480) | bytearray (60) |
An aggregation of: SAHeader
SA Format (section 15.2.1.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
RMPPVersion | 24:25 (8) | int |
RMPPType | 25:26 (8) | int |
RRespTime | 26:26[5] (5) | int |
RMPPFlags | 26[5]:27 (3) | int |
RMPPStatus | 27:28 (8) | int |
data1 | 28:32 (32) | int |
data2 | 32:36 (32) | int |
SMKey | 36:44 (64) | int |
attributeOffset | 44:46 (16) | int |
reserved_368 | 46:48 (16) | int |
componentMask | 48:56 (64) | int |
data | 56:256 (1600) | bytearray (200) |
Container for port GUIDInfo (section 15.2.5.18)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
blockNum | 2:3 (8) | int |
reserved_24 | 3:4 (8) | int |
reserved_32 | 4:8 (32) | int |
GUIDInfo | 8:72 (512) | SMPGUIDInfo |
An aggregation of: MADHeader, RMPPHeader
SA Header (section 15.2.1.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
RMPPVersion | 24:25 (8) | int |
RMPPType | 25:26 (8) | int |
RRespTime | 26:26[5] (5) | int |
RMPPFlags | 26[5]:27 (3) | int |
RMPPStatus | 27:28 (8) | int |
data1 | 28:32 (32) | int |
data2 | 32:36 (32) | int |
SMKey | 36:44 (64) | int |
attributeOffset | 44:46 (16) | int |
reserved_368 | 46:48 (16) | int |
componentMask | 48:56 (64) | int |
Container for InformInfo (section 15.2.5.12)
Member | Position | Type |
---|---|---|
subscriberGID | 0:16 (128) | GID |
enumeration | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
reserved_160 | 20:24 (32) | int |
informInfo | 24:60 (288) | MADInformInfo |
reserved_480 | 60:80 (160) | bytearray (20) |
Container for LinearForwardingTable entry (section 15.2.5.6)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
blockNum | 2:4 (16) | int |
reserved_32 | 4:8 (32) | int |
linearForwardingTable | 8:72 (512) | SMPLinearForwardingTable |
Inter-node linkage information (section 15.2.5.13)
Member | Position | Type |
---|---|---|
fromLID | 0:2 (16) | int |
fromPort | 2:3 (8) | int |
toPort | 3:4 (8) | int |
toLID | 4:6 (16) | int |
reserved_48 | 6:8 (16) | int |
Multicast member attribute (section 15.2.5.17)
Member | Position | Type |
---|---|---|
MGID | 0:16 (128) | GID |
portGID | 16:32 (128) | GID |
QKey | 32:36 (32) | int |
MLID | 36:38 (16) | int |
MTUSelector | 38:38[2] (2) | int |
MTU | 38[2]:39 (6) | int |
TClass | 39:40 (8) | int |
PKey | 40:42 (16) | int |
rateSelector | 42:42[2] (2) | int |
rate | 42[2]:43 (6) | int |
packetLifeTimeSelector | 43:43[2] (2) | int |
packetLifeTime | 43[2]:44 (6) | int |
SL | 44:44[4] (4) | int |
flowLabel | 44[4]:47 (20) | int |
hopLimit | 47:48 (8) | int |
scope | 48:48[4] (4) | int |
joinState | 48[4]:49 (4) | int |
proxyJoin | 49:49[1] (1) | int |
reserved_393 | 49[1]:52 (23) | int |
Request for multiple paths (section 15.2.5.20)
Member | Position | Type |
---|---|---|
rawTraffic | 0:0[1] (1) | int |
reserved_1 | 0[1]:0[4] (3) | int |
flowLabel | 0[4]:3 (20) | int |
hopLimit | 3:4 (8) | int |
TClass | 4:5 (8) | int |
reversible | 5:5[1] (1) | int |
numbPath | 5[1]:6 (7) | int |
PKey | 6:8 (16) | int |
reserved_64 | 8:9[4] (12) | int |
SL | 9[4]:10 (4) | int |
MTUSelector | 10:10[2] (2) | int |
MTU | 10[2]:11 (6) | int |
rateSelector | 11:11[2] (2) | int |
rate | 11[2]:12 (6) | int |
packetLifeTimeSelector | 12:12[2] (2) | int |
packetLifeTime | 12[2]:13 (6) | int |
reserved_104 | 13:14 (8) | int |
independenceSelector | 14:14[2] (2) | int |
reserved_114 | 14[2]:15 (6) | int |
SGIDCount | 15:16 (8) | int |
DGIDCount | 16:17 (8) | int |
reserved_136 | 17:20 (24) | int |
reserved_160 | 20:24 (32) | int |
SDGID | 24:40 (128) | GID |
Container for MulticastForwardingTable entry (section 15.2.5.8)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
reserved_16 | 2:2[2] (2) | int |
position | 2[2]:2[6] (4) | int |
blockNum | 2[6]:4 (10) | int |
reserved_32 | 4:8 (32) | int |
multicastForwardingTable | 8:72 (512) | SMPMulticastForwardingTable |
Container for NodeInfo (section 15.2.5.2)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
reserved_16 | 2:4 (16) | int |
nodeInfo | 4:44 (320) | SMPNodeInfo |
nodeDescription | 44:108 (512) | SMPNodeDescription |
Container for P_Key Table (section 15.2.5.11)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
blockNum | 2:4 (16) | int |
portNum | 4:5 (8) | int |
reserved_40 | 5:8 (24) | int |
PKeyTable | 8:72 (512) | SMPPKeyTable |
Information on paths through the subnet (section 15.2.5.16)
Member | Position | Type |
---|---|---|
serviceID | 0:8 (64) | int |
serviceID56LSB | 8:8 (0) | int |
DGID | 8:24 (128) | GID |
SGID | 24:40 (128) | GID |
DLID | 40:42 (16) | int |
SLID | 42:44 (16) | int |
rawTraffic | 44:44[1] (1) | int |
reserved_353 | 44[1]:44[4] (3) | int |
flowLabel | 44[4]:47 (20) | int |
hopLimit | 47:48 (8) | int |
TClass | 48:49 (8) | int |
reversible | 49:49[1] (1) | int |
numbPath | 49[1]:50 (7) | int |
PKey | 50:52 (16) | int |
QOSClass | 52:53[4] (12) | int |
SL | 53[4]:54 (4) | int |
MTUSelector | 54:54[2] (2) | int |
MTU | 54[2]:55 (6) | int |
rateSelector | 55:55[2] (2) | int |
rate | 55[2]:56 (6) | int |
packetLifeTimeSelector | 56:56[2] (2) | int |
packetLifeTime | 56[2]:57 (6) | int |
preference | 57:58 (8) | int |
reserved_464 | 58:60 (16) | int |
reserved_480 | 60:64 (32) | int |
Container for PortInfo (section 15.2.5.3)
Member | Position | Type |
---|---|---|
endportLID | 0:2 (16) | int |
portNum | 2:3 (8) | int |
reserved_24 | 3:4 (8) | int |
portInfo | 4:64 (480) | SMPPortInfo |
Container for RandomForwardingTable entry (section 15.2.5.7)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
blockNum | 2:4 (16) | int |
reserved_32 | 4:8 (32) | int |
randomForwardingTable | 8:72 (512) | SMPRandomForwardingTable |
Container for SLtoVLMappingTable entry (section 15.2.5.4)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
inputPortNum | 2:3 (8) | int |
outputPortNum | 3:4 (8) | int |
reserved_32 | 4:8 (32) | int |
SLToVLMappingTable | 8:16 (64) | SMPSLToVLMappingTable |
Container for SMInfo (section 15.2.5.10)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
reserved_16 | 2:4 (16) | int |
SMInfo | 4:28 (192) | SMPSMInfo |
ServiceRecord ServiceName/ServiceKey association (section 15.2.5.15)
Member | Position | Type |
---|---|---|
serviceKey | 0:16 (128) | GID |
serviceName | 16:80 (8) | [bytearray (64)]*64 |
Information on advertised services (section 15.2.5.14)
Member | Position | Type |
---|---|---|
serviceID | 0:8 (64) | int |
serviceGID | 8:24 (128) | GID |
servicePKey | 24:26 (16) | int |
reserved_208 | 26:28 (16) | int |
serviceLease | 28:32 (32) | int |
serviceKey | 32:48 (128) | GID |
serviceName | 48:112 (8) | [bytearray (64)]*64 |
serviceData8 | 112:128 (8) | [bytearray (16)]*16 |
serviceData16 | 128:144 (16) | [int]*8 |
serviceData32 | 144:160 (32) | [int]*4 |
serviceData64 | 160:176 (64) | [int]*2 |
Container for SwitchInfo (section 15.2.5.5)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
reserved_16 | 2:4 (16) | int |
switchInfo | 4:24 (160) | SMPSwitchInfo |
Path trace information (section 15.2.5.19)
Member | Position | Type |
---|---|---|
GIDPrefix | 0:8 (64) | int |
IDGeneration | 8:10 (16) | int |
reserved_80 | 10:11 (8) | int |
nodeType | 11:12 (8) | int |
nodeID | 12:20 (64) | int |
chassisID | 20:28 (64) | int |
entryPortID | 28:36 (64) | int |
exitPortID | 36:44 (64) | int |
entryPort | 44:45 (8) | int |
exitPort | 45:46 (8) | int |
reserved_368 | 46:48 (16) | int |
Container for VLArbitrationTable entry (section 15.2.5.9)
Member | Position | Type |
---|---|---|
LID | 0:2 (16) | int |
outputPortNum | 2:3 (8) | int |
blockNum | 3:4 (8) | int |
reserved_32 | 4:8 (32) | int |
VLArbitrationTable | 8:72 (512) | SMPVLArbitrationTable |
An aggregation of: MADHeader
Performance Management MAD Format (section 16.1.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
reserved_192 | 24:64 (320) | bytearray (40) |
data | 64:256 (1536) | bytearray (192) |
Port Basic Performance and Error Counters (section 16.1.3.5)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
symbolErrorCounter | 4:6 (16) | int |
linkErrorRecoveryCounter | 6:7 (8) | int |
linkDownedCounter | 7:8 (8) | int |
portRcvErrors | 8:10 (16) | int |
portRcvRemotePhysicalErrors | 10:12 (16) | int |
portRcvSwitchRelayErrors | 12:14 (16) | int |
portXmitDiscards | 14:16 (16) | int |
portXmitConstraintErrors | 16:17 (8) | int |
portRcvConstraintErrors | 17:18 (8) | int |
counterSelect2 | 18:19 (8) | int |
localLinkIntegrityErrors | 19:19[4] (4) | int |
excessiveBufferOverrunErrors | 19[4]:20 (4) | int |
reserved_160 | 20:22 (16) | int |
VL15Dropped | 22:24 (16) | int |
portXmitData | 24:28 (32) | int |
portRcvData | 28:32 (32) | int |
portXmitPkts | 32:36 (32) | int |
portRcvPkts | 36:40 (32) | int |
portXmitWait | 40:44 (32) | int |
Extended Port Counters (section 16.1.4.11)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
reserved_32 | 4:8 (32) | int |
portXmitData | 8:16 (64) | int |
portRcvData | 16:24 (64) | int |
portXmitPkts | 24:32 (64) | int |
portRcvPkts | 32:40 (64) | int |
portUnicastXmitPkts | 40:48 (64) | int |
portUnicastRcvPkts | 48:56 (64) | int |
portMulticastXmitPkts | 56:64 (64) | int |
portMulticastRcvPkts | 64:72 (64) | int |
Port Flow Control Counters (section 16.1.4.4)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portXmitFlowPkts | 4:8 (32) | int |
portRcvFlowPkts | 8:12 (32) | int |
Port Receive Counters per Op Code (section 16.1.4.3)
Member | Position | Type |
---|---|---|
opCode | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portOpRcvPkts | 4:8 (32) | int |
portOpRcvData | 8:12 (32) | int |
Port Detailed Error Counters (section 16.1.4.1)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portLocalPhysicalErrors | 4:6 (16) | int |
portMalformedPacketErrors | 6:8 (16) | int |
portBufferOverrunErrors | 8:10 (16) | int |
portDLIDMappingErrors | 10:12 (16) | int |
portVLMappingErrors | 12:14 (16) | int |
portLoopingErrors | 14:16 (16) | int |
Port Performance Data Sampling Control (section 16.1.3.2)
Member | Position | Type |
---|---|---|
opCode | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
tick | 2:3 (8) | int |
reserved_24 | 3:3[5] (5) | int |
counterWidth | 3[5]:4 (3) | int |
reserved_32 | 4:4[2] (2) | int |
counterMask0 | 4[2]:4[5] (3) | int |
counterMask1 | 4[5]:5 (3) | int |
counterMask2 | 5:5[3] (3) | int |
counterMask3 | 5[3]:5[6] (3) | int |
counterMask4 | 5[6]:6[1] (3) | int |
counterMask5 | 6[1]:6[4] (3) | int |
counterMask6 | 6[4]:6[7] (3) | int |
counterMask7 | 6[7]:7[2] (3) | int |
counterMask8 | 7[2]:7[5] (3) | int |
counterMask9 | 7[5]:8 (3) | int |
reserved_64 | 8:8[1] (1) | int |
counterMask10 | 8[1]:8[4] (3) | int |
counterMask11 | 8[4]:8[7] (3) | int |
counterMask12 | 8[7]:9[2] (3) | int |
counterMask13 | 9[2]:9[5] (3) | int |
counterMask14 | 9[5]:10 (3) | int |
sampleMechanisms | 10:11 (8) | int |
reserved_88 | 11:11[6] (6) | int |
sampleStatus | 11[6]:12 (2) | int |
optionMask | 12:20 (64) | int |
vendorMask | 20:28 (64) | int |
sampleStart | 28:32 (32) | int |
sampleInterval | 32:36 (32) | int |
tag | 36:38 (16) | int |
counterSelect0 | 38:40 (16) | int |
counterSelect1 | 40:42 (16) | int |
counterSelect2 | 42:44 (16) | int |
counterSelect3 | 44:46 (16) | int |
counterSelect4 | 46:48 (16) | int |
counterSelect5 | 48:50 (16) | int |
counterSelect6 | 50:52 (16) | int |
counterSelect7 | 52:54 (16) | int |
counterSelect8 | 54:56 (16) | int |
counterSelect9 | 56:58 (16) | int |
counterSelect10 | 58:60 (16) | int |
counterSelect11 | 60:62 (16) | int |
counterSelect12 | 62:64 (16) | int |
counterSelect13 | 64:66 (16) | int |
counterSelect14 | 66:68 (16) | int |
reserved_544 | 68:72 (32) | int |
samplesOnlyOptionMask | 72:80 (64) | int |
reserved_640 | 80:192 (896) | bytearray (112) |
Port Performance Data Sampling Results (section 16.1.3.4)
Member | Position | Type |
---|---|---|
tag | 0:2 (16) | int |
reserved_16 | 2:3[6] (14) | int |
sampleStatus | 3[6]:4 (2) | int |
counter | 4:64 (32) | [int]*15 |
Extended Port Samples Result (section 16.1.4.10)
Member | Position | Type |
---|---|---|
tag | 0:2 (16) | int |
reserved_16 | 2:3[6] (14) | int |
sampleStatus | 3[6]:4 (2) | int |
extendedWidth | 4:4[2] (2) | int |
reserved_34 | 4[2]:8 (30) | int |
counter | 8:128 (64) | [int]*15 |
Port Kilobytes Received per Op Code per VL (section 16.1.4.6)
Member | Position | Type |
---|---|---|
opCode | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portVLOpData | 4:68 (32) | [int]*16 |
Port Packets Received per Op Code per VL (section 16.1.4.5)
Member | Position | Type |
---|---|---|
opCode | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portVLOpPackets | 4:36 (16) | [int]*16 |
Port Flow Control update errors per VL (section 16.1.4.7)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portVLXmitFlowCtlUpdateErrors | 4:8 (2) | [int]*16 |
Port Ticks Waiting to Transmit Counters per VL (section 16.1.4.8)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portVLXmitWait | 4:36 (16) | [int]*16 |
Port Transmit Discard Counters (section 16.1.4.2)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portInactiveDiscards | 4:6 (16) | int |
portNeighborMTUDiscards | 6:8 (16) | int |
portSwLifetimeLimitDiscards | 8:10 (16) | int |
portSwHOQLimitDiscards | 10:12 (16) | int |
Switch Port Congestion per VL (section 16.1.4.9)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
swPortVLCongestion | 4:36 (16) | [int]*16 |
Receive SL Port Counters (section A13.6.5)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portRcvDataSL | 4:68 (32) | [int]*16 |
Transmit SL Port Counters (section A13.6.5)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
portSelect | 1:2 (8) | int |
counterSelect | 2:4 (16) | int |
portXmitDataSL | 4:68 (32) | [int]*16 |
Vendor-Specific Device Diagnostic Information (section 16.3.3.10)
Member | Position | Type |
---|---|---|
diagCode | 0:2 (16) | int |
reserved_16 | 2:4 (16) | int |
Get the Maximum Time for Completion of a Diagnostic Test (section 16.3.3.6)
Member | Position | Type |
---|---|---|
maxDiagTime | 0:4 (32) | int |
An aggregation of: MADHeader
Device Management MAD Format (section 16.3.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
reserved_192 | 24:64 (320) | bytearray (40) |
data | 64:256 (1536) | bytearray (192) |
I/O Controller Profile Information (section 16.3.3.4)
Member | Position | Type |
---|---|---|
GUID | 0:8 (64) | GUID |
vendorID | 8:11 (24) | int |
reserved_88 | 11:12 (8) | int |
deviceID | 12:16 (32) | int |
deviceVersion | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
subsystemVendorID | 20:23 (24) | int |
reserved_184 | 23:24 (8) | int |
subsystemID | 24:28 (32) | int |
IOClass | 28:30 (16) | int |
IOSubclass | 30:32 (16) | int |
protocol | 32:34 (16) | int |
protocolVersion | 34:36 (16) | int |
reserved_288 | 36:38 (16) | int |
reserved_304 | 38:40 (16) | int |
sendMessageDepth | 40:42 (16) | int |
reserved_336 | 42:43 (8) | int |
RDMAReadDepth | 43:44 (8) | int |
sendMessageSize | 44:48 (32) | int |
RDMATransferSize | 48:52 (32) | int |
controllerOperationsMask | 52:53 (8) | int |
reserved_424 | 53:54 (8) | int |
serviceEntries | 54:55 (8) | int |
reserved_440 | 55:56 (8) | int |
reserved_448 | 56:64 (64) | int |
IDString | 64:128 (8) | [bytearray (64)]*64 |
List of all I/O Controllers in a I/O Unit (section 16.3.3.3)
Member | Position | Type |
---|---|---|
changeID | 0:2 (16) | int |
maxControllers | 2:3 (8) | int |
reserved_24 | 3:3[6] (6) | int |
diagDeviceID | 3[6]:3[7] (1) | int |
optionROM | 3[7]:4 (1) | int |
controllerList | 4:132 (1024) | bytearray (128) |
Prepare Device for Test (section 16.3.3.7)
Member | Position | Type |
---|---|---|
List of Supported Services and Their Associated Service IDs (section 16.3.3.5)
Member | Position | Type |
---|---|---|
serviceEntry | 0:192 (384) | [DMServiceEntry]*4 |
Service Entry (section 16.3.3)
Member | Position | Type |
---|---|---|
serviceName | 0:40 (8) | [bytearray (40)]*40 |
serviceID | 40:48 (64) | int |
Test Device Continuously (section 16.3.3.9)
Member | Position | Type |
---|---|---|
Test Device Once (section 16.3.3.8)
Member | Position | Type |
---|---|---|
Community Name Data Store (section 16.4.3.2)
Member | Position | Type |
---|---|---|
communityName | 0:64 (8) | [bytearray (64)]*64 |
An aggregation of: MADHeader
SNMP Tunneling MAD Format (section 16.4.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
reserved_192 | 24:56 (256) | bytearray (32) |
RAddress | 56:60 (32) | int |
payloadLength | 60:61 (8) | int |
segmentNumber | 61:62 (8) | int |
sourceLID | 62:64 (16) | int |
data | 64:256 (1536) | bytearray (192) |
Data Segment (section 16.4.3.3)
Member | Position | Type |
---|---|---|
PDUData | 0:192 (1536) | bytearray (192) |
An aggregation of: MADHeader
Vendor Specific Management MAD Format (section 16.5.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
data | 24:256 (1856) | bytearray (232) |
An aggregation of: MADHeader, RMPPHeader
Vendor Specific Management MAD Format with OUI (section 16.5.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
RMPPVersion | 24:25 (8) | int |
RMPPType | 25:26 (8) | int |
RRespTime | 26:26[5] (5) | int |
RMPPFlags | 26[5]:27 (3) | int |
RMPPStatus | 27:28 (8) | int |
data1 | 28:32 (32) | int |
data2 | 32:36 (32) | int |
reserved_288 | 36:37 (8) | int |
OUI | 37:40 (24) | int |
data | 40:256 (1728) | bytearray (216) |
An aggregation of: MADHeader
Request for Communication (section 16.7.1)
Member | Position | Type |
---|---|---|
baseVersion | 0:1 (8) | int |
mgmtClass | 1:2 (8) | int |
classVersion | 2:3 (8) | int |
method | 3:4 (8) | int |
status | 4:6 (16) | int |
classSpecific | 6:8 (16) | int |
transactionID | 8:16 (64) | int |
attributeID | 16:18 (16) | int |
reserved_144 | 18:20 (16) | int |
attributeModifier | 20:24 (32) | int |
data | 24:256 (1856) | bytearray (232) |
ACK Extended Transport Header (section 9.3.5)
Member | Position | Type |
---|---|---|
syndrome | 0:1 (8) | int |
MSN | 1:4 (24) | int |
Atomic Acknowledge Extended Transport Header (section 9.5.3)
Member | Position | Type |
---|---|---|
origRData | 0:8 (64) | int |
Atomic Extended Transport Header (section 9.3.4)
Member | Position | Type |
---|---|---|
VA | 0:8 (64) | int |
RKey | 8:12 (32) | int |
swapData | 12:20 (64) | int |
cmpData | 20:28 (64) | int |
Base Transport Header (section 9.2)
Member | Position | Type |
---|---|---|
service | 0:0[3] (3) | int |
function | 0[3]:1 (5) | int |
SE | 1:1[1] (1) | int |
migReq | 1[1]:1[2] (1) | int |
padCnt | 1[2]:1[4] (2) | int |
TVer | 1[4]:2 (4) | int |
PKey | 2:4 (16) | int |
reserved_32 | 4:5 (8) | int |
destQP | 5:8 (24) | int |
ackReq | 8:8[1] (1) | int |
reserved_65 | 8[1]:9 (7) | int |
PSN | 9:12 (24) | int |
Datagram Extended Transport Header (section 9.3.2)
Member | Position | Type |
---|---|---|
QKey | 0:4 (32) | int |
reserved_32 | 4:5 (8) | int |
srcQP | 5:8 (24) | int |
Flow Control Packet (section 7.9.4)
Member | Position | Type |
---|---|---|
op | 0:0[4] (4) | int |
FCTBS | 0[4]:2 (12) | int |
VL | 2:2[4] (4) | int |
FCCL | 2[4]:4 (12) | int |
Global Route Header (section 8.3)
Member | Position | Type |
---|---|---|
IPVer | 0:0[4] (4) | int |
TClass | 0[4]:1[4] (8) | int |
flowLabel | 1[4]:4 (20) | int |
payLen | 4:6 (16) | int |
nxtHdr | 6:7 (8) | int |
hopLmt | 7:8 (8) | int |
SGID | 8:24 (128) | GID |
DGID | 24:40 (128) | GID |
Invalidate Extended Transport Header (section 9.3.7)
Member | Position | Type |
---|---|---|
RKey | 0:4 (32) | int |
Immediate Extended Transport Header (section 9.3.6)
Member | Position | Type |
---|---|---|
immediateData | 0:4 (32) | int |
Local Route Header (section 7.7)
Member | Position | Type |
---|---|---|
VL | 0:0[4] (4) | int |
LVer | 0[4]:1 (4) | int |
SL | 1:1[4] (4) | int |
reserved_12 | 1[4]:1[6] (2) | int |
LNH | 1[6]:2 (2) | int |
DLID | 2:4 (16) | int |
reserved_32 | 4:4[5] (5) | int |
pktLen | 4[5]:6 (11) | int |
SLID | 6:8 (16) | int |
Reliable Datagram Extended Transport Header (section 9.3.1)
Member | Position | Type |
---|---|---|
reserved_0 | 0:1 (8) | int |
EEC | 1:4 (24) | int |
RDMA Extended Transport Header (section 9.3.3)
Member | Position | Type |
---|---|---|
VA | 0:8 (64) | int |
RKey | 8:12 (32) | int |
DMALen | 12:16 (32) | int |
Raw Header (section 5.3)
Member | Position | Type |
---|---|---|
reserved_0 | 0:2 (16) | int |
etherType | 2:4 (16) | int |