|
Document of c-modernization-kit (porter) 1.0.0
|
サービス定義。 More...
#include <porter_type.h>
Data Fields | |
| int64_t | service_id |
| サービス ID。 | |
| PotrType | type |
| 通信種別。 | |
| uint16_t | dst_port |
| 宛先ポート番号。サービスの識別子。受信者の bind ポート / 送信者の送信先ポート。(全通信種別で必須) | |
| uint16_t | src_port |
| 送信者の送信元 bind ポート番号。0 = OS 自動選定。(全通信種別で省略可) | |
| uint8_t | ttl |
| マルチキャスト TTL。(multicast のみ) | |
| uint8_t | _pad [3] |
| パディング (pack_wait_ms を 4 バイト境界に揃える)。 | |
| uint32_t | pack_wait_ms |
| パッキング待ち時間 (ミリ秒)。最初の送信要求からこの時間だけ待ち合わせ、複数メッセージを 1 パケットにまとめる。0 = 即時送信 (パッキング待ちなし)。パケット容量が満杯になった場合はタイマーを無視して即時送信する。 | |
| char | multicast_group [POTR_MAX_ADDR_LEN] |
| マルチキャストグループアドレス。(multicast のみ) | |
| char | broadcast_addr [POTR_MAX_ADDR_LEN] |
| ブロードキャスト宛先アドレス。省略時は 255.255.255.255。(broadcast のみ) | |
| char | src_addr [POTR_MAX_PATH][POTR_MAX_ADDR_LEN] |
| 送信元アドレス [0]=src_addr1 〜 [3]=src_addr4。送信者は bind / 送信インターフェース、受信者は送信元フィルタ。(全通信種別で必須) | |
| char | dst_addr [POTR_MAX_PATH][POTR_MAX_ADDR_LEN] |
| 宛先アドレス [0]=dst_addr1 〜 [3]=dst_addr4。送信者は送信先、受信者は bind アドレス。(unicast のみ) | |
| uint8_t | encrypt_key [POTR_CRYPTO_KEY_SIZE] |
| AES-256-GCM 事前共有鍵 (32 バイト)。encrypt_enabled が 0 の場合は未使用。 | |
| int | encrypt_enabled |
| 非 0 のとき暗号化有効。設定ファイルに有効な encrypt_key が存在するときに 1 に設定される。 | |
| uint32_t | max_peers |
| N:1 モード時の最大同時接続ピア数。省略時: 1024。1:1 モードでは無視される。 | |
| uint32_t | health_interval_ms |
| グローバルの udp/tcp_health_interval_ms をサービス単位で上書きする。0 = グローバル値を使用。 | |
| uint32_t | health_timeout_ms |
| グローバルの udp/tcp_health_timeout_ms をサービス単位で上書きする。0 = グローバル値を使用。 | |
| uint32_t | reconnect_interval_ms |
| SENDER 自動再接続間隔 (ms)。0 = 再接続なし。デフォルト: POTR_DEFAULT_RECONNECT_INTERVAL_MS。 | |
| uint32_t | connect_timeout_ms |
| SENDER TCP 接続タイムアウト (ms)。0 = OS デフォルト。デフォルト: POTR_DEFAULT_CONNECT_TIMEOUT_MS。 | |
サービス定義。
設定ファイルの [service.N] セクションから読み込まれるサービス設定です。
通信種別によって有効なフィールドが異なります。
Definition at line 129 of file porter_type.h.
| int64_t PotrServiceDef::service_id |
サービス ID。
Definition at line 131 of file porter_type.h.
Referenced by apply_service_kv(), check_and_update_session(), check_health_timeout(), check_reorder_timeout(), comm_recv_thread_start(), config_load_service(), connect_thread_func(), drain_recv_window(), flush_packed(), flush_packed_peer(), health_thread_func(), n1_check_health_timeout(), n1_notify_health_alive(), n1_process_outer_pkt(), n1_recv_deliver(), n1_send_nack(), n1_send_ping_reply(), n1_send_reject(), notify_connected_tcp(), notify_health_alive(), peer_create(), peer_free(), peer_path_clear(), peer_send_fin(), peer_table_destroy(), peer_table_init(), potr_connect_thread_start(), potr_connect_thread_stop(), potr_health_thread_start(), potr_tcp_health_thread_start(), potrCloseService(), potrDisconnectPeer(), potrOpenService(), potrSend(), process_outer_pkt(), raw_session_disconnect(), receiver_accept_loop(), recv_deliver(), recv_thread_func(), reset_all_paths_disconnected(), send_fin(), send_nack(), send_ping_reply(), send_reject(), sender_connect_loop(), start_connected_threads(), tcp_connect_with_timeout(), tcp_health_thread_func(), tcp_recv_thread_func(), tcp_recv_thread_start(), and tcp_send_ping_reply().
| PotrType PotrServiceDef::type |
通信種別。
Definition at line 132 of file porter_type.h.
Referenced by apply_service_kv(), check_health_timeout(), check_reorder_timeout(), check_src_addr(), config_load_service(), connect_thread_func(), flush_packed(), potrCloseService(), potrGetServiceType(), potrOpenService(), potrSend(), process_outer_pkt(), receiver_accept_loop(), recv_thread_func(), reorder_gap_ready(), send_nack(), start_connected_threads(), stop_connected_threads(), tcp_recv_thread_func(), and update_path_recv().
| uint16_t PotrServiceDef::dst_port |
宛先ポート番号。サービスの識別子。受信者の bind ポート / 送信者の送信先ポート。(全通信種別で必須)
Definition at line 135 of file porter_type.h.
Referenced by apply_service_kv(), config_load_service(), open_socket_multicast(), open_socket_tcp_receiver(), potrOpenService(), sender_connect_loop(), and tcp_connect_with_timeout().
| uint16_t PotrServiceDef::src_port |
送信者の送信元 bind ポート番号。0 = OS 自動選定。(全通信種別で省略可)
Definition at line 138 of file porter_type.h.
Referenced by apply_service_kv(), check_health_timeout(), check_src_addr(), config_load_service(), open_socket_multicast(), potrOpenService(), receiver_accept_loop(), send_nack(), and tcp_connect_with_timeout().
| uint8_t PotrServiceDef::ttl |
マルチキャスト TTL。(multicast のみ)
Definition at line 141 of file porter_type.h.
Referenced by apply_service_kv(), and config_load_service().
| uint8_t PotrServiceDef::_pad[3] |
パディング (pack_wait_ms を 4 バイト境界に揃える)。
Definition at line 142 of file porter_type.h.
| uint32_t PotrServiceDef::pack_wait_ms |
パッキング待ち時間 (ミリ秒)。最初の送信要求からこの時間だけ待ち合わせ、複数メッセージを 1 パケットにまとめる。0 = 即時送信 (パッキング待ちなし)。パケット容量が満杯になった場合はタイマーを無視して即時送信する。
Definition at line 143 of file porter_type.h.
Referenced by apply_service_kv(), config_load_service(), and send_thread_func().
| char PotrServiceDef::multicast_group[POTR_MAX_ADDR_LEN] |
マルチキャストグループアドレス。(multicast のみ)
Definition at line 145 of file porter_type.h.
Referenced by apply_service_kv(), open_socket_multicast(), potrCloseService(), and potrOpenService().
| char PotrServiceDef::broadcast_addr[POTR_MAX_ADDR_LEN] |
ブロードキャスト宛先アドレス。省略時は 255.255.255.255。(broadcast のみ)
Definition at line 146 of file porter_type.h.
Referenced by apply_service_kv(), and potrOpenService().
| char PotrServiceDef::src_addr[POTR_MAX_PATH][POTR_MAX_ADDR_LEN] |
送信元アドレス [0]=src_addr1 〜 [3]=src_addr4。送信者は bind / 送信インターフェース、受信者は送信元フィルタ。(全通信種別で必須)
Definition at line 149 of file porter_type.h.
Referenced by apply_service_kv(), check_health_timeout(), check_src_addr(), config_load_service(), open_socket_tcp_receiver(), open_socket_tcp_sender(), potrOpenService(), receiver_accept_loop(), tcp_connect_with_timeout(), and update_path_recv().
| char PotrServiceDef::dst_addr[POTR_MAX_PATH][POTR_MAX_ADDR_LEN] |
宛先アドレス [0]=dst_addr1 〜 [3]=dst_addr4。送信者は送信先、受信者は bind アドレス。(unicast のみ)
Definition at line 150 of file porter_type.h.
Referenced by apply_service_kv(), check_src_addr(), config_load_service(), open_socket_tcp_receiver(), open_socket_tcp_sender(), potrOpenService(), and sender_connect_loop().
| uint8_t PotrServiceDef::encrypt_key[POTR_CRYPTO_KEY_SIZE] |
AES-256-GCM 事前共有鍵 (32 バイト)。encrypt_enabled が 0 の場合は未使用。
Definition at line 153 of file porter_type.h.
Referenced by apply_service_kv(), flush_packed(), flush_packed_peer(), health_thread_func(), n1_send_nack(), n1_send_ping_reply(), n1_send_reject(), peer_send_fin(), recv_thread_func(), send_fin(), send_nack(), send_ping_reply(), send_reject(), tcp_health_thread_func(), tcp_recv_thread_func(), and tcp_send_ping_reply().
| int PotrServiceDef::encrypt_enabled |
非 0 のとき暗号化有効。設定ファイルに有効な encrypt_key が存在するときに 1 に設定される。
Definition at line 154 of file porter_type.h.
Referenced by apply_service_kv(), flush_packed(), flush_packed_peer(), health_thread_func(), n1_send_nack(), n1_send_ping_reply(), n1_send_reject(), peer_send_fin(), potrOpenService(), send_fin(), send_nack(), send_packed_peer_mode(), send_ping_reply(), send_reject(), send_thread_func(), send_to_peer(), tcp_health_thread_func(), and tcp_send_ping_reply().
| uint32_t PotrServiceDef::max_peers |
N:1 モード時の最大同時接続ピア数。省略時: 1024。1:1 モードでは無視される。
Definition at line 157 of file porter_type.h.
Referenced by apply_service_kv(), config_load_service(), and potrOpenService().
| uint32_t PotrServiceDef::health_interval_ms |
グローバルの udp/tcp_health_interval_ms をサービス単位で上書きする。0 = グローバル値を使用。
Definition at line 160 of file porter_type.h.
Referenced by apply_service_kv(), config_load_service(), and potrOpenService().
| uint32_t PotrServiceDef::health_timeout_ms |
グローバルの udp/tcp_health_timeout_ms をサービス単位で上書きする。0 = グローバル値を使用。
Definition at line 161 of file porter_type.h.
Referenced by apply_service_kv(), config_load_service(), and potrOpenService().
| uint32_t PotrServiceDef::reconnect_interval_ms |
SENDER 自動再接続間隔 (ms)。0 = 再接続なし。デフォルト: POTR_DEFAULT_RECONNECT_INTERVAL_MS。
Definition at line 164 of file porter_type.h.
Referenced by apply_service_kv(), config_load_service(), and sender_connect_loop().
| uint32_t PotrServiceDef::connect_timeout_ms |
SENDER TCP 接続タイムアウト (ms)。0 = OS デフォルト。デフォルト: POTR_DEFAULT_CONNECT_TIMEOUT_MS。
Definition at line 165 of file porter_type.h.
Referenced by apply_service_kv(), config_load_service(), and tcp_connect_with_timeout().