annotate src/event/quic/ngx_event_quic_migration.c @ 8737:76f476ce4d31 quic

QUIC: distinct files for connection migration. The connection migration-related code from quic.c with dependencies is moved into separate file.
author Vladimir Homutov <vl@nginx.com>
date Wed, 31 Mar 2021 14:57:15 +0300
parents
children c8bda5e1e662
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8737
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
1
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
2 /*
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
3 * Copyright (C) Nginx, Inc.
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
4 */
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
5
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
6
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
7 #include <ngx_config.h>
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
8 #include <ngx_core.h>
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
9 #include <ngx_event.h>
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
10 #include <ngx_event_quic_transport.h>
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
11 #include <ngx_event_quic_connection.h>
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
12 #include <ngx_event_quic_migration.h>
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
13
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
14
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
15 ngx_int_t
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
16 ngx_quic_handle_path_challenge_frame(ngx_connection_t *c,
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
17 ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f)
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
18 {
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
19 ngx_quic_frame_t *frame;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
20 ngx_quic_connection_t *qc;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
21
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
22 qc = ngx_quic_get_connection(c);
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
23
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
24 frame = ngx_quic_alloc_frame(c);
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
25 if (frame == NULL) {
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
26 return NGX_ERROR;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
27 }
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
28
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
29 frame->level = pkt->level;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
30 frame->type = NGX_QUIC_FT_PATH_RESPONSE;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
31 frame->u.path_response = *f;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
32
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
33 ngx_quic_queue_frame(qc, frame);
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
34
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
35 return NGX_OK;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
36 }
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
37
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
38
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
39 ngx_int_t
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
40 ngx_quic_handle_path_response_frame(ngx_connection_t *c,
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
41 ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f)
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
42 {
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
43 /* TODO */
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
44 return NGX_OK;
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
45 }
76f476ce4d31 QUIC: distinct files for connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
46