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 : extern fd_topo_run_tile_t fd_tile_quic; 13 : 14 : typedef struct { 15 : fd_tpu_reasm_t * reasm; 16 : ulong reasm_seed; 17 : 18 : fd_stem_context_t * stem; 19 : 20 : long now; /* current time in ns */ 21 : fd_clock_tile_t clock[1]; 22 : 23 : fd_quic_t * quic; 24 : fd_aio_t quic_tx_aio[1]; 25 : 26 : # define ED25519_PRIV_KEY_SZ (32) 27 0 : # define ED25519_PUB_KEY_SZ (32) 28 : uchar tls_priv_key[ ED25519_PRIV_KEY_SZ ]; 29 : uchar tls_pub_key [ ED25519_PUB_KEY_SZ ]; 30 : fd_sha512_t sha512[1]; /* used for signing */ 31 : 32 : uchar buffer[ FD_NET_MTU ]; 33 : 34 : ulong round_robin_cnt; 35 : ulong round_robin_id; 36 : 37 : fd_net_rx_bounds_t net_in_bounds[ FD_TOPO_MAX_TILE_IN_LINKS ]; 38 : 39 : fd_wksp_t * net_out_mem; 40 : ulong net_out_chunk0; 41 : ulong net_out_wmark; 42 : ulong net_out_chunk; 43 : 44 : fd_wksp_t * verify_out_mem; 45 : 46 : long keylog_next_flush; 47 : int keylog_fd; 48 : fd_io_buffered_ostream_t keylog_stream; 49 : char keylog_buf[ 4096 ]; 50 : 51 : struct { 52 : ulong txns_received_udp; 53 : ulong txns_received_quic_fast; 54 : ulong txns_received_quic_frag; 55 : ulong frag_ok_cnt; 56 : ulong frag_gap_cnt; 57 : ulong frag_dup_cnt; 58 : long reasm_active; 59 : ulong reasm_overrun; 60 : ulong reasm_abandoned; 61 : ulong reasm_started; 62 : ulong udp_pkt_too_small; 63 : ulong udp_pkt_too_large; 64 : ulong quic_txn_too_small; 65 : ulong quic_txn_too_large; 66 : } metrics; 67 : } fd_quic_ctx_t; 68 : 69 : #endif /* HEADER_fd_src_disco_quic_fd_quic_tile_h */