Separate stream delivery from path ACKs and acknowledge retained DATA

This commit is contained in:
evgeny committed 2026-10-23 10:23:14 +02:00
1 parent abe3d4bc89
commit cc510fc74c
3 files changed
+259 -587

No files matched your search

+254 -587
View File
File diff suppressed because it is too large. Load diff
+1
View File
@@ -72,6 +72,7 @@ struct ETCP_DGRAM {// пакет (незашифрованный)
uint16_t payload_len; // локальные метаданные request_pkt: DATA-байты; 0 — только ACK/control/FILLER, вне DATA-pacing
struct ETCP_TX_ATTEMPT* attempt; // локальный резерв окна; complete снимает/фиксирует его после send
uint8_t burst_packet; // Пакет создан измерительной серией; не зависит от последующей смены burst_active
uint8_t ack_request; // Пакет содержит запрос границы окна; сбрасывается только после успешного send
uint16_t timestamp;// timestamp отправляющего узла при отправке пакета
uint8_t flag_up:1;// bit0 = up/down (recv_keepalive)
uint8_t data[];// данные пакета (без timestamp)
+4
View File
@@ -156,6 +156,10 @@ struct ETCP_TX_ATTEMPT* etcp_tx_prepare(struct ETCP_LINK* link, struct INFLIGHT_
}
void etcp_tx_complete(struct ETCP_DGRAM* dgram, int success) {
if (success) {
dgram->link->etcp->ack_till_pending = 0;
if (dgram->ack_request) dgram->link->etcp->ack_request_pending = 0;
}
struct ETCP_TX_ATTEMPT* attempt = dgram->attempt;
if (!attempt) return;
dgram->attempt = NULL;