comparison src/event/ngx_event_quic_transport.h @ 8643:5fdd0ef42232 quic

QUIC: macros for manipulating header protection and reserved bits. This gets rid of magic numbers from quic protection and allows to push down header construction specifics further to quic transport.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 17 Nov 2020 21:32:22 +0000
parents 05b1ee464350
children 2dfc5ef29973
comparison
equal deleted inserted replaced
8642:05b1ee464350 8643:5fdd0ef42232
16 16
17 #define NGX_QUIC_PKT_LONG 0x80 /* header form */ 17 #define NGX_QUIC_PKT_LONG 0x80 /* header form */
18 #define NGX_QUIC_PKT_FIXED_BIT 0x40 18 #define NGX_QUIC_PKT_FIXED_BIT 0x40
19 #define NGX_QUIC_PKT_TYPE 0x30 /* in long packet */ 19 #define NGX_QUIC_PKT_TYPE 0x30 /* in long packet */
20 #define NGX_QUIC_PKT_KPHASE 0x04 /* in short packet */ 20 #define NGX_QUIC_PKT_KPHASE 0x04 /* in short packet */
21
22 #define NGX_QUIC_PKT_LONG_RESERVED_BIT 0x0C
23 #define NGX_QUIC_PKT_SHORT_RESERVED_BIT 0x18
24 21
25 #define ngx_quic_long_pkt(flags) ((flags) & NGX_QUIC_PKT_LONG) 22 #define ngx_quic_long_pkt(flags) ((flags) & NGX_QUIC_PKT_LONG)
26 #define ngx_quic_short_pkt(flags) (((flags) & NGX_QUIC_PKT_LONG) == 0) 23 #define ngx_quic_short_pkt(flags) (((flags) & NGX_QUIC_PKT_LONG) == 0)
27 24
28 /* Long packet types */ 25 /* Long packet types */
37 (((flags) & NGX_QUIC_PKT_TYPE) == NGX_QUIC_PKT_ZRTT) 34 (((flags) & NGX_QUIC_PKT_TYPE) == NGX_QUIC_PKT_ZRTT)
38 #define ngx_quic_pkt_hs(flags) \ 35 #define ngx_quic_pkt_hs(flags) \
39 (((flags) & NGX_QUIC_PKT_TYPE) == NGX_QUIC_PKT_HANDSHAKE) 36 (((flags) & NGX_QUIC_PKT_TYPE) == NGX_QUIC_PKT_HANDSHAKE)
40 #define ngx_quic_pkt_retry(flags) \ 37 #define ngx_quic_pkt_retry(flags) \
41 (((flags) & NGX_QUIC_PKT_TYPE) == NGX_QUIC_PKT_RETRY) 38 (((flags) & NGX_QUIC_PKT_TYPE) == NGX_QUIC_PKT_RETRY)
39
40 #define ngx_quic_pkt_rb_mask(flags) \
41 (ngx_quic_long_pkt(flags) ? 0x0C : 0x18)
42 #define ngx_quic_pkt_hp_mask(flags) \
43 (ngx_quic_long_pkt(flags) ? 0x0F : 0x1F)
42 44
43 #define ngx_quic_level_name(lvl) \ 45 #define ngx_quic_level_name(lvl) \
44 (lvl == ssl_encryption_application) ? "app" \ 46 (lvl == ssl_encryption_application) ? "app" \
45 : (lvl == ssl_encryption_initial) ? "init" \ 47 : (lvl == ssl_encryption_initial) ? "init" \
46 : (lvl == ssl_encryption_handshake) ? "hs" : "early" 48 : (lvl == ssl_encryption_handshake) ? "hs" : "early"