Protocol Examples The following section describes common scenarios that indicate normal traffic flow in order to illustrate the function of the Storage Quality of Service Protocol. Computing Normalized I/O Size The following formula can be used to convert the size of an I/O request in (IoSizeInBytes) to an I/O size expressed in normalized units (NormalizedIoSize): NormalizedIoSize = (IoSizeInBytes + BaseIoSize - 1) / BaseIoSize where NormalizedIoSize, IoSizeInBytes, and BaseIoSize are unsigned integers. The following table shows some sample conversions when BaseIoSize is 8192. I/O request size in bytes Normalized I/O request size 512 1 4096 (4 KB) 1 8192 (8 KB) 1 (12 KB) 2 16384 (16 KB) 2 65536 (64 KB) 8 1048576 (1 MB) 128 Associating a Handle to a Logical Flow and Configuring Policy The following diagram demonstrated the steps taken to open a remote file, associate the corresponding handle to a logical flow and configure a QoS policy for the logical flow. Figure 1: Associating a handle to a logical flow and configuring policy The client sends an SMB2 CREATE Request to open a remote file. The server responds with an SMB2 CREATE Response giving the handle to the open identifying the remote file. The client sends an SMB2 IOCTL Request with a STORAGE_QOS_CONTROL_REQUEST buffer to create a logical flow and associate the handle to the logical flow: 01 01 00 00 01 00 00 00 E4 3A B1 AD E2 B2 5D A4 F8 5C D3 BE 9D 69 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Protocol Examples The following section describes common scenarios that indicate normal traffic flow in order to illustrate the function of the Storage Quality of Service Protocol. Computing Normalized I/O Size The following formula can be used to convert the size of an I/O request in (IoSizeInBytes) to an I/O size expressed in normalized units (NormalizedIoSize): NormalizedIoSize = (IoSizeInBytes + BaseIoSize - 1) / BaseIoSize where NormalizedIoSize, IoSizeInBytes, and BaseIoSize are unsigned integers. The following table shows some sample conversions when BaseIoSize is 8192. I/O request size in bytes Normalized I/O request size 512 1 4096 (4 KB) 1 8192 (8 KB) 1 (12 KB) 2 16384 (16 KB) 2 65536 (64 KB) 8 1048576 (1 MB) 128 Associating a Handle to a Logical Flow and Configuring Policy The following diagram demonstrated the steps taken to open a remote file, associate the corresponding handle to a logical flow and configure a QoS policy for the logical flow. Figure 1: Associating a handle to a logical flow and configuring policy The client sends an SMB2 CREATE Request to open a remote file. The server responds with an SMB2 CREATE Response giving the handle to the open identifying the remote file. The client sends an SMB2 IOCTL Request with a STORAGE_QOS_CONTROL_REQUEST buffer to create a logical flow and associate the handle to the logical flow: 01 01 00 00 01 00 00 00 E4 3A B1 AD E2 B2 5D A4 F8 5C D3 BE 9D 69 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00