Skip to content

Module Design

taihei edited this page Feb 15, 2026 · 1 revision

Module Design

src/ モジュール構成

モジュール パス 責務
app src/app/ エントリーポイント、イベントループ、共通ユーティリティ
auth_module src/auth_module/ 加入者認証 (Milenage, KDF, 設定読み込み)
context src/context/ グローバルコンテキスト (s1n2_context_t)
transport src/transport/ SCTP / UDP ソケット管理
uplane src/uplane/ GTP-U 処理 (ヘッダ, トンネル, Echo, 転送)
cplane/nas src/cplane/nas/ NAS 4G↔5G 変換 (下記サブモジュール)
cplane/s1ap_ngap src/cplane/s1ap_ngap/ S1AP↔NGAP メッセージ変換 (下記サブモジュール)
utils src/utils/ 汎用ヘルパー

NAS サブモジュール (src/cplane/nas/)

サブモジュール ファイル数 対応する 3GPP 手続き
auth/ 4 Authentication Request/Response/Failure
registration/ 5 Attach Request/Complete, Registration Accept/Reject
security/ 6 Security Mode Command/Complete, 鍵導出, 暗号化
pdu_session/ 3 PDU Session Establishment, UL NAS Transport
tau/ 3 TAU Request/Accept
shared/ 4 APN, PLMN, SUCI, ログ (共通ユーティリティ)
ルーター 2 nas_4g_to_5g.c, nas_5g_to_4g.c (方向別ディスパッチ)

S1AP/NGAP サブモジュール (src/cplane/s1ap_ngap/)

サブモジュール ファイル数 Wireshark メッセージ種別
s1_setup/ 3 S1SetupRequest / S1SetupResponse
ngap_setup/ 1 NGSetupRequest
initial_ue_message/ 3 InitialUEMessage
nas_transport/ 5 DownlinkNASTransport / UplinkNASTransport
initial_context_setup/ 5 InitialContextSetupRequest/Response
error_handling/ 4 ErrorIndication, NASNonDelivery, UEContextRelease
ルーター 2 dispatcher_s1ap.c, dispatcher_ngap.c

ヘッダー設計

ディレクトリ 役割
Public API include/ 外部公開インタフェース (7 ヘッダー)
Cross-module include/internal/ プロジェクト内部 API (7 ヘッダー)
Module-private src/**/*.h 各モジュール内の実装詳細 (20 ヘッダー)

Clone this wiki locally