Document of c-modernization-kit (porter) 1.0.0
Loading...
Searching...
No Matches
porter_const.h File Reference

通信ライブラリの定数ファイル。 More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define POTR_SEND_COMPRESS   0x0001U
 メッセージを圧縮して送信します。圧縮後のサイズが元のサイズ以上の場合は自動的に非圧縮で送信します。
#define POTR_SEND_BLOCKING   0x0002U
 ブロッキング送信を行います。0 を指定するとノンブロッキング送信を行います。
#define POTR_SUCCESS   0
 成功の戻り値を表す定数。
#define POTR_ERROR   -1
 失敗の戻り値を表す定数。
#define POTR_ERROR_DISCONNECTED   1
 TCP 全 path 切断中に potrSend() を呼んだ場合の戻り値。
#define POTR_FLAG_DATA   0x0001U
 データパケット (パックコンテナ) であることを示すフラグ。常に設定される。
#define POTR_FLAG_NACK   0x0002U
 再送要求パケットであることを示すフラグ。ack_num に要求通番を格納する。
#define POTR_FLAG_PING   0x0004U
 ヘルスチェック要求パケットであることを示すフラグ。ペイロードなし。
#define POTR_FLAG_REJECT   0x0008U
 再送不能通知パケットであることを示すフラグ。ack_num に再送不能な通番を格納する。
#define POTR_FLAG_FIN   0x0010U
 正常終了通知パケットであることを示すフラグ。送信者が potrCloseService 時に送出し、受信者は即座に DISCONNECTED へ遷移する。ペイロードなし。
#define POTR_FLAG_ENCRYPTED   0x0020U
 AES-256-GCM 認証タグが付与されていることを示す外側パケットフラグ。
POTR_FLAG_DATA と組み合わせる場合: [ヘッダー 32B][暗号文: packed_len B][GCM 認証タグ: 16B]。
単独で使用する場合 (PING/NACK/REJECT/FIN): ペイロードなし (平文 0B) の
GCM 認証タグのみ (16B) を格納する。[ヘッダー 32B][GCM 認証タグ: 16B]。
いずれの場合もヘッダー全体 (32B) が AAD として認証される。
Nonce (12B) = session_id (4B NBO) + flags (2B NBO) + seq_or_ack_num (4B NBO) + padding (2B 0x00)。
flags には本フラグを含んだ実際の送信フラグ値を使用する。
seq_or_ack_num は DATA/PING/FIN の場合 seq_num、NACK/REJECT の場合 ack_num。
#define POTR_FLAG_MORE_FRAG   0x0001U
 後続フラグメントが存在することを示すペイロードエレメントフラグ。メッセージが複数ペイロードエレメントに分割された場合、最終フラグメント以外に設定する。
#define POTR_FLAG_COMPRESSED   0x0002U
 ペイロードが圧縮されていることを示すペイロードエレメントフラグ。圧縮はメッセージ単位で行い、全フラグメントのペイロードエレメントに設定する。先頭 4 バイトが元サイズ (NBO)、続くデータが raw DEFLATE。
#define POTR_DEFAULT_WINDOW_SIZE   16U
 デフォルトウィンドウサイズ (パケット数)。
#define POTR_DEFAULT_MAX_PAYLOAD   1400U
 デフォルト最大ペイロード長 (バイト)。
#define POTR_DEFAULT_TTL   1U
 デフォルトマルチキャスト TTL。
#define POTR_DEFAULT_HEALTH_INTERVAL_MS   0U
 デフォルトヘルスチェック送信間隔 (ミリ秒)。0 = 無効。
#define POTR_DEFAULT_HEALTH_TIMEOUT_MS   0U
 デフォルトヘルスチェックタイムアウト (ミリ秒)。0 = 無効。
#define POTR_DEFAULT_PACK_WAIT_MS   0U
 デフォルトパッキング待ち時間 (ミリ秒)。0 = 即時送信。
#define POTR_DEFAULT_RECONNECT_INTERVAL_MS   5000U
 SENDER 自動再接続間隔のデフォルト (ミリ秒)。TCP 通信種別 (POTR_TYPE_TCP / POTR_TYPE_TCP_BIDIR) のみ有効。
#define POTR_DEFAULT_CONNECT_TIMEOUT_MS   10000U
 SENDER TCP 接続タイムアウトのデフォルト (ミリ秒)。0 = OS デフォルト。TCP 通信種別のみ有効。
#define POTR_CRYPTO_KEY_SIZE   32U
 AES-256-GCM 鍵サイズ (バイト)。設定ファイルの encrypt_key に 64 文字 hex で指定する。
#define POTR_CRYPTO_NONCE_SIZE   12U
 AES-256-GCM ノンスサイズ (バイト)。session_id (4B NBO) + flags (2B NBO) + seq_or_ack_num (4B NBO) + padding (2B 0x00) で構成する。
#define POTR_CRYPTO_TAG_SIZE   16U
 AES-256-GCM 認証タグサイズ (バイト)。暗号文の直後に付加する。
#define POTR_MAX_ADDR_LEN   64U
 アドレス文字列の最大長 (バイト、終端 NUL を含む)。
#define POTR_MAX_PAYLOAD   65507U
 ペイロードの最大長 (バイト)。UDP 最大ペイロード (65535 - IP20 - UDP8)。max_payload 設定値のバリデーション上限として使用する。
#define POTR_MAX_WINDOW_SIZE   256U
 ウィンドウサイズの最大値 (パケット数)。window_size 設定値のバリデーション上限として使用する。
#define POTR_MAX_SERVICES   64U
 config_list_service_ids() の初期バッファ容量。サービス数がこれを超えた場合は realloc で自動拡張する。
#define POTR_MAX_MESSAGE_SIZE   65535U
 1 回の potrSend で送信できる最大メッセージ長 (バイト) のデフォルト値。設定ファイルの max_message_size で変更可能。フラグメント化により max_payload を超えるメッセージも送受信できる。
#define POTR_SEND_QUEUE_DEPTH   1024U
 非同期送信キューの最大エントリ数のデフォルト値。設定ファイルの send_queue_depth で変更可能。メッセージがフラグメント化される場合、1 メッセージが複数エントリを占有する。
#define POTR_PAYLOAD_ELEM_HDR_SIZE   6U
 パックコンテナ内ペイロードエレメントのヘッダーサイズ (バイト)。flags (2): POTR_FLAG_MORE_FRAG / POTR_FLAG_COMPRESSED を格納 + payload_len (4): uint32_t (NBO)。通番は外側パケットで管理するためペイロードエレメントには含まない。
#define POTR_MAX_PATH   4U
 マルチパスの最大パス数。

Detailed Description

通信ライブラリの定数ファイル。

Author
c-modernization-kit sample team
Date
2026/03/04
Version
1.0.0

Definition in file porter_const.h.