設定・固定値・規格・変更検討¶
文書バージョン:1.1.0
対象GitHubバージョン:main @ c67e153cc3bcf1f6ac0303d23023ce8ae4a4f533
収録リリース:v1.1.6(本文・画像の調査基準は上記commitを維持)
追補:2026-10-17 Timer通知APIの修正差分(v1.1.6収録の追補)。基準版・画像の取得条件は維持。
文書ID:guide-reference-change-ledger
文書状態:調査結果と変更検討用の補助表。採用済み要求の正本は既存要件・仕様書。
更新履歴¶
| 文書バージョン | 更新日 | 更新内容 |
|---|---|---|
1.1.0 |
2026-10-17 |
初版。変更箇所、固定前提、規格の関係、残件、画像証跡、採否検討表を整理。v1.1.6へ収録し、本文・画像の調査基準を維持 |
全体の入口。各値の受理範囲・動作の詳細は各モデル章を参照する。本表は選択の入口であり、表の値を全profileに共通適用しない。
何を変えたいかから設定場所を探す¶
| 変えたいこと | 今すぐ変更する場所 | 設定で変えられない部分/確認する影響 |
|---|---|---|
| 部品数・階層・接続 | NEDのsubmodules/connections | vector/動的追加/未対応構文はparserとエディタから改修 |
| 一つの実体の値 | INI Root.child.parameter |
型default変更と区別。path変更でJSON参照も変わる |
| 同型全体の初期値 | NED default(...) |
全配置へ波及。INI上書きがある実体は実効値が別 |
| 仮想実験期間・集計窓 | INI sim-time-limit/metrics-window |
終端Tを含めない、時間は整数psという共通規則 |
| イベント処理上限 | INI max-events/max-delta-cycles |
上限増大とアルゴリズムの正しさは別 |
| 送信時刻・周期・内容 | workload JSON | kind/schemaはprofile別。確率負荷は自動で追加されない |
| CAN速度・TX/RX遅延・filter・TX容量 | NED default/INI | 理想ACK、非プリエンプト、drop-newest、同一ID送信者制限 |
| CAN間経路・Gateway保持 | Multibus model-config JSON | RX保持とTX待機の区別。CANの送信成功と枝成功の区別 |
| FD位相bit数・速度 | FD workload/NED・INI | payloadから完全FD bitstreamを自動算出するcodecは未実装 |
| Ethernetの送信順・容量・VID・経路 | 対応profileのmodel-config/workload | 各profileの機能の組合せ制約。任意混成はできない |
| TAS窓/CBS slope/PSFP token | TSN model-config JSON | 理想clock、IFG込み窓、抽象meterの計数単位等 |
| 制御packet交換のモデル | ethernet.control.wire.experimental.v1のadapter/packet JSON |
現行限定scope。実ネットワークへのlive接続は対象外 |
| AXI速度・READY・RAM範囲・strobe | AXI model-config/workload | ID0、限定burst・同時進行等はコード側の固定前提 |
| SoC/AHB/NoCの競合・容量 | 各model-config/workload | NoC XY・packet単位、AHB抽象段階。規格全信号ではない |
| SRAM/DDR待ち・refresh・IPC容量・通知 | memory.ipc model-config/workload | CPU/cache/coherence、実DDR世代の全timingはモデル外 |
| エディタrunの実時間上限 | 実行UI、1~3600秒 | worker数・memory/file/run容量はコード定数 |
| Undo保持数・保持量 | 利用者設定なし | model.rsの200操作・32MiB。セッション履歴の意味も確認 |
| Viewer表示単位・区間・絞込 | Viewer UI | 描画上限、集計定義、任意profile表示はコード変更 |
| 結果の列・意味・独自指標 | Rustの出力/Registry、仕様 | schema/metricの版、既存CSV利用者、Viewerとの互換性 |
固定値を変更する場合の実装の入口¶
「固定値」は調査時点の実装方針であり、規格が要求する定数とDIRの実装都合を分けて判断する。
| 固定事項 | 現行の意味 | 実装・変更時に同時に確認するもの |
|---|---|---|
| u64整数ps・半開観測区間 | 精度と終了境界を全モデルで共有 | input.rs、runtime/scheduler.rs、各runtime、出力、Viewer BigInt |
| CAN CRC/フレーム区切り/仲裁bit順 | 採用したClassical CANの時間・優先規則 | runtime/can/protocol.rs、CAN仕様、独立bit列fixture |
| CAN成功時の理想ACK | エラー回復を扱わないprofile | CAN runtime、状態・再送カウンタ・終了・受信の仕様 |
| FD外部位相bit数 | 時間評価用の境界 | input/canfd.rs、runtime/canfd.rs、runtime/canfd/protocol.rs、FD codec・期待値 |
| Ethernet store-and-forward | フレーム受信後に次hopへ | runtime/ethernet/l2.rs、受信/copy/占有record、Viewer |
| 理想TSN clock・非プリエンプト | 窓・credit・policing評価を限定 | runtime/ethernet/tsn.rs、遅延・断片化・部分終了の仕様 |
| AXI ID0等 | 初期transaction profileの制約 | input/axi.rs、runtime/axi.rs、ID・応答順・メモリ検証 |
| エディタworker数・容量 | 画面のrun管理の資源制限 | tool/ned-editor/run_control.rs、run_snapshot.rs、run_control/worker.rs |
| Viewer 500区間/75行 | CAN系の描画・ページ境界 | tool/viewer/assets/app.js。全件集計と表示を混同しない |
上記はcrates/dir-simulator/src/からの相対パス。ソース一覧から参照できる。具体のパラメータ表・仕様と試験のリンクは各機能章にある。
使用ライブラリと役割¶
仕様変更の影響を判断する補足として、直接依存と主要な境界を示す。モデルの通信アルゴリズムはDIRのRust実装であり、外部のCAN/Ethernetシミュレータへ処理を委譲しているわけではない。
| ライブラリ/基盤 | 調査基準の固定版・場所 | 役割と変更時の注意 |
|---|---|---|
| Rust標準ライブラリ | toolchain 1.85.0、edition 2024 | ヒープ・順序付き集合・ファイル・process。イベント順をOS schedulingへ依存させない |
| serde | Cargo.lock 1.0.229 |
Rustの型と直列化。項目・null・数値型変更は結果互換性に影響 |
| serde_json | 1.0.151、float_roundtrip |
JSON入出力。重複やschemaの検証はDIR側の契約も確認 |
| sha2 | 0.10.9 |
入力・結果・worker等のhash、決定的計算の一部。hash対象と正規化の変更は出典照合へ影響 |
| tiny_http | 0.12.0 |
エディタと結果のローカルHTTP提供 |
| rustix | 0.38.44、fs/rand/process |
descriptor基準の保存、OS乱数、process/resource境界 |
| signal-hook | 0.3.18 |
終了signalの取扱い。停止時の保存とworker回収に関係 |
| ブラウザ標準HTML/CSS/JS/SVG | 製品へ同梱するassets | エディタ・Viewer描画。npmからUI frameworkを動的取得する構成ではない |
| MkDocs | requirements-guide.txtの1.6.1 |
文書サイト用。シミュレーション時間の計算には関与しない |
| Playwright/Chromium | 撮影時の実測版は画像証跡JSON | 検証・撮影用。利用者がViewerを読むための必須インストールではない |
版の正本:Cargo.lock、Cargo.toml。推移依存の全一覧はCargo.lockを参照する。更新時はlockと実ビルドを確認する。
関連規格とDIRの採用範囲¶
規格名の一致、抽象動作の採用、規格適合の検証は別である。下表の版は参照資料を識別するもので、現行DIRがその版の全条項を採用した宣言ではない。ISO/IEEEは公開書誌・概要、Armは取得できた公式資料、RFCは公式資料を2026-10-16に確認した。有料規格全文の再掲載は行っていない。
| 規格・一次資料 | 規格の扱う仕様 | DIRでの扱い/追加検討 |
|---|---|---|
| ISO 11898-1:2024 | CANのデータリンク層・物理符号化副層。Classical/FD/XL等の実装選択 | Classical DATAの仲裁・CRC15・stuffing・理想成功。FDは外部位相bit数。エラー回復・XL・完全FD codecを自動で含めない |
| IEEE 802.3-2022 | Ethernet MAC、全二重/CSMA/CD半二重、媒体別PHY | 採用速度・媒体の占有、IFG、衝突・再試行、固定PHY時間を抽象化。電気波形やPHY訓練の全再現ではない |
| IEEE 802.1Q-2022 | ブリッジ、VLAN、転送・優先制御等 | 単一タグのVID/PCP/DEI、FDB、静的/抽象動的制御。QinQや標準制御packetを含む全機能とは区別 |
| IEEE 802.1Qbv | Scheduled Traffic、時刻に応じた送信制御 | 周期GCLとguardによるTAS。DIRは理想clock、窓内にIFGまで収まる判定を採用 |
| IEEE 802.1Qav | 時間制約のあるstreamの転送・queue処理 | CBSのcredit・slopeを整数時間で評価。対応classとmodeはTSN仕様で限定 |
| IEEE 802.1Qci | Per-Stream Filtering and Policing | stream filter/gate、独立二bucketの抽象meter。DIRのmax_sdu_bytesはMAC byteを数えるため名称だけから標準SDUと同一視しない |
| Arm AMBA AXI/ACE IHI0022H | 五チャネル、VALID/READY、burst、応答、属性等 | AXI4 transactionの限定profile。ID0、aligned/full-width INCR等。ACE/cache整合・任意out-of-orderは未提供 |
| Arm AMBA AHB IHI0033 | address/data段階、HREADYによる待ち、応答 | 待ちとERRORの抽象モデル。全pin波形やpipelineを保証しない。今回のAHB PDF本文取得には制限があり、章では取得範囲を明記 |
| IGMPv3 RFC 9776/MLDv2 RFC 9777 | IPv4/IPv6のmulticast参加、送信元filter、query/report手順 | 既存dynamicは意味的membership操作。wire profileはRFC9776/9777受動snooperの限定実装を追加済み |
| RSTP/MVRP(上記IEEE 802.1Q) | tree再構成/VLAN登録のプロトコル | 現行の抽象tree・VID登録と標準BPDU/MRP wire実装を区別 |
| DDR/SRAM/NoC/共有IPC | DDRは世代・デバイス別規定、他は構成・製品ごとの差が大きい | DIRは特定DDR世代のJEDEC適合や特定NoC/CPU/OSの仕様を宣言していない。bank/row/timingや所有権のDIR契約を使う |
| OMNeT++ NEDマニュアル | 型・階層・gate・channel等のモデル記述言語 | 独自実装の限定文法。OMNeT++ engine、INET、全NED文法を依存として使わない |
| RFC 8259 | JSONデータ交換の構文と相互運用上の考慮 | JSONを使い、DIRのschemaで時刻を十進文字列化。これはJSONの全数値を文字列にする要求ではない |
| BIPM SI Brochure | SI単位と十進接頭語 | DIRはps/ns/us/ms/s等の限定入力集合。受理字句と二進容量単位はDIR設定仕様を参照 |
規格への適合度を上げる場合は、採用版・条項・errata・除外機能・入力/状態/出力の対応・独立した適合vectorを先に定める。現在のfixture合格を、未実装の標準機能の適合証明へ広げない。
修正・実装状況と残件¶
| 区分 | 項目 | 現状 | 変更前に決めること |
|---|---|---|---|
| 修正済み・v1.1.6収録(2026-10-17追補) | Timer発火token通知 | 基準c67e153の不一致を本作業の差分で解消。Context.current_timer_tokenが予約時のtokenを返す。初期化・ポート配送・調停はNone | 汎用Registry試験で同時刻・同payloadの識別、取消し、callback範囲を確認。基準コミット・v1.1.5以前の既存タグには未収録 |
| v1.1.6収録・限定scope実装済み(2026-10-17追補) | Gateway+TSN | 一FES、PSFP一回、単一queue所有、原子admission、出力・31 network vectorsへ具体化 | 正式採用済み。製品受入の最終判定は製品検証記録 |
| 同上 | 抽象冗長配送/frame preemption | 静的経路/有限除去窓、fragment境界/gap/T境界/合法wire例 | 独自抽象scopeを採用済み。IEEE完全適合は別契約 |
| 同上 | 協調実行制御/MetricV2 | owner poll、64要求、replay境界、H bucket、schema3 | API/profile/schema採用・実装済み。製品受入は別記録 |
| 同上 | 受動IGMPv3/MLDv2 snooper | RFC9776/9777、全6report、source filter lease、router、境界RX、60 vectors | 初期roleを採用・実装済み。host/router/querier生成は対象外 |
| 同上 | process越しcheckpoint | 同一build・generic backend・全optional codec、manifest・復元・障害38基盤vectors | network codecと版移行は初期scope外 |
| 同上 | 能動RSTP/MVRP | IEEE 802.1Q-2022 base本文、単一CIST/Full Participant、機械・codec・MAP、MAC学習/限定flush、1147規範設計vectors | 限定scopeと領域配置を採用・実装済み。全guard組合せ/多bridge製品検証の範囲は製品記録 |
| 現行profile外 | CAN error/retry/bus-off、確率生成 | 成功理想profileにはない | 誤りの発生モデル・再送・観測・seed |
| 現行profile外 | 完全FD codec、AXI複数ID、NoC VC等 | 初期抽象化の外側 | 忠実度と必要な評価指標、計算量 |
根拠:将来拡張計画、提案仕様、提案設計、提案検証仕様。これらの固定リンクは追補前の基準文書。2026-10-17の最新設計案はリポジトリ内docs/proposals/後続拡張要件定義書.mdから六工程をたどり、後続拡張契約提案設計書.mdの実装準備一覧で確認する。提案の試験条件は製品実行済みではない。
この資料の作成で仕様や製品機能を追加した扱いにはしない。採用・削除・変更は次の表で意思決定し、正式な仕様・実装・検証の変更へつなぐ。
仕様変更の検討用記入表¶
一行につき一つの利用目的・変更判断を書く。「便利にする」ではなく、入力例・期待動作・観測値まで具体化すると、実装と検証で解釈が分かれにくい。
| 対象機能・節 | 利用目的/必要性 | 判断(維持・不要・設定追加・仕様変更) | 変更したい入力/固定値 | 期待する動作と結果 | 互換性・検証条件 | 優先度 |
|---|---|---|---|---|---|---|
| 記入例:エディタ実行管理 | 実行中1件に加えて3条件を待機登録したい | 設定追加の検討 | 待機数2→3を指定可能にする | 計4件を保持。待機順・容量不足時の診断を決める | 既定2を維持するか、再起動・取消・容量を検査 | 未決 |
| 記入例:CAN成功条件 | ACKなしの障害を評価したい | 別profileの仕様追加 | 理想ACK→受信状況依存 | 再送と失敗理由を記録 | 旧profile結果は維持。独立期待bit列・終了境界を追加 | 未決 |
| 記入例:Viewer比較 | 長くキューが詰まる場所を探したい | 維持/表示追加の検討 | 非空最長と瞬間最大の見出し | 用途に応じ二つを明確に比較 | 同時刻0→2→1、欠測、ゼロ区間で確認 | 未決 |
| (記入) |
設定を追加する場合は、名前・場所・型・単位・既定値・許容範囲・省略・0・上限・未知値・競合・保存後の再読込を決める。機能を外す場合は、入力を拒否するのか旧結果の閲覧を残すのか、既存profile名やschemaをどう扱うかを決める。
スクリーンショットの条件と再取得¶
10画像とも基準ソースをbuildし公開サンプルで撮影した。画像内の条件を実機性能や全profileに一般化しない。
| 画像 | 入力 | 選択時刻・対象/読むポイント |
|---|---|---|
| CAN Viewer | examples/guide/can/minimal.ini |
238000000ps、a:0。実EOFと受信、次要求の待ち |
| Gateway Viewer | examples/guide/gateway-delay/delay0.ini |
400000000ps、source:0。元要求と独立する枝 |
| Ethernet Viewer | examples/guide/ethernet-psfp/pass.ini |
1248000ps、psfp:1。PSFPを通った要求の記録 |
| AXI Viewer | examples/guide/axi-strobes/strobe5.ini |
90000ps、read:0。読書き結果と最終資源 |
| CAN要求詳細 | 同じCAN入力 | 238000000ps、a:0。EOF・release・2受信先 |
| Gateway要求・枝詳細 | 同じGateway入力 | 400000000ps、source:0。成功1・未完了1の枝 |
| Ethernet転送詳細 | 同じEthernet入力 | 1248000ps、psfp:1。MAC/wire/占有長、到着と解放 |
| AXI要求・資源詳細 | 同じAXI入力 | 90000ps、read:0。読出し値と最終RAM |
| NEDエディタ | examples/can/baseline.ini |
原文、型、実体、図の関係 |
| NED実体値 | 同じ入力、Main.a |
defaultとINI上書きは64、実効値は未取得 |
全体画面6枚は1440×1100px。詳細4枚は幅1600pxのブラウザで要素領域を直接撮影、または必要な下段まで含む高さでスクロール撮影した。各画像の寸法、selector、表示値、browser版、入力・画像のSHA-256、command、page/console/requestの検査結果は画像証跡JSONを正本とする。エディタ画像では個人環境の絶対path部分だけをマスクし、部品・値・原文を作り替えていない。
リポジトリ内のscripts/capture_function_reference.cjsが再取得手順である。build後にPlaywrightのmoduleパスと、未使用の外部証跡ディレクトリを指定して実行する。
cargo build --locked -p dir-simulator
PLAYWRIGHT_MODULE=/path/to/playwright \
FUNCTION_REFERENCE_EVIDENCE_ROOT=/path/to/new-evidence-directory \
node scripts/capture_function_reference.cjs
今回の製品実行は4例のvalidate/run/viewとエディタ表示に限る。各章がリンクする既存のRust/Node試験・受入記録を全て今回再実行した意味ではない。文書の構成・リンク・画像の検査と、モデルの適合・性能の検査を分けて扱う。
2026-10-17現行実装追補:承認済み後続10分野のAPI・設定・scope・出力・Viewer境界を追加した。固定commitに基づく既存画像・実測は取得時の証跡として保持する。新機能はv1.1.6に収録する。製品受入最終判定は同追補から参照する製品検証記録を参照する。文書版・履歴は本pushの改訂として確定した。