3.7.5.2 Receiving a QosProbe Frame
After a network test session is established, the controller sends one or more QosProbe frames to the sink over a period of time. The exact action the sink takes in response to this frame depends on the Test Type field in the QosProbe header.
If the sequence number in a QosProbe frame is zero, the frame MUST be ignored.
If the value of the field is 0x01, the controller has requested that the sink participate in a probegap test. On receipt of such a frame, the sink MUST immediately copy the QosProbe frame as-is and return it to the controller with the following modifications:
The Source Address and Destination Address fields in the Ethernet header MUST be exchanged.
The Real Source Address and Real Destination Address fields in the Base header MUST be exchanged.
If the T bit is not set in the received QosProbe header, any existing tag header MUST be removed.
If the T bit is set, a tag header MUST be returned. If one does not already exist in the frame, a new header MUST be added. The user_priority field of the TCI (Tag Control Information) field of the tag header must be set to the 802.1p Value field of the received QosProbe header. The CFI and VID fields of the TCI field of the tag header must be set to zero.
The Sink Receive Timestamp field MUST be updated with a high-resolution time stamp sampled at the earliest time possible when the QosProbe frame was received.
The Sink Transmit Timestamp field MUST be updated with a high-resolution time stamp sampled at the last possible moment before the outgoing QosProbe frame is sent.
The Test Type field in the outgoing QosProbe header MUST be changed to the value 0x02, which indicates to the controller that the QosProbe is sourced from a sink.
If the value of the Test Type field is 0x00, the controller has requested that the sink participate in a timed probe test. This test requires that a sink receive and record up to 82 consecutive QosProbe frames, all of the same sequence number. All timed probe frames following the eighty-second frame MUST be ignored completely. The collection of QosProbe records for a specific sequence number is called a sequence bucket. The sink MUST attempt to record specific bits of information from each frame in the form of an 8-octet high-resolution time stamp of the send operation on the controller side (the Controller_Transmit_Timestamp field of the QosProbe frame), an 8-octet high-resolution time stamp of the receive operation on the sink side (determined by the local clock of the sink at the time the QosProbe frame is received), and a 1-octet identifier (the Packet ID field of the QosProbe frame). The controller requests this recorded information immediately after the last QosProbe frame in the sequence is sent via the QosQuery frame. The exact number of QosProbe frames sent will vary.
In some rare cases, the QosQuery frame is dropped and the controller can resend it if needed. However, such a retransmission implies the overlapping arrival of the next series of QosProbe frames under a subsequent sequence number. Meanwhile, the QosQuery frame for the previous sequence bucket can still arrive in the near future. In view of this possibility, the sink MUST be prepared to handle at least two sequence buckets worth of recordings at any point in time up to a maximum of 10 sequence buckets where possible. As a new sequence bucket is needed, the oldest one SHOULD be cleared and reused.
In case of memory allocation failure preventing the information in the frame from being recorded, the sink MUST set the network test session's Error flag to TRUE, so that it reports the error condition in the Error bit in the QosQueryResp header when replying to a QosQuery request.
The applicable network test session's last active time MUST be updated on receipt of this frame.