2.2.2.2 STORAGE_QOS_CONTROL_REQUEST Structure
The STORAGE_QOS_CONTROL_REQUEST packet is sent by the client to request one or more operations on a logical flow.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
ProtocolVersion |
Reserved |
||||||||||||||||||||||||||||||
|
Options |
|||||||||||||||||||||||||||||||
|
LogicalFlowID |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
PolicyID |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
InitiatorID |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
Limit |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
Reservation |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
InitiatorNameOffset |
InitiatorNameLength |
||||||||||||||||||||||||||||||
|
InitiatorNodeNameOffset |
InitiatorNodeNameLength |
||||||||||||||||||||||||||||||
|
IoCountIncrement |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
NormalizedIoCountIncrement |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
LatencyIncrement |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
LowerLatencyIncrement |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
BandwidthLimit (variable) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
KilobyteCountIncrement (variable) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
InitiatorName (variable) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
InitiatorNodeName (variable) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
ProtocolVersion (2 bytes): The protocol version. This MUST be set to one of the following values:
|
Value |
Version |
|---|---|
|
0x0100 |
Storage QoS Protocol Version 1.0 |
|
0x0101 |
Storage QoS Protocol Version 1.1 |
Reserved (2 bytes): The client MUST set this field to 0, and the server MUST ignore it on receipt.
Options (4 bytes): A 4-byte bitmap specifying the operations requested by the client. The client MUST set this field to an OR-ed combination of the following values:
-
Value
Meaning
STORAGE_QOS_CONTROL_FLAG_SET_LOGICAL_FLOW_ID
0x00000001
Request to associate the handle to the remote file to the logical flow identified by the LogicalFlowID field.
STORAGE_QOS_CONTROL_FLAG_SET_POLICY
0x00000002
Request to update the current policy parameters for the logical flow with the policy parameters supplied by this request.
STORAGE_QOS_CONTROL_FLAG_PROBE_POLICY
0x00000004
Request to update the LogicalFlowID and policy parameters for the handle to the values specified in the request only if the handle is currently not associated to any logical flow.
STORAGE_QOS_CONTROL_FLAG_GET_STATUS 0x00000008
Request for a response containing current status information for the logical flow.
STORAGE_QOS_CONTROL_FLAG_UPDATE_COUNTERS
0x00000010
Specifies that the counter values supplied by the IoCountIncrement, NormalizedIoCountIncrement and LatencyIncrement fields are valid and MUST be used to update corresponding counters maintained by the server.
LogicalFlowID (16 bytes): Specifies the GUID of the logical flow to which the current operation applies.
PolicyID (16 bytes): Specifies the GUID of the Quality of Service policy to be applied to the logical flow. An empty GUID value (all zeroes) indicates that no policy should be applied.
InitiatorID (16 bytes): Specifies the GUID of the initiator of the logical flow.
Limit (8 bytes): Specifies the desired maximum throughput for the logical flow, in normalized IOPS. A zero value indicates that the limit is not defined.
Reservation (8 bytes): Specifies the desired minimum throughput for the logical flow, in normalized 8KB IOPS.
InitiatorNameOffset (2 bytes): The byte offset, from the beginning of the structure, of the InitiatorName string.
InitiatorNameLength (2 bytes): The length of the InitiatorName string in bytes.
InitiatorNodeNameOffset (2 bytes): The byte offset, from the beginning of the structure, of the InitiatorNodeName string.
InitiatorNodeNameLength (2 bytes): The length of the InitiatorNodeName string in bytes.
IoCountIncrement (8 bytes): The total number of I/O requests issued by the initiator on the logical flow.
NormalizedIoCountIncrement (8 bytes): The total number of normalized 8-KB I/O requests issued by the initiator on the logical flow.
LatencyIncrement (8 bytes): The total latency (accumulated across all I/O requests for the logical flow) measured by the initiator, including any delay accumulated by I/O requests in the initiator’s queues while waiting to be issued to lower layers. This value is expressed in 100-nanosecond units.
LowerLatencyIncrement (8 bytes): The total latency (accumulated across all I/O requests for the logical flow) measured by the initiator, excluding any delay accumulated by I/O requests in the initiator’s queues while waiting to be issued to lower layers. This value is expressed in 100-nanosecond units.
BandwidthLimit (8 bytes): Specifies the desired maximum bandwidth for the logical flow, in kilobyte per second units. A zero value indicates that the limit is not defined. This field is not present in the SQoS dialect 1.0.
KilobyteCountIncrement (8 bytes): The total data transfer length of all I/O requests, in kilobyte units, issued by the initiator on the logical flow. This field is not present in the SQoS dialect 1.0.
InitiatorName (variable): A UNICODE string supplying the name of the logical flow initiator. The string MUST NOT be null-terminated and its length in bytes MUST be less than or equal to STORAGE_QOS_INITIATOR_NAME_SIZE.
InitiatorNodeName (variable): A UNICODE string supplying the name of the node hosting the logical flow initiator. The string MUST NOT be null-terminated and its length in bytes MUST be less than or equal to STORAGE_QOS_INITIATOR_NAME_SIZE.