RELEASE NOTES
PSPacer version 1.2
							April 17, 2006

PSPacer は,Linux 上で動作するソフトウェアによる精密なペーシング機構です.
本ソフトウェアは,産業技術総合研究所により開発されました.なお,本ソフト
ウェアの開発の一部は,文部科学省「経済活性化のための重点技術開発プロジェ
クト」の一環として実施している超高速コンピュータ網形成プロジェクト(NAREGI:
National Research Grid Initiative)により行われました.
PSPacer は,GNU GPLライセンスのもとで公開されています.

より詳細な情報はプロジェクトページ http://www.gridmpi.org/ を参照してください.

===============================================================================

PSPacer とは何か?

PSPacer は,従来専用ハードウェアが必要だった精密なネットワーク帯域制御,
トラヒック平滑化をソフトウェアのみで実現します.これにより効率のよい遠距離
広帯域通信,高品質なストリーム配信が可能になります.
本ソフトウェアは,Linux ローダブルカーネルモジュールとして実装されています.
また,tc(8) コマンドから制御可能なクラスフル qdisc モジュールであり,クラスごと
に精密なペーシングを実現します.PSPacer の詳細については,パッケージに含まれて
いる論文「Design and Evaluation of Precise Software Pacing Mechanisms for
Fast Long-Distance Networks」を参照してください.

===============================================================================

配布物に含まれるファイル

LICENSE		- GPL ライセンス
Makefile	- Makefile
README		- 本ファイルの英語版
README.jp	- 本ファイル
ChangeLog	- ChangeLog
doc/		- ドキュメント(利用ガイド,論文)
kernel/		- カーネルモジュール
man/		- man ページ
scripts/	- サンプルテストスクリプト
tc/		- tc(8) 用の共有ライブラリ
pspd/		- PSPacer コントロールデーモン

===============================================================================

制限事項

(1) PSPacer は,システムの最大送信帯域に占める目標帯域の割合にしたがって,帯域
制御とバーストの平滑化を行います.

したがって,精密なペーシングを実現するためには,システム(コンピュータ,ネット
ワークインタフェース,オペレーティングシステム)は最大転送レート(つまり 1000BASE
であればギガビット/秒,100BASE であれば 100 メガビット/秒)でパケットを送信
できる必要があります.

例えば,ギガビットイーサネットワークインタフェースを 33MHz/32bit PCI バスに
よって接続している場合,ボトルネックは PCI バスになり,システムはギガビット
/秒のレートでパケットを送信することはできません.この場合,qdisc の設定時に,
次のように "rate" パラメータを使って,最大送信帯域を明示的に指定することが
できます.

	# /sbin/tc qdisc add ... psp ... rate 700mbit
	                                 ^^^^^^^^^^^^
しかし,この場合,PCI バスの振る舞いが十分安定しないので,出力される
トラフィックは精密にはならないでしょう.

したがって,ギガビットイーサネットのトラヒックを制御したいのであれば,ネット
ワークインタフェースの接続に PCI-X,66MHz/64bit PCI や CSA を使うことを
お薦めします.また,出力トラヒックの合計帯域が 100Mbps よりも少ない場合は,
ネットワークインタフェースを 100BASE として使うことで,精密なペーシングを
得ることができます.

同様な理由から,PC と PSPacer を接続するエッヂスイッチとして,共有スイッチ
(ダムハブ)を使うことは避けてください.

(2) PSPacer はパケット間のギャップとして IEEE 802.3x PAUSE フレームを使います.
したがって,スイッチ/ルータから接続されたシステムへの送信を停止するために,
PAUSE フレームを使うことはできません.
予期しない振る舞いを避けるためにも,スイッチ(から PCPacer が動作している PC へ)
の IEEE 802.3 x フロー制御を無効に設定することをお薦めします.

===============================================================================

コンパイル&インストール方法

#1: バイナリインストール (FedoraCore 4 のみ)

	- RPM パッケージのダウンロード

	- インストール

	  # rpm -ivh pspacer-<version>.i386.rpm

#2: ソースコードからインストール

コンパイルには,次のソースコードが必要になります.

	- Linux カーネル 2.4.x もしくは 2.6.x
	- iproute2

[注意] iproute2 は,カーネルバージョンに強く依存しているため,適切な組合せを
使う必要があります.我々がチェックした組合せを「テスト環境」に記述したので,
参照してください.

	- iproute2 tarball の展開:

	  $ cd /opt
	  $ wget http://developer.osdl.org/dev/iproute2/download/ \
	    iproute2-<version>.tar.gz
	  $ tar zxvf iproute2-<version>.tar.gz
	  $ ln -s iproute2-<version> iproute2

	- PSPacer tarball の展開:

	  $ tar zxvf pspacer-<version>.tar.gz

	- make & install:

	  $ cd pspacer-<version>
	  <使用する環境にあわせて tc/Makefile.inc を編集してください>
	  $ make
	  $ su
	  # make install

===============================================================================

簡単な使用例

	- qdisc の設定

	  (PSPacer qdisc をルート qdisc として追加します)
	  # /sbin/tc qdisc add dev eth0 root handle 1: psp default 1
	  (ターゲットレートが 500 Mbps のクラスを追加します)
	  # /sbin/tc class add dev eth0 parent 1: classid 1:1 psp rate 500mbit
	  (PFIFO qdisc をサブ qdisc として追加します)
	  # /sbin/tc qdisc add dev eth0 parent 1:1 handle 10: pfifo

	- iperf の実行

	  $ iperf -c <サーバホスト> -i 10 -t 60
	------------------------------------------------------------
	Client connecting to XXXX, TCP port 5122
	TCP window size: 16.0 KByte (default)
	------------------------------------------------------------
	[  3] local 192.168.1.1 port 46457 connected with 192.168.1.2 port 5122
	[  3]  0.0-10.0 sec    567 MBytes    476 Mbits/sec
	[  3] 10.0-20.0 sec    567 MBytes    476 Mbits/sec
		:

	- qdisc の削除

	  (PFIFO サブ qdisc の削除)
	  # /sbin/tc qdisc del dev eth0 parent 1:1 handle 10:
	  (PSPacer クラスの削除)
	  # /sbin/tc class del dev eth0 parent 1: classid 1:1
	  (PSPacer qdisc の削除)
	  # /sbin/tc qdisc del dev eth0 root handle 1:
	  (PSPacer モジュールの削除)
	  # /sbin/rmmod sch_psp

より詳細な情報は,利用ガイド(doc/usage.en.pdf),または man ページを参照して
ください.

===============================================================================

テスト環境

本ソフトウェアは次に示す環境で動作確認を行いました.

	* Linux ディストリビューション:
		o RedHat Linux 9 (kernel 2.4.26 + iproute ss010824)
		o FedoraCore 1 (kernel 2.4.30 + iproute ss040831)
		o FedoraCore 3 (kernel 2.6.9 + iproute ss040831)
		o FedoraCore 3 (kernel 2.6.11 + iproute ss050330)
		o FedoraCore 3 (kernel 2.6.13 + iproute ss040831)
		o FedoraCore 4 (kernel 2.6.11 + iproute ss050314)
		o SUSE SLES 8.1 AMD64 (kernel 2.4.21 + iproute ss020116)
		o Debian GNU/Linux 3.1 (kernel 2.6.8 + iproute ss041019)
		o Debian GNU/Linux sid (kernel 2.6.12.2 + iproute ss041019)

	* ネットワークインタフェースカード:
		o Intel PRO/1000 (PCI-X, CSA)
		o Intel PRO/100
		o Broadcom BCM5704 (PCI-X)