12. Inserting Trickled Candidate Pairs into a Checklist (Insertion de paires de candidats trickle dans une liste de vérification)
Après que l'agent local a trickle un candidat et formé une paire de candidats à partir de ce candidat local (Section 9), ou après que l'agent distant a reçu un candidat trickle et formé une paire de candidats à partir de ce candidat distant (Section 11), l'agent Trickle ICE ajoute la nouvelle paire de candidats à la liste de vérification comme défini dans cette section.
Pour faciliter la compréhension des procédures définies dans cette section, considérez la représentation tabulaire suivante de toutes les listes de vérification dans un agent (notez qu'initialement pour l'une des fondations, à savoir f5, il n'y a pas de paires de candidats) :
+=================+====+====+====+====+====+
| | f1 | f2 | f3 | f4 | f5 |
+=================+====+====+====+====+====+
|| s1 (Audio.RTP) | F | F | F | | |
+-----------------+----+----+----+----+----+
|| s2 (Audio.RTCP) | F | F | F | F | |
+-----------------+----+----+----+----+----+
|| s3 (Video.RTP) | F | | | | |
+-----------------+----+----+----+----+----+
|| s4 (Video.RTCP) | F | | | | |
+-----------------+----+----+----+----+----+
Tableau 1 : Exemple d'état de liste de vérification
Trickle ICE conserve toutes ces règles telles qu'elles s'appliquent à l'ensemble de listes de vérification « statique ». Cela signifie que si un agent Trickle ICE commence les vérifications de connectivité alors que toutes les paires de candidats sont déjà présentes, la façon dont les états des paires de candidats changent est indiscernable d'un agent ICE régulier.
Bien sûr, la principale différence avec Trickle ICE est que l'ensemble de listes de vérification peut être mis à jour dynamiquement, car les candidats peuvent arriver après le début des vérifications de connectivité. Lorsque cela se produit, l'agent définit l'état de la paire de candidats nouvellement formée comme décrit ci-dessous.
Règle 1 : Définir l'état sur En attente (Waiting) si la paire de candidats nouvellement formée a l'ID de composant le plus bas de toutes les paires de candidats pour cette fondation, ou si les ID de composant sont égaux, la priorité la plus élevée (c'est-à-dire si c'est la paire de candidats la plus haute dans la colonne).
Règle 2 : Définir l'état sur En attente (Waiting) s'il y a au moins une paire de candidats dans l'état Réussi pour cette fondation.
Règle 3 : Définir l'état sur Gelé (Frozen) si aucune des règles précédentes ne s'applique.
Notez que même si une paire de candidats est placée dans l'état En attente, les règles de [RFC8445] s'appliquent toujours, de sorte que les vérifications de connectivité ne sont effectuées qu'à partir de listes de vérification dans l'état En cours d'exécution (Running). Par conséquent, il est possible qu'une paire de candidats change d'état plusieurs fois entre En attente et Gelé jusqu'à ce qu'une vérification de connectivité soit réellement effectuée pour cette paire.