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つのバージョンがあり、どちらも同じパケット構造とストリーミングモデルを使用していますが、物理的な接続性と最大データレートのみが異なります。

ギガビットストリーマーは、2つのSFPインターフェースを使用し、ポートあたり最大5Gbpsのデータレートで2チャンネルの実数値サンプルをストリーミングできます。直接的かつ効率的なデータパスが必要とされる、高帯域幅のデータ取得やリアルタイムストリーミングに適しています。

Gigabit Streamer+は、これらの機能をQSFPインターフェースで拡張し、マルチインストゥルメントモードではデュアルチャネルストリーミング、スタンドアロン動作では最大4チャネルのストリーミングを可能にし、合計データレートは最大80 Gbit/sに達します。これは、超高速キャプチャ、要求の厳しいハードウェア・イン・ザ・ループ・システム、および大規模なデータ処理ワークフローに最適です。 

両バージョンとも、IPv4上でUDP(User Datagram Protocol)を使用し、固定レート伝送、低遅延、予測可能なタイミングを備えた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 3スロットマルチインストゥルメントモードにおける機器マッピング

マルチインストゥルメントモードスロット 楽器別 物理ポート
スロット1 ギガビットストリーマー SFP1
スロット2 ギガビットストリーマー+ QSFP
スロット3 ギガビットストリーマー SFP2
 
高速データストリーミング用ギガビットストリーマー

図2 5スロットマルチインストゥルメントモードにおけるギガビットストリーマーの割り当て

 

表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」という名前のインターフェースを使用していますが、実際のインターフェース名に置き換えてください。

  1. 以下の方法でインターフェースを見つけてください。

ip addr

Moku:Deltaに接続されているSFPまたはQSFPポートに対応するエントリを探してください。例:

enp5s0f0np0 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...

UPとLOWER_UPは、インターフェースが有効でリンクが確立されていることを示します。

  1. リンクの状態と速度を確認してください

  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> down

sudo ethtool --set-fec <interface> encoding off

sudo ip link set <interface> up

インターフェースにリンク検出と設定速度が表示されるはずです。物理リンクが安定したら、IP設定とギガビットストリーマーの設定に進んでください。

静的IPアドレスを使用した伝送構成

Moku Gigabit Streamer の高速データストリーミングでは、Moku:Delta とホストコンピュータ間で固定パラメータの UDP リンクを直接使用します。SFP ポートと QSFP ポートはポイントツーポイントのイーサネット接続からのストリーミングに使用され、そのポートでパケットを送受信できるのは設定されたピアのみです。この方式により、予測可能なタイミング、低いプロトコルオーバーヘッド、そして安定したスループットが実現します。

ギガビットストリーマーは、ストリーミングポートに静的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ペイロードの最大サイズを決定し、したがって各パケットに格納されるサンプルの数を決定します。

ストリーミングリンクは、確認応答、再送、イーサネットポーズフレームなどの信頼性制御やフロー制御メカニズムなしで動作します。パケットはストリームの期間中、設定されたレートで送信され、ホストシステムはそのレートでデータを継続的に受信および処理できる必要があります。

パケット解釈シーケンス

ギガビットストリーマーのデータストリームは、パケットを一貫した順序で処理することによって定義および解釈されます。

  1. コンテキストパケット

コンテキストパケットは最初に処理され、後続のデータパケットの解釈方法を決定します。コンテキストパケットには、ストリーム識別子、サンプリングレート、データフォーマット、スケーリングパラメータ、およびデータパケットペイロードフォーマットが含まれます。これらのフィールドは、サンプルタイプ、アイテムサイズ、小数サイズ、チャネルタグ付け、およびベクトルサイズを記述し、これらによって各データパケット内でサンプルがどのようにパックされるかが定義されます。

  1. データパケットヘッダー

次に、各データパケットのヘッダーが読み取られ、ストリーム識別子を使用してパケットをアクティブなコンテキスト情報に関連付けます。

  1. データパケットのペイロード

サンプル値は、定義されたパッキング形式に従って展開されます。マルチチャネルストリームの場合、サンプルはコンテキストパケットで指定された順序でデインターリーブされます。

  1. コンテキストパラメータの適用

コンテキストパケットからのサンプリングレート、スケーリング、ゲイン情報が適用され、サンプルを時間的に配置して物理的な信号値を再構築します。

この順序付けは、以降のセクションで説明するパケットの構造とレイアウトにも反映されています。

