3.2.5.3 Receiving a Collect Data Message
When a Collect Data Message (section 2.2.2.3) arrives through a per-session Socket, the sink checks if the Common Message Header (section 2.2.1.2) is valid. If not, the sink MUST destroy the corresponding Diagnostic Session and ignore the message.
The sink checks the per-session Handshaking field. If it is set, the sink MUST destroy the corresponding Diagnostic Session and ignore the message.
The sink MUST then reply to the initiator with a Collect Data Response Message (section 2.2.2.4). The Recv_Error_Average, Send_Error_Average, Recv_Error_Variance, and Send_Error_Variance fields in the Collect Data Response Message-specific header are populated from the per-network interface object Receive Model Average, Send Model Average, Receive Model Variance, and Send Model Variance data items for the network interface on which the message is received, respectively.
The RssiSampleDescs field in the Collect Data Response Message is a snapshot of all the RSSI counters in per-network interface object Wireless Statistics History. Likewise, the LinkSpeedSampleDescs field is a snapshot of all the Link Speed counters, the RetrySampleDescs field is a snapshot of Retry Delta counters, the XmittedFragSampleDescs field is a snapshot of Transmitted Delta counters, the FcsErrorSampleDescs field is a snapshot of FCS Error Delta counters, and the RecvdFragSampleDescs field is a snapshot of Received Delta counters.
The Sample_Index field in Collect Data Response Message is taken directly from the per-network interface object Sample Index data item.
If Support Level is not set to 0x00000002 (for example, the sink device does not support runtime diagnostics) or if per-network interface object Wireless Connected is cleared, the sink MUST make sure that the History_Length field in the Collect Data Response Message-specific header is set to zero.
Upon sending the Collect Data Response Message, the sink waits for the next message to arrive in order to continue processing.