VDIF/SUDP Data Transfer Software quick Startup Guide Ver.1.1 2011.9.12 M.Sekido 1. はじめに VDIF/SUDP のソフトウェアパッケージは VLBI の 大 容 量 データを 長 距 離 伝 送 するためのソフ トウェアである 以 下 に 述 べるようにデータフォーマットに VDIF を 使 用 し SUDP というプロト コルを 使 って 長 距 離 のデータ 伝 送 を 行 う ソースコードは C++で 書 かれており GCC などの 標 準 的 なコンパイラでコンパイル 可 能 である TCP/IP,UDP/IP のネットワーク 部 のコードには David Lapsley 氏 が 開 発 した vtp のクラスライブラリを 改 修 して 使 用 している 送 信 サーバ sdup_send2 と 受 信 サーバ sudp_recv3 は 外 部 から TCP/IP のコマンドを 受 けと り 送 信 受 信 モードの 設 定 や 送 信 受 信 の 開 始 停 止 などが 制 御 できる また 受 信 側 では VDIF, K5/VSSP32 のデータフォーマットで 記 録 を 行 う データ 伝 送 の 構 造 :UDP パケットのペイロード 先 頭 に 8 バイトのヘッダをつけ ヘッダには 4Byte の sequential number とパケットサイズを 含 む このヘッダ 情 報 により パケットの 重 複 や 損 失 を 計 測 することができる 以 下 この UDP/IP 上 の 伝 送 プロところルを SUDP(Simple UDP)と 呼 ぶことにする SUDP は 伝 送 プロトコルであり 受 信 側 でペイロード 部 分 だけを 抜 き 出 して 使 用 す る SUDP のペイロードには VLBI データを VDIF フォーマット[1]で 搭 載 する VDIF フォーマット は 時 刻 チャンネル 数 などのデータが 含 まれており 1パケットごとにデータの 取 得 時 刻 を 正 確 に 同 定 できる 2. ソースコード CVS レポジトリ: vsspfs1.nict.go.jp/cvs/vdif tar アーカイブの 場 所 :http://www3.nict.go.jp/w/w114/stsi/e-vlbi/vdif-sudp/ 3. インストール 手 順 (1)VDIF と vtp-1.0.hm のソースコードを tar ball (VDIFyyyymmdd.tgz)は cvs で 取 得 する 置 き 場 所 は オリジナルでは$(HOME)/PROJ/VLBI/e-VLBI/ 以 下 (2) cpp のライブラリ(cpp-lib.tgz)を$(HOME)/prog/cpp/ 以 下 にコピーする (3) ${HOME}/tool のディレクトリを 作 成 し path の 環 境 変 数 に 加 えておく (4) cd $(HOME)/PROJ/VLBI/e-VLBI/VDIF/app; make all; でバイナリファイルを 生 成 する make link で $(HOME)/tool/ にシンボリックリンクを 作 成 する 4. 使 いかた (1) 送 信 側 で(K5/VSI からデータを 取 得 しネット 送 信 するものとする ) sudp_send2 -R 200 -d VSI
としてサーバを 起 動 する それぞれのオプションの 意 味 は 以 下 のとおり -d VSI : K5/VSI からデータを 取 得 し 伝 送 するオプション -R 200: 伝 送 レートを 調 整 する 頻 度 (Hz) 200Hz で 調 整 を 行 う ( 注 1) ルート 以 外 のユーザがコンパイルした 直 後 は/dev/mem などルート 権 限 でなければアクセスできないファ イルへのアクセス 権 がないため エラーメッセージを 出 して 停 止 することがある この 場 合 は root で $(HOME)/PROJ/VLBI/e-VLBI/VDIF/app/chm.sh を 実 行 すると 必 要 なコマンドのパーミッションを 変 更 し ス ティッキイビットを 付 不 することで 一 般 ユーザが 使 えるようになる (2) 受 信 側 で sudp_recv3 -x Mk5Geo として 受 信 サーバを 起 動 する -x Mk5Geo : と 言 うオプションにより Mark5 の VSI データの ch1,ch8 の LSB データを K5/VSSP32 の 14,15ch にマッピングしなおす 機 能 がある ( 注 2) 送 信 サーバでこのオプションを 付 不 して 送 信 側 でチャンネル Mapping を 変 更 することも 可 能 であるが WettzellーTukuba 伝 送 の 場 合 には Wettzell に 設 置 している K5/VSI の PC の 性 能 が 十 分 でないためか(?) 受 信 側 でのパケットロスが 増 加 するので チャンネルの 並 べ 変 えは 受 信 側 で 行 うようにしている (3) 送 信 側 サーバに 対 して TCP(9902)で 以 下 の ASCII コマンドを 送 信 し データを 送 信 状 態 にする in2net=connetc:<target host>:9901; play_rate=data:256; mode=16:1:16; in2net=on; < 説 明 > 1 行 目 : 送 信 先 のホストとポートの 設 定 2 行 目 : 送 信 レートの 設 定 3 行 目 :データ 取 得 モード 16Msps 1bit 16ch を 指 定 4 行 目 : 送 信 開 始 ( 注 3)TCP/IP で ASCII 文 字 列 を 送 受 するツール(tcp-talk.pl)もパッケージに 含 まれている 詳 細 は 後 述 する (4) 受 信 側 サーバに 対 して TCP(9903)で 以 下 のコマンドを 送 信 すると 記 録 の 開 始 ができる data_out=multi:4; modegrp=0:16:1:4:0; modegrp=1:16:1:4:4; modegrp=2:16:1:4:8; modegrp=3:16:1:4:12; data_out=file0:<file group1>; data_out=file1:<file group2>;
data_out=file2:<file group3>; data_out=file3:<file group4>; in2net=on; < 説 明 > 1 行 目 :データ 出 力 先 が4つあることを 設 定 2 行 目 :group 0 は 16Msps/1bit/4ch のモードで 最 初 の 0ch 目 からの 4ch 3 行 目 :group 1 は 16Msps/1bit/4ch のモードで 最 初 の 4ch 目 からの 4ch 4 行 目 :group 2 は 16Msps/1bit/4ch のモードで 最 初 の 8ch 目 からの 4ch 5 行 目 :group 3 は 16Msps/1bit/4ch のモードで 最 初 の 12ch 目 からの 4ch 6 行 目 :group 0 の 出 力 ファイル 名 設 定 7 行 目 :group 1 の 出 力 ファイル 名 設 定 8 行 目 :group 2 の 出 力 ファイル 名 設 定 9 行 目 :group 3 の 出 力 ファイル 名 設 定 10 行 目 : 送 信 開 始 受 信 停 止 のコマンドは in2net=off; 5. 周 辺 ツール [sudp_recv2] sudp_send2 では VDIF のフレームパケットを SUDP の 短 いヘッダをつけて UDP/IP で 送 信 される sudp_recv2 はそのストリームを 受 信 するツールである (1) 使 い 方 その1: 受 信 テスト sudp_recv2 を 引 数 なしで 使 用 すると 受 信 される VDIF/SUDP のパケットからデ ータレートなどの 受 信 モードを 識 別 し 計 測 された 受 信 レートなどを 毎 秒 表 示 する (2) 使 い 方 その2: 記 録 テスト -o <output file> オプションを 付 けて 起 動 すると 受 信 データをファイルに 記 録 する フォ ーマットは VDIF,または VSSP32(デフォルト)であり -t <FMT>オプションで 指 定 する 記 録 する 時 間 の 長 さは l <sec>オプションで 指 定 する 実 行 例 ) sudp_recv2 t VDIF o /mnt/raid/test1.dat -l 30 <オプション 説 明 >(-h の 引 数 をつけて 起 動 すると 簡 単 な 使 いかたが 表 示 される ) -p <port>, Data receiving port number. default=9901 -o <file>[:<file2>..] Output to files for multiple out. -t <FMT>: Writing format, VDIF VSSP. (default:vssp32). -n <nch>, Number of channels (1 4) for output. default=4.
-g <group>[:<grp>...], Writing Group number of nch. 0,1,2.. -m <'xxmsps/xbit/xxch'>: Output Data mode -M <'xxmsps/xbit/xxch'>: Input Data mode -s <byte> Packet size (default=1500). -l <sec> length of receiving data(default=0 means endless). -v: verbose level, 0--4 (default -1: no logging). ------------------------------------------------------- If [-o <outfile>] is not specified, data is just receiving to memory and no output. [tcp-talk.pl] tcp/ip で ASCII 文 字 列 を 送 信 するツール tcp-talk.pl がパッケージに 含 まれており インスト ール 後 は $(HOME)/PROJ/VLBI/e-VLBI/VDIF/app/ にある 引 数 無 しで 実 行 すると 使 いかた が 表 示 される このツールを 使 って 一 つ 一 つコマンド 列 を 実 行 することもできる 送 信 側 の 制 御 は これで 十 分 であるが 受 信 側 は SCAN 毎 に 出 力 ファイル 名 などを 変 更 する 必 要 があり このまま では 丌 便 である スケジュールにしたがって 受 信 サーバをコントロールするツール autoobs-rmtrcv.pl もパッ ケージに 含 まれている [autoobs-rmtrcv.pl] これのツール 使 うためには perl-module と Term-ANSIScreen のモジュールをインストール する 必 要 がある $(HOME)prog/perl/module に perl-module をコピーし Term-ANSIScreen という perl module を CPAN から 取 得 しインストールする autoobs-rmtrcv.pl を 引 数 無 しで 実 行 すると 使 いかたが 表 示 される 実 行 例 を 以 下 に 示 す autoobs-rmtrcv.pl -skd ~/schedule/k10051.skd -st V -dir /cont1/k10051/wetz-onln -n 16 -host sakura.spacegeodesy.go.jp:9903 -mode 16:1:4 -exe <オプション 説 明 > -skd <schedule file> -st <Station ID>; # ファイル 名 の 先 頭 文 字 に 使 われる -dir <output dir> -n <nch> # トータルのチャンネル 数 -mode <mode> #K5/VSSP32 記 録 モード 16Msps/1bit/4ch -exe を 付 けない 場 合 設 定 だけを 行 って 記 録 開 始 コマンドを 発 行 しない [send-start.pl] sudp_send2 に TCP/IP でコマンドを 送 り 簡 易 にストリームの 送 信 を 行 うためのツール <host1>にて sudp_send2 を sudp_send2 d VSI -I 32Msps/2bit./16ch などとして 起 動 し host2 のポート 番 号 9903 に 16Msps/1bit/8ch で 送 信 させるものとする 実 行 例 ) send-start.pl host1:9902 host2:9903 16 1 8
[send-stop.pl] sudp_send2, sudp_recv3 などサーバとして TCP/IP で 制 御 を 受 けて 動 作 するものは in2net=off; により 送 信 受 信 を 停 止 します そのコマンド 送 信 を 行 います 実 行 例 ) send-stop.pl host1:9902 [rmt-recv-start.pl] sudp_recv3 に 対 して 記 録 モードの 設 定 と 開 始 のコマンドを 送 るツール 実 行 例 ) rmt-recv-start.pl -a sirius-a1:9903 -odir /mnt/raid -mode 16:1:16 0id O <オプション 説 明 > -a <host>[:<port>] ; 制 御 対 象 のホストとポート 番 号 (default=9903.) -id <ID> : Station ID, default = 'O'. -mode <Msps>:<bit>:<ch> : Recording mode, default = '16:1:16'. -odir <dir>: Output directory. -fn: File naming convention: (default 2) 1 : XDDDNNNN.dat (default) -1 : XDDDNNNN.#ch.dat 2 : siddddhhmmssg.dat -2 : siddddhhmmssg.#ch.dat 6. 参 考 文 献 [1] VLBI Data Interchange Format (VDIF) Specification http://www.vlbi.org/vsi/docs/vdif%20specification%20release%201.0%20ratified.p df