-
Notifications
You must be signed in to change notification settings - Fork 50
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
str0m
rejects newly formed candidate pairs for srflx
candidate based on existing pair with host
candidate
#483
Comments
It's not expected. if let Some((idx, other)) =
self.local_candidates.iter_mut().enumerate().find(|(_, v)| {
v.addr() == c.addr() && v.base() == c.base() && v.proto() == c.proto()
})
{
if c.prio() < other.prio() {
// The new candidate is not better than what we already got.
debug!(
"Reject redundant candidate, current: {:?} rejected: {:?}",
other, c
);
return false;
} If
I.e. for host, |
The above code is for candidates. The candidate is accepted correctly, it is the candidate pair that is rejected as redundant and thus never tested. |
Ah, got ya. This behavior changed with 51acd55 |
https://datatracker.ietf.org/doc/html/rfc8445#section-5.1.3
Is this what we see? |
Yeah I had a hunch that we may have broken that in that commit. |
Question is whether we broke it in a more spec compliant way? :) |
This is still about candidates though, right? If I read the logs correctly, the candidate isn't redundant but the generated pair is. I'll take a look at the code later. We may have broken the redundancy check of pairs with the change of what |
The situation we are testing is:
Expectation
New pairs are formed for all candidates and str0m nominates a new pair if it is better
Reality
str0m forms new pairs for the host candidate but rejects all pairs for the srflx one based on redundancy
Logs
Is this expected? Is a srflx candidate with the same base as a host candidate always redundant? Unless the nodes are in the same network, the remote can never reply to the host candidate so this particular candidate pair can't succeed and the one they could reply to was eliminated for redundancy.
The text was updated successfully, but these errors were encountered: