Moku Gigabit Streamerは、高速SFPまたはQSFPインターフェースを介して、Moku:DeltaとLinuxホストコンピュータ間で高速かつ決定論的なサンプルデータストリーミングを提供し、同時送受信動作をサポートします。このガイドでは、ストリーム設定、パケット構造、および送受信ワークフローに関する実用的な考慮事項を網羅し、Mokuとホストシステム間でデータを確実にストリーミングするためのGigabit Streamerの設定方法と使用方法について説明します。
イントロダクション
Moku Gigabit Streamer は、高速 SFP (Small Form-factor Pluggable) および QSFP (Quad Small Form-factor Pluggable) インターフェイスを介して、Moku:Delta とホスト コンピュータ間で高速かつ決定論的なサンプル データ ストリーミングを提供します。同じポートでの同時送信と受信動作をサポートし、リアルタイムの記録と再生ワークフローを実現します。Moku Gigabit Streamer には、Gigabit Streamer と Gigabit Streamer+ の 2 つのバージョンがあり、どちらも同じパケット構造とストリーミング モデルを使用し、物理的な接続と最大データ レートのみが異なります。Gigabit Streamer は、ポートあたり最大 5 Gbit/s のデータ レートで 2 チャネルの実数値サンプルをストリーミングできる 2 つの SFP インターフェイスを使用します。直接的で効率的なデータ パスが必要な高帯域幅の取得とリアルタイム ストリーミングに適しています。 Gigabit Streamer+ は、マルチインストゥルメント モードでデュアル チャネル ストリーミング、またはスタンドアロン動作で最大 4 チャネルを実現し、合計データ レートが最大 80 Gbit/s になる QSFP インターフェイスにより、これらの機能を拡張します。これは、超高速キャプチャ、要求の厳しいハードウェア イン ザ ループ システム、および大規模なデータ処理ワークフローに最適です。どちらのバージョンも、IPv4 上のユーザー データグラム プロトコル (UDP) と、固定レート トランスポート、低遅延、予測可能なタイミングを備えた DIFI 準拠の VITA 49.2 パケット構造を使用します。マルチインストゥルメント モードで使用すると、Moku Gigabit Streamer は、リアルタイム キャプチャ、波形再生、センサー シミュレーション、および外部システムを使用した分散処理を可能にします。このガイドでは、Moku:Delta とホスト コンピュータ間の高速ストリーミング リンクを構成、検証、および操作する方法の完全な概要を説明します。送信と受信の両方の操作に関する重要な伝送概念、パケット構造、および実践的なセットアップ手順について説明します。このガイドは、より柔軟なネットワーク設定を可能にするため、Linux OSをベースとしています。別のオペレーティングシステムを使用している場合は、適宜修正してください。
ハードウェアのセットアップ
Moku:Deltaは、高速データ転送用に2つのSFPポートと1つのQSFPポートを備えています。Moku Gigabit StreamerはSFPインターフェースを使用し、Moku Gigabit Streamer+はQSFPインターフェースを介して動作します。
- 2つの10 Gbit/s SFPポートを利用するギガビットストリーマー
- 100 Gbit/s QSFPポートを利用するGigabit Streamer+
SFPポートとQSFPポートは、Moku:DeltaのFPGAの専用領域に接続されます。このハードウェアルーティングの固定により、マルチインストゥルメントモードで使用する場合、Gigabit StreamerとGigabit Streamer+は特定のスロットに配置する必要があります。ほとんどのMokuインストゥルメントとは異なり、任意のスロットに配置することはできません。

表1 3スロットマルチインストゥルメントモードにおける機器マッピング
| マルチインストゥルメントモードスロット | 楽器別 | 物理ポート |
| スロット1 | ギガビットストリーマー | SFP1 |
| スロット2 | ギガビットストリーマー+ | QSFP |
| スロット3 | ギガビットストリーマー | SFP2 |

