Reason for revert:
This will take longer time for the RTT to converge.
Need to update the RTT calculation algorithm if doing this.
Original issue's description:
> Increase the stun ping interval.
>
> Writable connections are pinged at a slower rate.
> The function IsPingable will filter out the writable connections.
> The interval for slower ping rate by default is WRITABLE_CONNECTION_PING_INTERVAL(2500ms) and can be set with the configuration.
>
> BUG=webrtc:1161
>
> Committed: https://crrev.com/8f7a5aad55a64f0d81b6436a22ffbdfcdcde91e0
> Cr-Commit-Position: refs/heads/master@{#12736}
TBR=honghaiz@webrtc.org,pthatcher@webrtc.org,zhihuang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:1161
Review URL: https://codereview.webrtc.org/1982713002 .
Cr-Commit-Position: refs/heads/master@{#12762}
Writable connections are pinged at a slower rate.
The function IsPingable will filter out the writable connections.
The interval for slower ping rate by default is WRITABLE_CONNECTION_PING_INTERVAL(2500ms) and can be set with the configuration.
BUG=webrtc:1161
Review-Url: https://codereview.webrtc.org/1944003002
Cr-Commit-Position: refs/heads/master@{#12736}
Depends on this CL in order to work in Chromium:
https://codereview.chromium.org/1976673002/
It works by creating pooled PortAllocatorSessions which can be picked up
by a P2PTransportChannel when needed (after a local description is set).
This can optimize candidate gathering time when there is some time between
creating a PeerConnection and setting a local description.
R=pthatcher@webrtc.org
Committed: 48e9d05f51
Review URL: https://codereview.webrtc.org/1956453003 .
Cr-Commit-Position: refs/heads/master@{#12729}
Reason for revert:
Breaks remoting_unittests. They defined their own operator== which conflicts with this one.
I'll remove the operator== in a roll CL. But until it's approved, I'm reverting this so the FYI bots will pass.
Original issue's description:
> Implement RTCConfiguration.iceCandidatePoolSize.
>
> It works by creating pooled PortAllocatorSessions which can be picked up
> by a P2PTransportChannel when needed (after a local description is set).
>
> This can optimize candidate gathering time when there is some time between
> creating a PeerConnection and setting a local description.
>
> R=pthatcher@webrtc.org
>
> Committed: 48e9d05f51TBR=pthatcher@webrtc.org,honghaiz@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.webrtc.org/1972043004
Cr-Commit-Position: refs/heads/master@{#12709}
It works by creating pooled PortAllocatorSessions which can be picked up
by a P2PTransportChannel when needed (after a local description is set).
This can optimize candidate gathering time when there is some time between
creating a PeerConnection and setting a local description.
R=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1956453003 .
Cr-Commit-Position: refs/heads/master@{#12708}
But keep #including scoped_ptr.h in .h files, so as not to break
WebRTC users who expect those .h files to give them rtc::scoped_ptr.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1923163003
Cr-Commit-Position: refs/heads/master@{#12532}
If a STUN ping arrives before the remote description does, a prflx
candidate will be created with an unknown generation.
Once the remote description does arrive, the candidate's generation
should be set so it can be sorted properly, and replaced by a non-prflx
candidate once the candidate is signaled.
BUG=webrtc:5752
R=honghaiz@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1868353004 .
Cr-Commit-Position: refs/heads/master@{#12433}
so that the call knows which packet ids were sent on the previous candidate pair.
Note that packet_id is actually 16bits, so we can use -1 for values that are not set.
Also moved the tests for candidate pair changes to TestSelectConnectionBeforeNomination.
BUG=
R=deadbeef@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1842093002 .
Cr-Commit-Position: refs/heads/master@{#12184}
Also changed from unsigned to signed integer per the style guide.
By the way, I kept all delta-times to be 32-bit int.
The only things left in the p2p dir are
1. proberprober/main.cc where Time() is used as the input for a random number.
2. pseudotcp.cc: where 32-bit time info is sent over the wire.
BUG=webrtc:5636
Review URL: https://codereview.webrtc.org/1793553002
Cr-Commit-Position: refs/heads/master@{#12019}
and signaling the remote side to remove its remote candidate by setting the candidate priority to 0.
BUG=
Review URL: https://codereview.webrtc.org/1648813004
Cr-Commit-Position: refs/heads/master@{#11958}
Also change the type of "time interval" to int from uint32.
Fixed a few TODO therein. I think we should have the following convention:
1. All time delay/intervals should have type int although the time instant should have time uint32_t.
2. "interval" is preferred to "delay" if the delay will be repeated (like rescheduling).
BUG=
R=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1762863002 .
Cr-Commit-Position: refs/heads/master@{#11888}
This feature is off by default and can be turned on by setting IceConfig. When turned on, we'll choose a Turn/Turn (UDP takes higher priroity) over the other types of connections while no any connection is writable. However, when there is best connection or there is pending triggered check, those will take higher priority.
BUG=webrtc:4591
Review URL: https://codereview.webrtc.org/1577233006
Cr-Commit-Position: refs/heads/master@{#11850}
This appears to be dead code because GetTransport() is not used by WebRTC. It also adds dead code to DtlsTransportChannelWrapper and P2PTransportChannel.
BUG=
Review URL: https://codereview.webrtc.org/1691673002
Cr-Commit-Position: refs/heads/master@{#11662}
For now, the network cost is purely based on the network type (cellular has cost 0xFFFF and everything else has cost 0).
Add cost to the candidate signaling and the stun request signaling (which is needed for peer reflexive candidates).
BUG=webrtc:4325
Review URL: https://codereview.webrtc.org/1668073002
Cr-Commit-Position: refs/heads/master@{#11642}
Also when a STUN ping arrives from an unknown address, try to find the pwd and generation from the remote ICE parameters.
BUG=
Review URL: https://codereview.webrtc.org/1549633004
Cr-Commit-Position: refs/heads/master@{#11144}
On the receiving side, if a candidate arrives with an old ufrag, it will be dropped. If it contains a new frag that has never seen before, it will hold the ufrag and create connections, although those connections are not pingable until the ICE credentials are received.
This could avoid a bunch of ICE generation issues.
BUG=webrtc:5138,webrt:5292
Review URL: https://codereview.webrtc.org/1498993002
Cr-Commit-Position: refs/heads/master@{#11060}
and make it configurable from the app.
Changed the decision on whether a connection is pingable:
1.Check whether a connection is a backup connection. A connection is considered as a backup connection only if the channel is complete, the connection is active and it is not the best connection.
2. Ping a non-backup connection if it is active and for backup connection, ping it at a slower rate.
Note the default behavior is the same as before.
Also cached the channel state since we are accessing it more often.
BUG=webrtc:5034
R=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1455033004 .
Cr-Commit-Position: refs/heads/master@{#10900}
In tcp only call:
Tested with hangout.
Tested with firefox.
To test firefox, goto about:config, search for media.peerconnection.ice.tcp and turn it on.
Existing test case should be suffice to cover this.
R=juberti@google.comTBR=jubert@webrtc.org
BUG=webrtc:3849
Review URL: https://codereview.webrtc.org/1217463004 .
Cr-Commit-Position: refs/heads/master@{#10683}
Reason for revert:
Relanding with compile warning fixed.
Original issue's description:
> Revert of Adding the ability to change ICE servers through SetConfiguration. (patchset #7 id:120001 of https://codereview.webrtc.org/1391013007/ )
>
> Reason for revert:
> Caused compiler warning, breaking Chrome FYI bots.
>
> Original issue's description:
> > Adding the ability to change ICE servers through SetConfiguration.
> >
> > Added a SetIceServers method to PortAllocator. Also added a new
> > PeerConnection Initialize method that takes a PortAllocator, in the
> > hope that we can get rid of PortAllocatorFactoryInterface, since the
> > only substantial thing a factory does is convert the webrtc:: ICE
> > servers to cricket:: versions.
> >
> > Committed: https://crrev.com/d3b26d94399ff539db375a9b84010ee75479d4cf
> > Cr-Commit-Position: refs/heads/master@{#10420}
>
> TBR=pthatcher@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/18a944bf0ac9eed872dc009bd58e6bc12c946303
> Cr-Commit-Position: refs/heads/master@{#10421}
TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.webrtc.org/1414313003
Cr-Commit-Position: refs/heads/master@{#10609}
We cannot do it at the end of sorting because it may stop a session too early.
Also remove was_writable_, which is not useful.
BUG=webrtc:5119
Review URL: https://codereview.webrtc.org/1406423008
Cr-Commit-Position: refs/heads/master@{#10511}
Reason for revert:
Caused compiler warning, breaking Chrome FYI bots.
Original issue's description:
> Adding the ability to change ICE servers through SetConfiguration.
>
> Added a SetIceServers method to PortAllocator. Also added a new
> PeerConnection Initialize method that takes a PortAllocator, in the
> hope that we can get rid of PortAllocatorFactoryInterface, since the
> only substantial thing a factory does is convert the webrtc:: ICE
> servers to cricket:: versions.
>
> Committed: https://crrev.com/d3b26d94399ff539db375a9b84010ee75479d4cf
> Cr-Commit-Position: refs/heads/master@{#10420}
TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.webrtc.org/1424803004
Cr-Commit-Position: refs/heads/master@{#10421}
Added a SetIceServers method to PortAllocator. Also added a new
PeerConnection Initialize method that takes a PortAllocator, in the
hope that we can get rid of PortAllocatorFactoryInterface, since the
only substantial thing a factory does is convert the webrtc:: ICE
servers to cricket:: versions.
Review URL: https://codereview.webrtc.org/1391013007
Cr-Commit-Position: refs/heads/master@{#10420}
p2ptransportchannel. This CL does not use the new policy yet.
BUG=
Review URL: https://codereview.webrtc.org/1369773003
Cr-Commit-Position: refs/heads/master@{#10092}
Otherwise, we may delete a useful connection because the current best connection may be failing.
BUG=
Review URL: https://codereview.webrtc.org/1364683002
Cr-Commit-Position: refs/heads/master@{#10063}
This will paves the way for continuous nomination lite and multi-networking.
2. Combined checking and pinging to remove some redundant checking and to make it switch to more frequent ping mode earlier.
Review URL: https://codereview.webrtc.org/1311433009
Cr-Commit-Position: refs/heads/master@{#10057}
Reason for revert:
This CL just landed: https://codereview.chromium.org/1323243006/
Which fixes the FYI bots for the original CL, and breaks them for this revert.
Original issue's description:
> Revert of TransportController refactoring. (patchset #6 id:100001 of https://codereview.webrtc.org/1350523003/ )
>
> Reason for revert:
> This CL causes problems with the WebRTC-in-Chromium FYI bots. Presumably it needs to be done in several steps, where removed files are emptied instead of removed in the first step.
>
> Original issue's description:
> > TransportController refactoring.
> >
> > Getting rid of TransportProxy, and in its place adding a
> > TransportController class which will facilitate access to and manage
> > the lifetimes of Transports. These Transports will now be accessed
> > solely from the worker thread, simplifying their implementation.
> >
> > This refactoring also pulls Transport-related code out of BaseSession.
> > Which means that BaseChannels will now rely on the TransportController
> > interface to create channels, rather than BaseSession.
> >
> > Committed: https://crrev.com/47ee2f3b9f33e8938948c482c921d4e13a3acd83
> > Cr-Commit-Position: refs/heads/master@{#10022}
>
> TBR=pthatcher@webrtc.org,deadbeef@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/a81a42f584baa0d93a4b93da9632415e8922450c
> Cr-Commit-Position: refs/heads/master@{#10024}
TBR=pthatcher@webrtc.org,torbjorng@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.webrtc.org/1361773005
Cr-Commit-Position: refs/heads/master@{#10036}
Reason for revert:
This CL causes problems with the WebRTC-in-Chromium FYI bots. Presumably it needs to be done in several steps, where removed files are emptied instead of removed in the first step.
Original issue's description:
> TransportController refactoring.
>
> Getting rid of TransportProxy, and in its place adding a
> TransportController class which will facilitate access to and manage
> the lifetimes of Transports. These Transports will now be accessed
> solely from the worker thread, simplifying their implementation.
>
> This refactoring also pulls Transport-related code out of BaseSession.
> Which means that BaseChannels will now rely on the TransportController
> interface to create channels, rather than BaseSession.
>
> Committed: https://crrev.com/47ee2f3b9f33e8938948c482c921d4e13a3acd83
> Cr-Commit-Position: refs/heads/master@{#10022}
TBR=pthatcher@webrtc.org,deadbeef@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.webrtc.org/1358413003
Cr-Commit-Position: refs/heads/master@{#10024}
Getting rid of TransportProxy, and in its place adding a
TransportController class which will facilitate access to and manage
the lifetimes of Transports. These Transports will now be accessed
solely from the worker thread, simplifying their implementation.
This refactoring also pulls Transport-related code out of BaseSession.
Which means that BaseChannels will now rely on the TransportController
interface to create channels, rather than BaseSession.
Review URL: https://codereview.webrtc.org/1350523003
Cr-Commit-Position: refs/heads/master@{#10022}
Reason for revert:
Broke the Windows build:
[226/365] LINK_EMBED cc_perftests.exe
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\remoting\protocol\remoting_unittests.channel_socket_adapter_unittest.obj.rsp /c ..\..\remoting\protocol\channel_socket_adapter_unittest.cc /Foobj\remoting\protocol\remoting_unittests.channel_socket_adapter_unittest.obj /Fdobj\remoting\remoting_unittests.cc.pdb
e:\b\build\slave\win\build\src\remoting\protocol\channel_socket_adapter_unittest.cc(36) : error C3861: 'set_readable': identifier not found
ninja: build stopped: subcommand failed.
Original issue's description:
> Replace readable with receiving where receiving means receiving anything (stun ping, response or data packet).
> If a connection does not receive for 30 seconds, it will be deleted.
> BUG=
>
> Committed: https://crrev.com/ae16f8547d3b447f62f6660f13688585c6c3de15
> Cr-Commit-Position: refs/heads/master@{#10001}
TBR=pthatcher@webrtc.org,honghaiz@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.webrtc.org/1356103002
Cr-Commit-Position: refs/heads/master@{#10002}
If a connection does not receive for 30 seconds, it will be deleted.
BUG=
Review URL: https://codereview.webrtc.org/1351673003
Cr-Commit-Position: refs/heads/master@{#10001}
Getting rid of TransportProxy, and in its place adding a
TransportController class which will facilitate access to and manage
the lifetimes of Transports. These Transports will now be accessed
solely from the worker thread, simplifying their implementation.
This refactoring also pulls Transport-related code out of BaseSession.
Which means that BaseChannels will now rely on the TransportController
interface to create channels, rather than BaseSession.
This CL also adds some unit tests, and does some renaming.
For example, from "CandidateReady" to "CandidateGathered".
Review URL: https://codereview.webrtc.org/1246913005
Cr-Commit-Position: refs/heads/master@{#9993}