Add RX/TX dup counters to ETCP monitor GUI
- Add IDC_EDIT_ETCP_RX_DUP and IDC_EDIT_ETCP_TX_DUP controls - Insert RX Dup / TX Dup fields after Retrans in ETCP Metrics group - Update tooltips, metrics display and clear functions
This commit is contained in:
1 parent
385aa066b2
commit
2e3eb0976a
2 files changed
+27
-2
No files matched your search
@@ -315,19 +315,32 @@ static void CreateControls(struct etcpmon_app* app) {
|
||||
WS_CHILD | WS_VISIBLE | ES_READONLY,
|
||||
mx + 285, my, 100, 20, hWnd, (HMENU)IDC_EDIT_ETCP_RETRANS, hInst, NULL);
|
||||
|
||||
my += 25;
|
||||
CreateWindowExA(0, "STATIC", "RX Dup:",
|
||||
WS_CHILD | WS_VISIBLE, mx, my, 80, 20, hWnd, (HMENU)IDC_STATIC, hInst, NULL);
|
||||
app->hEditEtcpRxDup = CreateWindowExA(WS_EX_CLIENTEDGE, "EDIT", "",
|
||||
WS_CHILD | WS_VISIBLE | ES_READONLY,
|
||||
mx + 85, my, 100, 20, hWnd, (HMENU)IDC_EDIT_ETCP_RX_DUP, hInst, NULL);
|
||||
|
||||
CreateWindowExA(0, "STATIC", "TX Dup:",
|
||||
WS_CHILD | WS_VISIBLE, mx + 200, my, 80, 20, hWnd, (HMENU)IDC_STATIC, hInst, NULL);
|
||||
app->hEditEtcpTxDup = CreateWindowExA(WS_EX_CLIENTEDGE, "EDIT", "",
|
||||
WS_CHILD | WS_VISIBLE | ES_READONLY,
|
||||
mx + 285, my, 100, 20, hWnd, (HMENU)IDC_EDIT_ETCP_TX_DUP, hInst, NULL);
|
||||
|
||||
my += 25;
|
||||
CreateWindowExA(0, "STATIC", "ACKs:",
|
||||
WS_CHILD | WS_VISIBLE, mx, my, 80, 20, hWnd, (HMENU)IDC_STATIC, hInst, NULL);
|
||||
app->hEditEtcpAcks = CreateWindowExA(WS_EX_CLIENTEDGE, "EDIT", "",
|
||||
WS_CHILD | WS_VISIBLE | ES_READONLY,
|
||||
mx + 85, my, 100, 20, hWnd, (HMENU)IDC_EDIT_ETCP_ACKS, hInst, NULL);
|
||||
|
||||
|
||||
CreateWindowExA(0, "STATIC", "Inflight:",
|
||||
WS_CHILD | WS_VISIBLE, mx + 200, my, 80, 20, hWnd, (HMENU)IDC_STATIC, hInst, NULL);
|
||||
app->hEditEtcpInflight = CreateWindowExA(WS_EX_CLIENTEDGE, "EDIT", "",
|
||||
WS_CHILD | WS_VISIBLE | ES_READONLY,
|
||||
mx + 285, my, 100, 20, hWnd, (HMENU)IDC_EDIT_ETCP_INFLIGHT, hInst, NULL);
|
||||
|
||||
|
||||
my += 25;
|
||||
CreateWindowExA(0, "STATIC", "Links:",
|
||||
WS_CHILD | WS_VISIBLE, mx, my, 80, 20, hWnd, (HMENU)IDC_STATIC, hInst, NULL);
|
||||
@@ -738,6 +751,10 @@ static void CreateTooltips(struct etcpmon_app* app)
|
||||
"etcp.bytes_sent_total / ETCP Connection\r\nTotal bytes sent since connection start");
|
||||
AddTooltip(app->hToolTip, app->hEditEtcpRetrans,
|
||||
"etcp.retrans_count / ETCP Connection\r\nNumber of retransmissions (resent packets)");
|
||||
AddTooltip(app->hToolTip, app->hEditEtcpRxDup,
|
||||
"etcp.rx_dup_count / ETCP Connection\r\nLocal received duplicate packets counter");
|
||||
AddTooltip(app->hToolTip, app->hEditEtcpTxDup,
|
||||
"etcp.tx_dup_count / ETCP Connection\r\nRemote duplicate packets counter (from ACK)");
|
||||
AddTooltip(app->hToolTip, app->hEditEtcpAcks,
|
||||
"etcp.ack_count / ETCP Connection\r\nNumber of received ACK packets (confirmations)");
|
||||
AddTooltip(app->hToolTip, app->hEditEtcpInflight,
|
||||
@@ -1226,6 +1243,8 @@ void etcpmon_gui_update_metrics(struct etcpmon_app* app,
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_JITTER, "%.1f ms", metrics->etcp.jitter/10.f);
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_BYTES_SENT, "%llu", (unsigned long long)metrics->etcp.bytes_sent_total);
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_RETRANS, "%u", metrics->etcp.retrans_count);
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_RX_DUP, "%u", metrics->etcp.rx_dup_count);
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_TX_DUP, "%u", metrics->etcp.tx_dup_count);
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_ACKS, "%u", metrics->etcp.ack_count);
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_INFLIGHT, "%u bytes", metrics->etcp.unacked_bytes);
|
||||
UpdateEditIfChanged(hMain, IDC_EDIT_ETCP_LINKS, "%u", metrics->etcp.links_count);
|
||||
@@ -1373,6 +1392,8 @@ void etcpmon_gui_clear_metrics(struct etcpmon_app* app) {
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_JITTER, "");
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_BYTES_SENT, "");
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_RETRANS, "");
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_RX_DUP, "");
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_TX_DUP, "");
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_ACKS, "");
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_INFLIGHT, "");
|
||||
SetDlgItemTextA(app->hWndMain, IDC_EDIT_ETCP_LINKS, "");
|
||||
|
||||
@@ -52,6 +52,8 @@ extern "C" {
|
||||
#define IDC_EDIT_ETCP_ACKS 207
|
||||
#define IDC_EDIT_ETCP_INFLIGHT 208
|
||||
#define IDC_EDIT_ETCP_LINKS 209
|
||||
#define IDC_EDIT_ETCP_RX_DUP 210
|
||||
#define IDC_EDIT_ETCP_TX_DUP 211
|
||||
|
||||
/* TUN Metrics control IDs */
|
||||
#define IDC_EDIT_TUN_READ_BYTES 300
|
||||
@@ -204,6 +206,8 @@ struct etcpmon_app {
|
||||
HWND hEditEtcpJitter;
|
||||
HWND hEditEtcpBytesSent;
|
||||
HWND hEditEtcpRetrans;
|
||||
HWND hEditEtcpRxDup;
|
||||
HWND hEditEtcpTxDup;
|
||||
HWND hEditEtcpAcks;
|
||||
HWND hEditEtcpInflight;
|
||||
HWND hEditEtcpLinks;
|
||||
|
||||
Reference in new issue
Block a user