表2 5スロットマルチインストゥルメントモードにおける機器マッピング
| マルチインストゥルメントモードスロット | 楽器別 | 物理ポート |
| スロット2 | ギガビットストリーマー | SFP1 |
| スロット4 | ギガビットストリーマー | SFP2 |
Gigabit Streamer+はスタンドアロンモードでも動作可能で、その場合はFPGAファブリック全体を占有し、常にQSFPポートを介して動作します。
ホストコンピュータの推奨事項
高速UDPストリームには、十分な入出力レートと、中断なく連続データを受信・保存できる処理能力を備えたホストが必要です。このセクションでは、持続的な高速UDP受信に適したホスト構成のガイドラインを示します。要件は、回線速度とアプリケーション負荷に応じて変化する可能性があります。全体的なパフォーマンスは、ネットワークインターフェースカード(NIC)、CPU、システムメモリ、ストレージがボトルネックを生じさせることなく連携して動作することに依存します。
ネットワークインタフェース
ホストには、Moku Gigabit Streamerの場合はSFP+またはSFP28 NIC、Gigabit Streamer+の場合はQSFP28 NICが必要です。ストリーミングにはDACリンクが必要なため、これらのインターフェースはダイレクトアタッチ銅線(DAC)ケーブルをサポートしている必要があります。NICは、想定されるリンク速度に十分な帯域幅を備えたPCIeスロットに取り付けてください。
CPUと割り込み処理
高レートUDPキャプチャでは、ホストCPUがパケットを受信し、受信データをバッファリングし、サンプルをユーザー空間に渡す必要があります。信頼性の高いストリーミングを実現するには、ホストシステムが受信データレートに対応できる十分な処理能力を備えている必要があります。実際には、これは以下の方法で最適に実現できます。
- シングルスレッド性能に優れたマルチコアCPU
- 受信側スケーリングをサポートするネットワークインターフェイスカードドライバ
- 処理負荷がCPUコア間で均等に分散されるように、割り込みを適切に分散させる。
より高速なQSFPリンクの場合、ワークステーションまたはサーバークラスのプロセッサは、特に長時間または連続的なキャプチャにおいて、より大きな余裕を提供します。
システムメモリ
受信ネットワークデータのバッファリングは、利用可能なシステムメモリを利用して短いパケットバーストを吸収し、ディスクへのデータ書き込み時の瞬間的な遅延に対応します。十分なメモリを確保することで、途切れのないロスレスストリーミングを維持できます。
ストレージスループット
信頼性の高いストレージスループットは、キャプチャプロセス全体を通してスムーズなデータフローを維持するのに役立ちます。適切なストレージ構成は、目標ストリーミングレートと想定されるキャプチャ期間によって異なります。ほとんどの高速ストリーミングアプリケーションでは、必要なスループットで連続的な大容量ブロックのシーケンシャル書き込みをサポートするストレージソリューションを使用することで、これを実現できます。より高いラインレートでは、高性能デバイスや複数のドライブの連携など、追加のストレージ帯域幅が有効な場合があります。
ハードウェアの接続
ホストからMokuへのストリーミングでは、Mokuとホストコンピュータ間のイーサネット接続を直接ポイントツーポイントで使用します。この接続にはネットワークスイッチやルータは不要で、高速データストリーミング専用のリンクとして構成されます。ホストのネットワークインターフェイスカードを、対応するDACケーブルを使用してMoku:DeltaのSFPまたはQSFPポートに直接接続してください。ホストコンピュータにネイティブのSFPまたはQSFPポートがない場合は、オペレーティングシステムでサポートされている互換性のあるアダプタをインストールしてください。 Moku Gigabit Streamer (SFP バージョン) の場合:
- 互換性のある10G SFP+またはSFP28 DACケーブル
- DACケーブルをサポートするSFP+またはSFP28 NICを搭載したホストコンピュータ
Moku Gigabit Streamer+ (QSFPバージョン)の場合:
- 互換性のある100G QSFP28 DACケーブル
- DACケーブルをサポートするQSFP28 NICを搭載したホストコンピュータ
接続が確立されると、Mokuの前面パネルにあるLED 3が青色に点灯し、アクティブなリンクであることを示します。ホストコンピュータのネットワークインターフェースからもリンク状態を確認できます。以下の例では「enp5s0f0np0」という名前のインターフェースを使用していますが、実際のインターフェース名に置き換えてください。
- 以下の方法でインターフェースを見つけてください。
ip addr
Moku:Deltaに接続されているSFPまたはQSFPポートに対応するエントリを探してください。例:
enp5s0f0np0 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
UPとLOWER_UPは、インターフェースが有効でリンクが確立されていることを示します。
- リンクの状態と速度を確認してください
ethtool 物理リンクがアクティブであることを確認し、ネゴシエートされた速度を読み取るため:
sudo ethtool enp5s0f0np0
確認すべき主要項目:
-
- リンクが検出されました: はい
- 速度:10000Mb/sまたは100000Mb/s(SFPリンクまたはQSFPリンクによって異なります)
- デュプレックス:フル
Moku Gigabit Streamer+ の QSFP 設定
Moku:Delta の QSFP インターフェイスは、前方誤り訂正 (FEC) を使用しません。ホスト NIC がデフォルトで FEC を有効にしている場合、リンクが確立されない可能性があります。ほとんどの NIC では、まずインターフェイスをダウンさせ、次に FEC を無効にし、最後にインターフェイスを再びアップさせるという手順で FEC を無効にすることができます。 <interface> インターフェース名で、例: enp7s0f0np0. sudo ip link set <interface> downsudo ethtool --set-fec <interface> encoding offsudo ip link set <interface> up インターフェースにリンク検出と設定速度が表示されるはずです。物理リンクが安定したら、IP設定とギガビットストリーマーの設定に進んでください。
静的IPアドレスを使用した伝送構成
Moku Gigabit Streamer の高速データストリーミングでは、Moku:Delta とホストコンピュータ間の固定パラメータ UDP リンクを直接使用します。SFP ポートと QSFP ポートはポイントツーポイントのイーサネット接続からのストリーミングに使用され、そのポートでパケットを送受信できるのは設定されたピアのみです。この方式により、予測可能なタイミング、低いプロトコルオーバーヘッド、および一貫したスループットが実現されます。Gigabit Streamer は、ストリーミングポートで静的 IP アドレスを使用して動作します。これらのポートは決定論的なデータ転送用に構成されているため、ARP や DHCP などの自動アドレス検出メカニズムは使用しません。正しく動作させるには、Moku とホストの両方で、ストリーミングインターフェイスに対して同じサブネット上の IP アドレスを設定する必要があります。 送信モード(モクからホストへ): ホストは設定されたIPアドレスを使用してMokuと通信し、指定されたポートでUDPパケットを受信します。この設定はMokuアプリで直接処理されるため、通常、ホスト側で追加のネットワーク設定は必要ありません。 受信モード(ホストからモクへ): Mokuにデータを送信するには、Mokuアプリでストリーミングポートを設定するだけでなく、ホストは静的ネイバーエントリを使用して、MokuストリーミングIPアドレスを対応するMACアドレスに関連付ける必要があります。これにより、パケットが直接リンク経由で正しく配信されることが保証されます。この関連付けは、ケーブルの再接続後やホストまたはMokuの再起動後など、受信モードのストリーミング接続が確立されるたびに必要です。ホストで現在のネイバーテーブルを確認するには、次のコマンドを実行します。 ip neighbor | grep <moku_NIC_IP> エントリが INCOMPLETE次のように実行して置き換えてください。 sudo ip neigh replace <moku_NIC_IP> lladdr <moku_MAC> dev <interface> nud permanent 例えば、Mokuアプリでギガビットストリーマーを次のように設定するとします。
- ローカルIPアドレス: 10.10.1.1
- ローカルMACアドレス: 70:69:79:b2:02:69
ホストコンピュータがネットワークインターフェイスenp5s0f0np0を使用してMoku:Deltaにデータを送信している場合、ホストがMoku:DeltaのIPアドレスをMACアドレスに解決できるように、静的ネイバーエントリを追加する必要があります。 sudo ip neigh replace 10.10.1.1 lladdr 70:69:79:b2:02:69 dev enp5s0f0np0 nud permanent これにより、10.10.1.1宛てのパケットが、指定されたインターフェース上の正しい宛先MACアドレスに確実に送信されるようになります。
パケットとデータ構造
Moku Gigabit Streamerは、送受信されるすべてのサンプルデータにDIFI準拠のVITA-49.2パケットフォーマットを使用し、IPv4上でUDPを使用して転送します。使用されるパケットタイプは2種類です。ストリームの構成を記述するコンテキストパケットと、サンプルペイロードを運ぶデータパケットです。どちらのパケットタイプも固定レイアウトに従うため、ホストはデータストリームを解釈および再構築するために、これらを正しく解析する必要があります。サンプルデータは、固定レートでUDPパケットの連続ストリームとして送信されます。ストリーミングレートは、選択されたサンプルレート、サンプルサイズ、チャネル数、および設定された最大伝送単位(MTU)によって定義されます。MTUはUDPペイロードの最大サイズを決定し、したがって各パケットに格納されるサンプルの数を決定します。ストリーミングリンクは、確認応答、再送信、イーサネットポーズフレームなどの信頼性やフロー制御メカニズムなしで動作します。パケットは、ストリームの期間中、設定されたレートで送信され、ホストシステムは、そのレートでデータを継続的に受信および処理できる必要があります。
パケット解釈シーケンス
ギガビットストリーマーのデータストリームは、パケットを一貫した順序で処理することによって定義および解釈されます。
- コンテキストパケット
コンテキストパケットは最初に処理され、後続のデータパケットの解釈方法を決定します。コンテキストパケットには、ストリーム識別子、サンプリングレート、データフォーマット、スケーリングパラメータ、およびデータパケットペイロードフォーマットが含まれます。これらのフィールドは、サンプルタイプ、アイテムサイズ、小数サイズ、チャネルタグ付け、およびベクトルサイズを記述し、これらによって各データパケット内でサンプルがどのようにパックされるかが定義されます。
- データパケットヘッダー
次に、各データパケットのヘッダーが読み取られ、ストリーム識別子を使用してパケットをアクティブなコンテキスト情報に関連付けます。
- データパケットのペイロード
サンプル値は、定義されたパッキング形式に従って展開されます。マルチチャネルストリームの場合、サンプルはコンテキストパケットで指定された順序でデインターリーブされます。
- コンテキストパラメータの適用
コンテキストパケットからのサンプリングレート、スケーリング、ゲイン情報が適用され、サンプルを時間的に配置して物理的な信号値を再構築します。この順序は、以降のセクションで説明するパケット構造とレイアウトにも反映されています。
パケット全体の構造
ギガビットストリーマーによって送信されるサンプルデータとストリームメタデータは、標準のイーサネット、IP、およびUDPヘッダー内にカプセル化されます。図3は、このカプセル化階層を示し、各パケットに関連するプロトコルオーバーヘッドを強調しています。

