etcp: wire-MTU кап 2048→1500 (согласовано с TUN_MAX_PACKET_SIZE), enc_buf привязан к MTU; тест multilink: per-link проверка трафика с ретраем через keepalive-тики
This commit is contained in:
1 parent
13e2697f80
commit
56d0928632
3 files changed
+21
-11
No files matched your search
@@ -1255,7 +1255,7 @@ int etcp_encrypt_send(struct ETCP_DGRAM* dgram) {
|
||||
int udp_ov = (dgram->link->remote_addr.ss_family == AF_INET6) ? IP_UDP_OVERHEAD_V6 : IP_UDP_OVERHEAD_V4;
|
||||
int wire_ov = udp_ov + SC_ENCRYPT_OVERHEAD;
|
||||
if (len<0 || len + (int)dgram->noencrypt_len > (int)(dgram->link->mtu - wire_ov)) { dgram->link->send_errors++; errcode=1; goto es_err; }
|
||||
uint8_t enc_buf[PACKET_DATA_MAX_MTU];// должно вмещать mtu - udp_ov (до 2020 байт)
|
||||
uint8_t enc_buf[PACKET_DATA_MAX_MTU];// макс запись = data_len + 32 <= mtu - wire_ov + 32 = 1468
|
||||
size_t enc_buf_len=0;
|
||||
dgram->timestamp=get_current_timestamp();
|
||||
|
||||
|
||||
@@ -28,7 +28,9 @@ extern "C" {
|
||||
#define INFLIGHT_LIM_MAX 1048576 // 1M
|
||||
|
||||
#define PACKET_DATA_SIZE 2048
|
||||
#define PACKET_DATA_MAX_MTU 2048
|
||||
// Wire-MTU кап: пакет на проводе не должен превышать 1500 (согласовано с TUN_MAX_PACKET_SIZE).
|
||||
// PACKET_DATA_SIZE (2048) — это внутренний буфер аллокации/приёма, а не wire-MTU.
|
||||
#define PACKET_DATA_MAX_MTU 1500
|
||||
#define ETCP_MAX_PAYLOAD_SIZE (PACKET_DATA_SIZE - ETCP_ACK_BASE_SIZE - 5) /* 2035 */
|
||||
#define ETCP_RFC791_MIN_MTU 576
|
||||
|
||||
|
||||
Reference in new issue
Block a user