3.1.5.7.3 Sending a QCC Packet and InState QCC Timer

The server MUST set QCRReceived (section 3.1.1.2) for all entries in the Active Client List (section 3.1.1.2) to FALSE (0x00000000).

The server MUST construct a QCC packet (section 2.2.7), set the QCCSeqNo to the value of NextQCCSeqNo (section 3.1.1.5) and increment the value of NextQCCSeqNo by 1.

Server MUST set WaitTime (section 3.1.1.5) as follows:

  1. If there are client entries in the Active Client List (section 3.1.1.2), then WaitTime MUST be set to allow 1 millisecond for each client.

  2. If there are no client entries in the Active Client List (section 3.1.1.2), then WaitTime MUST be set to a value by doubling the previous value of WaitTime. The final value of WaitTime MUST NOT exceed the value specified by NoClientQCCInterval (section 3.2.1.2).

The server MUST find the largest value for RTT among all entries in the Active Client List (section 3.1.1.2) and add this value to WaitTime (section 3.1.1.5).

The server MUST set the QCRBackOff (section 2.2.7) in the constructed QCC packet to the computed value of WaitTime (section 3.1.1.5).

The server MUST send the constructed QCC packet to the multicast address (section 3.1.1.1) of the multicast session.

The server MUST set the InState QCC Timer (section 3.1.2) to expire after the time specified by WaitTime (section 3.1.1.5).