Receiving an ADVERTISE Message

When a Resolver receives an ADVERTISE message, it MUST perform the following steps:

  1. Match Acked Message ID in the ADVERTISE message against any SOLICIT messages in the Pending List. If no match is found, the Resolver MUST silently discard the ADVERTISE message. Otherwise the Resolver MUST remove the SOLICIT message from the Pending List and continue processing as follows.

  2. Use the hashed nonce in the message to verify that a corresponding SOLICIT message was sent.

  3. Check the array of PNRP IDs in the ADVERTISE message. If the array is empty (for example, NumEntries is 0x0000), silently discard the message.

  4. Select a set of PNRP IDs in the array to request. The node SHOULD select all PNRP IDs in the array.

  5. Prepare a REQUEST message with the desired PNRP IDs and send it to the remote node. The node MUST also add the REQUEST message to the Pending List, set its Retry Count to 2, and start its Message Retransmission Timer.