イーサネットフレーム イーサネットフレームは、リンク層における最外層のカプセル化を提供します。イーサネットフレームは、イーサネットフレームヘッダーと、IPパケットを伝送するイーサネットフレームペイロードで構成されます。図3に示すすべてのプロトコルオーバーヘッドは、イーサネットフレームペイロード内に含まれています。 インターネットプロトコル層 インターネットプロトコル層はUDPデータグラムをカプセル化し、Moku:Deltaとホストコンピュータ間の論理アドレス指定を提供します。固定ヘッダーサイズは、各イーサネットフレーム内のプロトコル全体のオーバーヘッドに影響を与えます。 ユーザーデータグラムプロトコル(UDP)層 UDPレイヤーは、VITAパケットの軽量な転送を提供する。UDPヘッダーはUDPペイロードの前に配置され、ペイロードには正確に1つのVITAパケットが含まれる。 VITA層 VITAレイヤーは、ストリーミングコンテンツの構造と解釈を定義します。各UDPペイロードには、VITAヘッダーとそれに続くVITAペイロードからなる単一のVITAパケットが含まれます。VITAヘッダーは7つの32ビットワードの固定サイズで、すべてのVITAパケットに存在します。VITAペイロードは、パケットの種類に応じて、コンテキスト情報または信号サンプルデータのいずれかを伝送します。この区別は、VITAヘッダー自体に示されています。 パケットのオーバーヘッドとペイロードサイズ 図3に示すように、IPv4を使用する場合、イーサネット、IP、UDP、およびVITAヘッダーを合わせたオーバーヘッドは、各イーサネットフレーム内で56オクテット(56バイト)の固定オーバーヘッドとなります。イーサネットフレームのペイロード内の残りのスペースによって、使用可能な最大信号データペイロードサイズが決まります。すべてのパケットは同じ構造であるため、より大きなMTUを選択することで、相対的なヘッダーオーバーヘッドが削減され、ストリーミング全体の効率が向上します。
コンテキストパケット
コンテキストパケットは、現在のストリーミングセッションに関連付けられたメタデータを定義します。これは、すべてのギガビットストリーマーのストリーミングセッションの開始時に送信されます。コンテキストパケットにはサンプルデータは含まれません。代わりに、後続のデータパケットのペイロード形式とタイミングをデコードするために必要な情報を提供します。Mokuギガビットストリーマーのレイアウトは、VITA-49.2コンテキストパケットクラス0x0001の構造に準拠しており、以下に詳細を示します。

