2.2.2.21 RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU

The optional RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU message is sent by the client to enable the calculation of Quality of Experience (QoE) metrics. This message is sent solely for informational and debugging purposes and MUST NOT be transmitted to the server if the RDPGFX_CAPSET_VERSION10, RDPGFX_CAPSET_VERSION102, RDPGFX_CAPSET_VERSION103, RDPGFX_CAPSET_VERSION104, RDPGFX_CAPSET_VERSION105, RDPGFX_CAPSET_VERSION106, or RDPGFX_CAPSET_VERSION107 structure (sections 2.2.3.3, 2.2.3.5, 2.2.3.6, 2.2.3.7, 2.2.3.82.2.3.9, and 2.2.3.10 respectively) was not received by the client.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

header

frameId

timestamp

timeDiffSE

timeDiffEDR

header (8 bytes): An RDPGFX_HEADER (section 2.2.1.5) structure. The cmdId field MUST be set to RDPGFX_CMDID_QOEFRAMEACKNOWLEDGE (0x0016), while the flags field MUST be set to zero.

frameId (4 bytes): A 32-bit unsigned integer that contains the ID of the frame being annotated. The ID of the frame is specified in the RDPGFX_START_FRAME_PDU (section 2.2.2.11) and RDPGFX_END_FRAME_PDU (section 2.2.2.12) messages.

timestamp (4 bytes): A 32-bit unsigned integer that specifies the timestamp (in milliseconds) when the client started decoding the RDPGFX_START_FRAME_PDU message. The value of the first timestamp sent by the client implicitly defines the origin for all subsequent timestamps. The server is responsible for handling roll-over of the timestamp.

timeDiffSE (2 bytes): A 16-bit unsigned integer that specifies the time, in milliseconds, that elapsed between the decoding of the RDPGFX_START_FRAME_PDU and RDPGFX_END_FRAME_PDU messages. If the elapsed time is greater than 65 seconds, then this field SHOULD be set to 0x0000.

timeDiffEDR (2 bytes): A 16-bit unsigned integer that specifies the time, in milliseconds, that elapsed between the decoding of the RDPGFX_END_FRAME_PDU message and the completion of the rendering operation for the commands contained in the logical graphics frame. If the elapsed time is greater than 65 seconds, then this field SHOULD be set to 0x0000.