When performing the SubnAdmGetTable() operation, the AttributeID identifies the table (i.e., the record type). The following types of table queries can be performed:
Query by template.
Query by RID range.
Request the entire table.
Request only table records that have changed since the last access to the table.
The records are returned in a series of one or more SubnAdmGetTableResp() MADs. Note that records may be broken across successive response MADs. For a detailed description of multi-packet operations, refer to “Reliable Multi-Packet Transaction Protocol” on page 949.
The caller supplies the SA with the ComponentMask identifying which record elements to match, as well as the corresponding element values to look for (in the Admin Data Area). Table 33-9 on page 946 illustrates an example search of the database's entire SwitchRecord table for records with the value 0008h in the LIDsPerPort attribute element. Setting the AttributeModifier = FFFFFFFFh indicates that this is a query by template and the End RID field is ignored by the SA.
The SA will return all records from the indicated table that have a template match. The records are returned in a series of one or more SubnGetTableResp() MADs. For a detailed description of multi-packet operations, refer to “Reliable Multi-Packet Transaction Protocol” on page 949.
Dword | Byte 0 | Byte 1 | Byte 2 | Byte 3 | ||
---|---|---|---|---|---|---|
0 | Base MAD Header | Base Version = 01h | Management Class = SubnAdm | Class Version = 01h | R | SA Method = SubnAdmGetTable() |
1 | Status is only meaningful in response packets. See Table 27-2 on page 776 and Table 33-8 on page 939 | Not used | ||||
2 | Transaction ID | |||||
3 | ||||||
4 | SA AttributeID = Table Type (i.e., record type) | Reserved | ||||
5 | AttributeModifier = FFFFFFFFh | |||||
6 | SMP- specific fields | SA_Key = 0 | ||||
7 | ||||||
8 | SM_Key | |||||
9 | ||||||
10 | Segment Number = 0 | |||||
11 | Payload Length = 0 | |||||
12 | Fragment Flag = 0 | Edit Modifier= 0 | Window = 0 | |||
13 | End RID = 0 | |||||
14 | Component Mask = 0000000000100000000000000000000000000000000000000000000000000000b | |||||
15 | ||||||
16–63 | 192 byte Admin Data Area = 000000000000000000000000000800000h (followed by all zeros) |
The table type is specified in the AttributeID. The caller specifies a query by RID range by specifying the start RID in the AttributeModifier field (it must be a value other than all ones) and the end RID in the End RID field.
The SA will return all records from the indicated table that are in the specified RID range. The records are returned in a series of one or more SubnGetTableResp() MADs. For a detailed description of multi-packet operations, refer to “Reliable Multi-Packet Transaction Protocol” on page 949.
The AttributeID identifies the table type:
The SA_Key must = 0.
The AttributeModifier = 0.
The End RID = FFFFFFFFh.
The SA will return all records from the indicated table. The records are returned in a series of one or more SubnGetTableResp() MADs. For a detailed description of multi-packet operations, refer to “Reliable Multi-Packet Transaction Protocol” on page 949.
Issuing a SubnAdmGetTable() request with a non-zero SA_Key tells the SA to only return table records that are new or have been altered since the last query was made with the same non-zero SA_Key value.
Whether or not the SA supports this feature is optional. If the SA doesn't support it, then it will return all records in the table (rather than just the new or modified records).
Issuing a table query with a non-zero SA_Key that has not been used before is considered to be an error. The SA will respond with a SubnAdmGetTableResp() with its Status field set to indicate an invalid attribute (see Table 27-2 on page 776).