パケット全体の構造

ギガビットストリーマーによって送信されるサンプルデータとストリームメタデータは、標準のイーサネット、IP、およびUDPヘッダー内にカプセル化されます。図3は、このカプセル化階層を示し、各パケットに関連するプロトコルオーバーヘッドを強調しています。

高速データストリーミングのためのイーサネットパケット構造

図3は、DIFIプロトコルスタックのパケット構造に準拠したMokuギガビットストリーマーのパケット構造を示しています。


イーサネットフレーム

イーサネットフレームは、リンク層における最外層のカプセル化を提供します。イーサネットフレームは、イーサネットフレームヘッダーと、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 Gigabit Streamerのレイアウトは、VITA-49.2コンテキストパケットクラス0x0001の構造に準拠しており、以下に詳細を示します。

高速データストリーミングのためのコンテキストパケット構造

図4 Moku Gigabit Streamerのコンテキストパケット構造


表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、標準フロー信号データパケットとほぼ一致しています。

図5 Mokuギガビットストリーマーのデータパケット構造。


表4 Mokuギガビットストリーマーのデータパケットフィールド定義

フィールド 詳細説明
パケット数 コンテキストパケットが送信されるたびに(16を法として)インクリメントされます。
ストリーム識別子 特定のストリームを示します。ストリーム識別子は、コンテキストパケットとデータパケットで一致する必要があります。
整数秒タイムスタンプ エポック(時刻ゼロ)からの経過秒数。エポックとは、機器が配備された、または最後にリセットされた時点を指します。

サンプルペイロードフォーマット

データペイロードには、コンテキストパケットとデータパケットヘッダーの両方で記述されたパラメータに従ってエンコードされたサンプル値のシーケンスが含まれます。ギガビットストリーマーは、デシメーションモードに応じて、16ビットまたは32ビット表現を使用して実数値サンプルを送信します。サンプルパッキングは決定論的であり、各データパケット内のサンプル数は、選択されたMTUとサンプルサイズによって決まります。

チャネルはパケットの順序でインターリーブされます。たとえば、2チャネルストリームでは、ペイロードは次のように配置されます。

CH1[0]、CH2[0]、CH1[1]、CH2[1]、…

このインターリーブ方式は、Gigabit Streamer+の4チャンネルストリームを含む、すべてのマルチチャンネル構成に適用されます。

Mokuからホストへのデータ送信

パケット構造とストリームフォーマットが定義されたので、このセクションでは、Mokuからホストコンピュータへのデータ送信の設定に焦点を当てます。ギガビットストリーマーは、同じストリーミングインターフェイス上での同時送受信をサポートしていますが、このセクションの設定手順では送信操作のみを説明し、受信設定については次のセクションで説明します。

送信モードでは、MokuはMokuアプリまたはAPIで設定された固定のネットワークおよびストリームパラメータを使用して、専用のSFPまたはQSFPリンク経由でサンプルデータをストリーミングします。以下の手順では、送信パスを設定し、ホストが受信データストリームを受信および解釈できるように準備する方法を説明します。

モク構成(送信)

送信する信号は、マルチインストゥルメントモード経由でルーティングすることも、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アドレスフィールドに、224.1.2.3などの目的のマルチキャストIPアドレスを入力して、ギガビットストリーマーを設定します。

最後に、ホストコンピュータから通常どおりデータを送信するが、宛先アドレスとして設定済みのマルチキャストIPアドレスを使用する。ギガビットストリーマーは、設定済みのインターフェース上で、このマルチキャストアドレス宛てに送信されたパケットを受信する。

ホストからのデータ送信

ホストからMokuへデータを送信する際、受信ストリームはパケットとデータ構造のセクションで説明されているパケット形式に従います。データは、コンテキストパケットとデータパケットの順序付きシーケンスとして配信され、これらがサンプルストリームを定義し、伝送します。

送信シーケンスは以下のとおりです。

  1. コンテキストパケット

送信はコンテキストパケットから開始され、このパケットはMokuが使用するストリーム構成を定義します。ホストからMokuへの送信の場合、Mokuは16ビットのサンプルデータを受け入れます。

  1. データパケット

コンテキストパケットの後には、同じストリーム識別子を使用するデータパケットが連続して送信されます。これらのパケットは、連続再生を維持するために、設定されたサンプルレートに一致する一定のレートで送信されます。

  1. パケットサイズ

