annotate src/event/quic/ngx_event_quic_connid.h @ 8640:c4f249d485e3 quic

QUIC: attempt decrypt before checking for stateless reset. Checking the reset after encryption avoids false positives. More importantly, it avoids the check entirely in the usual case where decryption succeeds. RFC 9000, 10.3.1 Detecting a Stateless Reset Endpoints MAY skip this check if any packet from a datagram is successfully processed.
author Martin Duke <m.duke@f5.com>
date Tue, 12 Oct 2021 11:57:50 +0300
parents 5186ee5a94b9
children 1e2f4e9c8195
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8408
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
1
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
2 /*
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
3 * Copyright (C) Nginx, Inc.
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
4 */
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
5
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
6
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
7 #ifndef _NGX_EVENT_QUIC_CONNID_H_INCLUDED_
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
8 #define _NGX_EVENT_QUIC_CONNID_H_INCLUDED_
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
9
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
10
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
11 #include <ngx_config.h>
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
12 #include <ngx_core.h>
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
13
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
14
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
15 ngx_int_t ngx_quic_handle_retire_connection_id_frame(ngx_connection_t *c,
8438
5186ee5a94b9 QUIC: simplified sending 1-RTT only frames.
Sergey Kandaurov <pluknet@nginx.com>
parents: 8437
diff changeset
16 ngx_quic_retire_cid_frame_t *f);
8408
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
17 ngx_int_t ngx_quic_handle_new_connection_id_frame(ngx_connection_t *c,
8438
5186ee5a94b9 QUIC: simplified sending 1-RTT only frames.
Sergey Kandaurov <pluknet@nginx.com>
parents: 8437
diff changeset
18 ngx_quic_new_conn_id_frame_t *f);
8408
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
19
8423
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
20 ngx_int_t ngx_quic_create_sockets(ngx_connection_t *c);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
21 ngx_int_t ngx_quic_create_server_id(ngx_connection_t *c, u_char *id);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
22
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
23 ngx_quic_client_id_t *ngx_quic_create_client_id(ngx_connection_t *c,
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
24 ngx_str_t *id, uint64_t seqnum, u_char *token);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
25 ngx_quic_client_id_t *ngx_quic_next_client_id(ngx_connection_t *c);
8437
d5f93733c17d QUIC: relaxed client id requirements.
Vladimir Homutov <vl@nginx.com>
parents: 8423
diff changeset
26 ngx_quic_client_id_t *ngx_quic_used_client_id(ngx_connection_t *c,
d5f93733c17d QUIC: relaxed client id requirements.
Vladimir Homutov <vl@nginx.com>
parents: 8423
diff changeset
27 ngx_quic_path_t *path);
8423
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
28 void ngx_quic_unref_client_id(ngx_connection_t *c, ngx_quic_client_id_t *cid);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents: 8408
diff changeset
29
8408
e0cb1e58ca13 QUIC: separate files for connection id related processing.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
30 #endif /* _NGX_EVENT_QUIC_CONNID_H_INCLUDED_ */