97 uint64_t timestamp_ns,
98 uint64_t poll_return_ns = 0,
99 uint64_t before_notify_ns = 0,
100 uint32_t frame_bytes = 0,
101 uint32_t poll_batch_size = 0,
102 uint32_t poll_event_index = 0) {
118 clock_gettime(CLOCK_REALTIME, &ts);
119 return (uint64_t)ts.tv_sec * 1000000000ULL + (uint64_t)ts.tv_nsec;
129 return __rdtscp(&aux);
133 clock_gettime(CLOCK_MONOTONIC, &ts);
134 return (uint64_t)ts.tv_sec * 1000000000ULL + ts.tv_nsec;
uint64_t xlt_quote_rx_before_notify_ns()
定义 xlt_quote_latency.h:72
uint64_t xlt_quote_rx_latency_tsc()
读取当前 TSC(用于在 on_quote 入口计算延迟)
定义 xlt_quote_latency.h:126
uint32_t xlt_quote_rx_poll_batch_size()
定义 xlt_quote_latency.h:80
uint32_t xlt_quote_rx_poll_event_index()
定义 xlt_quote_latency.h:84
thread_local uint64_t g_quote_rx_before_notify_ns
内部使用:诊断时间点,调用 on_quote 前的系统UTC ns。
uint64_t xlt_quote_rx_timestamp_ns()
获取 API 内部收到 UDP 包时记录的硬件时间戳
定义 xlt_quote_latency.h:53
thread_local uint32_t g_quote_rx_frame_bytes
thread_local uint64_t g_quote_rx_tsc
内部使用:API 在调用 on_quote 前写入软件收包 TSC。
uint64_t xlt_quote_rx_latency_ns()
读取当前 UTC 纳秒时间戳
定义 xlt_quote_latency.h:116
uint64_t xlt_quote_rx_timestamp_tsc()
获取 API 内部收到 UDP 包时记录的软件 TSC 时间戳
定义 xlt_quote_latency.h:92
uint64_t xlt_quote_rx_poll_return_ns()
定义 xlt_quote_latency.h:68
void xlt_quote_set_rx_timestamps(uint64_t rx_tsc, uint64_t timestamp_ns, uint64_t poll_return_ns=0, uint64_t before_notify_ns=0, uint32_t frame_bytes=0, uint32_t poll_batch_size=0, uint32_t poll_event_index=0)
定义 xlt_quote_latency.h:96
thread_local uint32_t g_quote_rx_poll_batch_size
thread_local uint64_t g_quote_rx_poll_return_ns
内部使用:诊断时间点,ef_eventq_poll 返回后的系统UTC ns。
thread_local uint64_t g_quote_rx_timestamp_ns
内部使用:EFVI硬件RX时间戳(UTC ns),未开启或不可用时为0。
uint32_t xlt_quote_rx_frame_bytes()
定义 xlt_quote_latency.h:76
thread_local uint32_t g_quote_rx_poll_event_index
bool xlt_quote_has_rx_latency_breakdown()
定义 xlt_quote_latency.h:64
bool xlt_quote_has_rx_hw_timestamp()
当前回调对应的UDP包是否拿到了EFVI硬件RX时间戳
定义 xlt_quote_latency.h:60