Commit graph

904 commits

Author SHA1 Message Date
Marten Seemann
f69709ee0e qlog the packet_received event before any frame-specific events 2020-03-27 20:25:17 +07:00
Marten Seemann
a82d6bb910 qlog stateless resets 2020-03-26 20:36:26 +07:00
Marten Seemann
ef901e3435 use the current timestamp of every event in qlog 2020-03-23 16:25:42 +07:00
Marten Seemann
6d61dccc2f rename the constructors for the various qerr.Error flavors 2020-03-21 10:53:03 +07:00
Marten Seemann
c9cbc26c95
Merge pull request #2421 from lucas-clemente/qlog-transport-parameters
qlog transport parameters
2020-03-18 12:02:30 +07:00
Marten Seemann
eabab8b99b qlog dropped packets 2020-03-18 11:20:50 +07:00
Marten Seemann
99f03d1595 qlog sent and received transport parameters 2020-03-18 11:20:27 +07:00
Marten Seemann
c4889996e4
Merge pull request #2423 from lucas-clemente/qlog-dropped-encryption-levels
qlog dropped encryption levels
2020-03-18 09:33:41 +07:00
Marten Seemann
63921b6dcb qlog dropped encryption levels 2020-03-13 17:17:28 +07:00
Marten Seemann
0ef4f06189 move the transport parameters from the handshake to the wire package 2020-03-13 16:20:11 +07:00
Marten Seemann
699c988917 remove stray debug message in session 2020-03-12 11:56:45 +07:00
Marten Seemann
f976a0ba11 qlog when undecryptable packets are buffered 2020-03-11 11:14:22 +07:00
Marten Seemann
bf60280792
Merge pull request #2406 from lucas-clemente/use-spa-conn-id
use the connection ID from the preferred_address transport parameter
2020-03-10 18:00:36 +07:00
Marten Seemann
d4a17a47a9
Merge pull request #2411 from lucas-clemente/remove-superflous-undecryptable-queueing-case
remove superflous case when queueing undecryptable packets
2020-03-10 16:55:49 +07:00
Marten Seemann
273a320f98 add support for the key_updated event for TLS key updates 2020-03-08 17:09:07 +07:00
Marten Seemann
eab5adc48c use the connection ID from the preferred_address transport parameter 2020-03-08 15:13:38 +07:00
Marten Seemann
9bc8822585 remove superflous case when queueing undecryptable packets
This was only needed in gQUIC. In IETF QUIC, we determine the keys from
the packet header. The crypto setup will return an ErrKeysDropped if we
already dropped the corresponding keys.
2020-03-08 14:14:15 +07:00
Marten Seemann
d50f935319 don't send packets after receiving a CONNECTION_CLOSE 2020-02-25 17:54:55 +07:00
Marten Seemann
2ea6a294a9 send the CONNECTION_CLOSE in all available encryption levels 2020-02-25 17:10:44 +07:00
Marten Seemann
c1cb3e64dc fix logging of coalesced packets
Coalesced packets that just have a single part shouldn't be logged as
coalesced packets.
2020-02-21 17:09:03 +07:00
Marten Seemann
a5fc72047e simplify pruning of old ACK ranges 2020-02-21 15:46:58 +07:00
Marten Seemann
f317a471bb use a single constructor for SentPacketHandler and ReceivedPacketHandler 2020-02-21 15:45:24 +07:00
Marten Seemann
e97e3040ed make sure the client sends packets to unblock the server 2020-02-21 12:29:11 +07:00
Marten Seemann
d20c1bfaed remove unused parameter from SentPacketHandler.ReceivedAck 2020-02-21 10:05:17 +07:00
Marten Seemann
29b784e782 rename packet packing functions in the packet packer 2020-02-20 16:42:58 +07:00
Marten Seemann
5aad7cae5d send coalesced packets 2020-02-20 16:42:56 +07:00
Marten Seemann
d642bf9098 simplify content storage in packed packets
It's not necessary to store both the packetBuffer and the slice
containing the raw data in the packet.
2020-02-20 16:25:54 +07:00
Marten Seemann
a4b4d52063 refactor packing of packets before and after the handshake is confirmed 2020-02-20 16:19:08 +07:00
Marten Seemann
f034e8ba19 set the LocalAddr that is used in the tls.ClientHelloInfo.Conn 2020-02-16 14:10:30 +07:00
Marten Seemann
a3fe9445cc set the packet_size on the packet_received and packet_sent event 2020-02-12 10:42:38 +07:00
Marten Seemann
f13ca7e791 qlog loss recovery metrics 2020-02-12 10:42:38 +07:00
Marten Seemann
a58bcb747b qlog received Retry packets 2020-02-12 10:42:38 +07:00
Marten Seemann
b031615db5 export a qlog when the session's run loop stops 2020-02-12 10:42:37 +07:00
Marten Seemann
8cde4ab638 refactor how session tickets are sent
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
93693349f3 collapse packetHandlerManager.Add and AddIfNotTaken into one function 2020-02-03 17:34:07 +01:00
Marten Seemann
634169b061 don't return a stateless reset token when adding a new connection ID
Both server and client didn't make use of the token. It was only used by
the connIDGenerator.
2020-02-03 17:31:47 +01:00
Marten Seemann
539097fc6e return a quic.ConnectionState from Session.ConnectionState() 2020-01-30 09:21:09 +07:00
Luke Tucker
6407f5bf68 Fix keepalive ping (#2316)
The firstAckElicitingPacketAfterIdleSendTime condition was inverted
in a recent PR, maybe just a typo.  This was causing only one ping
to be sent during periods of no activity.  The ack from the first
keepalive ping causes firstAckElicitingPacketAfterIdleSentTime
to be set to zero.  If there is no further activity, it will remain
zero and prevent further keepalive pings.
2020-01-27 11:13:54 +07:00
Marten Seemann
a93e544c94 remove Session.Close()
Session.Close() sends a transport-level error code. Applications should
not be able to call this function, but use CloseWithError() instead.
2020-01-26 17:41:53 +07:00
Marten Seemann
6f347233e2 update the name of the disable_active_migration transport parameter 2020-01-21 15:05:12 +07:00
Marten Seemann
5a566f2176
Merge pull request #2226 from lucas-clemente/retry-integrity
implement the retry integrity tag
2020-01-17 17:19:15 +07:00
Marten Seemann
7b10453af8 implement the Retry integrity tag 2020-01-17 13:42:57 +07:00
Marten Seemann
eeba3951ae only enable 0-RTT when using ListenEarly and DialEarly 2020-01-17 11:22:12 +07:00
Marten Seemann
079279b9cf fix mismatching expectation of the keep alive timer
session.maybeResetTimer() and session.run() were using slightly
different definitions of when a keep-alive PING should be sent. Under
certain conditions, this would make us repeatedly set a timer for the
keep-alive, but on timer expiration no keep-alive would be sent.
2020-01-08 11:09:45 +07:00
Marten Seemann
1723a16b00
Merge pull request #2273 from lucas-clemente/improve-dropped-packet-logging
log the packet size of dropped packets
2020-01-06 17:42:53 +07:00
Marten Seemann
c0e8df7bbc fix race condition when destroying the session 2020-01-04 14:57:42 +07:00
Marten Seemann
63096562a0 log the packet size of dropped packets 2020-01-02 14:52:35 +08:00
Marten Seemann
ce7583f813 add DialEarly and DialAddrEarly to dial 0-RTT connections 2020-01-01 18:04:02 +04:00
Marten Seemann
40a993e31c check that the client doesn't switch back to 0-RTT after sending 1-RTT 2020-01-01 18:04:02 +04:00
Marten Seemann
44aa12850e restore the server's transport parameters from the session ticket 2020-01-01 18:04:02 +04:00