gr1ffon
4ba42a8456
replace repo
2025-11-14 04:04:40 +03:00
Marten Seemann
adc13be540
implement a memory-optimized time.Time replacement ( #5334 )
...
* implement a memory-optimized time.Time replacement
* monotime: properly handle systems with bad timer resolution (Windows)
* monotime: simplify Since
2025-09-14 08:12:10 +02:00
Marten Seemann
1d8f3f281a
ci: update golangci-lint to v2 ( #5007 )
2025-03-30 07:16:14 +02:00
Marten Seemann
5a6187c870
reliably queue MAX_DATA frames ( #4844 )
2025-01-08 09:53:23 +08:00
Marten Seemann
a584e58099
flowcontrol: reset the connection send window when 0-RTT is rejected ( #4764 )
2024-12-22 11:36:14 +08:00
Marten Seemann
2e4cef10ab
flowcontrol: rewrite tests, use require instead of Ginkgo ( #4734 )
2024-11-30 14:27:57 +08:00
Marten Seemann
36ed693996
flowcontrol: fix timestamp used for receive window auto-tuning ( #4735 )
2024-11-29 13:59:22 +08:00
Marten Seemann
40a768e77b
flowcontrol: avoid calling time.Now(), pass time as a function parameter ( #4731 )
2024-11-28 17:46:22 +08:00
Marten Seemann
90a824a849
flowcontrol: fix start of the flow-control auto-tuning period ( #4730 )
...
The period should start when the first frame is received, not when the data is
first read. This makes a difference when the first STREAM frame is received
out of order.
2024-11-28 15:48:42 +08:00
Marten Seemann
42f04d4e02
refactor frame packing to logic to not access the streams map ( #4596 )
...
* avoid accessing the streams map when packing stream data
* avoid accessing the streams map when packing flow control frames
* remove streamGetter interface
2024-07-28 12:32:54 -07:00
Marten Seemann
22411e16d5
utils: switch to standard library min and max functions ( #4218 )
...
These functions were added in Go 1.21.
2023-12-27 21:19:13 -08:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00
Marten Seemann
43bde14cf7
implement generic Min and Max functions
2022-08-10 14:59:05 +02:00
Marten Seemann
f9904c7c45
add a callback to block window increases to the connection flow controller
2022-01-14 12:03:30 +04:00
Marten Seemann
a98e60c28c
fix some typos in documentation and tests
2022-01-14 11:23:14 +04:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
a04a0072fb
add a function to reset the connection flow controller
2021-03-09 17:59:48 +08:00
Marten Seemann
655632b116
avoid duplicate mutex locking when reading data
2020-11-20 15:45:38 +07:00
Marten Seemann
741dc28d74
move the RTTStats to the utils package
...
The RTTStats are used by the logging package. In order to instrument the
congestion package, the RTTStats can't be part of that package any more
(to avoid an import loop).
2020-07-23 11:53:08 +07:00
Marten Seemann
66eeff040b
reduce calls to time.Now() from the flow controller
2020-06-07 10:46:24 +07:00
Marten Seemann
6d61dccc2f
rename the constructors for the various qerr.Error flavors
2020-03-21 10:53:03 +07:00
Marten Seemann
9c09e84765
use IETF QUIC transport error codes
2019-03-06 13:43:18 +09:00
Marten Seemann
bfbf0bca48
always queue window updates when data is being read
...
There's no need to have a separate call in the flow controller interface
for this.
2019-01-22 23:46:12 +07:00
Marten Seemann
3ffea5d8c4
internalize the qerr package
2018-11-11 12:44:16 +07:00
Marten Seemann
50397a979c
only send BLOCKED frames if there is more data to send
2018-07-30 05:06:11 +07:00
Marten Seemann
08160ab18f
queue connection-level window updates from the flow controller directly
...
It is not sufficient to check for connection-level window updates every
time a packet is sent. When a connection-level window update needs to be
sent, we need to make sure that it gets sent immediately (i.e. call
scheduleSending() in the session).
2018-05-08 15:17:45 +09:00
Marten Seemann
7d1f17e5d6
log all connection flow control window increases
2018-05-06 22:07:54 +09:00
Marten Seemann
948eef3e42
create a logger interface and use it everywhere
2018-04-04 13:03:28 +07:00
Marten Seemann
3b82628dbe
internalize ackhandler and congestion
2018-02-02 08:40:56 +08:00
Marten Seemann
5371f804f8
don't report blocked streams as active for sending data
2018-01-03 00:18:33 +07:00
Marten Seemann
f7526b9883
rewrite flow control auto-tuning
2017-12-21 18:02:14 +07:00
Marten Seemann
ac05343b00
rename window increment to window size in the flow controller
...
No functional change expected.
2017-12-21 17:58:03 +07:00
Marten Seemann
15af2c6e41
Merge pull request #1037 from lucas-clemente/flow-control-mutexes
...
remove flow control mutexes for the sending data
2017-12-16 08:57:59 +07:00
Marten Seemann
bfdeeae70c
remove flow control mutexes for the sending data
...
Receiving MAX_{STREAM}_DATA frames and sending data is all done
sequentially, so we don't need a mutex there.
2017-12-16 00:23:48 +07:00
Marten Seemann
357a2f6213
don't defer unlocking the mutex when getting window updates
2017-12-15 19:49:41 +07:00
Marten Seemann
268c3859fc
remove the flow control manager
2017-10-20 21:34:09 +07:00
Marten Seemann
c53a83535e
split the flow controller in stream and connection flow controller
2017-10-20 21:12:19 +07:00