From: seantywork Date: Wed, 2 Jul 2025 09:49:34 +0000 (+0900) Subject: quic receive async buffered X-Git-Url: https://git.feebdaed.xyz/?a=commitdiff_plain;h=bcba908e4fce0b5d4f8945c3100b5771f1ab084e;p=linuxyz.git quic receive async buffered --- diff --git a/quic-bench/quic/quic.c b/quic-bench/quic/quic.c index 16a7e66..6b5b617 100644 --- a/quic-bench/quic/quic.c +++ b/quic-bench/quic/quic.c @@ -27,19 +27,27 @@ char* quic_ssl_keylog_env = "SSLKEYLOGFILE"; pthread_t client_tid; uint32_t client_total_sent = 0; -uint8_t server_total_data[INPUT_BUFF_CHUNK] = {0}; -uint32_t server_total_recvd = 0; +uint8_t server_total_data[INPUT_BUFF_MAX + 65536 + 65536] = {0}; +uint64_t server_total_recvd = 0; +uint64_t server_this_recvd = 0; -void server_recv(QUIC_BUFFER* qbuff){ +void server_recv(QUIC_BUFFER* qbuff, uint32_t buff_count, uint64_t buff_tot_len){ - //memcpy(server_total_data, qbuff->Buffer, qbuff->Length); - server_total_recvd += qbuff->Length; + //memcpy(server_total_data + server_total_recvd, qbuff->Buffer, qbuff->Length); - printf("server this buffer length: %lu\n", qbuff->Length); - printf("server total buff count: %lu\n", server_total_recvd); + server_total_recvd += buff_tot_len; + printf("buffer count: %lu\n", buff_count); + printf("server total buffer length: %llu\n", buff_tot_len); + for(int i = 0 ; i < buff_count; i++){ + server_this_recvd += qbuff[i].Length; + printf("server this buffer length: %llu\n", qbuff[i].Length); + } + + printf("server total buff count: %llu\n", server_total_recvd); + printf("server this buff count: %llu\n", server_this_recvd); return; } @@ -61,7 +69,7 @@ QUIC_STATUS server_stream_cb(HQUIC Stream, void* Context, QUIC_STREAM_EVENT* Eve // Data was received from the peer on the stream. // - server_recv(Event->RECEIVE.Buffers); + server_recv(Event->RECEIVE.Buffers, Event->RECEIVE.BufferCount, Event->RECEIVE.TotalBufferLength); printf("[strm][%p] Data received\n", Stream); break; diff --git a/quic-bench/quic/quic.h b/quic-bench/quic/quic.h index 3a8f7c7..5c1f5f0 100644 --- a/quic-bench/quic/quic.h +++ b/quic-bench/quic/quic.h @@ -27,9 +27,10 @@ #define SERVER_ADDR "quicbench" #define SERVER_PORT 9999 -#define INPUT_BUFF_CHUNK 65535 +#define INPUT_BUFF_CHUNK 65536 //#define INPUT_BUFF_CHUNK 100 -#define INPUT_BUFF_MAX 4294967296 +//#define INPUT_BUFF_MAX 4294967296 +#define INPUT_BUFF_MAX 8388608 #define CERT_CA "certs/ca.pem" #define CERT_SERVER "certs/server.crt.pem" #define KEY_SERVER "certs/server.key.pem"