aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | QUIC: changed ACK frame debugging.Roman Arutyunyan2020-10-28
| | | | | | | | | | Previously ACK ranges were logged as a gap/range sequence. Now these values are expanded to packet number ranges for easier reading.
* | QUIC: unified range format for rx and tx ACK frames.Roman Arutyunyan2020-10-27
| | | | | | | | | | | | Previously, tx ACK frames held ranges in an array of ngx_quic_ack_range_t, while rx ACK frames held ranges in the serialized format. Now serialized format is used for both types of frames.
* | QUIC: cleanup send context properly.Vladimir Homutov2020-10-27
| | | | | | | | | | | | | | | | | | The patch resets ctx->frames queue, which may contain frames. It was possible that congestion or amplification limits prevented all frames to be sent. Retransmitted frames could be accounted twice as inflight: first time in ngx_quic_congestion_lost() called from ngx_quic_resend_frames(), and later from ngx_quic_discard_ctx().
* | QUIC: added push event afer the address was validated.Vladimir Homutov2020-10-27
| | | | | | | | This allows to continue processing when the anti-amplification limit was hit.
* | QUIC: updated anti-amplification check for draft 32.Vladimir Homutov2020-10-26
| | | | | | | | | | | | | | | | | | | | This accounts for the following change: * Require expansion of datagrams to ensure that a path supports at least 1200 bytes: - During the handshake ack-eliciting Initial packets from the server need to be expanded
* | QUIC: got rid of "pkt" abbreviation in logs.Vladimir Homutov2020-10-26
| |
* | QUIC: added "rx" and "tx" prefixes to packet debug.Vladimir Homutov2020-10-26
| |
* | QUIC: added connection state debug to event handlers.Vladimir Homutov2020-10-26
| |
* | QUIC: added logging of a declined packet without retry token.Vladimir Homutov2020-10-26
| |
* | QUIC: revised value separators in debug and error messages.Vladimir Homutov2020-10-27
| | | | | | | | | | | | | | All values are prefixed with name and separated from it using colon. Multiple values are listed without commas in between. Rationale: this greatly simplifies log parsing for analysis.
* | QUIC: single function for frame debug logging.Vladimir Homutov2020-10-27
| | | | | | | | | | | | The function may be called for any initialized frame, both rx and tx. While there, shortened level names.
* | QUIC: optimized acknowledgement generation.Vladimir Homutov2020-10-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For application level packets, only every second packet is now acknowledged, respecting max ack delay. 13.2.1 Sending ACK Frames In order to assist loss detection at the sender, an endpoint SHOULD generate and send an ACK frame without delay when it receives an ack- eliciting packet either: * when the received packet has a packet number less than another ack-eliciting packet that has been received, or * when the packet has a packet number larger than the highest- numbered ack-eliciting packet that has been received and there are missing packets between that packet and this packet. 13.2.2. Acknowledgement Frequency A receiver SHOULD send an ACK frame after receiving at least two ack-eliciting packets.
* | QUIC: added missing "quic" prefix in debug messages.Vladimir Homutov2020-10-23
| |
* | QUIC: restored proper usage of ngx_quic_drop_ack_ranges().Sergey Kandaurov2020-10-22
| | | | | | | | | | ACK Ranges are again managed based on the remembered Largest Acknowledged sent in the packet being acknowledged, which partially reverts c01964fd7b8b.
* | QUIC: fixed dropping output ack ranges on input ack.Vladimir Homutov2020-10-21
| | | | | | | | While there, additional debug messages were added.
* | QUIC: added macro for unset packet number.Vladimir Homutov2020-10-21
| |
* | QUIC: drop acknowledged ranges.Vladimir Homutov2020-10-20
| | | | | | | | | | | | | | | | | | | | 13.2.4. Limiting Ranges by Tracking ACK Frames When a packet containing an ACK frame is sent, the largest acknowledged in that frame may be saved. When a packet containing an ACK frame is acknowledged, the receiver can stop acknowledging packets less than or equal to the largest acknowledged in the sent ACK frame.
* | QUIC: added ACK frame range support.Vladimir Homutov2020-10-20
| | | | | | | | | | | | | | | | The history of acknowledged packet is kept in send context as ranges. Up to NGX_QUIC_MAX_RANGES ranges is stored. As a result, instead of separate ack frames, single frame with ranges is sent.
* | QUIC: expand UDP datagrams with an ack-eliciting Initial packet.Sergey Kandaurov2020-10-21
| | | | | | | | | | | | | | | | Per draft-ietf-quic-transport-32 on the topic: : Similarly, a server MUST expand the payload of all UDP datagrams carrying : ack-eliciting Initial packets to at least the smallest allowed maximum : datagram size of 1200 bytes.
* | QUIC: teach how to compute only the length of created QUIC headers.Sergey Kandaurov2020-10-21
| | | | | | | | It will be used for precise expansion of UDP datagram payload.
* | QUIC: simplified ngx_quic_create_long_header().Sergey Kandaurov2020-10-21
| | | | | | | | | | As seen in the quic-transport draft, which this implementation follows: Initial packets sent by the server MUST set the Token Length field to zero.
* | QUIC: avoided excessive initialization in ngx_quic_send_frames().Sergey Kandaurov2020-10-21
| | | | | | | | A zero-length token was used to initialize a prezeroed packet header.
* | QUIC: sorted ngx_quic_send_frames() declarations.Sergey Kandaurov2020-10-21
| |
* | QUIC: account packet header length in amplification limit.Vladimir Homutov2020-10-19
| | | | | | | | This is the restoration of 02ee77f8d53d accidentally reverted by 93be5658a250.
* | QUIC: reverted previous 3 commits.Vladimir Homutov2020-10-19
| | | | | | | | Changes were intended for the test repository.
* | try: --skiptestsVladimir Homutov2020-10-19
| |
* | QUIC: added ACK frame range support.Vladimir Homutov2020-10-14
| | | | | | | | | | | | | | | | The history of acknowledged packet is kept in send context as ranges. Up to NGX_QUIC_MAX_RANGES ranges is stored. As a result, instead of separate ack frames, single frame with ranges is sent.
* | SSL: added the "ssl_keys_file" directive.Vladimir Homutov2020-09-15
| |
* | QUIC: account packet header length in amplification limit.Vladimir Homutov2020-10-15
| | | | | | | | | | Header length calculation is adjusted to account real connection id lengths instead of worst case.
* | QUIC: fixed ngx_http_upstream_init() much like HTTP/2 connections.Sergey Kandaurov2020-10-12
| |
* | QUIC: reset error and error_reason prior to processing packet.Vladimir Homutov2020-10-09
| |
* | QUIC: fixed dead store assignment.Sergey Kandaurov2020-10-07
| | | | | | | | Found by Clang Static Analyzer.
* | QUIC: fixed format specifier in debug message.Vladimir Homutov2020-10-07
| |
* | QUIC: added debug message with final packet processing status.Vladimir Homutov2020-10-02
| |
* | QUIC: set local_socklen in stream connections.Roman Arutyunyan2020-10-07
| | | | | | | | | | | | Previously, this field was not set while creating a QUIC stream connection. As a result, calling ngx_connection_local_sockaddr() led to getsockname() bad descriptor error.
* | QUIC: enabled more key-related debug by default.Vladimir Homutov2020-10-02
| |
* | QUIC: added connection id debug.Vladimir Homutov2020-10-02
| |
* | QUIC: updated c->log->action strings to reflect proper state.Vladimir Homutov2020-10-07
| |
* | QUIC: fixed memory leak in ngx_quic_send_frames().Vladimir Homutov2020-10-07
| | | | | | | | The function did not free passed frames in case of error.
* | QUIC: fixed measuring ACK Delay against 0-RTT packets.Sergey Kandaurov2020-10-06
| |
* | QUIC: do not resend empty queue when speeding up handshake.Sergey Kandaurov2020-10-05
| | | | | | | | | | | | If client acknowledged an Initial packet with CRYPTO frame and then sent another Initial packet containing duplicate CRYPTO again, this could result in resending frames off the empty send queue.
* | QUIC: zero out packet length in frames prior to send.Sergey Kandaurov2020-10-05
| | | | | | | | | | It could be that a frame was previously sent and may have stale information. This was previously broken by merging frames on resend in b383120afca3.
* | QUIC: fixed build with clang and NGX_QUIC_DEBUG_CRYPTO enabled.Vladimir Homutov2020-10-05
| | | | | | | | | | The ngx_quic_hexdump() function is wrapped into macros to cast "data" argument to "* u_char".
* | QUIC: inline function instead of macro for hexdump.Vladimir Homutov2020-10-05
| | | | | | | | This prevents name clashes with local variables.
* | QUIC: fixed handling of incorrect packets.Vladimir Homutov2020-10-01
| | | | | | | | Instead of ignoring, connection was closed. This was broken in d0d3fc0697a0.
* | Merged with the default branch.Sergey Kandaurov2020-10-01
|\|
| * Proxy: error checking for array init, missed in 7716:d6a5e14aa3e4.Maxim Dounin2020-09-29
| | | | | | | | Found by Coverity (CID 1467637).
| * Userid: userid_flags fixup.Maxim Dounin2020-09-29
| | | | | | | | | | | | | | | | In 7717:e3e8b8234f05, the 1st bit was incorrectly used. It shouldn't be used for bitmask values, as it is used by NGX_CONF_BITMASK_SET. Additionally, special value "off" added to make it possible to clear inherited userid_flags value.
| * Resolver: improved error messages (ticket #2024).Maxim Dounin2020-09-28
| |
| * Userid: userid_flags directive to set cookie flags.Maxim Dounin2020-09-28
| |