-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What does it mean to NOT nominate candidatePair? #179
Comments
cc @sam-vi |
It continues: "The ICE agent may continue to send data using the candidate pair indicated by candidatePair unless instructed to use another candidate pair with setSelectedCandidatePair." Is this "may" a normative MAY, or a MUST? If not, we could use "will" and use a non-normative note if this is just an observation. It's a bit tricky since we seem to be modifying ICE agent behavior here. |
"not nominate" means that the ICE agent should continue to perform connectivity checks and maybe propose another candidate pair for nomination. RFC8445 section 8.1.1 permits this flexibility:
So whether a cancelled nomination is a ban or a deferral for a certain period is an implementation detail of the ICE agent. This shouldn't affect interoperability because the exact behaviour wasn't constrained to begin with by RFC8445 (or by webrtc-pc). The non-normative note could be extended to clarify that the same candidate pair could be nominated again either by the ICE agent or as a result of setSelectedCandidatePair.
This is not a normative statement, and the intention is not to modify ICE agent behaviour. This refers to RFC8445 section 12.1:
So your suggestion to change to "will" and extract out the observation into a non-normative note makes sense. I can draft a PR with the clarifications. |
Nominating a candidate pair means sending the USE_CANDIDATE STUN attribute (or the "nomination" attribute from draft-thatcher-ice-renomination-01). Not nominating means not sending that STUN attribute. |
Understood. Algorithms however normally detail what steps to take, not steps not to take (which I think risks introducing ambiguity about when steps are done). How about: "8. If accepted is false, abort these steps and instruct the ICE agent to continue to perform connectivity checks." ...and put the rest in a note? Note: The ICE agent will continue to send data using the candidate pair indicated by candidatePair unless instructed to use another candidate pair with setSelectedCandidatePair. Aborting the steps to ahead of the final step to "instruct the ICE agent to nominate the candidate pair indicated by candidatePair." is hopefully clear enough. |
The steps to nominate a candidate pair say: "If accepted is false, instruct the ICE agent to not nominate candidatePair, and instead to continue to perform connectivity checks."
What does it mean to "not nominate"? Can we just say "instruct the ICE agent to continue to perform connectivity checks"?
Or is it a nomination ban for that particular pair forever? If not, how long should the agent wait before trying again?
A non-normative note (with normative MAY?) suggests that calling setSelectedCandidatePair allows the agent to nominate again, but is that the only case?
Some clarifications of how and when the ICE agent is expected to respond would be useful for interoperability.
The text was updated successfully, but these errors were encountered: