aboutsummaryrefslogtreecommitdiff
path: root/packages/bun-inspector-protocol/test
diff options
context:
space:
mode:
Diffstat (limited to 'packages/bun-inspector-protocol/test')
0 files changed, 0 insertions, 0 deletions
quiche/commit/src/recovery/reno.rs?h=lucas/internal-error-subtypes&id=56edda7621623d2927bc1a368614540648615d46&follow=1'>recovery: remove ABC_L constant and its logicGravatar Junho Choi 4-82/+30 RFC3465 ABC_L constant (2) is to prevent an ACK from growing cwnd too fast for TCP ACK. However in QUIC recovery we process each ack'ed packet one by one in on_packet_acked(), there is no case where 2 or more packets are acked in on_packet_acked() hook. Also current logic limits growing cwnd more than 2 MSS for ACK packet containing more than 2 ACK packets, cwnd can grow too conservative in case that an ACK range contains many packets. For example the receiver may ack multiple packets in a single ACK frame when it processed multiple packets at once. This PR partially reverts #737. 2021-05-27recovery: fixup Debug implGravatar lucas 1-2/+2 2021-05-26doc: the default CC value is cubicGravatar Junho Choi 1-1/+1 2021-05-26process post-handshake data only when receiving CRYPTO framesGravatar Alessandro Ghedini 1-3/+6 2021-05-24recovery: pacing of egress QUIC packetsGravatar Lohith Bellad 6-1/+252 2021-05-24network path awarenessGravatar Alessandro Ghedini 19-313/+717 Currently quiche does not hold any information about the network path of a QUIC connection (such as the address of the peer), and the application is responsible for maintaining such information. This means that in case of a network migration, the application is responsible for detecting the change and switching over to new path, however there is currently no way for an application to actually validate a new path, as required by the QUIC spec. Adding an ad-hoc API to only expose path validation to applications would likely be very cumbersome, due to the synchronization needed between an application and quiche on the state of the current path, and any other path being probed. Instead, this change makes quiche be aware of the network path being used. The application needs to communicate the destination address of a connection upon creationg (via `accept()` or `connect()`), as well as the source address of received packets (via `recv()` and the new `RecvInfo` structure). In turn quiche will provide the application with the destination address of generated packets (via `send()` and the new `SendInfo` structure). Currently only the destination address of a connection is tracked, which would allow quiche to handle responding to migrations transparently from the application (but this will be added as a separate change). Additional fields can later be added to `RecvInfo` and `SendInfo`, such as the address of the local endpoint in order to be able to initiate migrations, rather than just respond to them. 2021-05-21ci: enable examples and all features for all test buildsGravatar Alessandro Ghedini 1-4/+4 2021-05-21stream: undo consistent RangeBuf allocation on sendGravatar Alessandro Ghedini 2-109/+25 Currently, when writing stream data, `RangeBuf` objects are allocated with a fixed capacity, and if the buffer is not immediately filled, the next stream write will re-use it. This was originally implemented to try to reduce memory fragmentation of stream data, and, in order to be able to maintain the `Send` and `Sync` traits implementation, the `RangeBuf` data buffer was wrapped in an `RWlock`, in order to implement thread-safe interior mutability. However due to the fact that the locking falls within 2 hot code paths (stream data writing, and STREAM frame creation) it heavuily affects throughput. In retrospect, the benefit of reduced memory fragmentation does not seem to justify the performance penalty, so this undoes the consistent allocation change to remove the need for the lock. This partially reverts commit 0976433e68ea1926aa9cf581e1a5846aba6da672. 2021-05-18calculate max CRYPTO frame length more accuratelyGravatar Alessandro Ghedini 1-27/+32 Instead of using a static value of what the frame overhead _could_ be, use the actual header length value that is available. 2021-05-17ffi: expose source / destination connection IDsGravatar Norman Maurer 2-0/+27 Motivation: We should expose functions to access the source and destination ids via the c API as well Modifications: Expose functions in the C API Result: Be able to access the ids of a connection 2021-05-12stop sending packets if drainingGravatar Alessandro Ghedini 1-0/+11 This check is currently done in `Connection::send()` as well, but when coalescing multiple packets, if one causes the connection to move to draining (e.g. because a CONNECTION_CLOSE was sent), we should stop trying to write additional coalesced packets. 2021-05-12add PADDING frame to fill up the datagram with Initial packetGravatar Junho Choi 1-9/+58 For Initial packets we need to make the UDP datagram at least 1200 bytes following the transport spec. However when the last packet in the datagram is Short and the datagram is not fully filled, we try to do null padding at the end which causes a decryption failure on the server because Short packet doesn't have an explicit length. To avoid this issue, when Short packet is added in the same datagram with Initial packet, add a PADDING frame to Short packet to fill up the datagram size. If Short packet is not added, we still add zero padding at the end of packet. 2021-05-12cubic: fast convergence from the rfc8312bis draftGravatar Junho Choi 1-12/+69 Update based on https://github.com/NTAP/rfc8312bis/pull/35 - remove w_last_max - update the logic of fast convergence - fix the bug where fast convergence is not applied 2021-05-12cubic: AIMD approach for TCP friendly windowGravatar Junho Choi 1-25/+47 - Update based on https://github.com/NTAP/rfc8312bis/pull/24 - Fix congestion avoidance test 2021-05-12cubic: redefine K equation according to the rfc8312bis draftGravatar Junho Choi 1-16/+34 - Update based on https://github.com/NTAP/rfc8312bis/pull/3 - Fix congestion avoidance test (but still has a TODO) 2021-05-12h3: make quiche_h3_recv_dgram signature consistentGravatar Lucas Pardue 1-1/+2 Seems we missed the header file... 2021-05-11use PAYLOAD_LENGTH_LEN constGravatar Junho Choi 1-1/+1 2021-05-10validate protocol version when creating ConfigGravatar Norman Maurer 1-0/+25 Motivation: We should validate that the version is valid that was used to create the Config object and if not fail. Modifications: - Add validation for the version - Add some tests Result: Version is validated during config creation 2021-05-06apps: fix inconsistent struct constructorGravatar Alessandro Ghedini 1-1/+1 2021-05-06apps: use parse() to convert string to intGravatar Alessandro Ghedini 1-8/+8 2021-05-06qlog: use map() instead of pattern matchingGravatar Alessandro Ghedini 1-15/+3 2021-05-06h3: use parse() to convert string to intGravatar Alessandro Ghedini 1-3/+6 2021-05-06ffi: expose client-side session resumption and 0-RTT APIGravatar Norman Maurer 2-0/+33 Motivation: Quiche added support for session resumption and 0-RTT lately but the API was not exposed via the C api. This was done in https://github.com/cloudflare/quiche/pull/911 and https://github.com/cloudflare/quiche/pull/914. Modifications: Add C API to also be able to make use of the functionality via C. Result: Be able to use session resumption and 0-RTT via the C api 2021-05-05check the packet length against the buffer sizeGravatar Junho Choi 1-1/+70 When we queue 0-rtt packets in undecryptable_pkts, there is a case that actual packet length is smaller than the size in the payload (packet length field) which may cause a runtime panic. Such packet is undecryptable in any way, so check it early and return error.