Line data Source code
1 : #ifndef HEADER_fd_src_disco_quic_fd_quic_tile_h 2 : #define HEADER_fd_src_disco_quic_fd_quic_tile_h 3 : 4 : #include "fd_tpu.h" 5 : #include "../stem/fd_stem.h" 6 : #include "../topo/fd_topo.h" 7 : #include "../net/fd_net_tile.h" 8 : #include "../fd_clock_tile.h" 9 : #include "../../waltz/quic/fd_quic.h" 10 : #include "../../util/io/fd_io.h" 11 : 12 : #define FD_QUIC_TILE_IN_MAX (8UL) 13 : 14 : extern fd_topo_run_tile_t fd_tile_quic; 15 : 16 : typedef struct { 17 : fd_tpu_reasm_t * reasm; 18 : ulong reasm_seed; 19 : 20 : fd_stem_context_t * stem; 21 : 22 : long now; /* current time in ns */ 23 : fd_clock_tile_t clock[1]; 24 : 25 : fd_quic_t * quic; 26 : fd_aio_t quic_tx_aio[1]; 27 : 28 : # define ED25519_PRIV_KEY_SZ (32) 29 0 : # define ED25519_PUB_KEY_SZ (32) 30 : uchar tls_priv_key[ ED25519_PRIV_KEY_SZ ]; 31 : uchar tls_pub_key [ ED25519_PUB_KEY_SZ ]; 32 : fd_sha512_t sha512[1]; /* used for signing */ 33 : 34 : uchar buffer[ FD_NET_MTU ]; 35 : 36 : ulong round_robin_cnt; 37 : ulong round_robin_id; 38 : 39 : fd_net_rx_bounds_t net_in_bounds[ FD_QUIC_TILE_IN_MAX ]; 40 : 41 : fd_wksp_t * net_out_mem; 42 : ulong net_out_chunk0; 43 : ulong net_out_wmark; 44 : ulong net_out_chunk; 45 : 46 : fd_wksp_t * verify_out_mem; 47 : 48 : long keylog_next_flush; 49 : int keylog_fd; 50 : fd_io_buffered_ostream_t keylog_stream; 51 : char keylog_buf[ 4096 ]; 52 : 53 : struct { 54 : ulong txns_received_udp; 55 : ulong txns_received_quic_fast; 56 : ulong txns_received_quic_frag; 57 : ulong frag_ok_cnt; 58 : ulong frag_gap_cnt; 59 : ulong frag_dup_cnt; 60 : long reasm_active; 61 : ulong reasm_overrun; 62 : ulong reasm_abandoned; 63 : ulong reasm_started; 64 : ulong udp_pkt_too_small; 65 : ulong udp_pkt_too_large; 66 : ulong quic_txn_too_small; 67 : ulong quic_txn_too_large; 68 : } metrics; 69 : } fd_quic_ctx_t; 70 : 71 : #endif /* HEADER_fd_src_disco_quic_fd_quic_tile_h */