データパケットは、設定された最大伝送単位に合わせて構築する必要があり、そうすることでペイロードのサイズが選択されたネットワーク設定と一致するようにする。

Mokuは、レート適応やリサンプリングを行わずに、固定サンプリングレートでパケット順に受信データを処理します。そのため、ホストアプリケーションは、データパケットを送信する際にレート制御またはスロットリングを適用し、送信レートが設定されたストリームレートと一致するようにする必要があります。安定したパケットタイミングを提供することで、ギガビットストリーマーは受信データをスムーズに処理し、下流の機器に影響を与える可能性のあるオーバーフローやアンダーフローを回避できます。

なお、Moku Gigabit Streamerの出力接続(補間ブロックと出力ポート間)は、Mokuアプリを介さずに、受信したコンテキストパケットの「ベクトルサイズ」に基づいて自動的に接続されます。この場合、Gigabit Streamerは、ベクトルサイズパラメータに基づいて、出力A、出力B、…といったように、指定された数のチャネルを接続します。

I/Q処理(DIFI互換性)

Moku Gigabit StreamerはVITA-49.2パケット構造に準拠しており、DIFIと密接に連携しています。複素ストリームのI成分とQ成分を2つの独立した実数値チャネルとして解釈することで、DIFIパケットを処理できます。複素ストリームを受信すると、I成分は自動的に出力Aに、Q成分は出力Bにルーティングされます。

受信データの分析

ギガビットストリーマーが有効なデータパケットの受信を開始すると、これらの出力はマルチインストゥルメントモードを介して他の計測器に接続され、検証および分析を行うことができます。

例えば、以下のように使用できます。

  • 受信波形の時間領域検査用オシロスコープ
  • リアルタイム周波数領域解析用スペクトラムアナライザ
  • 外部機器に接続するためのアナログ出力

利用可能なスロット数によっては、ギガビットストリーマーと、同時時間領域キャプチャ、スペクトルモニタリング、およびハードウェアインザループ動作を組み合わせることが可能です。

トラブルシューティング

このセクションでは、ギガビットストリーマーの設定または操作時に発生する可能性のある一般的な問題について概説し、それらを特定して解決するための具体的なチェック手順を示します。

リンクが表示されません

物理リンクがDOWNまたはLOWER_DOWNを報告している場合は、以下を確認してください。

  1. ケーブルとNICの互換性

ケーブルがサポートされているDACタイプであることを確認し、NICが選択したラインレートでパッシブDACを受け入れることを確認してください。

  1. FECミスマッチ(QSFPのみ)

QSFPの動作には FEC無効 ホストNIC上。

FECが無効になっていることを確認するには、以下を使用してください。

sudo ethtool --show-fec <interface>

  1. インターフェース状態

NICを起動する:

sudo ip link set dev <interface> up

リンクの状態を確認してください:

sudo ethtool <interface>

リンクのネゴシエーションができない場合は、NICのラインレート設定を見直し、マルチインストゥルメントモードでギガビットストリーマーが正しいスロットに配置されていることを確認してください。これは、特定のSFPポートとQSFPポートに対応しています。

ホストに到達しないパケット(送信経路)

Mokuが送信しているにもかかわらず、ホストがパケットを受信しない場合:

  1. IP/MACアドレスの設定が間違っています

IPアドレスとサブネットマスクは完全に一致している必要があり、MACアドレスも完全に一致している必要があります。

ホストは、MokuアプリでリモートUDPポートとして設定されているポートと同じポートでリッスンしている必要があります。

  1. MTUの不一致

ホスト側のMTUがMokuの設定値よりも小さい場合、ホストはデータパケットを受信できません。

  1. ファイアウォール/インターフェースバインディング

受信アプリケーションがデフォルトルートではなく、正しいインターフェースにバインドされていることを確認してください。

パケットがモク(受信経路)に到達しない

最も一般的な原因は、MokuがARPに応答しないためにネイバー解決ができないことです。

  1. 不完全なARP / ネイバーエントリ

近隣テーブルを確認してください:

ip neighbor | grep <moku-ip>

エントリが不完全な場合は、次のコマンドを実行して置き換えてください。

ip neighbor replace < moku_NIC_IP> lladdr <MOKU_MAC> dev <interface> nud permanent

SFPまたはQSFPケーブルを抜き差しした場合は、この手順を繰り返す必要があります。

  1. 目的地港が間違っています

