This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
software:freebsd:ng_utp [2015/05/15 22:48] – root | software:freebsd:ng_utp [2015/05/21 19:12] – [Возможности] root | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== uTP (udp torrent) netgraph node ====== | + | ====== |
+ | Средство для работы с uTP проколом, | ||
+ | |||
+ | **Скачать**: | ||
+ | **Лицензия**: | ||
===== Возможности ===== | ===== Возможности ===== | ||
- | Нода может работать на: | + | Нода может работать на хуках: |
- | * L2: Ethernet, есть поддержка вланов: | + | |
- | * L3: IPv4, IPv6 (пока не реализовано). | + | |
Одну ноду одновременно можно подключать к различным источниками трафика, | Одну ноду одновременно можно подключать к различным источниками трафика, | ||
Line 32: | Line 37: | ||
NGM_UTP_SET_NODE_CFG(" | NGM_UTP_SET_NODE_CFG(" | ||
- | параметры:\\ | + | Параметры |
- | **ip_conns_max** (uint32_t) - максимальное количество отслеживаемых L3-L4 соединений.\\ | + | |
- | **utp_conns_max** (uint32_t) - максимальное количество отслеживаемых uTP (L5) внутри L3-L4 соединений, | + | |
- | **conn_ack_timeout** (uint32_t) - время (секунды) в течении которого должен придти ответный uTP пакет в соединении. Если пакет пришёл позднее - действия не применяются.\\ | + | |
- | **conn_idle_timeout** (uint32_t) - максимальное время (секунды) не активности после которого соединение удаляется из таблицы.\\ | + | |
< | < | ||
Rec'd response " | Rec'd response " | ||
Line 44: | Line 49: | ||
==== Статус ноды ==== | ==== Статус ноды ==== | ||
NGM_UTP_GET_NODE_STATUS(" | NGM_UTP_GET_NODE_STATUS(" | ||
- | Все счётчики uint64_t.\\ | + | Все счётчики uint64_t. |
- | **ipv4_conns** - количество IPv4+UDPv4 соединений в таблице\\ | + | |
- | **ipv6_conns** - количество IPv6+UDPv6 соединений в таблице\\ | + | |
- | **ip_conns_total** - общее количество IP+UDP соединений, | + | |
- | **ip_conns_max** - максимально возможное количество IP+UDP соединений. Обычно чуть больше или равно тому что задано в конфиге.\\ | + | |
- | **utpv0_conns** - количество utp v0 соединений в таблице\\ | + | |
- | **utpv1_conns** - количество utp v1 соединений в таблице\\ | + | |
- | **utp_conns_total** - общее количество utp соединений, | + | |
- | **utp_conns_max** - максимально возможное количество utp соединений. Обычно чуть больше или равно тому что задано в конфиге.\\ | + | |
- | **mem_ip_conns** - всего памяти использовано для хранения информации об IP-UDP соединениях\\ | + | |
- | **mem_utp_conns** - всего памяти использовано для хранения информации об uTP соединениях\\ | + | |
- | **mem_total** - всего памяти, | + | |
< | < | ||
Rec'd response " | Rec'd response " | ||
Line 66: | Line 70: | ||
NGM_UTP_CLR_NODE_STAT(" | NGM_UTP_CLR_NODE_STAT(" | ||
NGM_UTP_GETCLR_NODE_STAT(" | NGM_UTP_GETCLR_NODE_STAT(" | ||
- | Все счётчики uint64_t.\\ | + | Все счётчики uint64_t. |
- | **ipv4_conns** - всего IPv4 соединений было добавлено в таблицу\\ | + | |
- | **ipv6_conns** - всего IPv6 соединений было добавлено в таблицу\\ | + | |
- | **ip_conns_total** - всего IP соединений, | + | |
- | **utpv0_conns** - всего uTPv0 соединений было добавлено в таблицу\\ | + | |
- | **utpv1_conns** - всего uTPv1 соединений было добавлено в таблицу\\ | + | |
- | **utp_conns_total** - всего uTP соединений, | + | |
- | **memoryFailures** - ошибок выделения памяти\\ | + | |
< | < | ||
Rec'd response " | Rec'd response " | ||
Line 107: | Line 110: | ||
**l3_proto** (uint16_t) - тип фильтра: | **l3_proto** (uint16_t) - тип фильтра: | ||
**action** (uint16_t) - действие выполняемое фильтром: | **action** (uint16_t) - действие выполняемое фильтром: | ||
- | | + | * **0** - UTP_FLT_ACCTION_PASS - ничего не делать с uTP, только выстраивать таблицу соединений |
- | **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 соединениям\\ | + | |
- | **3** - UTP_FLT_ACCTION_SND_RST - заменять на uTP RST все uTP пакеты относящиеся к uTP соединениям\\ | + | |
**flags** (uint32_t) - флаги: | **flags** (uint32_t) - флаги: | ||
- | | + | * **0x00000001** - UTP_FLT_FLAG_FORCE_QUEUE_H0 |
- | **0x00000002** - UTP_FLT_FLAG_FORCE_QUEUE_H1 - принудительно использовать очередь для хука в фильтре. Включение очередей может помочь равномерно распределять нагрузку между процессорами. | + | |
- | **0x00000004** - UTP_FLT_FLAG_NO_PASS - не пропускать транзитом, | + | |
- | **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 бит.\\ | + | |
- | **0x00000100** - UTP_FLT_FLAG_CSUM_IP_CHK - проверять контрольную сумму IPv4 пакетов.\\ | + | |
- | **0x00000200** - UTP_FLT_FLAG_CSUM_UDP_CHK - проверять контрольную сумму UDP пакетов.\\ | + | |
- | **0x00000400** - UTP_FLT_FLAG_CSUM_UDP_NO_CSUMM - не рассчитывать контрольную сумму для сгенерированных uTP RST пакетов.\\ | + | |
**label_l2** (uint8_t) - L2 - Priority Code Point метка пакета, | **label_l2** (uint8_t) - L2 - Priority Code Point метка пакета, | ||
**label_l3** (uint8_t) - L3 ip_tos/ | **label_l3** (uint8_t) - L3 ip_tos/ | ||
Line 153: | Line 156: | ||
NGM_UTP_CLR_FILTER_STATS (" | NGM_UTP_CLR_FILTER_STATS (" | ||
NGM_UTP_GETCLR_FILTER_STATS (" | NGM_UTP_GETCLR_FILTER_STATS (" | ||
- | Все счётчики uint64_t.\\ | + | Все счётчики uint64_t. |
- | **Octets** - байт прошло через фильтр.\\ | + | |
- | **Packets** - количество пакетов прошедших через фильтр.\\ | + | |
- | **IPv4_Packets** - количество IPv4 пакетов прошедших через фильтр.\\ | + | |
- | **IPv6_Packets** - количество IPv6 пакетов прошедших через фильтр.\\ | + | |
- | **MatchedPackets** - пакеты опознанные как uTP, к которым были применены действия.\\ | + | |
- | **BypassPackets** - пакетов прошедшие через фильтр без изменений.\\ | + | |
- | **DroppedPackets** - отброшенные пакеты.\\ | + | |
- | **recvErrors** - ошибки приёма: | + | |
- | **xmitErrors** - ошибки отправки.\\ | + | |
< | < | ||
Rec'd response " | Rec'd response " | ||
Line 168: | Line 171: | ||
- | + | ==== Проверка работоспособности ==== | |
- | ===== Исходники ===== | + | см [[ru:software:freebsd: |
- | [[http:// | + |