Site Tools


software:freebsd:ng_utp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software:freebsd:ng_utp [2015/05/15 22:48]
root
software:freebsd:ng_utp [2022/02/05 04:19] (current)
root
Line 1: Line 1:
-====== uTP (udp torrent) netgraph node ======+====== FreeBSD uTP (udp torrent) netgraph node ====== 
 +Средство для работы с uTP проколом, заменяет [[software:freebsd:utp_ctrl_daemon|uTPControl - block uTP torrent proto]]\\ 
 + 
 +**Скачать**: [[http://www.netlab.linkpc.net/download/software/FreeBSD/ng_utp/|ng_utp]]\\ 
 +**Лицензия**: BSD\\ 
  
 ===== Возможности ===== ===== Возможности =====
-Нода может работать на: +Нода может работать на хуках
-  * L2Ethernet, есть поддержка вланов: все тегированные пакеты обрабатываются в нормальном режиме, дополнительных действий не требуется, ограничений на количество вланов нет; +  * **L2** - (ng_ether и др) Ethernet, есть поддержка вланов: все тегированные пакеты обрабатываются в нормальном режиме, дополнительных действий не требуется, ограничений на количество вланов нет; 
-  * L3IPv4, IPv6 (пока не реализовано).+  * **L3** - (ng_ipfw и др) IPv4, IPv6 (пока не реализовано).
 Одну ноду одновременно можно подключать к различным источниками трафика, как L2 так и L3 одновременно, ограничений нет. Одну ноду одновременно можно подключать к различным источниками трафика, как L2 так и L3 одновременно, ограничений нет.
  
Line 32: Line 37:
 NGM_UTP_SET_NODE_CFG("**setcfg**") - установить новые параметры конфигурации.\\ NGM_UTP_SET_NODE_CFG("**setcfg**") - установить новые параметры конфигурации.\\
  
-параметры:\\ +Параметры 
-**ip_conns_max** (uint32_t) - максимальное количество отслеживаемых L3-L4 соединений.\\ +  **ip_conns_max** (uint32_t) - максимальное количество отслеживаемых L3-L4 соединений. 
-**utp_conns_max** (uint32_t) - максимальное количество отслеживаемых uTP (L5) внутри L3-L4 соединений, должно быть больше ip_conns_max.\\ +  **utp_conns_max** (uint32_t) - максимальное количество отслеживаемых uTP (L5) внутри L3-L4 соединений, должно быть больше ip_conns_max. 
-**conn_ack_timeout** (uint32_t) - время (секунды) в течении которого должен придти ответный uTP пакет в соединении. Если пакет пришёл позднее - действия не применяются.\\ +  **conn_ack_timeout** (uint32_t) - время (секунды) в течении которого должен придти ответный uTP пакет в соединении. Если пакет пришёл позднее - действия не применяются. 
-**conn_idle_timeout** (uint32_t) - максимальное время (секунды) не активности после которого соединение удаляется из таблицы.\\+  **conn_idle_timeout** (uint32_t) - максимальное время (секунды) не активности после которого соединение удаляется из таблицы.
 <code>ngctl msg ipfw:1000 getcfg <code>ngctl msg ipfw:1000 getcfg
 Rec'd response "getcfg" (1) from "[1a]:": Rec'd response "getcfg" (1) from "[1a]:":
Line 44: Line 49:
 ==== Статус ноды ==== ==== Статус ноды ====
 NGM_UTP_GET_NODE_STATUS("**getstatus**") - возвращает текущее состояние ноды\\ NGM_UTP_GET_NODE_STATUS("**getstatus**") - возвращает текущее состояние ноды\\
-Все счётчики uint64_t.\\ +Все счётчики uint64_t. 
-**ipv4_conns** - количество IPv4+UDPv4 соединений в таблице\\ +  **ipv4_conns** - количество IPv4+UDPv4 соединений в таблице 
-**ipv6_conns** - количество IPv6+UDPv6 соединений в таблице\\ +  **ipv6_conns** - количество IPv6+UDPv6 соединений в таблице 
-**ip_conns_total** - общее количество IP+UDP соединений, сумма двух предыдущих\\ +  **ip_conns_total** - общее количество IP+UDP соединений, сумма двух предыдущих 
-**ip_conns_max** - максимально возможное количество IP+UDP соединений. Обычно чуть больше или равно тому что задано в конфиге.\\ +  **ip_conns_max** - максимально возможное количество IP+UDP соединений. Обычно чуть больше или равно тому что задано в конфиге. 
-**utpv0_conns** - количество utp v0 соединений в таблице\\ +  **utpv0_conns** - количество utp v0 соединений в таблице 
-**utpv1_conns** - количество utp v1 соединений в таблице\\ +  **utpv1_conns** - количество utp v1 соединений в таблице 
-**utp_conns_total** - общее количество utp соединений, сумма двух предыдущих\\ +  **utp_conns_total** - общее количество utp соединений, сумма двух предыдущих 
-**utp_conns_max** - максимально возможное количество utp соединений. Обычно чуть больше или равно тому что задано в конфиге.\\ +  **utp_conns_max** - максимально возможное количество utp соединений. Обычно чуть больше или равно тому что задано в конфиге. 
-**mem_ip_conns** - всего памяти использовано для хранения информации об IP-UDP соединениях\\ +  **mem_ip_conns** - всего памяти использовано для хранения информации об IP-UDP соединениях 
-**mem_utp_conns** - всего памяти использовано для хранения информации об uTP соединениях\\ +  **mem_utp_conns** - всего памяти использовано для хранения информации об uTP соединениях 
-**mem_total** - всего памяти, сумма двух предыдущих\\ +  **mem_total** - всего памяти, сумма двух предыдущих
 <code>ngctl msg ipfw:1000 getstatus <code>ngctl msg ipfw:1000 getstatus
 Rec'd response "getstatus" (3) from "[1a]:": Rec'd response "getstatus" (3) from "[1a]:":
Line 66: Line 70:
 NGM_UTP_CLR_NODE_STAT("**clrstat**") - очистить\\ NGM_UTP_CLR_NODE_STAT("**clrstat**") - очистить\\
 NGM_UTP_GETCLR_NODE_STAT("**getclrstat**") - получить и очистить\\ NGM_UTP_GETCLR_NODE_STAT("**getclrstat**") - получить и очистить\\
-Все счётчики uint64_t.\\ +Все счётчики uint64_t. 
-**ipv4_conns** - всего IPv4 соединений было добавлено в таблицу\\ +  **ipv4_conns** - всего IPv4 соединений было добавлено в таблицу 
-**ipv6_conns** - всего IPv6 соединений было добавлено в таблицу\\ +  **ipv6_conns** - всего IPv6 соединений было добавлено в таблицу 
-**ip_conns_total** - всего IP соединений, сумма двух предыдущих\\ +  **ip_conns_total** - всего IP соединений, сумма двух предыдущих 
-**utpv0_conns** - всего uTPv0 соединений было добавлено в таблицу\\ +  **utpv0_conns** - всего uTPv0 соединений было добавлено в таблицу 
-**utpv1_conns** - всего uTPv1 соединений было добавлено в таблицу\\ +  **utpv1_conns** - всего uTPv1 соединений было добавлено в таблицу 
-**utp_conns_total** - всего uTP соединений, сумма двух предыдущих\\ +  **utp_conns_total** - всего uTP соединений, сумма двух предыдущих 
-**memoryFailures** - ошибок выделения памяти\\ +  **memoryFailures** - ошибок выделения памяти
 <code>ngctl msg ipfw:1000 getstat <code>ngctl msg ipfw:1000 getstat
 Rec'd response "getstat" (4) from "[1a]:": Rec'd response "getstat" (4) from "[1a]:":
Line 107: Line 110:
 **l3_proto** (uint16_t) - тип фильтра: 0 в случае ethernet, 0x0800 - для IPv4, 0x86DD - для IPv6\\ **l3_proto** (uint16_t) - тип фильтра: 0 в случае ethernet, 0x0800 - для IPv4, 0x86DD - для IPv6\\
 **action** (uint16_t) - действие выполняемое фильтром:\\ **action** (uint16_t) - действие выполняемое фильтром:\\
-    **0** - UTP_FLT_ACCTION_PASS - ничего не делать с uTP, только выстраивать таблицу соединений\\ +  * **0** - UTP_FLT_ACCTION_PASS - ничего не делать с uTP, только выстраивать таблицу соединений 
-    **1** - UTP_FLT_ACCTION_PASS_MARK - маркировать все uTP пакеты относящиеся к uTP соединениям (см флаги UTP_FLT_FLAG_MARK_L2 и UTP_FLT_FLAG_MARK_L3)\\ +  **1** - UTP_FLT_ACCTION_PASS_MARK - маркировать все uTP пакеты относящиеся к uTP соединениям (см флаги UTP_FLT_FLAG_MARK_L2 и UTP_FLT_FLAG_MARK_L3) 
-    **2** - UTP_FLT_ACCTION_DROP - уничтожать все uTP пакеты относящиеся к uTP соединениям\\ +  **2** - UTP_FLT_ACCTION_DROP - уничтожать все uTP пакеты относящиеся к uTP соединениям 
-    **3** - UTP_FLT_ACCTION_SND_RST - заменять на uTP RST все uTP пакеты относящиеся к uTP соединениям\\+  **3** - UTP_FLT_ACCTION_SND_RST - заменять на uTP RST все uTP пакеты относящиеся к uTP соединениям
 **flags** (uint32_t) - флаги: **flags** (uint32_t) - флаги:
-    **0x00000001** - UTP_FLT_FLAG_FORCE_QUEUE_H0\\ +  * **0x00000001** - UTP_FLT_FLAG_FORCE_QUEUE_H0 
-    **0x00000002** - UTP_FLT_FLAG_FORCE_QUEUE_H1 - принудительно использовать очередь для хука в фильтре. Включение очередей может помочь равномерно распределять нагрузку между процессорами. +  **0x00000002** - UTP_FLT_FLAG_FORCE_QUEUE_H1 - принудительно использовать очередь для хука в фильтре. Включение очередей может помочь равномерно распределять нагрузку между процессорами. 
-    **0x00000004** - UTP_FLT_FLAG_NO_PASS - не пропускать транзитом, только сгенерированные RST будут отправлены\\ +  **0x00000004** - UTP_FLT_FLAG_NO_PASS - не пропускать транзитом, только сгенерированные RST будут отправлены 
-    **0x00000010** - UTP_FLT_FLAG_MARK_L2 - маркировать на L2 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - PCP хранится в label_l2, первые 3 бита.\\ +  **0x00000010** - UTP_FLT_FLAG_MARK_L2 - маркировать на L2 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - PCP хранится в label_l2, первые 3 бита. 
-    **0x00000020** - UTP_FLT_FLAG_MARK_L3 - маркировать на L3 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - DSCP хранится в label_l3, первые 6 бит.\\ +  **0x00000020** - UTP_FLT_FLAG_MARK_L3 - маркировать на L3 пакеты относящиеся к uTP соединениями. Действие фильтра должно быть UTP_FLT_ACCTION_PASS_MARK. Метка - DSCP хранится в label_l3, первые 6 бит. 
-    **0x00000100** - UTP_FLT_FLAG_CSUM_IP_CHK - проверять контрольную сумму IPv4 пакетов.\\ +  **0x00000100** - UTP_FLT_FLAG_CSUM_IP_CHK - проверять контрольную сумму IPv4 пакетов. 
-    **0x00000200** - UTP_FLT_FLAG_CSUM_UDP_CHK - проверять контрольную сумму UDP пакетов.\\ +  **0x00000200** - UTP_FLT_FLAG_CSUM_UDP_CHK - проверять контрольную сумму UDP пакетов. 
-    **0x00000400** - UTP_FLT_FLAG_CSUM_UDP_NO_CSUMM - не рассчитывать контрольную сумму для сгенерированных uTP RST пакетов.\\+  **0x00000400** - UTP_FLT_FLAG_CSUM_UDP_NO_CSUMM - не рассчитывать контрольную сумму для сгенерированных uTP RST пакетов.
 **label_l2** (uint8_t) - L2 - Priority Code Point метка пакета, первые 3 бита.\\ **label_l2** (uint8_t) - L2 - Priority Code Point метка пакета, первые 3 бита.\\
 **label_l3** (uint8_t) - L3 ip_tos/Traffic Class code (rfc2474) метка пакета, первые 6 бит.\\ **label_l3** (uint8_t) - L3 ip_tos/Traffic Class code (rfc2474) метка пакета, первые 6 бит.\\
Line 153: Line 156:
 NGM_UTP_CLR_FILTER_STATS ("**clrfilterstats**")\\ NGM_UTP_CLR_FILTER_STATS ("**clrfilterstats**")\\
 NGM_UTP_GETCLR_FILTER_STATS ("**getclrfilterstats**")\\ NGM_UTP_GETCLR_FILTER_STATS ("**getclrfilterstats**")\\
-Все счётчики uint64_t.\\ +Все счётчики uint64_t. 
-**Octets** - байт прошло через фильтр.\\ +  **Octets** - байт прошло через фильтр. 
-**Packets** - количество пакетов прошедших через фильтр.\\ +  **Packets** - количество пакетов прошедших через фильтр. 
-**IPv4_Packets** - количество IPv4 пакетов прошедших через фильтр.\\ +  **IPv4_Packets** - количество IPv4 пакетов прошедших через фильтр. 
-**IPv6_Packets** - количество IPv6 пакетов прошедших через фильтр.\\ +  **IPv6_Packets** - количество IPv6 пакетов прошедших через фильтр. 
-**MatchedPackets** - пакеты опознанные как uTP, к которым были применены действия.\\ +  **MatchedPackets** - пакеты опознанные как uTP, к которым были применены действия. 
-**BypassPackets** - пакетов прошедшие через фильтр без изменений.\\ +  **BypassPackets** - пакетов прошедшие через фильтр без изменений. 
-**DroppedPackets** - отброшенные пакеты.\\ +  **DroppedPackets** - отброшенные пакеты. 
-**recvErrors** - ошибки приёма: отсутствует заголовок, не удалось выделить память, неправильный заголовок, ошибочная контрольная сумма и тп.\\ +  **recvErrors** - ошибки приёма: отсутствует заголовок, не удалось выделить память, неправильный заголовок, ошибочная контрольная сумма и тп. 
-**xmitErrors** - ошибки отправки.\\+  **xmitErrors** - ошибки отправки.
 <code>ngctl msg ipfw:1000 getfilterstats '"in"' <code>ngctl msg ipfw:1000 getfilterstats '"in"'
 Rec'd response "getfilterstats" (9) from "[1a]:": Rec'd response "getfilterstats" (9) from "[1a]:":
 Args:   { Octets=5982246 Packets=38489 IPv4_Packets=38492 MatchedPackets=8760 BypassPackets=38978 recvErrors=8760 }</code> Args:   { Octets=5982246 Packets=38489 IPv4_Packets=38492 MatchedPackets=8760 BypassPackets=38978 recvErrors=8760 }</code>
 +
 +
 +==== Проверка работоспособности ====
 +см [[software:freebsd:utp_ctrl_daemon#Проверка работоспособности|uTPControl - block uTP torrent proto]]
  
  
  
-===== Исходники ===== +{{tag>software freebsd net netgraph torrent mysoft}}
-[[http://www.netlab.linkpc.net/download/software/FreeBSD/ng_utp/|http://www.netlab.linkpc.net/download/software/FreeBSD/ng_utp/]]+
software/freebsd/ng_utp.1431730132.txt.gz · Last modified: 2015/05/15 22:48 by root