docs: align endpoint and STUN contracts with the implemented detector

This commit is contained in:
evgeny committed 2026-10-17 16:32:08 +02:00
1 parent d5715a1f4f
commit 308eb07742
3 files changed
+5 -4

No files matched your search

+1 -1
View File
@@ -24,7 +24,7 @@ enum address_profile_source { ADDRESS_SOURCE_NONE, ADDRESS_SOURCE_ETCP, ADDRESS_
struct address_profile {
uint8_t mapping;
uint8_t inbound;
uint8_t source; /* ETCP — этот endpoint; STUN — резервная оценка его IP/netif. */
uint8_t source; /* Источник фактов; native-детектор публикует только измерение этого endpoint (ETCP). */
};
static inline const char *address_mapping_name(uint8_t value) {
+1 -1
View File
@@ -43,7 +43,7 @@ void nat_detection_topology_changed(struct NAT_DETECTION *detector);
void nat_detection_cancel_group(struct NAT_DETECTION *detector, uint64_t group_id);
/* Короткий приоритет начального измерения перед фоновыми UDP-пробами достижимости; задержка в timebase. */
uint64_t nat_detection_probe_delay(struct NAT_DETECTION *detector);
/* Холодные измерения сериализуются по node_id; делегированные пробы более раннего owner пропускаются. */
/* Фоновый UDP-ответ к незнакомому IP может откладываться; односторонние NAT-пробы принимаются независимо. */
int nat_detection_ping_allowed(struct NAT_DETECTION *detector, struct ETCP_SOCKET *socket,
const uint8_t peer_key[32], const struct sockaddr_storage *source,
uint8_t flags, const uint8_t *tag, size_t length);
+3 -2
View File
@@ -32,8 +32,9 @@ python3 tests/stream_netns/run.py --stun-only --output /tmp/stun-interface-netns
По очереди проверяются n03 (cone), n14 (restricted) и n05 (dependent mapping).
Два рабочих порта одного IP/netif используют одну STUN-пробу. Сначала у владельца
нет ETCP-пиров, затем появляется один наблюдатель, затем независимый помощник.
Проверяются source=STUN -> source=ETCP, приоритет рабочего измерения и отсутствие
тестового внешнего порта в рекламе рабочего сокета. JOIN/стриминг в этом режиме не запускаются.
Проверяются source=NONE до измерения рабочего порта и source=ETCP после него;
STUN остаётся отдельной диагностикой. Тестовый внешний порт не попадает в рекламу
рабочего сокета. JOIN/стриминг в этом режиме не запускаются.
Случайные тестовые порты получают тот же класс NAT; правила для рабочего 32000 сохраняются.
Для испытания случайных портов активен один клиент каждого выбранного NAT-шлюза.
Расширенная классификация restricted/dependent включает реальные таймауты CHANGE,