gr1ffon
4ba42a8456
replace repo
2025-11-14 04:04:40 +03:00
Marten Seemann
8c062ae604
use testing.B.Loop in all benchmark tests ( #5285 )
...
go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -category=bloop -fix -test ./...
was used as a starting point.
2025-08-16 12:44:56 +02:00
Marten Seemann
b69abbaf11
wire: implement parsing and writing of the IMMEDIATE_ACK frame ( #5265 )
2025-07-21 15:56:04 +02:00
Marten Seemann
06e31852cb
wire: implement parsing and writing of the ACK_FREQUENCY frame ( #5264 )
...
* implement parsing and writing of the ACK_FREQUENCY frame
* prevent overflows of Request Max Ack Delay
* fix fuzzer
2025-07-21 15:35:06 +02:00
Jannis Seemann
c2e784aaf2
wire: optimize parsing logic for STREAM, DATAGRAM and ACK frames ( #5227 )
...
ParseOtherFrames-16 148ns ± 4% 150ns ± 3% ~ (p=0.223 n=8+8)
ParseAckFrame-16 302ns ± 2% 298ns ± 3% ~ (p=0.246 n=8+8)
ParseStreamFrame-16 262ns ± 3% 213ns ± 2% -18.61% (p=0.000 n=8+8)
ParseDatagramFrame-16 561ns ± 5% 547ns ± 4% ~ (p=0.105 n=8+8)
2025-07-20 13:14:38 +02:00
Jannis Seemann
893a5941fb
wire: improve frame parsing benchmarks ( #5263 )
...
* Add master-style frame handling benchmarks using type switches
* Fixing styling issue.
* put STREAM frame back
* remove BenchmarkParseStreamAndACK
* use random data for STREAM and DATAGRAM
* improve comment
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2025-07-18 18:33:04 +02:00
Marten Seemann
cb5c3f2aad
implement parsing and writing of RESET_STREAM_AT frames ( #5155 )
...
* implement parsing and writing of RESET_STREAM_AT frames
* wire: add support for parsing RESET_STREAM_AT frames
2025-05-28 05:49:54 +02:00
Marten Seemann
267cca773b
switch from math/rand to math/rand/v2 ( #5045 )
...
* switch from math/rand to math/rand/v2
* switch away from golang.org/x/exp/rand
2025-04-19 09:01:22 +02:00
Marten Seemann
672f906a40
wire: migrate tests away from Ginkgo ( #4643 )
...
* wire: translate ACK frame tests
* wire: translate CONNECTION_CLOSE frame tests
* wire: translate DATA_BLOCKED frame tests
* wire: translate DATAGRAM frame tests
* wire: translate HANDSHAKE_DONE frame tests
* wire: translate MAX_DATA frame tests
* wire: translate MAX_STREAM_DATA frame tests
* wire: translate MAX_STREAMS frame tests
* wire: translate NEW_CONNECTION_ID frame tests
* wire: translate NEW_TOKEN frame tests
* wire: translate PATH_CHALLENGE frame tests
* wire: translate PATH_RESPONSE frame tests
* wire: translate PING frame test
* wire: translate RESET_STREAM frame tests
* wire: translate RETIRE_CONNECTION_ID frame tests
* wire: translate STOP_SENDING frame tests
* wire: translate STREAM_DATA_BLOCKED frame tests
* wire: translate STREAMS_BLOCKED frame tests
* wire: translate CRYPTO frame tests
* wire: translate STREAM frame tests
* wire: translate version negotiation tests
* wire: translate header tests
* wire: translate pool tests
* wire: translate frame logging tests
* wire: translate short header tests
* wire: translate framer parser tests
* wire: translate transport parameter tests
2024-09-12 19:27:39 -07:00
Marten Seemann
f12ee48617
wire: use quicvarint.Parse when parsing frames ( #4484 )
...
* wire: add benchmarks for the frame parser
* wire: use quicvarint.Parse when parsing frames
* wire: always use io.EOF for too short frames
2024-05-05 04:28:28 -07:00
Marten Seemann
be4838bd64
wire: remove FrameParser interface, expose FrameParser struct ( #4284 )
...
Instead, expose the FrameParser struct. This allows us to embed it
directly into the connection struct, avoiding a pointer indirection.
2024-01-28 22:34:28 -08:00
Marten Seemann
da26f91905
wire: correctly parse multi-byte frame types ( #3736 )
2023-04-19 05:42:23 -07: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
ef28f4667f
refactor frame parser to remove version parameter from constructor
2023-01-18 20:51:58 +13:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
dfd35cb071
use a single bytes.Reader for frame parsing ( #3536 )
2022-09-01 01:06:50 -07:00
Marten Seemann
1aced95d41
use an array instead of a byte slice for Connection IDs
2022-08-29 11:30:31 +03:00
Marten Seemann
ab6d664b43
rename frame.Write to frame.Append
2022-08-28 23:18:24 +03:00
Marten Seemann
3ca1001951
append to a byte slice instead of a bytes.Buffer when serializing frames
2022-08-28 23:18:06 +03:00
Marten Seemann
909a3a9093
remove unneeded version constant in wire tests
2022-05-25 16:12:11 +02:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
fd41e8fa62
reject DATAGRAM frames if datagram support is not enabled
2020-12-09 15:31:23 +07:00
Marten Seemann
eefd2b73f7
implement parsing and writing of the DATAGRAM frames
2020-12-08 20:16:32 +07:00
Marten Seemann
a1bb39d6ab
introduce a protocol.StatelessResetToken
2020-07-10 19:55:20 +07:00
Marten Seemann
838dd6e81a
rename StreamFrame.FinBit to Fin
2020-07-02 16:41:43 +07:00
Marten Seemann
865332015c
rename ResetStreamFrame.ByteOffset to FinalSize
2020-07-02 16:41:43 +07:00
Marten Seemann
cc340b2887
rename StreamDataBlockedFrame.DataLimit to MaximumStreamData
2020-07-02 16:41:43 +07:00
Marten Seemann
fa07078d81
rename DataBlockedFrame.DataLimit to MaximumData
2020-07-02 16:41:43 +07:00
Marten Seemann
5466de6565
rename MaxStreamDataFrame.ByteOffset to MaximumStreamData
2020-07-02 16:41:43 +07:00
Marten Seemann
f4519cfd32
rename MaxDataFrame.ByteOffset to MaximumData
2020-07-02 16:41:43 +07:00
Marten Seemann
b0c08b1bd0
implement rules for frame types in 0-RTT packets
2019-12-30 18:39:21 +04:00
Marten Seemann
556e5c5559
implement parsing and writing of the HANDSHAKE_DONE frame
2019-12-06 10:29:48 +07:00
Marten Seemann
dbdccfa70a
include the frame type in the error returned by the frame parser
2019-11-09 11:39:35 +07:00
Marten Seemann
d91da7401b
allow PING frames at every encryption level
2019-10-15 10:17:02 -07:00
Marten Seemann
2ea8b70ffb
reject NEW_TOKEN frames with empty tokens
2019-09-13 11:00:06 +07:00
Marten Seemann
299da56aef
check if a frame is allowed at the encryption level it was sent with
2019-06-29 12:32:19 +07:00
Marten Seemann
a8633a952c
introduce a type for the stream number
2019-06-05 17:45:17 +08:00
Marten Seemann
662041649f
use the error names from the draft
2019-03-06 13:45:05 +09:00
Marten Seemann
9c09e84765
use IETF QUIC transport error codes
2019-03-06 13:43:18 +09:00
Marten Seemann
cebb4342ec
use the ack_delay_exponent sent in the transport parameters
2019-01-28 16:09:47 +09:00
Marten Seemann
741521c4d1
refactor frame parsing into a separate struct
2019-01-28 16:09:47 +09:00
Marten Seemann
42edcf6258
implement the RETIRE_CONNECTION_ID frame
2018-11-13 17:21:19 +07:00
Marten Seemann
2021a21916
implement the NEW_CONNECTION_ID frame
2018-11-13 17:21:14 +07:00
Marten Seemann
cf104db629
implement parsing and writing of the NEW_TOKEN frame
2018-11-12 23:37:44 +07:00
Marten Seemann
59ab139720
renumber frame types
2018-11-12 17:26:42 +07:00
Marten Seemann
9065ec3410
use a single error for frame parsing errors
2018-11-12 17:25:46 +07:00
Marten Seemann
c37b698f68
Merge pull request #1596 from lucas-clemente/internalize-errors
...
internalize the qerr package
2018-11-12 15:54:39 +07:00
Marten Seemann
3ffea5d8c4
internalize the qerr package
2018-11-11 12:44:16 +07:00
Marten Seemann
dd9ce2e668
replace the STREAM_ID_BLOCKED with the STREAMS_BLOCKED frame
2018-11-10 09:38:57 +07:00
Marten Seemann
9518c90c0a
implement and use the MAX_STREAMS frame
2018-11-10 09:38:50 +07:00