-
Notifications
You must be signed in to change notification settings - Fork 1k
feat: Support in-place ICE restart with a new Agent #2438
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
Merged
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
f862b4b
ref: Pin the colibri WebSocket password to the initial ICE Agent
bgrozev b80ae46
feat: Support in-place ICE restart with a new Agent
bgrozev ec87d2b
ref: Update jitsi-xmpp-extensions to 1.0-119-gc67bc81
bgrozev 6261483
ref: Move the colibri WebSocket password out of IceTransport
bgrozev 0afc79e
fix: Only route generation-tagged transport updates to a pending restart
bgrozev 6ef1da9
fix: Keep the existing transport when ICE is not established yet
bgrozev 9e45f49
fix: Handle a failure to create the ICE Agent of a restart
bgrozev fb2c103
fix: Make a repeated ICE restart request idempotent
bgrozev f5d7079
fix: Free the retired ICE Agent off the scheduled pool
bgrozev dc48d7a
fix: Free a retiring ICE Agent and cancel restart tasks in stop()
bgrozev b486bea
fix: Count superseded ICE restarts in their own metric
bgrozev d16a865
fix: Reject an ICE restart if the configured timeout is not positive
bgrozev 982cf8e
fix: Only stamp ice-generation on a pending restart's transport
bgrozev 2eefe5c
fix: Arm an ICE restart only once the rest of the request has succeeded
bgrozev ba94688
doc: Correct how ice4j demultiplexes between the two ICE Agents
bgrozev 0f9d2a9
doc: Describe how a refused ICE restart is signaled
bgrozev bb66485
ref: Raise the ICE restart timeouts
bgrozev ed6aa44
test: Cover the ICE restart state machine of IceTransport
bgrozev bc047e2
fix: Do not replace the remote credentials of a running restart Agent
bgrozev 77dd7ba
fix: Escalate when the ICE restart Agent can not be created
bgrozev 00c5d51
test: Cover the ICE restart timers and the ordinary transport path
bgrozev File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
KEEP_EXISTINGis signalled as a transport the client discards -- worth confirming the far end agrees.The transport described here for
KEEP_EXISTINGcarries noice-generation(correct --describe()only stamps a pending bundle). Following it through jicofo'sColibriV2SessionManager.endpointIceRestarted:participantInfo.lastRelayedIceGeneration = generationunconditionally, which resets the high-water mark toGENERATION_UNSPECIFIEDand loses staleness protection for the next reordered response.IceRestartMetricswill over-count in-place restarts that never happened.0; worth confirming an absent attribute takes the same path.The reasoning behind
KEEP_EXISTINGitself looks right for the not-established case: the client has not rotated anything, so the initial Agent can still pick up its new address peer-reflexively. It's just that "keep existing" is currently expressed as "send something the peer ignores" rather than signalled explicitly.