Line data Source code
1 : #ifndef HEADER_fd_src_app_fddev_quic_trace_fd_quic_trace_h 2 : #define HEADER_fd_src_app_fddev_quic_trace_fd_quic_trace_h 3 : 4 : #include "../../../disco/quic/fd_quic_tile.h" 5 : 6 : /* fd_quic_trace_ctx is the relocated fd_quic_ctx_t of the target quic 7 : tile. fd_quic_trace_ctx_remote is the original fd_quic_ctx_t, but 8 : the pointer itself is in the local address space. */ 9 : 10 : extern fd_quic_ctx_t fd_quic_trace_ctx; 11 : extern fd_quic_ctx_t const * fd_quic_trace_ctx_remote; 12 : extern ulong fd_quic_trace_ctx_raddr; 13 : extern ulong volatile * fd_quic_trace_link_metrics; 14 : extern void const * fd_quic_trace_log_base; 15 : 16 : /* fd_quic_trace_target_fseq are the fseq counters published by the 17 : target quic tile */ 18 : 19 : extern ulong ** fd_quic_trace_target_fseq; 20 : 21 : struct fd_quic_trace_ctx { 22 : int dump; /* whether the user requested --dump */ 23 : }; 24 : 25 : typedef struct fd_quic_trace_ctx fd_quic_trace_ctx_t; 26 : 27 : struct fd_quic_trace_frame_ctx { 28 : ulong conn_id; 29 : uint src_ip; 30 : ushort src_port; 31 : uchar pkt_type; 32 : ulong pkt_num; 33 : }; 34 : 35 : typedef struct fd_quic_trace_frame_ctx fd_quic_trace_frame_ctx_t; 36 : 37 : FD_PROTOTYPES_BEGIN 38 : 39 : void 40 : fd_quic_trace_frames( fd_quic_trace_frame_ctx_t * context, 41 : uchar const * data, 42 : ulong data_sz ); 43 : 44 : void 45 : fd_quic_trace_rx_tile( fd_frag_meta_t const * in_mcache, int dump ); 46 : 47 : void 48 : fd_quic_trace_log_tile( fd_frag_meta_t const * in_mcache ); 49 : 50 : FD_PROTOTYPES_END 51 : 52 : 53 0 : #define translate_ptr( ptr ) __extension__({ \ 54 0 : ulong rel = (ulong)(ptr) - fd_quic_trace_ctx_raddr; \ 55 0 : ulong laddr = (ulong)fd_quic_trace_ctx_remote + rel; \ 56 0 : (__typeof__(ptr))(laddr); \ 57 0 : }) 58 : 59 : #endif /* HEADER_fd_src_app_fddev_quic_trace_fd_quic_trace_h */