Lines Matching full:stream

26  * QUIC Stream
29 * Logical QUIC stream composing all relevant send and receive components.
39 * QUIC Send Stream States
43 * exception of the NONE state which represents the absence of a send stream
47 * data has been acknowledged received, or we have reset the stream, we don't
49 * don't have a QUIC_SSTREAM on a receive-only stream.
60 * QUIC Receive Stream States
64 * of the NONE state which represents the absence of a receive stream part.
70 * don't need a QUIC_RSTREAM on a send-only stream.
89 * QUIC Stream ID. Do not assume that this encodes a type as this is a
123 * The final size of the send stream. Although this information can be
129 * For the receive part, the final size is tracked by the stream-level RXFC;
136 * Send stream part and receive stream part buffer management objects.
139 * state of the send or receive stream part first using the appropriate
143 * stream with a send part can still have sstream as NULL, and a stream with
145 * QUIC_RSTREAM are stream buffer resource management objects which exist
148 * correspond with whether a stream's respective send or receive part
154 /* Stream-level flow control managers. */
169 * significantly simplifies stream type determination relative to our
205 * The stream's XSO has been deleted. Pending GC.
207 * Here is how stream deletion works:
214 * stream), we can delete the stream once we determine that all of our
219 * stream:
221 * STREAM
224 * Ignore for a deleted stream.
227 * locally-initiated stream ID we have not created yet,
232 * None, once we've decided to (someday) delete the stream.
236 * We cannot delete the stream until we have finished informing
241 * When we delete a stream we must have already had a FIN
253 * We cannot delete the stream until we have finished informing
259 * data on the stream. We don't need to care about this
260 * since once a stream is marked for deletion we don't care
274 * data on a stream once it has been marked for deletion,
291 * transmitting on the stream at *some* point, but by sending
305 * - we have drained our send stream (for a finished send stream)
315 /* Set to 1 if this is currently counted in the shutdown flush stream count. */
353 * Returns 1 if the QUIC_STREAM has a sending part, based on its stream type.
365 * Returns 1 if the QUIC_STREAM has a receiving part, based on its stream type.
369 * has been deemed no longer needed, for example if the receive stream is
380 * is not necessarily true; erasure of a send stream buffer which is no longer
385 * stream buffer but there is no more specific send state restriction which is
419 * converse is not necessarily true; erasure of a receive stream buffer which is
424 * stream buffer but there is no more specific receive state restriction which is
450 * Returns 1 if the stream has a send part and that part has a final size.
480 * Returns 1 if the stream has a receive part and that part has a final size.
544 * QUIC Stream Map
547 * The QUIC stream map:
549 * - maps stream IDs to QUIC_STREAM objects;
570 * get_stream_limit is a callback which is called to retrieve the current stream
572 * peer-initiated streams. If a stream's stream ID is x, a stream is allowed if
578 * If the callback is NULL, stream limiting is not applied.
579 * Stream limiting is used to determine if frames can currently be produced for
580 * a stream.
596 * Allocate a new stream. type is a combination of one QUIC_STREAM_INITIATOR_*
599 * structure to track any stream created by the server, etc.
601 * stream_id must be a valid value. Returns NULL if a stream already exists
609 * Releases a stream object. Note that this must only be done once the teardown
612 void ossl_quic_stream_map_release(QUIC_STREAM_MAP *qsm, QUIC_STREAM *stream);
615 * Calls visit_cb() for each stream in the map. visit_cb_arg is an opaque
619 void (*visit_cb)(QUIC_STREAM *stream, void *arg),
623 * Retrieves a stream by stream ID. Returns NULL if it does not exist.
629 * Marks the given stream as active or inactive based on its state. Idempotent.
631 * When a stream is marked active, it becomes available in the iteration list,
632 * and when a stream is marked inactive, it no longer appears in the iteration
636 * given stream object, but iterators not currently pointing at the given stream
648 * Returns 1 if the stream ordinal given is allowed by the current stream count
649 * flow control limit, assuming a locally initiated stream of a type described
652 * Note that stream_ordinal is a stream ordinal, not a stream ID.
659 * Stream Send Part
668 * between the two states is whether we have allocated a stream ID to the stream
669 * or not. QUIC permits us to defer stream ID allocation until first STREAM (or
672 * Our implementation does not currently do this and we allocate stream IDs up
674 * demand for a stream ID by the caller and ensures one has been allocated to
675 * the stream, and causes us to transition to SEND if we are still in the READY
685 * as the point in time at which the final size of the stream becomes known
687 * we have SENT all data on a given stream send part, not merely buffered it.
700 * when all transmitted stream data is ACKed by the peer.
713 * Resets the sending part of a stream. This is a transition from the READY,
714 * SEND or DATA_SENT send stream states to the RESET_SENT state.
716 * This function returns 1 if the transition is taken (i.e., if the send stream
720 * It returns 0 if in the DATA_RECVD state, as a send stream cannot be reset
731 * This function returns 1 if the transition is taken (i.e., if the send stream
745 * Stream Receive Part
750 * Transitions from the RECV receive stream state to the SIZE_KNOWN state. This
751 * should be called once a STREAM frame is received for the stream with the FIN
752 * bit set. final_size should be the final size of the stream in bytes.
761 * Transitions from the SIZE_KNOWN receive stream state to the DATA_RECVD state.
762 * This should be called once all data for a receive stream is received.
770 * Transitions from the DATA_RECVD receive stream state to the DATA_READ state.
771 * This should be called once all data for a receive stream is read by the
780 * Transitions from the RECV, SIZE_KNOWN or DATA_RECVD receive stream state to
791 * Transitions from the RESET_RECVD receive stream state to the RESET_READ
792 * receive stream state. This should be called when the application is notified
793 * of a stream reset.
799 * Marks the receiving part of a stream for STOP_SENDING. This is orthogonal to
800 * receive stream state as it does not affect it directly.
802 * Returns 1 if the receiving part of a stream was not already marked for
811 * Marks the stream as wanting a STOP_SENDING frame transmitted. It is not valid
825 * Adds a stream to the accept queue.
837 * Removes a stream from the accept queue. rtt is the estimated connection RTT.
838 * The stream is retired for the purposes of MAX_STREAMS RXFC.
846 /* Returns the length of the accept queue for the given stream type. */
849 /* Returns the total length of the accept queues for all stream types. */
864 * Begins shutdown stream flush triage. Analyses all streams, including deleted
865 * but not yet GC'd streams, to determine if we should wait for that stream to
879 * QUIC Stream Iterator
885 * active stream is returned first after n calls to ossl_quic_stream_iter_init,
891 * Iteration 0n: [Stream 1] [Stream 2] [Stream 3]
892 * Iteration 1n: [Stream 2] [Stream 3] [Stream 1]
893 * Iteration 2n: [Stream 3] [Stream 1] [Stream 2]
898 QUIC_STREAM *first_stream, *stream; member
903 * advance_rr is 1). After calling this, it->stream will be the first stream in
910 * Advances to next stream in iteration sequence. You do not need to call this
912 * list is reached, it->stream will be NULL after calling this.