This patch implements Regular Nomation as described in RFC5245
184.108.40.206. The controlling agent lets valid pairs accumulate, and
decides which pair to recheck with the use-candidate attribute set.
priv_mark_pair_nominated() follows 220.127.116.11, to update the nominated
pair when acting as a STUN server, and
priv_map_reply_to_conn_check_request() implements 18.104.22.168.4 to
update the nominated pair when acting as a STUN client. A new
property is also added to the agent to control the nomination
mode, which can be regular of aggressive, with default value
set to aggressive.
Two new flags are introduced in the CandidateCheckPair structure:
- use_candidate_on_next_check indicates the STUN client to add the
use-candidate attribute when the pair will be checked. At this
time, the nominated flag has not been set on this pair yet.
- mark_nominated_on_response_arrival indicates the STUN server
to nominate the pair when its succesfull response to a
previous triggered check will arrive (22.214.171.124, item #2)
Differential Revision: https://phabricator.freedesktop.org/D811