Browse Source

Record unique acknowledged packets at the instance transport boundary

master
evgeny 6 days ago
parent
commit
b6652c7c7f
  1. 2
      src/Makefile.am
  2. 1
      src/transport_layer/etcp.c
  3. 2
      src/utun_instance.h

2
src/Makefile.am

@ -64,6 +64,8 @@ utun_CORE_SOURCES = \
tun_freebsd.c \
tun_windows.c \
transport_layer/etcp.c \
transport_layer/etcp_tx_stats.c \
transport_layer/etcp_tx_stats.h \
transport_layer/etcp_padding.c \
transport_layer/etcp_padding.h \
transport_layer/etcp_session.c \

1
src/transport_layer/etcp.c

@ -1549,6 +1549,7 @@ void etcp_ack_recv(struct ETCP_CONN* etcp, uint32_t seq, uint16_t ts, uint16_t d
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, "packet seq=%u not found in wait_ack queue", seq);
return;
}
etcp_tx_record_ack(&etcp->instance->tx_history, get_time_us(), acked_pkt->ll.len);
// === subtract inflight from the LAST link the packet was sent on ===
if (acked_pkt->last_link && acked_pkt->last_link->bbr) {

2
src/utun_instance.h

@ -20,6 +20,7 @@ extern "C" {
#include "etcp_padding.h"
#include "reality_io.h"
#include "etcp_api.h"
#include "transport_layer/etcp_tx_stats.h"
#include "config_parser.h"
#include "stcp_link.h"
#include "firewall.h"
@ -122,6 +123,7 @@ struct peer_sleep_cbk_entry {
// Состояние одного узла. Вложенные модули освобождаются через их lifecycle API.
struct UTUN_INSTANCE {
struct etcp_tx_history tx_history;
struct reality_owner reality_owner;
uint8_t core_started, utun_started, chat_started; // успешный запуск ядра / UTUN / чата

Loading…
Cancel
Save