OSSL_TIME (*now)(void *arg);
void *now_arg;
QUIC_RXFC *parent;
- unsigned char error_code, has_cwm_changed, is_fin;
+ unsigned char error_code, has_cwm_changed, is_fin, stream_count_mode;
};
/*
* and absolute maximum window sizes, respectively. Window size values are
* expressed in bytes and determine how much credit the RXFC extends to the peer
* to transmit more data at a time.
+ *
+ * If stream_count_mode is 1, this RXFC is for use tracking maximum stream count
+ * enforcement. In this case conn_rxfc must be NULL.
*/
int ossl_quic_rxfc_init(QUIC_RXFC *rxfc, QUIC_RXFC *conn_rxfc,
uint64_t initial_window_size,
OSSL_TIME (*now)(void *arg),
void *now_arg);
+/*
+ * Initialises an RX flow controller for stream count enforcement.
+ */
+int ossl_quic_rxfc_init_for_stream_count(QUIC_RXFC *rxfc,
+ uint64_t initial_window_size,
+ OSSL_TIME (*now)(void *arg),
+ void *now_arg);
+
/*
* Gets the parent (i.e., connection-level) RXFC. Returns NULL if called on a
* connection-level RXFC.