Lines Matching +full:frame +full:- +full:number
8 - Handling received ACK frames
9 - Generating notifications that a packet we sent was delivered successfully
10 - Generating notifications that a packet we sent was lost
11 - Generating requests for probe transmission
12 - Providing information on the largest unacked packet number so that packet
17 - Generating ACK frames for later transmission in response to packets we
19 - Providing information on whether a given RX packet number is potentially
24 - be notified of all transmitted packets
25 - be notified of all received datagrams
26 - be notified of all received packets
27 - be notified of all received ACK frames
28 - be notified when a packet number space is discarded
29 - be notified when its loss detection deadline arrives
33 - an arbitrary function which returns the current time;
34 - a RTT statistics tracker;
35 - a congestion controller.
39 - It indicates the current deadline by which the loss detection
42 - It indicates when probes should be generated.
44 - It indicates what ACK frames should be generated.
46 - It indicates the current deadline by which new ACK frames
49 - It indicates the largest unacknowledged packet number
50 for a given packet number space.
52 - It calls a callback for each transmitted packet it is notified
56 - It may communicate with a congestion controller, causing the
59 - It may communicate with a RTT statistics tracker, causing it
66 -------------------
68 There are three QUIC packet number spaces: Initial, Handshake and Application
72 /* QUIC packet number spaces. */
79 Packet numbers are 62-bit values represented herein by `QUIC_PN`.
80 `QUIC_PN_INFINITE` evaluates to an invalid QUIC packet number value.
83 /* QUIC packet number representation. */
89 -------------
108 [Statistics Manager tracker instance](quic-statm.md).
111 ------
134 /* The packet number of the transmitted packet. */
137 /* The number of bytes in the packet which was sent. */
144 * If the packet being described by this structure contains an ACK frame,
145 * this must be set to the largest PN ACK'd by that frame.
149 * This is necessary to bound the number of PNs we have to keep track of on
157 * into a packet number space.
164 /* 1 if the packet has one or more ACK-eliciting frames. */
186 /* (Internal use fields are appended here and must be zero-initialized.) */
199 the anti-amplification budget. Packet and ACK-frame related logic are handled
223 /* The packet number of the received packet. */
231 * into a packet number space.
235 /* 1 if the packet has one or more ACK-eliciting frames. */
248 ### On RX ACK Frame
250 This must be called whenever an ACK frame is received. It should be called
254 `pkt_space` is one of the `QUIC_PN_SPACE_*` values, specifying the packet number
255 space of the containing packet. `rx_time` is the time the frame was
273 * A sequence of packet number ranges [[start, end]...].
280 * As such, ack_ranges[0].end is always the highest packet number
281 * being acknowledged and ack_ranges[num_ack_ranges-1].start is
282 * always the lowest packet number being acknowledged.
284 * num_ack_ranges must be greater than zero, as an ACK frame must
285 * acknowledge at least one packet number.
302 This must be called whenever a packet number space is discarded. ACK-tracking
303 information for the number space is thrown away. Any previously provided
334 -------
352 ### Get ACK Frame
355 information which should be packed into an ACK frame and transmitted.
357 This generates an ACK frame regardless of whether the ACK manager thinks one
358 should currently be sent. To determine if the ACK manager thinks an ACK frame
361 If no new ACK frame is currently needed, returns NULL. After calling this
380 This returns 1 if the ACK manager thinks an ACK frame ought to be generated and
381 sent at this time. `ossl_ackm_get_ack_frame` will always provide an ACK frame
383 first to determine whether you need to generate an ACK frame.
397 wait until a few more packets are received before generating an ACK frame, so
398 that a single ACK frame can acknowledge all of them. However, if further
399 packets do not arrive, an ACK frame must be generated anyway within a certain
413 Returns 1 if the given RX packet number is “processable”. A processable PN is
416 - duplicate, meaning that we have already been passed such a PN in a call
419 - written off, meaning that the PN is so old that we have stopped tracking
443 The fields of `OSSL_ACKM_PROBE_INFO` record the number of probe requests
446 - `handshake` designates the number of ACK-eliciting Handshake
450 - `padded_initial` designates the number of ACK-eliciting
454 - `pto` designates the number of ACK-eliciting outstanding probe events
455 corresponding to each packet number space. This is equivalent to
460 to 1. If `clear` is non-zero, the current values are returned and then zeroed,
475 ### Get Largest Unacked Packet Number
477 This gets the largest unacknowledged packet number in the given packet number
478 space. The packet number is written to `*pn`. Returns 1 on success.
481 the abridged packet number in the packet header.
488 ----------------------
493 with a non-NULL function pointer: