changeset 8778:5186ee5a94b9 quic

QUIC: simplified sending 1-RTT only frames.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 05 May 2021 19:32:49 +0300
parents d5f93733c17d
children f52a2b77d406
files src/event/quic/ngx_event_quic.c src/event/quic/ngx_event_quic_connid.c src/event/quic/ngx_event_quic_connid.h src/event/quic/ngx_event_quic_migration.c src/event/quic/ngx_event_quic_migration.h
diffstat 5 files changed, 19 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/quic/ngx_event_quic.c
+++ b/src/event/quic/ngx_event_quic.c
@@ -1265,8 +1265,7 @@ ngx_quic_handle_frames(ngx_connection_t 
 
         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 
 
         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 
 
         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 
 
         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)
             {
--- a/src/event/quic/ngx_event_quic_connid.c
+++ b/src/event/quic/ngx_event_quic_connid.c
@@ -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 
 
 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(
          *  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_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
 
 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;
--- a/src/event/quic/ngx_event_quic_connid.h
+++ b/src/event/quic/ngx_event_quic_connid.h
@@ -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);
--- a/src/event/quic/ngx_event_quic_migration.c
+++ b/src/event/quic/ngx_event_quic_migration.c
@@ -22,7 +22,7 @@ static ngx_quic_path_t *ngx_quic_alloc_p
 
 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
 
     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
             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
 
 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 
         ngx_add_timer(&qc->path_validation, pto);
     }
 
-
     return NGX_OK;
 }
 
--- a/src/event/quic/ngx_event_quic_migration.h
+++ b/src/event/quic/ngx_event_quic_migration.h
@@ -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);