85 Commits

Author SHA1 Message Date
honghaiz
8937437872 Do not prune if the current best connection is weak.
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}
2015-09-24 20:14:51 +00:00
Peter Thatcher
04ac81f2fd Replace readable with receiving where receiving means receiving anything (stun ping, response or data packet).
BUG=4937
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1345913004 .

Cr-Commit-Position: refs/heads/master@{#10004}
2015-09-21 18:48:37 +00:00
tommi
275a2f16fd Revert of Replace readable with receiving where receiving means receiving anything (stun ping, response or da… (patchset #7 id:340001 of https://codereview.webrtc.org/1351673003/ )
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}
2015-09-21 14:20:43 +00:00
honghaiz
ae16f8547d 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=

Review URL: https://codereview.webrtc.org/1351673003

Cr-Commit-Position: refs/heads/master@{#10001}
2015-09-21 13:54:19 +00:00
Peter Thatcher
7cbd188c5e Remove GICE (again).
R=guoweis@webrtc.org

Review URL: https://codereview.webrtc.org/1353713002 .

Cr-Commit-Position: refs/heads/master@{#9979}
2015-09-18 01:55:03 +00:00
guoweis
d12140a68e Revert change which removes GICE.
There are still dependencies on this functionality.

TBR=pthatcher@webrtc.org

BUG=526399

Review URL: https://codereview.webrtc.org/1336553003

Cr-Commit-Position: refs/heads/master@{#9920}
2015-09-10 20:32:21 +00:00
Peter Thatcher
2159b89fa2 Reland "Remove GICE (gone forever!) and PORTALLOCATOR_ENABLE_SHARED_UFRAG (enabled forever)." becauese remoting code is using dead constants and breaks the FYI bots.
This reverts commit 5bdafd44c86ee46bd7e040f19828324583418b33.

Original CL: https://codereview.webrtc.org/1263663002/

R=guoweis@webrtc.org

Review URL: https://codereview.webrtc.org/1303393002 .

Cr-Commit-Position: refs/heads/master@{#9761}
2015-08-22 03:46:18 +00:00
minyuel
5bdafd44c8 Revert "Reland "Remove GICE (gone forever!) and PORTALLOCATOR_ENABLE_SHARED_UFRAG (enabled forever)." becauese remoting code is using dead constants and breaks the FYI bots.""
This reverts commit 081f34b564e1a26ffbbe9515eba1fef7c736fdde.

Original code review see
https://codereview.webrtc.org/1291363005

The revert is due to a suspicion of "Reland "Remove GICE..." being the cause of failure on Linux memcheck, see
https://build.chromium.org/p/client.webrtc/builders/Linux%20Memcheck/builds/4137

TBR=pthatcher@webrtc.org,

BUG=

Review URL: https://codereview.webrtc.org/1308753003 .

Cr-Commit-Position: refs/heads/master@{#9756}
2015-08-21 13:52:58 +00:00
honghaiz
5a3acd8964 First step of passive aggressive nomination.
On the controlled side, a stun request without use-candidate attribute will
be used for sending media.

BUG=4900

Review URL: https://codereview.webrtc.org/1270613006

Cr-Commit-Position: refs/heads/master@{#9747}
2015-08-20 22:53:22 +00:00
Peter Thatcher
081f34b564 Reland "Remove GICE (gone forever!) and PORTALLOCATOR_ENABLE_SHARED_UFRAG (enabled forever)." becauese remoting code is using dead constants and breaks the FYI bots."
This reverts commit 475243a134be003aab30bb17294ca6c664d0ef81.

R=guoweis@webrtc.org

Review URL: https://codereview.webrtc.org/1291363005 .

Cr-Commit-Position: refs/heads/master@{#9738}
2015-08-20 03:37:59 +00:00
Guo-wei Shieh
3d564c1015 Add instrumentation to track the IceEndpointType.
The IceEndpointType has the format of <local_endpoint>_<remote_endpoint>. It is recorded on the BestConnection when we have the first OnTransportCompleted signaled.

BUG=webrtc:4918
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1277263002 .

Cr-Commit-Position: refs/heads/master@{#9737}
2015-08-19 23:51:22 +00:00
pthatcher
fa301809b6 Revert "Remove GICE (gone forever!) and PORTALLOCATOR_ENABLE_SHARED_UFRAG (enabled forever)." becauese remoting code is using dead constants and breaks the FYI bots.
This reverts commit 3449faa553ec94c52ef2d0949867befb60992c88.

TBR=deadbeef@webrtc.org, juberti@webrtc.org
NOPRESUBMIT=true

Review URL: https://codereview.webrtc.org/1274273005

Cr-Commit-Position: refs/heads/master@{#9698}
2015-08-11 11:13:00 +00:00
Peter Thatcher
3449faa553 Remove GICE (gone forever!) and PORTALLOCATOR_ENABLE_SHARED_UFRAG (enabled forever).
R=deadbeef@webrtc.org, juberti@webrtc.org

Review URL: https://codereview.webrtc.org/1263663002 .

Cr-Commit-Position: refs/heads/master@{#9692}
2015-08-10 19:22:59 +00:00
Peter Thatcher
54360510ff Add flakyness check based on the recently received packets.
BUG=
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1207563002 .

Cr-Commit-Position: refs/heads/master@{#9553}
2015-07-08 18:08:39 +00:00
Peter Thatcher
1fe120a6b9 Add triggered checks.
BUG=4590
R=guoweis@webrtc.org, juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51979004.

Cr-Commit-Position: refs/heads/master@{#9409}
2015-06-10 18:33:24 +00:00
Peter Thatcher
1cf6f8101a Add logging for sending and receiving STUN binding requests and TURN requests and responses.
BUG=
R=guoweis@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46189004

Cr-Commit-Position: refs/heads/master@{#9195}
2015-05-15 17:40:34 +00:00
Guo-wei Shieh
be508a1d36 Implement Tcp Reconnect for TCPPort.
UDP case should not be changed.

Active TCPConnection will initiate Reconnect after OnClose and when Send or Ping fails.
Passive TCPConnection will prune itself as usual as the active side will create a new connection.

The Reconnect could make P2PCT choose a different best_connection in the case where connectivities exist b/w more than 1 Network.

Also, to avoid upper layer triggers ice restart, the WRITE_TIMEOUT caused by the socket disconnection is delayed  to give the reconnect mechanism chance to kick in. The timeout event is only fired if the reconnect can't work in 5 sec. If the reconnect, there should be no ICE disconnected state trigger either in active or passive side.

BUG=1926
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31359004

Cr-Commit-Position: refs/heads/master@{#8929}
2015-04-06 19:48:53 +00:00
jiayl@webrtc.org
dacdd9403d Reland r7980:
Accept incoming pings before remote answer is set, to reduce connection latency.
Set ICE connection state to 'checking' after setting the remote answer, so that it can transition into 'connected' if the peer reflexive connection is up before any remote candidate is set. See more details in crbug/446908

BUG=4068, crbug/446908
R=juberti@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/38709004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8141 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-23 17:33:34 +00:00
pthatcher@webrtc.org
0ba1533fdb Added support for an Origin header in STUN messages.
For WebRTC there are instances where it may be desirable to provide
information to the STUN/TURN server about the website that initiated
a peer connection. This modification allows an origin string to be
included in the MediaConstraints object provided by the browser, which
is then passed as a STUN header in communications with the server.
A separate change will be submitted to the Chromium project that
uses and is dependent on this change, implementing IETF draft
http://tools.ietf.org/html/draft-johnston-tram-stun-origin-02

Originally a patch from skobalt@gmail.com.

(https://webrtc-codereview.appspot.com/12839005/edit)

R=juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41409004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8035 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-10 00:47:02 +00:00
pthatcher@webrtc.org
9657265f39 Revert "Accept incoming pings before remote answer is set to reduce connection latency."
This reverts r7980.

It was causing the ICE connected state to happen while still in the new state rather than going through the checking state, which was causing an ASSERT to fire, which was causing a crash.

Review URL: https://webrtc-codereview.appspot.com/41429004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8031 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-09 19:08:27 +00:00
jiayl@webrtc.org
c5fd66dcdf Accept incoming pings before remote answer is set to reduce connection latency.
BUG=4068
R=juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/33509004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7980 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-29 19:23:37 +00:00
guoweis@webrtc.org
55360ae402 Revert "Add adapter_type into Candidate object."
This reverts commit aaf02cc2d4f696345ce0e6d5715f2cfa22aea689.

BUG=
TBR=juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/35539004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7908 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-16 05:28:10 +00:00
guoweis@webrtc.org
aaf02cc2d4 Add adapter_type into Candidate object.
Expose adapter_type from Candidate such that we could add jmidata on top of this.

Created a new type of report just for Ice candidate. The candidate's id is used as part of report identifier. This code change only reports the best connection's local candidate's adapter type. There should be cleaning later to move other candidate's attributes to the new report.

This is migrated from issue 32599004

BUG=
R=juberti@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=7885

Review URL: https://webrtc-codereview.appspot.com/36379004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7906 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 23:03:10 +00:00
pbos@webrtc.org
fb108b5a28 Revert r7885.
Breaks compile step of other code where network name of
cricket::Candidate is used.

TBR=guoweis@webrtc.org,juberti@webrtc.org
BUG=

Review URL: https://webrtc-codereview.appspot.com/31229004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7892 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 08:04:50 +00:00
guoweis@webrtc.org
8c9d79a29d Add adapter_type into Candidate object.
Expose adapter_type from Candidate such that we could add jmidata on top of this.

Created a new type of report just for Ice candidate. The candidate's id is used as part of report identifier. This code change only reports the best connection's local candidate's adapter type. There should be cleaning later to move other candidate's attributes to the new report.

This is migrated from issue 32599004

BUG=
R=juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36379004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7885 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-12 19:21:14 +00:00
guoweis@webrtc.org
8c9ff203c5 Redo the change of https://webrtc-codereview.appspot.com/30949004/
The previous change causes a build issue as there is subclass of TransportChannel in chromium. To break the circular dependency, a stub of implementation for GetState() is provided and will be removed once the jingle_glue::MockTransportChannel has the function defined.

TBR=pthatcher@webrtc.org

BUG=411086

Review URL: https://webrtc-codereview.appspot.com/34369004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7806 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-04 07:56:02 +00:00
guoweis@webrtc.org
fd8422938c Revert "Implement GetState() for channel's connectivity check state."
This reverts commit ff72f9e692d0918b32646dadaf382aa4355d8437.

TBR=pthatcher@webrtc.org

BUG=

Review URL: https://webrtc-codereview.appspot.com/33469004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7805 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-04 00:51:59 +00:00
guoweis@webrtc.org
ff72f9e692 Implement GetState() for channel's connectivity check state.
Previously, IceState is considered completed when there is only one connection (and the rest was trimmed). However, since the trimming logic is only done within the scope of network, when IPv6 and IPv4 both exist, the completion event is never fired.

This change adds the GetState() to each channel and it could decide what Completion means. The transport object then aggregates all channels before determining it's completed.

Each channel's IceState will be aggregrated at Transport level for overall Ice state

BUG=411086
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/30949004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7804 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-04 00:14:49 +00:00
guoweis@webrtc.org
930e004a81 Add jmi field for packets discarded due to network error
Also included the total packets attempted to send.

BUG=427555

Copied from https://webrtc-codereview.appspot.com/25959004/

R=harryjin@google.com, juberti@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=7693

Review URL: https://webrtc-codereview.appspot.com/32039004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7713 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-17 19:42:14 +00:00
henrike@webrtc.org
6a782c2a46 Revert 7693 "Add jmi field for packets discarded due to network error" breaks chromium's webrtc_cases.
TBR=guoweis@webrtc.org

BUG=N/A

Review URL: https://webrtc-codereview.appspot.com/25179004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7706 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-14 22:33:13 +00:00
guoweis@webrtc.org
312614a438 Add jmi field for packets discarded due to network error
Also included the total packets attempted to send.

BUG=427555

Copied from https://webrtc-codereview.appspot.com/25959004/

R=harryjin@google.com, juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/32039004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7693 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-13 03:38:05 +00:00
pkasting@chromium.org
332331fb01 Use uint16s for port numbers in webrtc/p2p/base.
This is a necessary precursor to using uint16s for port numbers more
consistently in Chromium code.

This also makes some minor formatting changes in surrounding code (function declaration wrapping, virtual -> override).

BUG=chromium:81439
TEST=none
R=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/32379004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7656 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 20:19:22 +00:00
henrike@webrtc.org
269fb4bc90 move xmpp and p2p to webrtc
Create a copy of talk/xmpp and talk/p2p under webrtc/libjingle/xmpp and
webrtc/p2p. Also makes libjingle use those version instead of the one in the talk folder.

BUG=3379

Review URL: https://webrtc-codereview.appspot.com/26999004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7549 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-28 22:20:11 +00:00
henrike@webrtc.org
28100cb388 Reverts r7459 "Create a copy of talk/xmpp and talk/p2p under webrtc/libjingle/xmpp and webrtc/p2p."
BUG=N/A
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/29829004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7472 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-17 22:03:39 +00:00
henrike@webrtc.org
d1ba6d9cbf Create a copy of talk/xmpp and talk/p2p under webrtc/libjingle/xmpp and webrtc/p2p.
BUG=3379
R=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/27709005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7459 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-15 17:30:28 +00:00