表3 Moku Gigabit Streamerコンテキストパケットフィールドの定義
| フィールド | 詳細説明 |
| パケット数 | コンテキストパケットが送信されるたびに(16を法として)インクリメントされます。 |
| ストリーム識別子 | 特定のデータストリームを識別します。ストリーム識別子は、コンテキストパケットと同一ストリーミングセッション内の対応するデータパケット間で一致する必要があります。 |
| 整数秒タイムスタンプ | 計測器が配備された時、または最後にリセットされた時を基準点(時間ゼロ)として定義され、それ以降の経過秒数。 |
| 基準レベル | フルスケールのデジタル化された正弦波を生成する正弦波の交流電力( ピーク振幅±2N−1)、ここで N これは、50Ωの負荷を基準としたビット数です。 |
| アイテム梱包フィールドサイズ | ストリーム内のアイテムごとに割り当てられるビット数を指定します。エンコードされた値は次のようになります。 (サンプルビット幅 − 1) 通常モードでは15(0b001111)を使用し、高精度モードでは31(0b011111)を使用します。 |
| データ項目のサイズ | 各サンプルで実際に使用されるビット数を指定します。エンコードされた値は次のようになります。 (サンプルビット幅 − 1) 通常モードでは15(0b001111)を使用し、高精度モードでは31(0b011111)を使用します。 |
| ベクターサイズ | チャンネル数から1を引いた値(シングルチャンネルストリーミングの場合は0、デュアルチャンネルストリーミングの場合は1) |
データパケット
各データパケットは、サンプルペイロードの配置方法を記述したコンパクトなヘッダーで始まります。このヘッダーはコンテキストパケットヘッダーと同じ構造を持ち、サンプルブロックを正しく展開および解釈するために必要なパラメータを提供します。これらのフィールドは、個々のサンプルがどのようにエンコードされ、ペイロードにいくつのサンプルが含まれるかを定義します。図5は、Moku Gigabit Streamerで使用されるデータパケット構造の詳細を示しており、これはDIFIパケットクラス0x0000、標準フロー信号データパケットとほぼ一致しています。

