Gaukas Wang
4973374ea5
sync: quic-go 0.42.0
...
Signed-off-by: Gaukas Wang <i@gaukas.wang>
2024-04-23 22:34:55 -06:00
Gaukas Wang
77691ccce8
fix: error after sync
2023-10-26 22:48:59 -06:00
Gaukas Wang
95575f5fe7
break: update repo url [ci skip]
...
uTLS is not yet bumped to the new version, so this commit breaks the dependencies relationship by getting rid of the local replace.
2023-08-03 18:58:52 -06:00
Glonee
f1f42d8d90
use a ring buffer in the framer ( #3857 )
...
* implement and use ringbuffer in framer
* Add comments for ring buffer
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-06-01 11:53:37 -07:00
Marten Seemann
02013caaa4
rttstats: don't set initial RTT after having obtained a measurement ( #3852 )
2023-05-28 15:09:25 +03:00
Marten Seemann
dee98638a4
use atomic.Bool from the standard library
2023-02-04 17:44:57 +13: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
d9665c632e
use a sync.Pool to reduce allocation of linked list elements
...
Especially the sentPacketHistory linked list shows up in allocation
profiles, since a new list element is allocated for every single packet
we send.
Using a pool for the receiving path, as well as for the frame sorter, is
less critical, since we're tracking ranges there instead of individual
packets / frames, but it doesn't hurt either.
The other occurrences where we use a linked list (connection ID tracking
and the token store) are used so rarely (a few times over the lifetime
of the connection) that using a pool doesn't make any sense there.
2022-12-30 19:24:56 +13:00
Marten Seemann
dd30a02627
ackhandler: remove the packet list element from the correct list
2022-12-30 18:35:26 +13:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
ee013d9d23
use a monotonous timer for the connection ( #3570 )
...
There's no point in having the timer fire multiple times for the same
timestamp. By using a monotonuos timer we avoid busy-looping in cases where the
timer fires, but we can't actually send a packet.
2022-10-11 05:36:10 -07:00
Marten Seemann
42cec84221
extend ByteOrder interface to allow converting from a byte slice
2022-08-29 13:11:58 +03:00
Marten Seemann
bea5de0221
Merge pull request #3483 from lucas-clemente/generic-min-max
...
use generic Min and Max functions
2022-08-12 12:09:30 +04:00
Marten Seemann
7ebe1430ef
use a generic linked list ( #3487 )
2022-08-10 09:50:21 -07:00
Marten Seemann
43bde14cf7
implement generic Min and Max functions
2022-08-10 14:59:05 +02:00
Marten Seemann
424325af58
rename utils.Min to utils.MinInt
2022-08-10 14:59:05 +02:00
Marten Seemann
2ea21b7b16
rename utils.Max to utils.MaxInt
2022-08-10 14:59:05 +02:00
Marten Seemann
08af9fc2c1
improve code coverage of random number generator test ( #3358 )
2022-03-25 09:37:37 +01:00
Marten Seemann
3c0726e132
move the random number generator to the utils package
2021-02-18 09:58:34 +08:00
Marten Seemann
11c5045065
move varint encoding / decoding to a separate package
...
... which is not internal.
2021-01-01 11:46:45 +08:00
Marten Seemann
653a107606
implement a function to encode a varint using a fixed length
2020-11-14 16:08:18 +07:00
Marten Seemann
8752576f26
run gofumpt, enable the gofumpt linter
2020-10-26 09:33:35 +07:00
Marten Seemann
876ab1d531
introduce a function to distinguish between IPv4 and IPv6 addresses
2020-09-14 17:01:34 +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
a1bb39d6ab
introduce a protocol.StatelessResetToken
2020-07-10 19:55:20 +07:00
Marten Seemann
0ef1b2f92e
pass around the stateless reset token directly, not pointers to it
...
Benchmarks show that it's actually faster to make a copy of this 16 byte
array than passing around a pointer to it.
2020-07-10 19:44:57 +07:00
Marten Seemann
1db3f06e87
stop the timer when the session's run loop returns
2020-05-02 07:53:47 +07:00
Marten Seemann
3e8c3cafc1
make the buffered qlog writer used in interop flush before closing
2020-03-19 12:58:56 +07:00
Marten Seemann
27549c5665
use the minimum of the two peers' max_idle_timeouts
2019-12-11 14:04:33 +04:00
Marten Seemann
031c1709e6
implement a basic store for new connection IDs
2019-11-05 10:59:21 +07:00
Marten Seemann
c41b68033c
Merge pull request #2080 from lucas-clemente/inline-varintlen
...
make sure that VarIntLen can be inlined
2019-08-23 22:59:51 +07:00
Marten Seemann
ccb197939d
replace WriteUintN and ReadUintN by explicit functions
2019-08-20 15:59:39 +07:00
Marten Seemann
f88546208d
make sure that VarIntLen can be inlined
2019-08-20 14:18:50 +07:00
Marten Seemann
2f09e1774c
remove unused utils.HostnameFromAddr function
2019-06-28 22:49:00 +07:00
Marten Seemann
fbe8844006
remove some unneccessary type conversions
2019-02-27 19:30:55 +09:00
Marten Seemann
a303ad9745
always send ACKs in the correct packet number space
2019-01-11 11:12:07 +07:00
Marten Seemann
516b427d46
don't set a timer when the deadline is the zero value
2018-12-18 22:06:57 +06:30
Marten Seemann
072b84870c
don't fire a newly created timer
2018-12-18 22:06:57 +06:30
Marten Seemann
bfb467e9b8
use the new packet number format
2018-11-26 23:05:55 +07:00
Marten Seemann
52380835b9
implement a WriteUintN function
2018-11-26 23:05:51 +07:00
Marten Seemann
6058f580be
remove unused ReadUint64 and WriteUint64 functions
2018-11-26 16:48:36 +07:00
Marten Seemann
9d06b2cfff
retransmit the CONNECTION_CLOSE packet when late packets arrive
2018-11-15 16:52:02 +07:00
Marten Seemann
3266e36811
drop support for gQUIC
2018-10-30 10:20:39 +07:00
Marten Seemann
bd6fd979a4
implement parsing and writing of varint packet numbers
2018-06-05 22:18:35 +02:00
Marten Seemann
d06957b8d8
implement a prefix logger
2018-05-29 20:52:03 +08:00
Marten Seemann
2b97fb41c9
switch to a byte-based congestion controller
...
Chrome removed the packet-based congestion controller and switched to
byte-based as well.
2018-05-02 23:45:23 +09:00
Marten Seemann
af8971d8c9
move connection ID generation from the utils to the protocol package
2018-04-17 20:21:06 +09:00
Marten Seemann
948eef3e42
create a logger interface and use it everywhere
2018-04-04 13:03:28 +07:00
Marten Seemann
7346d12d6c
use Genny to generate typed lists, based on Go standard library code
2018-03-30 15:12:09 +07:00
Marten Seemann
81974d30d6
run gosimple in gometalinter
2018-02-23 22:42:32 +08:00