Document of c-modernization-kit (porter) 1.0.0

Loading...
Searching...
No Matches
Macros
外側パケットフラグ (PotrPacket.flags)

## Macros
#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。

## Detailed Description

UDP で送受信される外側パケット (PotrPacket) の flags フィールドに設定するフラグです。
ペイロードエレメントのフラグ (ペイロードエレメントフラグ (パックコンテナ内エレメントヘッダー.flags)) とは独立したビット空間で管理します。

## Macro Definition Documentation

## ◆ POTR_FLAG_DATA

#define POTR_FLAG_DATA 0x0001U

`#include </__w/c-modernization-kit/c-modernization-kit/prod/porter/include/porter_const.h>`

データパケット (パックコンテナ) であることを示すフラグ。常に設定される。

Definition at line 41 of file porter_const.h.

Referenced by packet_build_packed(), recv_thread_func(), and tcp_recv_thread_func().

## ◆ POTR_FLAG_NACK

#define POTR_FLAG_NACK 0x0002U

`#include </__w/c-modernization-kit/c-modernization-kit/prod/porter/include/porter_const.h>`

再送要求パケットであることを示すフラグ。ack_num に要求通番を格納する。

Definition at line 42 of file porter_const.h.

Referenced by packet_build_nack(), and recv_thread_func().

## ◆ POTR_FLAG_PING

#define POTR_FLAG_PING 0x0004U

`#include </__w/c-modernization-kit/c-modernization-kit/prod/porter/include/porter_const.h>`

ヘルスチェック要求パケットであることを示すフラグ。ペイロードなし。

Definition at line 43 of file porter_const.h.

Referenced by drain_recv_window(), n1_drain_recv_window(), packet_build_ping(), recv_thread_func(), and tcp_recv_thread_func().

## ◆ POTR_FLAG_REJECT

#define POTR_FLAG_REJECT 0x0008U

`#include </__w/c-modernization-kit/c-modernization-kit/prod/porter/include/porter_const.h>`

再送不能通知パケットであることを示すフラグ。ack_num に再送不能な通番を格納する。

Definition at line 44 of file porter_const.h.

Referenced by packet_build_reject(), and recv_thread_func().

## ◆ POTR_FLAG_FIN

#define POTR_FLAG_FIN 0x0010U

`#include </__w/c-modernization-kit/c-modernization-kit/prod/porter/include/porter_const.h>`

正常終了通知パケットであることを示すフラグ。送信者が potrCloseService 時に送出し、受信者は即座に DISCONNECTED へ遷移する。ペイロードなし。

Definition at line 45 of file porter_const.h.

Referenced by packet_build_fin(), and recv_thread_func().

## ◆ POTR_FLAG_ENCRYPTED

#define POTR_FLAG_ENCRYPTED 0x0020U

`#include </__w/c-modernization-kit/c-modernization-kit/prod/porter/include/porter_const.h>`

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。

Definition at line 46 of file porter_const.h.

Referenced by 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().