void *ctx; /* Application layer context */
};
-/* Maximum size of stream Rx buffer. */
-#define QC_S_RX_BUF_SZ (global.tune.bufsize - NCB_RESERVED_SZ)
-
/* QUIC stream states
*
* On initialization a stream is put on idle state. It is opened as soon as
int qcc_recv_reset_stream(struct qcc *qcc, uint64_t id, uint64_t err, uint64_t final_size);
int qcc_recv_stop_sending(struct qcc *qcc, uint64_t id, uint64_t err);
+static inline int qmux_stream_rx_bufsz(void)
+{
+ return global.tune.bufsize - NCB_RESERVED_SZ;
+}
+
/* Bit shift to get the stream sub ID for internal use which is obtained
* shifting the stream IDs by this value, knowing that the
* QCS_ID_TYPE_SHIFT less significant bits identify the stream ID
* SETTINGS_MAX_FIELD_SECTION_SIZE parameter to prevent
* excessive decompressed size.
*/
- if (flen > QC_S_RX_BUF_SZ) {
+ if (flen > qmux_stream_rx_bufsz()) {
TRACE_ERROR("received a too big frame", H3_EV_RX_FRAME, qcs->qcc->conn, qcs);
qcc_set_error(qcs->qcc, H3_ERR_EXCESSIVE_LOAD, 1);
qcc_report_glitch(qcs->qcc, 1);
*/
void quic_transport_params_init(struct quic_transport_params *p, int server)
{
- const uint64_t ncb_size = global.tune.bufsize - NCB_RESERVED_SZ;
+ const uint64_t stream_rx_bufsz = qmux_stream_rx_bufsz();
const int max_streams_bidi = global.tune.quic_frontend_max_streams_bidi;
const int max_streams_uni = 3;
p->initial_max_streams_bidi = max_streams_bidi;
p->initial_max_streams_uni = max_streams_uni;
- p->initial_max_stream_data_bidi_local = ncb_size;
- p->initial_max_stream_data_bidi_remote = ncb_size;
- p->initial_max_stream_data_uni = ncb_size;
- p->initial_max_data = (max_streams_bidi + max_streams_uni) * ncb_size;
+ p->initial_max_stream_data_bidi_local = stream_rx_bufsz;
+ p->initial_max_stream_data_bidi_remote = stream_rx_bufsz;
+ p->initial_max_stream_data_uni = stream_rx_bufsz;
+ p->initial_max_data = (max_streams_bidi + max_streams_uni) * stream_rx_bufsz;
if (server) {
p->with_stateless_reset_token = 1;