Upon receipt of an SMP, the SMI's RQ Logic validates the packet as follows. Packets failing one or more of these checks are discarded and no action is taken unless the method is a Get() or a Set(). In this case, the return of a GetResp() packet is optional. The checks performed are as follows:
The data payload length must be 256 bytes.
LRH:VL must be 15.
BTH:DestQP must be 0.
BTH:Opcode must be a UD Send-Only.
MADHeader:BaseVersion must be 1.
MADHeader:MgmtClass must specify a class of Subn or Directed-Route Subn.
MADHeader:AttributeID must specify one of the SM attributes.
If a response MAD is returned with the GetResp() method and any of the conditions in Table 27-2 on this page have been detected, the appropriate status bit must be set in the response MAD's Status field.
On receipt of a Set() SMP, an SMA is not required to check the validity of the data to be written to the specified attribute.
Bit(s) | Name | Description |
---|---|---|
0 | Busy | Temporarily busy. MAD discarded. This is not an error. |
1 | Redirect_required | Redirection. This is not an error. In this case, the MAD's data area contains a ClassPortInfo data structure (see Table 28-7 on page 794) containing the information defining the new address that all further request MADs for this class should be sent to. |
4:2 | Code for invalid field |
|
7:5 | Reserved | |
15:8 | Class Specific | The use of these bits are class specific. |
SMI and GSI QPs can share a CQ, but neither can share a CQ with any QP that is not an SMI or GSI. An attempt to do so results in the return of an immediate error specifying an Invalid CQ Handle error.
The incrementing of the PSN in each successive request or response packet generated by the SMI's SQ Logic is not required. Likewise, the SMI RQ Logic does not verify a request packet's PSN.