QUIC: simplified sending 1-RTT only frames.

This commit is contained in:
Sergey Kandaurov 2021-05-05 19:32:49 +03:00
parent c8b273fd99
commit 8f0d5edf63
5 changed files with 19 additions and 27 deletions

View File

@ -1265,8 +1265,7 @@ ngx_quic_handle_frames(ngx_connection_t *c, ngx_quic_header_t *pkt)
case NGX_QUIC_FT_PATH_CHALLENGE:
if (ngx_quic_handle_path_challenge_frame(c, pkt,
&frame.u.path_challenge)
if (ngx_quic_handle_path_challenge_frame(c, &frame.u.path_challenge)
!= NGX_OK)
{
return NGX_ERROR;
@ -1276,8 +1275,7 @@ ngx_quic_handle_frames(ngx_connection_t *c, ngx_quic_header_t *pkt)
case NGX_QUIC_FT_PATH_RESPONSE:
if (ngx_quic_handle_path_response_frame(c, pkt,
&frame.u.path_response)
if (ngx_quic_handle_path_response_frame(c, &frame.u.path_response)
!= NGX_OK)
{
return NGX_ERROR;
@ -1287,7 +1285,7 @@ ngx_quic_handle_frames(ngx_connection_t *c, ngx_quic_header_t *pkt)
case NGX_QUIC_FT_NEW_CONNECTION_ID:
if (ngx_quic_handle_new_connection_id_frame(c, pkt, &frame.u.ncid)
if (ngx_quic_handle_new_connection_id_frame(c, &frame.u.ncid)
!= NGX_OK)
{
return NGX_ERROR;
@ -1297,7 +1295,7 @@ ngx_quic_handle_frames(ngx_connection_t *c, ngx_quic_header_t *pkt)
case NGX_QUIC_FT_RETIRE_CONNECTION_ID:
if (ngx_quic_handle_retire_connection_id_frame(c, pkt,
if (ngx_quic_handle_retire_connection_id_frame(c,
&frame.u.retire_cid)
!= NGX_OK)
{

View File

@ -16,7 +16,7 @@
static ngx_int_t ngx_quic_bpf_attach_id(ngx_connection_t *c, u_char *id);
#endif
static ngx_int_t ngx_quic_send_retire_connection_id(ngx_connection_t *c,
enum ssl_encryption_level_t level, uint64_t seqnum);
uint64_t seqnum);
static ngx_quic_client_id_t *ngx_quic_alloc_client_id(ngx_connection_t *c,
ngx_quic_connection_t *qc);
@ -75,7 +75,7 @@ ngx_quic_bpf_attach_id(ngx_connection_t *c, u_char *id)
ngx_int_t
ngx_quic_handle_new_connection_id_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_new_conn_id_frame_t *f)
ngx_quic_new_conn_id_frame_t *f)
{
ngx_str_t id;
ngx_queue_t *q;
@ -94,9 +94,7 @@ ngx_quic_handle_new_connection_id_frame(ngx_connection_t *c,
* done so for that sequence number.
*/
if (ngx_quic_send_retire_connection_id(c, pkt->level, f->seqnum)
!= NGX_OK)
{
if (ngx_quic_send_retire_connection_id(c, f->seqnum) != NGX_OK) {
return NGX_ERROR;
}
@ -174,9 +172,7 @@ retire:
/* this connection id must be retired */
if (ngx_quic_send_retire_connection_id(c, pkt->level, cid->seqnum)
!= NGX_OK)
{
if (ngx_quic_send_retire_connection_id(c, cid->seqnum) != NGX_OK) {
return NGX_ERROR;
}
@ -210,8 +206,7 @@ done:
static ngx_int_t
ngx_quic_send_retire_connection_id(ngx_connection_t *c,
enum ssl_encryption_level_t level, uint64_t seqnum)
ngx_quic_send_retire_connection_id(ngx_connection_t *c, uint64_t seqnum)
{
ngx_quic_frame_t *frame;
ngx_quic_connection_t *qc;
@ -223,7 +218,7 @@ ngx_quic_send_retire_connection_id(ngx_connection_t *c,
return NGX_ERROR;
}
frame->level = level;
frame->level = ssl_encryption_application;
frame->type = NGX_QUIC_FT_RETIRE_CONNECTION_ID;
frame->u.retire_cid.sequence_number = seqnum;
@ -356,7 +351,7 @@ ngx_quic_used_client_id(ngx_connection_t *c, ngx_quic_path_t *path)
ngx_int_t
ngx_quic_handle_retire_connection_id_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_retire_cid_frame_t *f)
ngx_quic_retire_cid_frame_t *f)
{
ngx_quic_path_t *path;
ngx_quic_socket_t *qsock, **tmp;

View File

@ -13,9 +13,9 @@
ngx_int_t ngx_quic_handle_retire_connection_id_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_retire_cid_frame_t *f);
ngx_quic_retire_cid_frame_t *f);
ngx_int_t ngx_quic_handle_new_connection_id_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_new_conn_id_frame_t *f);
ngx_quic_new_conn_id_frame_t *f);
ngx_int_t ngx_quic_create_sockets(ngx_connection_t *c);
ngx_int_t ngx_quic_create_server_id(ngx_connection_t *c, u_char *id);

View File

@ -22,7 +22,7 @@ static ngx_quic_path_t *ngx_quic_alloc_path(ngx_connection_t *c);
ngx_int_t
ngx_quic_handle_path_challenge_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f)
ngx_quic_path_challenge_frame_t *f)
{
off_t max, pad;
ssize_t sent;
@ -33,7 +33,7 @@ ngx_quic_handle_path_challenge_frame(ngx_connection_t *c,
qc = ngx_quic_get_connection(c);
frame.level = pkt->level;
frame.level = ssl_encryption_application;
frame.type = NGX_QUIC_FT_PATH_RESPONSE;
frame.u.path_response = *f;
@ -70,7 +70,7 @@ ngx_quic_handle_path_challenge_frame(ngx_connection_t *c,
return NGX_ERROR;
}
fp->level = pkt->level;
fp->level = ssl_encryption_application;
fp->type = NGX_QUIC_FT_PING;
ngx_quic_queue_frame(qc, fp);
@ -82,7 +82,7 @@ ngx_quic_handle_path_challenge_frame(ngx_connection_t *c,
ngx_int_t
ngx_quic_handle_path_response_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f)
ngx_quic_path_challenge_frame_t *f)
{
ngx_queue_t *q;
ngx_quic_path_t *path, *prev;
@ -557,7 +557,6 @@ ngx_quic_validate_path(ngx_connection_t *c, ngx_quic_socket_t *qsock)
ngx_add_timer(&qc->path_validation, pto);
}
return NGX_OK;
}

View File

@ -26,9 +26,9 @@
ngx_int_t ngx_quic_handle_path_challenge_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f);
ngx_quic_path_challenge_frame_t *f);
ngx_int_t ngx_quic_handle_path_response_frame(ngx_connection_t *c,
ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f);
ngx_quic_path_challenge_frame_t *f);
ngx_quic_path_t *ngx_quic_add_path(ngx_connection_t *c,
struct sockaddr *sockaddr, socklen_t socklen);