• rtenneti@chromium.org's avatar
    Land Recent QUIC changes. · 97cf302c
    rtenneti@chromium.org authored
    This is the first part of the code to allow faster stats/future
    compression stuff to register for a notification when a block of data
    has been fully ACKed by the peer.
    
    The idea is as follows:
    
    Someone who wants to be notified when their data is ACKed calls
    SendStreamDataAndNotifyWhenAcked instead of SendStreamData, and provides
    a Closure.
    
    The QuicConnection stores the Closure in a QuicAckNotifier, and
    maintains a vector of these.
    
    On every ACK frame received, the OnAck(acked_seqnums) method of each
    QuicAckNotifier is called. The QuicAckNotifier keeps track of the
    sequence numbers it is waiting to see, and after being notified of all
    of them it calls the Closure's Run() method.
    
    Merge internal change: 51476134
    
    Changed SourceAddressToken's code not to include port number while
    performing crypto handshake (found in EndToEnd unit tests).
    
    Use IPAddressToPackedString for source address token comparison.
    
    
    Add CryptoServerConfig::set_strike_register_no_startup_period() to allow
    a QuicServer to start accepting 0-RTT handshakes without waiting
    a startup period.
    
    Add an end-to-end test for a successful 0-RTT handshake.
    
    Merge internal change: 51419595
    
    Copying the overly-lenient SPDY workarounds to handling priority blocked
    streams for idle timeout logic.
    
    Merge internal change: 51406984
    
    For this CL, the only chromium side change is to add
    QuicConnectionPeer::SetPeerAddress.
    
    Log packet retransmissions to DLOG(INFO). Use the standard format for
    the log messages for crypto handshake messages on the client side.
    
    Merge internal change: 51336227
    
    New frame ID scheme to eliminate conflict between STREAM and PADDING
    frames. PADDING frames are now stream type 0. Description of the new
    scheme is in quic_framer.cc.
    
    Merge internal change: 51271708
    
    Fixing a bug in implicitly created streams which results in early packet
    loss causing all streams to hang.
    
    Merge internal change: 51248632
    
    R=rch@chromium.org
    
    Review URL: https://chromiumcodereview.appspot.com/23464033
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221419 0039d316-1c4b-4281-b951-d872f2087c98
    97cf302c
quic_connection_test.cc 105 KB