ntp: add per-source counters of kernel and hardware timestamps

This commit is contained in:
Miroslav Lichvar 2024-02-06 14:27:14 +01:00
parent 637fa29e1e
commit 8d19f49341
2 changed files with 12 additions and 1 deletions

View file

@ -221,7 +221,7 @@ struct NCR_Instance_Record {
int burst_good_samples_to_go; int burst_good_samples_to_go;
int burst_total_samples_to_go; int burst_total_samples_to_go;
/* Report from last valid response */ /* Report from last valid response and packet/timestamp statistics */
RPT_NTPReport report; RPT_NTPReport report;
}; };
@ -2530,6 +2530,10 @@ NCR_ProcessRxKnown(NCR_Instance inst, NTP_Local_Address *local_addr,
NTP_PacketInfo info; NTP_PacketInfo info;
inst->report.total_rx_count++; inst->report.total_rx_count++;
if (rx_ts->source == NTP_TS_KERNEL)
inst->report.total_kernel_rx_ts++;
else if (rx_ts->source == NTP_TS_HARDWARE)
inst->report.total_hw_rx_ts++;
if (!parse_packet(message, length, &info)) if (!parse_packet(message, length, &info))
return 0; return 0;
@ -2812,8 +2816,11 @@ NCR_ProcessTxKnown(NCR_Instance inst, NTP_Local_Address *local_addr,
message); message);
if (tx_ts->source == NTP_TS_HARDWARE) { if (tx_ts->source == NTP_TS_HARDWARE) {
inst->report.total_hw_tx_ts++;
if (has_saved_response(inst)) if (has_saved_response(inst))
process_saved_response(inst); process_saved_response(inst);
} else if (tx_ts->source == NTP_TS_KERNEL) {
inst->report.total_kernel_tx_ts++;
} }
} }

View file

@ -181,6 +181,10 @@ typedef struct {
uint32_t total_rx_count; uint32_t total_rx_count;
uint32_t total_valid_count; uint32_t total_valid_count;
uint32_t total_good_count; uint32_t total_good_count;
uint32_t total_kernel_tx_ts;
uint32_t total_kernel_rx_ts;
uint32_t total_hw_tx_ts;
uint32_t total_hw_rx_ts;
} RPT_NTPReport; } RPT_NTPReport;
typedef struct { typedef struct {