Commit 95f8805e authored by Fabrice Bellet's avatar Fabrice Bellet Committed by Olivier Crête

conncheck: remove cancelled pair state

Pairs with the state NICE_CHECK_CANCELLED are the pairs targeted for
removal after the nomination of a pair with an higher priority,
described in Section 8.1.2 "Updating States", item 2 of RFC 5245. They
include also pairs that overflow the conncheck list size, but this is a
somewhat more marginal situation. So we are mainly interested in the
first use case of this state.

This state mixes two different situations, that deserve a distinct
handling : on one side, there are waiting or frozen pairs that must be
removed, this is an immediate action that doesn't need a dedicated state
for that. And on the other side, there are in-progress pairs that
should no longer be retransmitted, because another pair with a higher
priority has already been nominated.

This patch removes the cancelled state, and adds a flag
retransmit_on_timeout to deal with this last situation. Note that this
case should not generate a triggered check, as per described in section, when the state of the pair is In-Progress or Failed, since this
pair of lower priority has no hope to replace the nominated one.

Differential Revision:
parent d516fca1
This diff is collapsed.
...@@ -56,7 +56,6 @@ ...@@ -56,7 +56,6 @@
* @NICE_CHECK_SUCCEEDED: Connection successfully checked. * @NICE_CHECK_SUCCEEDED: Connection successfully checked.
* @NICE_CHECK_FAILED: No connectivity; retransmissions ceased. * @NICE_CHECK_FAILED: No connectivity; retransmissions ceased.
* @NICE_CHECK_FROZEN: Waiting to be scheduled to %NICE_CHECK_WAITING. * @NICE_CHECK_FROZEN: Waiting to be scheduled to %NICE_CHECK_WAITING.
* @NICE_CHECK_CANCELLED: Check cancelled.
* @NICE_CHECK_DISCOVERED: A valid candidate pair not on the check list. * @NICE_CHECK_DISCOVERED: A valid candidate pair not on the check list.
* *
* States for checking a candidate pair. * States for checking a candidate pair.
...@@ -68,7 +67,6 @@ typedef enum ...@@ -68,7 +67,6 @@ typedef enum
} NiceCheckState; } NiceCheckState;
...@@ -89,6 +87,7 @@ struct _CandidateCheckPair ...@@ -89,6 +87,7 @@ struct _CandidateCheckPair
gboolean use_candidate_on_next_check; gboolean use_candidate_on_next_check;
gboolean mark_nominated_on_response_arrival; gboolean mark_nominated_on_response_arrival;
gboolean recheck_on_timeout; gboolean recheck_on_timeout;
gboolean retransmit_on_timeout;
struct _CandidateCheckPair *discovered_pair; struct _CandidateCheckPair *discovered_pair;
struct _CandidateCheckPair *succeeded_pair; struct _CandidateCheckPair *succeeded_pair;
guint64 priority; guint64 priority;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment