Browse Source

etcpmon: translate tooltips to English

congestion
Evgeny 5 months ago
parent
commit
16a2aa959d
  1. 144
      tools/etcpmon/etcpmon_gui.c

144
tools/etcpmon/etcpmon_gui.c

@ -727,175 +727,175 @@ static void CreateTooltips(struct etcpmon_app* app)
/* ETCP Metrics */
AddTooltip(app->hToolTip, app->hEditEtcpRttLast,
"etcp.rtt_last / ETCP Connection\r\nВремя приема-передачи последнего пакета (RTT), единицы 0.1 мс");
"etcp.rtt_last / ETCP Connection\r\nRound-trip time of the last packet (RTT), units 0.1 ms");
AddTooltip(app->hToolTip, app->hEditEtcpRttAvg10,
"etcp.rtt_avg_10 / ETCP Connection\r\nСредний RTT за последние 10 пакетов, единицы 0.1 мс");
"etcp.rtt_avg_10 / ETCP Connection\r\nAverage RTT over last 10 packets, units 0.1 ms");
AddTooltip(app->hToolTip, app->hEditEtcpRttAvg100,
"etcp.rtt_avg_100 / ETCP Connection\r\nСредний RTT за последние 100 пакетов, единицы 0.1 мс");
"etcp.rtt_avg_100 / ETCP Connection\r\nAverage RTT over last 100 packets, units 0.1 ms");
AddTooltip(app->hToolTip, app->hEditEtcpJitter,
"etcp.jitter / ETCP Connection\r\nРазброс RTT (макс - мин), единицы 0.1 мс");
"etcp.jitter / ETCP Connection\r\nRTT spread (max - min), units 0.1 ms");
AddTooltip(app->hToolTip, app->hEditEtcpBytesSent,
"etcp.bytes_sent_total / ETCP Connection\r\nОбщий объем отправленных байт за все время");
"etcp.bytes_sent_total / ETCP Connection\r\nTotal bytes sent since connection start");
AddTooltip(app->hToolTip, app->hEditEtcpRetrans,
"etcp.retrans_count / ETCP Connection\r\nКоличество ретрансляций (повторных отправок пакетов)");
"etcp.retrans_count / ETCP Connection\r\nNumber of retransmissions (resent packets)");
AddTooltip(app->hToolTip, app->hEditEtcpAcks,
"etcp.ack_count / ETCP Connection\r\nКоличество полученных ACK-пакетов (подтверждений)");
"etcp.ack_count / ETCP Connection\r\nNumber of received ACK packets (confirmations)");
AddTooltip(app->hToolTip, app->hEditEtcpInflight,
"etcp.unacked_bytes / ETCP Connection\r\nБайт в полете: отправлено, но еще не подтверждено");
"etcp.unacked_bytes / ETCP Connection\r\nBytes in flight: sent but not yet acknowledged");
AddTooltip(app->hToolTip, app->hEditEtcpLinks,
"etcp.links_count / ETCP Connection\r\nКоличество активных линков (физических соединений)");
"etcp.links_count / ETCP Connection\r\nNumber of active links (physical connections)");
/* TUN Metrics */
AddTooltip(app->hToolTip, app->hEditTunReadBytes,
"tun.bytes_read / TUN Interface\r\nВсего байт прочитано из TUN-интерфейса");
"tun.bytes_read / TUN Interface\r\nTotal bytes read from TUN interface");
AddTooltip(app->hToolTip, app->hEditTunWriteBytes,
"tun.bytes_written / TUN Interface\r\nВсего байт записано в TUN-интерфейс");
"tun.bytes_written / TUN Interface\r\nTotal bytes written to TUN interface");
AddTooltip(app->hToolTip, app->hEditTunReadPkts,
"tun.packets_read / TUN Interface\r\nВсего пакетов прочитано из TUN-интерфейса");
"tun.packets_read / TUN Interface\r\nTotal packets read from TUN interface");
AddTooltip(app->hToolTip, app->hEditTunWritePkts,
"tun.packets_written / TUN Interface\r\nВсего пакетов записано в TUN-интерфейс");
"tun.packets_written / TUN Interface\r\nTotal packets written to TUN interface");
AddTooltip(app->hToolTip, app->hEditTunReadErrs,
"tun.read_errors / TUN Interface\r\nОшибок чтения из TUN-интерфейса");
"tun.read_errors / TUN Interface\r\nRead errors from TUN interface");
AddTooltip(app->hToolTip, app->hEditTunWriteErrs,
"tun.write_errors / TUN Interface\r\nОшибок записи в TUN-интерфейс");
"tun.write_errors / TUN Interface\r\nWrite errors to TUN interface");
/* Routing Metrics */
AddTooltip(app->hToolTip, app->hEditRtRouted,
"tun.routed_packets / Routing\r\nКоличество успешно маршрутизированных пакетов");
"tun.routed_packets / Routing\r\nNumber of successfully routed packets");
AddTooltip(app->hToolTip, app->hEditRtDropped,
"tun.dropped_packets / Routing\r\nКоличество отброшенных (не маршрутизированных) пакетов");
"tun.dropped_packets / Routing\r\nNumber of dropped (not routed) packets");
AddTooltip(app->hToolTip, app->hEditRtTunInQPkts,
"tun.tun_in_q_packets / Routing\r\nПакетов во входной очереди TUN");
"tun.tun_in_q_packets / Routing\r\nPackets in TUN input queue");
AddTooltip(app->hToolTip, app->hEditRtTunInQBytes,
"tun.tun_in_q_bytes / Routing\r\nБайт во входной очереди TUN");
"tun.tun_in_q_bytes / Routing\r\nBytes in TUN input queue");
AddTooltip(app->hToolTip, app->hEditRtTunOutQPkts,
"tun.tun_out_q_packets / Routing\r\nПакетов в выходной очереди TUN");
"tun.tun_out_q_packets / Routing\r\nPackets in TUN output queue");
AddTooltip(app->hToolTip, app->hEditRtTunOutQBytes,
"tun.tun_out_q_bytes / Routing\r\nБайт в выходной очереди TUN");
"tun.tun_out_q_bytes / Routing\r\nBytes in TUN output queue");
AddTooltip(app->hToolTip, app->hEditRtCount,
"tun.rt_count / Routing\r\nОбщее количество записей в таблице маршрутизации");
"tun.rt_count / Routing\r\nTotal entries in routing table");
AddTooltip(app->hToolTip, app->hEditRtLocal,
"tun.rt_local / Routing\r\nЛокальных (статических) маршрутов");
"tun.rt_local / Routing\r\nLocal (static) routes");
AddTooltip(app->hToolTip, app->hEditRtLearned,
"tun.rt_learned / Routing\r\nИзученных (динамических/BGP) маршрутов");
"tun.rt_learned / Routing\r\nLearned (dynamic/BGP) routes");
AddTooltip(app->hToolTip, app->hEditRtBgpSenders,
"tun.rt_bgp_senders / Routing BGP\r\nКоличество BGP-отправителей в списке");
"tun.rt_bgp_senders / Routing BGP\r\nNumber of BGP senders in list");
AddTooltip(app->hToolTip, app->hEditRtBgpNodes,
"tun.rt_bgp_nodes / Routing BGP\r\nКоличество BGP-узлов");
"tun.rt_bgp_nodes / Routing BGP\r\nNumber of BGP nodes");
/* Queue Metrics */
AddTooltip(app->hToolTip, app->hEditQInQBytes,
"etcp.input_queue_bytes / ETCP Queue\r\nБайт во входной очереди (принято от TUN, ожидает отправки)");
"etcp.input_queue_bytes / ETCP Queue\r\nBytes in input queue (received from TUN, waiting to send)");
AddTooltip(app->hToolTip, app->hEditQInQPkts,
"etcp.input_queue_packets / ETCP Queue\r\nПакетов во входной очереди");
"etcp.input_queue_packets / ETCP Queue\r\nPackets in input queue");
AddTooltip(app->hToolTip, app->hEditQInSendBytes,
"etcp.input_send_q_bytes / ETCP Queue\r\nБайт в очереди отправки (готовы к отправке по линкам)");
"etcp.input_send_q_bytes / ETCP Queue\r\nBytes in send queue (ready to send over links)");
AddTooltip(app->hToolTip, app->hEditQInSendPkts,
"etcp.input_send_q_packets / ETCP Queue\r\nПакетов в очереди отправки");
"etcp.input_send_q_packets / ETCP Queue\r\nPackets in send queue");
AddTooltip(app->hToolTip, app->hEditQWaitAckBytes,
"etcp.input_wait_ack_bytes / ETCP Queue\r\nБайт в очереди ожидания ACK (отправлено, ждем подтверждения)");
"etcp.input_wait_ack_bytes / ETCP Queue\r\nBytes waiting for ACK (sent, awaiting confirmation)");
AddTooltip(app->hToolTip, app->hEditQWaitAckPkts,
"etcp.input_wait_ack_packets / ETCP Queue\r\nПакетов в очереди ожидания ACK");
"etcp.input_wait_ack_packets / ETCP Queue\r\nPackets waiting for ACK");
AddTooltip(app->hToolTip, app->hEditQWaitAckOptInfl,
"etcp.optimal_inflight / ETCP Congestion Control\r\nЦелевое (оптимальное) окно перегрузки в байтах");
"etcp.optimal_inflight / ETCP Congestion Control\r\nTarget (optimal) congestion window in bytes");
AddTooltip(app->hToolTip, app->hEditQAckBytes,
"etcp.ack_q_bytes / ETCP Queue\r\nБайт в очереди ACK (подтверждения, готовы к отправке)");
"etcp.ack_q_bytes / ETCP Queue\r\nBytes in ACK queue (acknowledgments ready to send)");
AddTooltip(app->hToolTip, app->hEditQAckPkts,
"etcp.ack_q_packets / ETCP Queue\r\nПакетов в очереди ACK");
"etcp.ack_q_packets / ETCP Queue\r\nPackets in ACK queue");
AddTooltip(app->hToolTip, app->hEditQRecvBytes,
"etcp.recv_q_bytes / ETCP Queue\r\nБайт в очереди приема (принято, ожидает доставки в TUN)");
"etcp.recv_q_bytes / ETCP Queue\r\nBytes in receive queue (received, awaiting delivery to TUN)");
AddTooltip(app->hToolTip, app->hEditQRecvPkts,
"etcp.recv_q_packets / ETCP Queue\r\nПакетов в очереди приема");
"etcp.recv_q_packets / ETCP Queue\r\nPackets in receive queue");
AddTooltip(app->hToolTip, app->hEditQOutBytes,
"etcp.output_queue_bytes / ETCP Queue\r\nБайт в выходной очереди (готовы к записи в TUN)");
"etcp.output_queue_bytes / ETCP Queue\r\nBytes in output queue (ready to write to TUN)");
AddTooltip(app->hToolTip, app->hEditQOutPkts,
"etcp.output_queue_packets / ETCP Queue\r\nПакетов в выходной очереди");
"etcp.output_queue_packets / ETCP Queue\r\nPackets in output queue");
/* Error Counters */
AddTooltip(app->hToolTip, app->hEditErrReinit,
"etcp.reinit_count / ETCP Errors\r\nСчетчик реинициализаций соединения");
"etcp.reinit_count / ETCP Errors\r\nConnection reinitialization counter");
AddTooltip(app->hToolTip, app->hEditErrReset,
"etcp.reset_count / ETCP Errors\r\nСчетчик сбросов (reset) соединения");
"etcp.reset_count / ETCP Errors\r\nConnection reset counter");
AddTooltip(app->hToolTip, app->hEditErrPktFmt,
"etcp.pkt_format_errors / ETCP Errors\r\nОшибок формата пакета (невалидные заголовки)");
"etcp.pkt_format_errors / ETCP Errors\r\nPacket format errors (invalid headers)");
/* Timer Flags */
AddTooltip(app->hToolTip, app->hEditTimerRetrans,
"etcp.retrans_timer_active / ETCP Timers\r\nАктивен ли таймер ретрансляции (ON/OFF)");
"etcp.retrans_timer_active / ETCP Timers\r\nRetransmission timer active (ON/OFF)");
AddTooltip(app->hToolTip, app->hEditTimerAckResp,
"etcp.ack_resp_timer_active / ETCP Timers\r\nАктивен ли таймер отложенных ACK");
"etcp.ack_resp_timer_active / ETCP Timers\r\nDelayed ACK response timer active");
/* WaitAck queue state */
AddTooltip(app->hToolTip, app->hEditWaitAckSuspend,
"etcp.wait_ack_cb_suspended / ETCP WaitAck\r\nCallback приостановлен (ожидание ACK блокирует передачу)");
"etcp.wait_ack_cb_suspended / ETCP WaitAck\r\nCallback suspended (waiting for ACK blocks transmission)");
AddTooltip(app->hToolTip, app->hEditWaitAckCb,
"etcp.wait_ack_cb_set / ETCP WaitAck\r\nCallback установлен (есть обработчик ожидания ACK)");
"etcp.wait_ack_cb_set / ETCP WaitAck\r\nCallback set (waiting-for-ACK handler exists)");
AddTooltip(app->hToolTip, app->hEditWaitAckTimer,
"etcp.wait_ack_resume_timeout / ETCP WaitAck\r\nТаймер возобновления передачи активен");
"etcp.wait_ack_resume_timeout / ETCP WaitAck\r\nResume transmission timer active");
/* ID Metrics */
AddTooltip(app->hToolTip, app->hEditIdNextTx,
"etcp.next_tx_id / ETCP Sequence\r\nСледующий ID для передачи (Sequence Number TX)");
"etcp.next_tx_id / ETCP Sequence\r\nNext transmit ID (TX Sequence Number)");
AddTooltip(app->hToolTip, app->hEditIdLastRx,
"etcp.last_rx_id / ETCP Sequence\r\nПоследний принятый ID (Sequence Number RX)");
"etcp.last_rx_id / ETCP Sequence\r\nLast received ID (RX Sequence Number)");
AddTooltip(app->hToolTip, app->hEditIdLastDel,
"etcp.last_delivered_id / ETCP Sequence\r\nПоследний доставленный ID (в TUN)");
"etcp.last_delivered_id / ETCP Sequence\r\nLast delivered ID (to TUN)");
AddTooltip(app->hToolTip, app->hEditIdRxAckTill,
"etcp.rx_ack_till / ETCP Sequence\r\nДо какого ID подтвержден прием (ACK от получателя)");
"etcp.rx_ack_till / ETCP Sequence\r\nUp to which ID reception is confirmed (ACK from peer)");
/* Normalizer */
AddTooltip(app->hToolTip, app->hEditNormInPkts,
"etcp.norm_input_pkts / Packet Normalizer\r\nПакетов на входе нормализатора (текущие)");
"etcp.norm_input_pkts / Packet Normalizer\r\nPackets at normalizer input (current)");
AddTooltip(app->hToolTip, app->hEditNormInBytes,
"etcp.norm_input_bytes / Packet Normalizer\r\nБайт на входе нормализатора (текущие)");
"etcp.norm_input_bytes / Packet Normalizer\r\nBytes at normalizer input (current)");
AddTooltip(app->hToolTip, app->hEditNormOutPkts,
"etcp.norm_output_pkts / Packet Normalizer\r\nПакетов на выходе нормализатора (текущие)");
"etcp.norm_output_pkts / Packet Normalizer\r\nPackets at normalizer output (current)");
AddTooltip(app->hToolTip, app->hEditNormOutBytes,
"etcp.norm_output_bytes / Packet Normalizer\r\nБайт на выходе нормализатора (текущие)");
"etcp.norm_output_bytes / Packet Normalizer\r\nBytes at normalizer output (current)");
AddTooltip(app->hToolTip, app->hEditNormAllocErr,
"etcp.norm_alloc_errors / Packet Normalizer\r\nОшибок выделения памяти в нормализаторе");
"etcp.norm_alloc_errors / Packet Normalizer\r\nMemory allocation errors in normalizer");
AddTooltip(app->hToolTip, app->hEditNormLogicErr,
"etcp.norm_logic_errors / Packet Normalizer\r\nЛогических ошибок в нормализаторе");
"etcp.norm_logic_errors / Packet Normalizer\r\nLogic errors in normalizer");
AddTooltip(app->hToolTip, app->hEditNormFragSize,
"etcp.norm_frag_size / Packet Normalizer\r\nРазмер текущего фрагмента");
"etcp.norm_frag_size / Packet Normalizer\r\nCurrent fragment size");
AddTooltip(app->hToolTip, app->hEditNormDataPtr,
"etcp.norm_data_ptr / Packet Normalizer\r\nУказатель на данные в буфере");
"etcp.norm_data_ptr / Packet Normalizer\r\nData pointer in buffer");
AddTooltip(app->hToolTip, app->hEditNormDataSize,
"etcp.norm_data_size / Packet Normalizer\r\nРазмер данных в буфере");
"etcp.norm_data_size / Packet Normalizer\r\nData size in buffer");
AddTooltip(app->hToolTip, app->hEditNormInTotPkts,
"etcp.norm_in_total_pkts / Packet Normalizer\r\nВсего пакетов обработано на входе (накопительно)");
"etcp.norm_in_total_pkts / Packet Normalizer\r\nTotal packets processed at input (cumulative)");
AddTooltip(app->hToolTip, app->hEditNormInTotBytes,
"etcp.norm_in_total_bytes / Packet Normalizer\r\nВсего байт обработано на входе (накопительно)");
"etcp.norm_in_total_bytes / Packet Normalizer\r\nTotal bytes processed at input (cumulative)");
AddTooltip(app->hToolTip, app->hEditNormOutTotPkts,
"etcp.norm_out_total_pkts / Packet Normalizer\r\nВсего пакетов обработано на выходе (накопительно)");
"etcp.norm_out_total_pkts / Packet Normalizer\r\nTotal packets processed at output (cumulative)");
AddTooltip(app->hToolTip, app->hEditNormOutTotBytes,
"etcp.norm_out_total_bytes / Packet Normalizer\r\nВсего байт обработано на выходе (накопительно)");
"etcp.norm_out_total_bytes / Packet Normalizer\r\nTotal bytes processed at output (cumulative)");
/* ACK Debug counters */
AddTooltip(app->hToolTip, app->hEditAckHitInf,
"etcp.cnt_ack_hit_inf / ETCP ACK Debug\r\nACK попал в inflight-окно (ожидаемый ACK)");
"etcp.cnt_ack_hit_inf / ETCP ACK Debug\r\nACK hit inflight window (expected ACK)");
AddTooltip(app->hToolTip, app->hEditAckHitSndq,
"etcp.cnt_ack_hit_sndq / ETCP ACK Debug\r\nACK попал в send-очередь");
"etcp.cnt_ack_hit_sndq / ETCP ACK Debug\r\nACK hit send queue");
AddTooltip(app->hToolTip, app->hEditAckMiss,
"etcp.cnt_ack_miss / ETCP ACK Debug\r\nACK не найден (неожиданный ACK)");
"etcp.cnt_ack_miss / ETCP ACK Debug\r\nACK not found (unexpected ACK)");
AddTooltip(app->hToolTip, app->hEditCntLinkWait,
"etcp.cnt_link_wait / ETCP ACK Debug\r\nСчетчик ожидания линка");
"etcp.cnt_link_wait / ETCP ACK Debug\r\nLink wait counter");
AddTooltip(app->hToolTip, app->hEditTxState,
"etcp.tx_state / ETCP ACK Debug\r\nСостояние передачи (битовая маска)");
"etcp.tx_state / ETCP ACK Debug\r\nTransmission state (bitmask)");
/* Debug counters */
for (int i = 0; i < 8; i++) {
char buf[256];
snprintf(buf, sizeof(buf),
"etcp.debug[%d] / ETCP Debug\r\nОтладочное поле (зависит от версии)", i);
"etcp.debug[%d] / ETCP Debug\r\nDebug field (version dependent)", i);
AddTooltip(app->hToolTip, app->hEditDebug[i], buf);
}
/* System resources */
AddTooltip(app->hToolTip, app->hEditActiveTimeouts,
"etcp.active_timeouts / System Resources\r\nАктивных таймаутов в системе (async)");
"etcp.active_timeouts / System Resources\r\nActive timeouts in system (async)");
AddTooltip(app->hToolTip, app->hEditBusyMemory,
"etcp.busy_memory_blocks / System Resources\r\nЗанятых блоков памяти (memory pool)");
"etcp.busy_memory_blocks / System Resources\r\nBusy memory blocks (memory pool)");
}
static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
struct etcpmon_app* app = NULL;

Loading…
Cancel
Save