| Index: webrtc/p2p/base/port.h
|
| diff --git a/webrtc/p2p/base/port.h b/webrtc/p2p/base/port.h
|
| index 081e81af1d0c32db9a88510181745dd4ce18b673..d5ad65f08100efb9d55cce2ff5e62c17579a284d 100644
|
| --- a/webrtc/p2p/base/port.h
|
| +++ b/webrtc/p2p/base/port.h
|
| @@ -417,11 +417,12 @@ class Connection : public CandidatePairInterface,
|
| public sigslot::has_slots<> {
|
| public:
|
| struct SentPing {
|
| - SentPing(const std::string id, int64_t sent_time)
|
| - : id(id), sent_time(sent_time) {}
|
| + SentPing(const std::string id, int64_t sent_time, uint32_t nomination)
|
| + : id(id), sent_time(sent_time), nomination(nomination) {}
|
|
|
| std::string id;
|
| int64_t sent_time;
|
| + uint32_t nomination;
|
| };
|
|
|
| // States are from RFC 5245. http://tools.ietf.org/html/rfc5245#section-5.7.4
|
| @@ -511,8 +512,16 @@ class Connection : public CandidatePairInterface,
|
| bool use_candidate_attr() const { return use_candidate_attr_; }
|
| void set_use_candidate_attr(bool enable);
|
|
|
| - bool nominated() const { return nominated_; }
|
| - void set_nominated(bool nominated) { nominated_ = nominated; }
|
| + void set_nomination(uint32_t value) { nomination_ = value; }
|
| +
|
| + uint32_t remote_nomination() const { return remote_nomination_; }
|
| + bool nominated() const { return remote_nomination_ > 0; }
|
| + // Public for unit tests.
|
| + void set_remote_nomination(uint32_t remote_nomination) {
|
| + remote_nomination_ = remote_nomination;
|
| + }
|
| + // Public for unit tests.
|
| + uint32_t acked_nomination() const { return acked_nomination_; }
|
|
|
| void set_remote_ice_mode(IceMode mode) {
|
| remote_ice_mode_ = mode;
|
| @@ -539,7 +548,7 @@ class Connection : public CandidatePairInterface,
|
| // Called when this connection should try checking writability again.
|
| int64_t last_ping_sent() const { return last_ping_sent_; }
|
| void Ping(int64_t now);
|
| - void ReceivedPingResponse(int rtt);
|
| + void ReceivedPingResponse(int rtt, const std::string& request_id);
|
| int64_t last_ping_response_received() const {
|
| return last_ping_response_received_;
|
| }
|
| @@ -631,11 +640,19 @@ class Connection : public CandidatePairInterface,
|
| void set_state(State state);
|
| void set_connected(bool value);
|
|
|
| + uint32_t nomination() const { return nomination_; }
|
| +
|
| void OnMessage(rtc::Message *pmsg);
|
|
|
| Port* port_;
|
| size_t local_candidate_index_;
|
| Candidate remote_candidate_;
|
| +
|
| + ConnectionInfo stats_;
|
| + rtc::RateTracker recv_rate_tracker_;
|
| + rtc::RateTracker send_rate_tracker_;
|
| +
|
| + private:
|
| WriteState write_state_;
|
| bool receiving_;
|
| bool connected_;
|
| @@ -645,9 +662,19 @@ class Connection : public CandidatePairInterface,
|
| // But when peer is ice-lite, this flag "must" be initialized to false and
|
| // turn on when connection becomes "best connection".
|
| bool use_candidate_attr_;
|
| - // Whether this connection has been nominated by the controlling side via
|
| - // the use_candidate attribute.
|
| - bool nominated_;
|
| + // Used by the controlling side to indicate that this connection will be
|
| + // selected for transmission if the peer supports ICE-renomination when this
|
| + // value is positive. A larger-value indicates that a connection is nominated
|
| + // later and should be selected by the controlled side with higher precedence.
|
| + // A zero-value indicates not nominating this connection.
|
| + uint32_t nomination_ = 0;
|
| + // The last nomination that has been acknowledged.
|
| + uint32_t acked_nomination_ = 0;
|
| + // Used by the controlled side to remember the nomination value received from
|
| + // the controlling side. When the peer does not support ICE re-nomination,
|
| + // its value will be 1 if the connection has been nominated.
|
| + uint32_t remote_nomination_ = 0;
|
| +
|
| IceMode remote_ice_mode_;
|
| StunRequestManager requests_;
|
| int rtt_;
|
| @@ -660,12 +687,6 @@ class Connection : public CandidatePairInterface,
|
| int64_t receiving_unchanged_since_ = 0;
|
| std::vector<SentPing> pings_since_last_response_;
|
|
|
| - rtc::RateTracker recv_rate_tracker_;
|
| - rtc::RateTracker send_rate_tracker_;
|
| -
|
| - ConnectionInfo stats_;
|
| -
|
| - private:
|
| void MaybeAddPrflxCandidate(ConnectionRequest* request,
|
| StunMessage* response);
|
|
|
|
|