3.2.5.3 Receiving a QueryResp Frame

A responder sends a QueryResp frame in response to a valid Query request with a nonzero sequence number. The mapper MUST validate the QueryResp frame by verifying that the following are true:

  • The mapper did indeed solicit the response via a Query frame, as tracked by the pended request state.

  • The Real Source Address field in the Base header of the QueryResp frame matches the MAC address of the destination responder in the Query request.

  • The Sequence Number field in the Base header of the QueryResp frame matches that used in the Query request.

If the QueryResp frame is not valid, it MUST be ignored. Otherwise, it MUST be processed as follows.

The relevant Per-Responder Response timer MUST be stopped. The sequence number for the affected responder MUST be incremented by one using ones-complement arithmetic (that is, it MUST advance from 0xFFFF to 0x0001 and skip 0x0000) for the next request with a nonzero sequence number.

If the More flag in the QueryResp header is set, the mapper SHOULD follow up with a subsequent Query request. This action MUST continue until either a QueryResp frame is returned without the More flag set or the responder returns more total records than the mapper is prepared to handle.

If the Error flag in the QueryResp header is set, the mapper indicates to the higher level application that the mapping information is incomplete or inaccurate.

The Pended Request entry for the Query frame that solicited the QueryResp frame response MUST be cleared.