-
Notifications
You must be signed in to change notification settings - Fork 0
Support Status
本ページでは s1n2-Gateway の各プロトコル・機能・ハードウェア/ソフトウェアの対応状況を一覧する。
凡例: ✅ 対応済み /
| 方向 | S1AP メッセージ | NGAP メッセージ | 説明 | 状態 |
|---|---|---|---|---|
| eNB → AMF | S1SetupRequest | NGSetupRequest | 接続確立要求 | ✅ |
| AMF → eNB | S1SetupResponse | NGSetupResponse | 接続確立応答 | |
| eNB → AMF | InitialUEMessage | InitialUEMessage | 初期 UE メッセージ | ✅ |
| eNB → AMF | UplinkNASTransport | UplinkNASTransport | NAS 転送 (UL) | ✅ |
| AMF → eNB | DownlinkNASTransport | DownlinkNASTransport | NAS 転送 (DL) | ✅ |
| AMF → eNB | InitialContextSetupRequest | InitialContextSetupRequest | コンテキスト確立要求 | |
| eNB → AMF | InitialContextSetupResponse | InitialContextSetupResponse | コンテキスト確立応答 | ✅ |
| eNB → AMF | InitialContextSetupFailure | InitialContextSetupFailure | コンテキスト確立失敗 | |
| eNB → AMF | UEContextReleaseRequest | UEContextReleaseRequest | UE コンテキスト解放要求 | ✅ |
| eNB → AMF | UEContextReleaseComplete | UEContextReleaseComplete | UE コンテキスト解放完了 | |
| AMF → eNB | UEContextReleaseCommand | UEContextReleaseCommand | UE コンテキスト解放指示 | ❌ |
| eNB → AMF | ErrorIndication | ErrorIndication | エラー通知 (UL) | ✅ |
| eNB → AMF | NASNonDeliveryIndication | NASNonDeliveryIndication | NAS 配送失敗通知 | ✅ |
| AMF → eNB | Paging | Paging | ページング | ❌ |
| eNB → AMF | Handover Required | HandoverRequired | ハンドオーバ要求 | ❌ |
| AMF → eNB | Handover Request | HandoverRequest | ハンドオーバ指示 | ❌ |
| eNB → AMF | Handover Notify | HandoverNotify | ハンドオーバ完了通知 | ❌ |
| eNB → AMF | PathSwitchRequest | PathSwitchRequest | パス切替要求 | ❌ |
| AMF → eNB | PathSwitchRequestAcknowledge | PathSwitchRequestAcknowledge | パス切替応答 | ❌ |
| AMF → eNB | E-RABSetupRequest | PDUSessionResourceSetupRequest | ベアラ/セッション確立 | ❌ |
| eNB → AMF | E-RABSetupResponse | PDUSessionResourceSetupResponse | ベアラ/セッション確立応答 | ❌ |
| AMF → eNB | E-RABModifyRequest | PDUSessionResourceModifyRequest | ベアラ/セッション変更 | ❌ |
| eNB → AMF | E-RABModifyResponse | PDUSessionResourceModifyResponse | ベアラ/セッション変更応答 | ❌ |
| AMF → eNB | E-RABReleaseCommand | PDUSessionResourceReleaseCommand | ベアラ/セッション解放 | ❌ |
| eNB → AMF | E-RABReleaseResponse | PDUSessionResourceReleaseResponse | ベアラ/セッション解放応答 | ❌ |
| eNB → AMF | UEContextModificationResponse | UEContextModificationResponse | UE コンテキスト変更応答 | ❌ |
| AMF → eNB | UEContextModificationRequest | UEContextModificationRequest | UE コンテキスト変更要求 | ❌ |
| eNB → AMF | Reset | NGReset | インタフェースリセット (UL) | ❌ |
| AMF → eNB | Reset | NGReset | インタフェースリセット (DL) | ❌ |
| eNB → AMF | OverloadStart / Stop | OverloadStart / Stop | 輻輳制御 | ❌ |
| eNB → AMF | UECapabilityInfoIndication | UERadioCapabilityInfoIndication | UE 能力情報通知 | ❌ |
| eNB → AMF | eNBConfigurationUpdate | RANConfigurationUpdate | RAN 構成更新 | ❌ |
| AMF → eNB | MMEConfigurationUpdate | AMFConfigurationUpdate | AMF 構成更新 | ❌ |
| AMF → eNB | WriteReplaceWarningRequest | WriteReplaceWarningRequest | 緊急警報 (PWS) | ❌ |
| AMF → eNB | LocationReportingControl | LocationReportingControl | 位置情報レポート制御 | ❌ |
| eNB → AMF | LocationReport | LocationReport | 位置情報レポート | ❌ |
| AMF → eNB | TraceStart / DeactivateTrace | TraceStart / DeactivateTrace | トレース制御 | ❌ |
(※1) NGSetupResponse: NGAP のデコードと eNB への S1SetupResponse 送信は行われるが、S1AP メッセージはハードコードテンプレート(41 バイト固定バイナリ)であり、AMF Name・ServedGUAMIList・RelativeAMFCapacity 等の NGAP IE は S1AP 側に反映されない。
(※2) InitialContextSetupRequest: NGAP フルデコード → S1AP ASN.1 フルビルド → eNB 送信は実装済み。ただし以下のパラメータが NGAP の値を参照せず固定値で構築される: UEAggregateMaximumBitrate (100 Mbps 固定), QCI (9 固定), UE Security Capabilities (0xE000 固定), E-RAB 数 (常に 1 本)。
(※3) InitialContextSetupFailure: S1AP メッセージの受信・デコードとログ出力・内部状態更新(
ics_failed=true)は対応済みだが、NGAP InitialContextSetupFailure の構築・AMF への送信は未実装。
(※4) UEContextReleaseComplete: S1AP ディスパッチャで検出・ICS 内部状態のリセットは行われるが、対応する NGAP UEContextReleaseComplete の構築・AMF への転送は未実装。
| 方向 | 4G NAS メッセージ | 5G NAS メッセージ | Message Type | 状態 |
|---|---|---|---|---|
| UE → AMF | Attach Request | Registration Request | 4G: 0x41/0x0C, 5G: 0x41 | |
| UE → AMF | Attach Complete | Registration Complete | 4G: 0x43, 5G: 0x43 | ✅ |
| UE → AMF | Authentication Response | Authentication Response | 4G: 0x53, 5G: 0x57 | |
| UE → AMF | Authentication Failure | Authentication Failure | 4G: 0x5C, 5G: 0x59 | ✅ |
| UE → AMF | Security Mode Complete | Security Mode Complete | 4G: 0x5E, 5G: 0x5E | ✅ |
| UE → AMF | TAU Request | Registration Request (mobility updating) | 4G: 0x48, 5G: 0x41 | |
| AMF → UE | Authentication Request | Authentication Request | 5G: 0x56, 4G: 0x52 | ✅ |
| AMF → UE | Security Mode Command | Security Mode Command | 5G: 0x5D, 4G: 0x5D | ✅ |
| AMF → UE | Registration Accept | Attach Accept | 5G: 0x42, 4G: 0x42 | |
| AMF → UE | Registration Reject | Attach Reject | 5G: 0x44, 4G: 0x44 | ✅ |
| UE → AMF | Detach Request | Deregistration Request | 4G: 0x45, 5G: 0x45 | ❌ |
| UE → AMF | Identity Response | Identity Response | 4G: 0x56, 5G: 0x5C | ❌ |
| UE → AMF | Service Request | Service Request | 4G: 0x4C/0xC0, 5G: 0x4C | ❌ |
| UE → AMF | Extended Service Request | - | 4G: 0x4E | ❌ |
| UE → AMF | ESM Information Response | - | 4G: 0xDA | ❌ |
| UE → AMF | Security Mode Reject | Security Mode Reject | 4G: 0x5F, 5G: 0x5F | ❌ |
| UE → AMF | EMM Status | 5GMM Status | 4G: 0x60, 5G: 0x64 | ❌ |
| UE → AMF | GUTI Reallocation Complete | - | 4G: 0x51 | ❌ |
| UE → AMF | Uplink NAS Transport (SMS) | UL NAS Transport | 4G: 0x63, 5G: 0x67 | ❌ |
| AMF → UE | Identity Request | Identity Request | 5G: 0x5C, 4G: 0x55 | ❌ |
| AMF → UE | Deregistration Accept | Detach Accept | 5G: 0x46, 4G: 0x46 | ❌ |
| AMF → UE | Service Accept / Reject | - | 5G: 0x4E/0x4F | ❌ |
| AMF → UE | Configuration Update Command | - | 5G: 0x54 | ❌ |
| AMF → UE | DL NAS Transport (SMS) | Downlink NAS Transport | 5G: 0x68, 4G: 0x62 | ❌ |
| AMF → UE | 5GMM Status | EMM Status | 5G: 0x64, 4G: 0x60 | ❌ |
| AMF → UE | Notification | - | 5G: 0x65 | ❌ |
(※5) UE Security Capability: 固定値(5G-NEA/NIA: 0xF0/0x70、EPS-EEA/EIA: 0xF0/0x70)を使用。4G NAS メッセージからの動的抽出は未実装。
(※6) Authentication Response 鍵導出: PLMN ID(MCC=001, MNC=01)とセキュリティアルゴリズム(EIA2/EEA2)が固定値。4G/5G NAS 鍵の動的導出は TODO(auth_response_4g_to_5g.c L149)。
(※7) TAU / Mobility Registration: TAU Request は 5G-GUTI キャッシュが必須で、未保持の場合は変換失敗。
(※8) Registration Accept: 5G NAS 復号不可のため合成メッセージを構築。QCI=9 固定、PDN address=192.168.100.2 固定、PCO 固定パターン使用。APN のみ環境変数
S1N2_APNで設定可能。
| 項目 | 状態 |
|---|---|
| G-PDU (type 0xFF) 転送 | ✅ |
| Echo Request / Response (type 1, 2) | ✅ |
| Error Indication (type 26) | ❌ |
| End Marker (type 254) | ❌ |
| Extension Header 処理 (PDU Session Container 等) | ❌ |
| 複数ベアラ / 複数 PDU セッション同時利用 | ✅ (※9) |
| QoS Flow マッピング (複数 QFI) | ❌ (※10) |
(※9) 複数セッション対応: 最大 1024 TEID マッピングをサポート。各マッピングは個別の PDU Session ID と Bearer ID を追跡。双方向ハッシュテーブルによる O(1) ルックアップ。
(※10) QFI 処理: QFI は NGAP メッセージ (InitialContextSetupRequest) から抽出され UE ごとに保持されるが、GTP-U 拡張ヘッダ (PDU Session Container) からの動的 QFI 抽出は未実装。複数 QoS Flow の同時利用には未対応。
| アルゴリズム | 4G (EPS) | 5G (5GS) | 状態 |
|---|---|---|---|
| 完全性保護: AES-CMAC | EIA2 | NIA2 | ✅ |
| 暗号化: AES-CTR | EEA2 | NEA2 | ✅ |
| 完全性保護: NULL | EIA0 | NIA0 | ✅ |
| 暗号化: NULL | EEA0 | NEA0 | ✅ |
| 完全性保護: SNOW 3G | EIA1 | NIA1 | ❌ (※11) |
| 暗号化: SNOW 3G | EEA1 | NEA1 | ❌ (※11) |
| 完全性保護: ZUC | EIA3 | NIA3 | ❌ (※11) |
| 暗号化: ZUC | EEA3 | NEA3 | ❌ (※11) |
| SUCI Profile A (ECIES Curve25519) | - | ✅ | ❌ (平文 SUPI のみ) |
| SUCI Profile B (ECIES secp256r1) | - | ✅ | ❌ |
(※11) NIA1 / NEA1 / NIA3 / NEA3: アルゴリズム識別子の定義とマッピングテーブルへの登録は完了しているが、実際の暗号化・完全性保護処理は未実装。これらのアルゴリズムが選択された場合、エラーを返す。
| カテゴリ | 対象 | 状態 |
|---|---|---|
| ホストマシン | Intel NUC7i7BNH | ✅ |
| Mac等の他ハードウェア | ||
| eNB | Baicells Nova430x (sXGP, Band 39) | ✅ |
| 他の4G基地局 | ||
| UE | Google Pixel 8a | ✅ |
| iPhone 全般 | ||
| Android (Pixel 以外) | ||
| スマートフォン以外のUE | ||
| ネットワーク | 単一 eNB・単一 UE | ✅ |
| 複数 eNB 同時接続 | ||
| マルチ UE 同時接続 (負荷テスト) |
| カテゴリ | 対象 | 状態 |
|---|---|---|
| OS | Ubuntu 22.04 LTS | ✅ |
| Ubuntuの他バージョン | ||
| macOS系 | ||
| Windows系 | ||
| コンテナ | Docker Engine 24+ / Compose v2 | ✅ |
| 5GC | Open5GS | ✅ |
| free5GC | ||
| OAI-CN5G | ||
| 他商用5GC | ||
| Open5GS | 検証時バージョン | ✅ |
| v2.7 以降の新規リリース |
| シナリオ | 説明 | 状態 |
|---|---|---|
| Attach / Registration | 初期接続 (Attach → Registration) | ✅ |
| Authentication | 認証 (Auth Request/Response/Failure) | ✅ |
| Security Mode | セキュリティモード確立 (SMC/SMP) | ✅ |
| Initial Context Setup | 初期コンテキスト確立 | |
| TAU / Mobility Registration | 位置登録更新 | |
| PDU Session Establishment | デフォルトベアラ確立 | |
| UE Context Release | UE コンテキスト解放 | |
| Error Indication | エラー通知 | |
| ハンドオーバ | eNB 間 / intra-eNB | ❌ |
| Detach / Deregistration | UE の明示的切断 | ❌ |
| Service Request | Idle → Connected 復帰 | ❌ |
| Paging | ページング | ❌ |
| Dedicated Bearer / QoS Flow | デフォルト以外のベアラ設定変更 | ❌ |
| SMS over NAS | NAS 経由の SMS 転送 | ❌ |
| Emergency Attach | 緊急接続 | ❌ |
| CSFB (CS Fallback) | 回線交換フォールバック | ❌ (設計対象外) |
| 複数 PLMN / ネットワークスライス | マルチ PLMN・マルチスライス | ❌ (単一のみ) |
(※12) Initial Context Setup: NGAP → S1AP の ICS はフルデコード/ビルドされるが、AMBR (100 Mbps 固定)、QCI (9 固定)、UE Security Capabilities (0xE000 固定)、E-RAB 数 (1 本固定) などが固定値。
(※13) TAU / Mobility Registration: TAU Request は 5G-GUTI キャッシュが必須で、未保持の場合は変換失敗。
(※14) PDU Session Establishment: 単一 PDU セッション/単一スライス (SST のみ) 前提で、追加セッションや複数スライスは未対応。
(※15) UE Context Release: S1AP → NGAP の ReleaseRequest は対応済みだが、AMF → eNB の ReleaseCommand は未実装。
(※16) Error Indication: S1AP → NGAP の転送は対応済みだが、NGAP → S1AP の ErrorIndication 受信は未実装。