表4 Mokuギガビットストリーマーのデータパケットフィールド定義
| フィールド | 詳細説明 |
| パケット数 | コンテキストパケットが送信されるたびに(16を法として)インクリメントされます。 |
| ストリーム識別子 | 特定のストリームを示します。ストリーム識別子は、コンテキストパケットとデータパケットで一致する必要があります。 |
| 整数秒タイムスタンプ | エポック(時刻ゼロ)からの経過秒数。エポックとは、機器が配備された、または最後にリセットされた時点を指します。 |
サンプルペイロードフォーマット
データ ペイロードには、コンテキスト パケットとデータ パケット ヘッダーの両方で説明されているパラメータに従ってエンコードされたサンプル値のシーケンスが含まれます。ギガビット ストリーマーは、デシメーション モードに応じて、16 ビットまたは 32 ビット表現を使用して実数値サンプルを送信します。サンプル パッキングは決定論的であり、各データ パケットのサンプル数は、選択された MTU とサンプル サイズによって決まります。チャネルはパケットの順序でインターリーブされます。たとえば、2 チャネル ストリームでは、ペイロードは CH1[0]、CH2[0]、CH1[1]、CH2[1]、… の順に配置されます。このインターリーブ方式は、ギガビット ストリーマー + 4 チャネル ストリームを含むすべてのマルチ チャネル構成に適用されます。
Mokuからホストへのデータ送信
パケット構造とストリーム形式が定義されたので、このセクションでは、Moku からホストコンピュータへのデータ送信の設定に焦点を当てます。Gigabit Streamer は、同じストリーミング インターフェイスでの同時送信と受信動作をサポートしていますが、このセクションの設定手順では送信動作のみを説明し、受信設定については次のセクションで説明します。送信モードでは、Moku は、Moku アプリまたは API で設定された固定のネットワークおよびストリーム パラメータを使用して、専用の SFP または QSFP リンクを介してサンプル データをストリーミングします。以下の手順では、送信パスを設定し、ホストが受信データ ストリームを受信して解釈できるように準備する方法を説明します。
モク構成(送信)
送信する信号は、マルチインストゥルメントモード経由でルーティングすることも、Gigabit Streamer+ のスタンドアロン機器としてアナログ入力にデフォルト設定することもできます。信号がアナログポートから入力される場合は、まず入力範囲、カップリング、減衰の設定がソース信号に適していることを確認してください。ネットワークパラメータを設定するには、Gigabit Streamer インターフェイスの地球儀アイコンをクリックします。これらのパラメータは、Moku インターフェイスのネットワーク ID とホストコンピュータ上の宛先を定義します。 場所:
- IPアドレス SFP/QSFPポートには静的IPアドレスを割り当ててください。このIPアドレスはホストと同じサブネットに属している必要があります。
- UDPポート 受信専用です。
- Macアドレス Mokuによって、使用されている特定のSFP/QSFPポートに合わせて修正されました。
遠隔地への配送先:
- IPアドレス ホストNICのIPアドレスを設定してください。
- UDPポート ホストソフトウェアがリッスンするポート番号を設定してください。
- Macアドレス Mokuに接続されているホストNICのMACアドレスを入力してください。ギガビットストリーマーはARPを実行しないため、このフィールドは明示的に設定する必要があります。
発送用小包:
- ネットワークMTU サポートされているMTUサイズの中から1つを選択し、ネットワークインフラストラクチャとホストがサポートする最大のMTUを使用してください。
- UDPペイロード MTUとサンプルサイズに基づいて計算されます。
- 1パケットあたりのサンプル数 MTUとサンプルサイズに基づいて計算されます。
UDPポートは、ホストアプリケーション内の宛先を識別します。ギガビットストリーマーの動作には、未使用のポートを選択できます。VITA-49および関連するVRTワークフローでは、慣例としてポート4991がよく使用されますが、これは必須ではありません。ギガビットストリーマーは、設定されたポートでパケットの送受信を行います。
サンプル形式と間引き
ギガビットストリーマーには、送信ストリームのサンプリングレートとサンプリング幅を設定するデシメーションブロックが含まれています。ストリーマーに入力されるすべてのデータは、パケット化される前にこのブロックを通過します。デシメーション処理は、サンプリングモードとデシメーション係数の両方によって構成されます。
デシメーションモード
間引きモードでは、各出力サンプルの数値形式を設定します。
- ノーマルモード: 16ビットの実数サンプルを生成します。ダウンサンプリングは直接ダウンサンプリングによって行われ、D番目の入力サンプルはフィルタリングされずにそのまま保持されます。
- 精密モード: 32ビットの実数サンプルを生成します。ダウンサンプリングはブロック平均化によって行われ、各出力サンプルは連続するD個の入力サンプルの平均値となります。これにより、低い実効レートでの数値精度が向上します。
減少係数
間引き係数Dは、入力サンプリングレートをどのように低減するかを設定します。ギガビットストリーマーは、以下のいずれかの係数をサポートしています。
- 2のべき乗(1、2、4、8、16、32、…)、または
- 16の倍数(16、32、48、64、80、96、…)
有効な係数 D に対して、デシメーションブロックは次のレートの出力ストリームを生成します。 (実効レート (Sa/s) = 入力レート (Sa/s) ⁄ D) ネットワークのスループットは次のとおりです。 (ストリームレート(ビット/秒)=実効レート(Sa/秒)×サンプルサイズ(ビット/Sa)×チャネル数) この計算により、ホスト側に必要な帯域幅が決定されます。デシメーションを使用する場合、エイリアシングによって結果として得られる信号帯域幅が影響を受ける可能性があります。広帯域信号または高周波信号の場合、適切なデシメーションとサンプリングモードの設定を選択することで、目的の周波数成分を維持するのに役立ちます。
ホストコンピュータからMokuへのデータ受信
センサーエミュレーション、閉ループ制御テスト、広帯域波形再生などのアプリケーションでは、ギガビットストリーマーを受信モードで使用して、外部で生成されたデータや事前に記録されたデータをMoku:Deltaに供給できます。受信パスは送信パスとは異なるネットワーク要件を持ちます。MokuはARPに参加せず、リンク上で自身の存在を通知しないためです。データを送信するホストは、ギガビットストリーマーが想定するフォーマットに一致するパケットを作成し、ストリーミングインターフェイスに直接送信する必要があります。
ホスト構成
ホストインターフェース
Mokuに接続されているNICのIPアドレスとMACアドレスを含む、必要なホストネットワークパラメータを特定します。 ip addr このコマンドは、割り当てられたIPアドレスとハードウェア(MAC)アドレスとともに、すべてのネットワークインターフェイスを表示します。Mokuに直接接続されているホストNICに静的IPアドレスを割り当てることもできます。 sudo ip addr add <sub_net> dev <interface>sudo ip link set dev <interface> up これにより、選択したインターフェースに指定されたサブネットが設定され、そのサブネット宛てのトラフィックが正しいNICを経由してルーティングされることが保証されます。
MTU構成
ギガビットストリーマーで使用されているMTUに合わせます。なお、Mokuが受け入れ可能な最大MTUは1500バイトです。 sudo ip link set dev <interface> mtu 1500 MTUの値が一致しないと、パケット損失が発生する可能性があります。
静的ネイバーエントリ(ARP代替)
Mokuの受信ポートはARP解決なしで動作します。ホストがARPベースのMACマッピングを使用してパケットを送信しようとすると、パケットは不完全な状態のままになり、Mokuに到達しません。そのため、ホストはMokuにパケットを送信する際に静的MACアドレスを使用する必要があります。まず、ネイバーテーブルを確認してください。 ip neighbor | grep <moku_NIC_IP> 不完全なエントリが表示された場合は、静的なエントリに置き換えてください。 ip neighbor replace < moku_NIC_IP> lladdr <MOKU_MAC> dev <interface> nud permanent
モク設定(受信)
ギガビットストリーマーは、ポイントツーポイント(ユニキャスト)伝送またはマルチキャスト伝送のいずれかを使用してデータを受信できます。以下のセクションでは、それぞれのオプションの設定手順について説明し、データが各ケースで正しいインターフェースとアドレスに配信されるように、必要なホストネットワークの設定とギガビットストリーマーの設定を概説します。
ポイントツーポイント(ユニキャスト)
受信専用ワークフローでは、ローカルIP、ローカルUDPポート、ローカルMACアドレスの各フィールドのみが関連し、リモート宛先設定は使用されないため、未設定のままにしておくことができます。ネットワークパラメータを設定するには、ギガビットストリーマーインターフェイスの地球儀アイコンをクリックします。これらのパラメータは、MokuインターフェイスのネットワークIDとホストコンピュータ上の宛先を定義します。 場所:
- IPアドレス MokuのSFP/QSFPポートに静的IPアドレスを割り当ててください。このIPアドレスはホストと同じサブネットに属している必要があります。
- マルチキャストアドレス 詳細は下記をご覧ください。
- UDPポート ホストはこのポートにパケットを送信する必要があります。VITA-49.2の慣例ではポート4991を使用しますが、送信パケットの宛先ポートと一致していれば、どのUDPポートでも有効です。
- Macアドレス Mokuによって特定のSFP/QSFPポートに固定されました。
リモート宛先(受信モードのみで使用する場合は未設定のままで構いません):
- IPアドレス オプション。ホストポートのIPアドレスと一致します。
- UDPポート オプション:ホストソフトウェアがリッスンするポート番号を設定してください。
- Macアドレス 必要に応じて、Mokuに接続されているホストNICのMACアドレスを入力してください。
発送用小包:
- ネットワークMTU サポートされているMTUサイズから1つを選択してください。Mokuは最大1500バイトのMTUに対応しています。
- UDPペイロード MTUとサンプルサイズに基づいて計算されます。
- 1パケットあたりのサンプル数 MTUとサンプルサイズに基づいて計算されます。
マルチキャスト
ギガビットストリーマーはマルチキャストストリーミングもサポートしており、ホストコンピュータはマルチキャストIPアドレスを使用して1つまたは複数の受信機にデータを送信できます。マルチキャストを使用するには、ホストオペレーティングシステムで選択したマルチキャストトラフィックを適切なネットワークインターフェイスにルーティングするように設定し、ホストとギガビットストリーマーの両方で同じマルチキャストアドレスを設定する必要があります。まず、ホストでマルチキャストトラフィックを目的のネットワークインターフェイスにルーティングするように設定します。例: sudo ip route add 224.1.2.0/24 dev enp129s0f0np0 このコマンドは、224.1.2.X の範囲にあるすべてのマルチキャスト トラフィックをネットワーク インターフェイス enp129s0f0np0 にリダイレクトします。/24 プレフィックスは、アドレスの最上位ビットのうち、一致する必要があるビット数を指定します。224.0.0.0/4 を使用してすべてのマルチキャスト アドレスをカバーすることで、より広い範囲をルーティングできます。また、/32 を使用して単一のマルチキャスト アドレスをターゲットにすることもできます (例: 224.1.2.3/32)。次に、マルチキャスト IP アドレス フィールドに、目的のマルチキャスト IP アドレス (例: 224.1.2.3) を入力して、ギガビット ストリーマーを設定します。最後に、ホスト コンピュータから通常どおりデータを送信しますが、宛先アドレスとして設定したマルチキャスト IP アドレスを使用します。ギガビット ストリーマーは、このマルチキャスト アドレス宛てのパケットを、設定したインターフェイスで受信します。
ホストからのデータ送信
ホストからMokuへデータを送信する際、受信ストリームはパケットとデータ構造のセクションで説明されているパケット形式に従います。データは、コンテキストパケットとデータパケットの順序付きシーケンスとして配信され、これらがサンプルストリームを定義し、伝送します。送信シーケンスは次のとおりです。
- コンテキストパケット
送信はコンテキストパケットから開始され、このパケットはMokuが使用するストリーム構成を定義します。ホストからMokuへの送信の場合、Mokuは16ビットのサンプルデータを受け入れます。
- データパケット
コンテキストパケットの後には、同じストリーム識別子を使用するデータパケットが連続して送信されます。これらのパケットは、連続再生を維持するために、設定されたサンプルレートに一致する一定のレートで送信されます。
- パケットサイズ
データパケットは、ペイロードサイズが選択されたネットワーク設定と一致するように、構成された最大伝送単位に合わせて構築する必要があります。Mokuは、レート適応やリサンプリングを行わずに、固定のサンプルレートでパケットの順序で受信データを処理します。このため、ホストアプリケーションは、送信レートが構成されたストリームレートと一致するように、データパケットを送信するときにレート制御またはスロットリングを適用する必要があります。安定したパケットタイミングを提供することで、ギガビットストリーマーは受信データをスムーズに適用し、下流の機器に影響を与える可能性のあるオーバーフローやアンダーフローを回避できます。Mokuギガビットストリーマーの出力接続(補間ブロックと出力ポート間)は、Mokuアプリではなく、受信したコンテキストパケットの「ベクトルサイズ」に基づいて自動的に接続されることに注意してください。ここでは、ギガビットストリーマーは、ベクトルサイズパラメータに基づいて、出力A、出力B、…の順に、指定された数のチャネルを接続します。 I/Q処理(DIFI互換性) Moku Gigabit StreamerはVITA-49.2パケット構造に準拠しており、DIFIと密接に連携しています。複素ストリームのI成分とQ成分を2つの独立した実数値チャネルとして解釈することで、DIFIパケットを処理できます。複素ストリームを受信すると、I成分は自動的に出力Aに、Q成分は出力Bにルーティングされます。
受信データの分析
ギガビットストリーマーが有効なデータパケットの受信を開始すると、これらの出力はマルチインストゥルメントモードを介して他の機器に接続し、検証および分析を行うことができます。たとえば、次のように使用できます。
- 受信波形の時間領域検査用オシロスコープ
- リアルタイム周波数領域解析用スペクトラムアナライザ
- 外部機器に接続するためのアナログ出力
利用可能なスロット数によっては、ギガビットストリーマーと、同時時間領域キャプチャ、スペクトルモニタリング、およびハードウェアインザループ動作を組み合わせることが可能です。
トラブルシューティング
このセクションでは、ギガビットストリーマーの設定または操作時に発生する可能性のある一般的な問題について概説し、それらを特定して解決するための具体的なチェック手順を示します。
リンクが表示されません
物理リンクがDOWNまたはLOWER_DOWNを報告している場合は、以下を確認してください。
- ケーブルとNICの互換性
ケーブルがサポートされているDACタイプであることを確認し、NICが選択したラインレートでパッシブDACを受け入れることを確認してください。
- FECミスマッチ(QSFPのみ)
QSFPの動作には FEC無効 ホストNIC上。
FECが無効になっていることを確認するには、以下を使用してください。
sudo ethtool --show-fec <interface>
- インターフェース状態
NICを起動する:
sudo ip link set dev <interface> up
リンクの状態を確認してください:
sudo ethtool <interface>リンクのネゴシエーションができない場合は、NICのラインレート設定を見直し、マルチインストゥルメントモードでギガビットストリーマーが正しいスロットに配置されていることを確認してください。これは、特定のSFPポートとQSFPポートに対応しています。
ホストに到達しないパケット(送信経路)
Mokuが送信しているにもかかわらず、ホストがパケットを受信しない場合:
- IP/MACアドレスの設定が間違っています
IPアドレスとサブネットマスクは完全に一致している必要があり、MACアドレスも完全に一致している必要があります。
ホストは、MokuアプリでリモートUDPポートとして設定されているポートと同じポートでリッスンしている必要があります。
- MTUの不一致
ホスト側のMTUがMokuの設定値よりも小さい場合、ホストはデータパケットを受信できません。
- ファイアウォール/インターフェースバインディング
受信アプリケーションがデフォルトルートではなく、正しいインターフェースにバインドされていることを確認してください。
パケットがモク(受信経路)に到達しない
最も一般的な原因は、MokuがARPに応答しないためにネイバー解決ができないことです。
- 不完全なARP / ネイバーエントリ
近隣テーブルを確認してください:
ip neighbor | grep <moku-ip>
エントリが不完全な場合は、次のコマンドを実行して置き換えてください。
ip neighbor replace < moku_NIC_IP> lladdr <MOKU_MAC> dev <interface> nud permanent
SFPまたはQSFPケーブルを抜き差しした場合は、この手順を繰り返す必要があります。
- 目的地港が間違っています
ホストは、Mokuで定義されているローカルUDPポートにパケットを送信する必要があります。このフィールドが間違っている場合、パケットは警告なしに破棄されます。
- コンテキストパケットが正しくありません
出力ポートは、有効なコンテキストパケットが最初に到着したときにのみ接続されます。コンテキストパケット内のいずれかのフィールドが不正な形式である場合、Mokuアプリ(バージョン4.2以降)は解析エラーを報告し、対応する出力を有効にしません。
Wiresharkなどのパケット検査ツールを使用して、以下の点を確認してください。
-
- コンテキストパケットが存在します
- チャンネル数は「ベクトルサイズ」として正しく宣言されています
- データ幅とサンプル形式は有効です
- MTUは正しい
- 不正なヘッダーフィールドはありません
歪んだ信号またはエイリアシングされた信号
Mokuへのストリーミング中に信号が歪んだり、エイリアシングが発生したりする場合は、以下の設定を確認してください。
- ホスト生成ストリームにおける誤ったデシメーション
ホストは、Contextパケットで宣言されたサンプリングレートに一致する必要があります。
- サンプルの梱包が不適切
2チャンネルの実数値ストリームの場合、サンプルはサンプルごとに以下の順序でインターリーブされます。
CH1[n]、CH2[n]、CH1[n+1]、CH2[n+1]、…
この順序を維持することで、各チャンネルのサンプルが正しく再構成されることが保証されます。サンプルが異なる順序でパックされている場合、階段状の波形、意図しない振幅変調、またはサンプルパターンの繰り返しなどの影響が見られる可能性があります。
- エンディアンが正しくありません
サンプルエンディアンは、マルチバイト値がどのように扱われるかに影響します。 データペイロード 解釈されます。Moku Gigabit Streamer は リトルエンディアン 送信経路と受信経路の両方において、ペイロードサンプルのバイト順序が正しくなければなりません。エンディアンが正しくない状態でペイロードを解釈すると、サンプルバイトが反転し、波形が著しく歪む可能性があります。
結論
ギガビット ストリーマーは、Moku:Delta と外部システム間の決定論的で高帯域幅のインターフェースを提供し、サンプル精度でデータを機器に直接転送したり、機器から外部に転送したりすることを可能にします。このガイドで説明する構成手順により、ストリーミング インターフェースは、ホスト ベースのキャプチャ、リアルタイム再生、ハードウェア イン ザ ループ テストなど、幅広いワークフローをサポートできます。このシステムは、複数の高速チャネルでの同時ストリーミングをサポートします。最大 6 つのチャネルを同時にストリーミングできます。4 つのチャネルはリアルタイム帯域幅 75 MHz、追加の 2 つのチャネルは最大 1.25 GHz のリアルタイム帯域幅です。これらの機能により、ギガビット ストリーマーは、タイミングやスループットを損なうことなく、要求の厳しいデータ取得および信号注入環境に統合できます。固定レートの UDP トランスポート パスを確立し、ネットワーク パラメータを調整し、DIFI に準拠した VITA-49.2 パケット構造を使用することにより、ギガビット ストリーマーは、決定論的な取得と処理のための信頼性の高いエンドポイントとなります。ストリーミングデータは、入力ストリームを中断または変更することなく、オシロスコープ、スペクトラムアナライザ、デジタル処理ブロック、アナログ出力などの複数の下流機器に同時にルーティングできます。これらの基盤により、ギガビットストリーマーは、Moku:Deltaと、ネットワークストレージ、リアルタイムDSPパイプライン、自動検証プラットフォーム、ミックスドシグナルテストベッドなどの上位システムとのインターフェースとして機能します。ギガビットストリーマー(SFP)とギガビットストリーマー+(QSFP)の両方で同じ構成アプローチが適用されるため、設計は中程度の速度のリンクからプラットフォームがサポートする最高帯域幅モードまで拡張できます。