ホストは、Mokuで定義されているローカルUDPポートにパケットを送信する必要があります。このフィールドが間違っている場合、パケットは警告なしに破棄されます。

  1. コンテキストパケットが正しくありません

出力ポートは、有効なコンテキストパケットが最初に到着したときにのみ接続されます。コンテキストパケット内のいずれかのフィールドが不正な形式である場合、Mokuアプリ(バージョン4.2以降)は解析エラーを報告し、対応する出力を有効にしません。

Wiresharkなどのパケット検査ツールを使用して、以下の点を確認してください。

    • コンテキストパケットが存在します
    • チャンネル数は「ベクトルサイズ」として正しく宣言されています
    • データ幅とサンプル形式は有効です
    • MTUは正しい
    • 不正なヘッダーフィールドはありません

歪んだ信号またはエイリアシングされた信号

Mokuへのストリーミング中に信号が歪んだり、エイリアシングが発生したりする場合は、以下の設定を確認してください。

  1. ホスト生成ストリームにおける誤ったデシメーション

ホストは、Contextパケットで宣言されたサンプリングレートに一致する必要があります。

  1. サンプルの梱包が不適切

2チャンネルの実数値ストリームの場合、サンプルはサンプルごとに以下の順序でインターリーブされます。

CH1[n]、CH2[n]、CH1[n+1]、CH2[n+1]、…

この順序を維持することで、各チャンネルのサンプルが正しく再構成されることが保証されます。サンプルが異なる順序でパックされている場合、階段状の波形、意図しない振幅変調、またはサンプルパターンの繰り返しなどの影響が見られる可能性があります。

  1. エンディアンが正しくありません

サンプルエンディアンは、マルチバイト値がどのように扱われるかに影響します。 データペイロード 解釈されます。Moku Gigabit Streamer は リトルエンディアン 送信経路と受信経路の両方において、ペイロードサンプルのバイト順序が正しくなければなりません。エンディアンが正しくない状態でペイロードを解釈すると、サンプルバイトが反転し、波形が著しく歪む可能性があります。

結論

ギガビットストリーマーは、Moku:Deltaと外部システム間の決定論的で高帯域幅のインターフェースを提供し、サンプル精度でデータを機器に直接転送したり、機器から外部システムに転送したりすることを可能にします。このガイドに記載されている設定手順に従うことで、ストリーミングインターフェースは、ホストベースのキャプチャ、リアルタイム再生、ハードウェア・イン・ザ・ループ・テストなど、幅広いワークフローをサポートできます。

このシステムは、複数の高速チャネルでの同時ストリーミングに対応しています。最大6つのチャネルを同時にストリーミングできます。75MHzのリアルタイム帯域幅で4つのチャネル、そして最大1.25GHzのリアルタイム帯域幅でさらに2つのチャネルをストリーミング可能です。これらの機能により、ギガビットストリーマーは、タイミングやスループットを損なうことなく、要求の厳しいデータ収集および信号注入環境に統合できます。

ギガビットストリーマーは、固定レートのUDPトランスポートパスを確立し、ネットワークパラメータを調整し、DIFIに準拠したVITA-49.2パケット構造を使用することで、決定論的なデータ取得と処理のための信頼性の高いエンドポイントを形成します。ストリームデータは、受信ストリームを中断または変更することなく、オシロスコープ、スペクトラムアナライザ、デジタル処理ブロック、アナログ出力など、複数の下流機器に同時にルーティングできます。

これらの基盤により、ギガビットストリーマーは、Moku:Deltaと、ネットワークストレージ、リアルタイムDSPパイプライン、自動検証プラットフォーム、ミックスドシグナルテストベッドなどの上位システムとのインターフェースとして機能します。ギガビットストリーマー(SFP)とギガビットストリーマー+(QSFP)の両方で同じ構成アプローチが適用されるため、設計は中程度の速度のリンクからプラットフォームがサポートする最高帯域幅モードまで拡張できます。

アプリケーションノートをダウンロード

Mokuをデモモードで試す

macOSとWindows用のMoku:アプリをダウンロードできます こちら.


よくある質問への回答

デバイスや機器に関する質問と回答は、 ナレッジベース .


Mokuユーザーとつながる

プログラムに参加する(英語) ユーザーフォーラム 新しい機能をリクエストしたり、サポートのヒントを共有したり、世界中のユーザー コミュニティとつながったりできます。

その他のアプリケーションノート

アプリケーションノートの一覧