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