docs: align endpoint and STUN contracts with the implemented detector
This commit is contained in:
1 parent
d5715a1f4f
commit
308eb07742
3 files changed
+5
-4
No files matched your search
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user