ptpd デーモン
目的
Precision Time Protocol (1588-2008) デーモン (ptpd) を開始します。
構文
/usr/sbin/ptpd [ -? ] [ -h ] [ -H ] [ -e setting ] [ -k ] [ -v ] [ -O ] [ -L ] [ -A ] [ -s ] [ -m ] [ -M ] [ -y ] [ -E ] [ -P ] [ -a ] [ -n ] [ -C ] [ -V ] [ -c file ] [ -R dir ] [ -f file ] [ -S file ] [ -d domain_number ] [ -u IP_address ] [ -r number ] [ -l file ] [ -i dev ]
説明
ptpd デーモンは、IEEE 1588-2008 標準で定義された Precision Time Protocol (PTP) バージョン 2 を実装します。PTP は、LAN で接続されたコンピューターの正確な時間調整を行います。このデーモンは、システム・クロックを操作し、下の方のポート番号を使用するために、root 権限を使用して実行する必要があります。ptpd デーモンは、IPv4 マルチキャスト、ユニキャスト、ハイブリッド・モード (混合)、およびイーサネット・モードの操作をサポートします。ptpd デーモンは、ハードウェアの支援がなくても、マイクロ秒以下のレベルのタイミング精度を達成し維持できます。
/etc/ptpd2.conf 構成ファイル (デフォルト・ファイル) を使用して、ptpd デーモンを構成します。ショート (-x) フラグとロング (--xxxxx) フラグは、デーモンの操作に対する基本制御を提供し、基本 PTP プロトコル設定のみを提供します。その他の設定は、-h、-H、および -e の各フラグで表示できます。
ptpd デーモンは、システム・リソース・コントローラー (SRC) からも、コマンド・ラインからも開始できます。
ptpd デーモンを操作するには、次の SRC コマンドを使用します。
- startsrc
- サブシステム、サブシステムのグループ、 あるいはサブサーバーを開始します。
- stopsrc
- サブシステム、サブシステムのグループ、またはサブサーバーを終了します。
- refresh
- サブシステム、またはサブシステムのグループに、再度、適切な構成ファイルを読み取らせます。
- lssrc
- サブシステム、サブシステムのグループ、 あるいはサブサーバーのトレースの状況を取得します。
- スレーブ・デバイス
- ptpd デーモンを実行しているシステム。master デバイスからのコマンドを受け入れ、システム時刻を同期化して、関連付けられた境界クロック時間に一致させます。
- マスター・デバイス
- 境界クロックに結合されているデバイス。同じネットワークにある 1 つ以上の PTP スレーブ・デバイスのセットと時刻を同期化します。
- グランドマスター・デバイス
- Best Master Clock アルゴリズムにより提供された最良のクロックを持つマスター・デバイス。これは、他のすべてのマスター・デバイス (境界クロックとも呼ばれる) を同期化し、次に、マスター・デバイスが関連付けられたすべてのスレーブ・デバイスを更新して同期化します。グランドマスター・クロックは、ベスト・マスター・クロックまたはベスト・クロックとも呼ばれます。
フラグ
ショート・フラグ | ロング・フラグ | 説明 |
---|---|---|
-a | --delay-override | スレーブ状態のマスターによって告知された遅延要求間隔をオーバーライドします。このフラグは、ptpengine 属性を次の設定値に設定します。
|
-A | --auto-lock | 事前設定されたまたはポート・モード固有のロック・ファイル名を使用します。このフラグは、ptpd デーモンの複数インスタンスを実行する場合に便利です。 |
-c file | --config-file file | 構成ファイルのパスを指定します。 |
-C | --foreground | フォアグラウンドで実行するコマンドを指定します。このフラグは、global 属性を次のように設定します。
注: ptpd デーモンが SRC から開始されている場合、このオプションは無視されます。
|
-d domain_number | --domain domain_number | 所属する PTP ドメイン番号を指定します。このフラグは、ptpengine 属性を次のように設定します。
|
-D [DD] | --debug | デバッグ・レベルを指定します。このフラグは、global 属性を次のように設定します。 デバッグ・レベル情報を増やすには、複数インスタンスを指定できます。例えば、-D オプションは、最小デバッグ情報を指定します。-DD オプションは、詳細デバッグ情報を指定します。-DDD オプションは、最大デバッグ情報を指定します。 |
-e setting | --explain setting | 単一の設定のヘルプ情報を表示します。このフラグは、section 属性を次のように設定します。
|
-E | --e2e | エンドツーエンド遅延検出を指定します。このフラグは、ptpengine 属性を次のように設定します。
|
-f file | --log-file file | ログ・ファイルへのパスを指定します。このフラグは、global 属性を次のように設定します。
|
-h | --help | ヘルプ画面を表示します。 |
-H | --long-help | すべての設定および動作の詳細ヘルプを表示します。 |
-i dev | --interface dev | ptpd 実装に使用するインターフェースを指定します。例えば、en0 になります。このフラグは、ptpengine 属性を次のように設定します。
|
-k | --check-config | PTP 構成と出口を検査します。構成が正しい場合は 0 を返します。 |
-l file | --lockfile file | ロック・ファイルのパスを指定します。このフラグは、global 属性を次のように設定します。
|
-L | --ignore-lock | ロック・ファイルの検査とロッキングをスキップします。このフラグは、global 属性を次のように設定します。
|
-m | --masterslave | 完全な IEEE 1588 実装 (グランドマスター (ベスト・マスター) でない場合、マスター、スレーブ) を指定します。
このフラグは、ptpengine 属性を次のように設定します。
|
-M | --masteronly | マスターのみモード (ベスト GM でない場合、パッシブ) を指定します。このフラグは、ptpengine 属性を次のように設定します。
|
-n | --clock:no_adjust | クロックを調整しないことを指定します。このフラグは、clock 属性を次のように設定します。
|
-O | --default-config | デフォルト構成と出口を表示します。この出力は、構成ファイルとして使用できます。 |
-p | --print-lockfile | ロック・ファイルのパスと出口を出力します。このフラグは、init スクリプトを自動ロック・ファイルと組み合わせるのに便利です。 |
-P | --p2p | ピアツーピア遅延検出を指定します。このフラグは、ptpengine 属性を次のように設定します。
|
-r number | --delay-interval number | 遅延要求メッセージ (ログ 2) の間隔を指定します。 このフラグは、ptpengine 属性を次のように設定します。
|
-R dir | --lock-directory dir | ロック・ファイルを保管するディレクトリーを指定します。このフラグは、global 属性を次のように設定します。
|
-S file | --statistics-file file | 統計ファイルのパスを指定します。このフラグは、global 属性を次のように設定します。
|
-s | --slaveonly | スレーブのみモードをオンにします。このフラグは、ptpengine 属性を次のように設定します。
|
-u | --unicast | ユニキャスト・モード (ユニキャスト・ネゴシエーションなし) を指定し、すべてのメッセージを IP に送信します。このフラグは、ptpengine 属性を次のように設定します。
|
-v | --version | バージョン・ストリングと出口を出力します。 |
-V | --verbose | フォアグラウンドで実行して、すべてのメッセージを標準出力に記録するコマンドを指定します。このフラグは、global 属性を次のように設定します。
注: ptpd デーモンが SRC から開始されている場合、このオプションは無視されます。
|
-y | --hybrid | ハイブリッド・モード (マルチキャストとユニキャストの操作の混合) を指定します。同期と告知にマルチキャストを使用し、遅延要求と応答にユニキャストを使用します。このフラグは、ptpengine 属性を次のように設定します。
|
PTP デーモンのポート状態
ptpd ポートには、以下の状態があります。
状態 | 説明 |
---|---|
init |
初期化中 |
flt |
障害 |
lstn_init |
listen 中 (初回) |
lstn_reset |
listen 中 (後続のリセット) |
pass |
パッシブ (ベスト・マスター以外、告知以外) |
uncl |
未調整 |
slv |
スレーブ |
pmst |
事前マスター |
mst |
マスター (アクティブ) |
dsbl |
使用不可 |
? (unk) |
不明な状態 |
統計ログ・ファイルのフォーマット
- ptpengine:log_statistics
- 各受信 PTP パケットのログイン情報を更新します。
- ptpengine:statistics_file
- 統計ログ・ファイルのロケーション・パスを指定します。注: このオプションは、統計の収集を使用可能にします。
統計ロギングを使用可能にすると、ptpd スレーブは、同期および遅延応答メッセージを受信したときにクロック同期情報をログに記録します。ptpd デーモンがログを開始またはフラッシュすると、コメント行 (# で始まる) がログに記録され、すべての列の名前が入ります。ログ・ファイルは comma-separated values (CSV) フォーマットで、統計ツールや表計算ソフトウェア・パッケージに簡単にインポートして、分析やグラフの作成が行えます。
ptpd デーモンを長期間、高いメッセージ送信率で実行すると、ログ・ファイルのサイズが増えます。ログに記録されるメッセージの数を減らすには、global:statistics_log_interval
設定を使用して、ログ出力を構成済み間隔当たり 1 メッセージに制限できます。統計ログ・ファイルのサイズと最大数も制御できます。
統計ログ・ファイル内の列の説明は、次のとおりです。
- Timestamp
- メッセージを受信した時刻。日時の情報は、
global:statistics_timestamp_format
設定に応じて、テキスト、UNIX タイム・スタンプ、または両方の形式 (この場合は、フィールドが追加されます) として表されます。ログ・ファイルをプロット作成ソフトウェアにインポートするときに、そのソフトウェアが UNIX 時刻を認識できる場合は、タイム・スタンプの形式をunix
またはboth
に設定してください。一部のソフトウェアは、テキストから日時を変換する際に、秒の小数部分を解釈しないからです。 - State
- ポートの状態。各種のポート状態について詳しくは、『PTP デーモンのポート状態』を参照してください。
- Clock ID
- IEEE 1588 標準で定義された、現行のベスト・マスターのポート ID。ローカル・クロックがベスト・マスターである場合、この ID は、ローカル・クロックの ID です。このパラメーターは、
clock_id
またはport
(ホスト) として表示されます。ポートは、PTP クロック・ポート番号であり、User Datagram Protocol (UDP) ポート番号ではありません。クロック ID は、MAC アドレスの中央に0xfffe
を挿入して 48 ビット MAC アドレスから変換された、Extended Unique Identifier (EUI)-64 64 ビット ID です。 - One-way delay
- スレーブ状態にある ptpd デーモンが遅延要求と遅延応答のメッセージ交換から計算した、片方向遅延 (または、平均パス遅延) の現行値 (秒単位) です。注: この値がゼロのままの場合は、遅延応答メッセージが受信されていないことを意味し、ネットワーク問題に原因がある可能性があります。
- Offset from master
- マスター・デバイスからの現行のオフセット値 (秒単位)。これは、スレーブ状態にある PTP エンジンのメイン出力です。この値は、クロック・サーボ・アルゴリズムでのクロック修正のための入力となります。 この値は通常、スレーブ・デバイスのパフォーマンスの見積もり時に測定されます。
- Slave to master
- 遅延要求と遅延応答のメッセージ交換から抽出された中間オフセット値 (秒単位)。この値は、片方向遅延の計算に使用されます。最後の値がフィルターによってリジェクトされた場合、その前の値がログ・ファイルに表示されます。遅延応答メッセージを受信しなかった場合、この値はゼロ (0) です。
- Master to slave
- 同期メッセージから抽出された中間オフセット値 (秒単位)。この値は、マスター・デバイスからのオフセット値の計算に使用されます。最後の値がフィルターによってリジェクトされた場合、その前の値がログ・ファイルに表示されます。
- Observed drift
- クロック制御比例積分 (PI) サーボ・モデルの統合アキュムレーターによって測定された、スレーブ・クロックとマスター・クロックの間の周波数の差違。クロック・オフセット値が安定すると、この値が安定するので、この値はクロックの安定度を検出するために使用されます。
- Last packet received
- このフィールドは、最後に受信したメッセージを表示します。同期メッセージの場合は S を表示し、遅延応答メッセージの場合は D を表示します。スレーブ・デバイスのログに D 項目がない場合は、ネットワーク問題のためにスレーブ・デバイスが遅延応答メッセージを受け取っていないことを意味しています。
- One-way delay mean
- 最後のサンプリング・ウィンドウについて計算された片方向遅延の平均。
- One-way delay std dev
- 最後のサンプリング・ウィンドウについて計算された片方向遅延の標準偏差。
- Offset from master mean
- 最後のサンプリング・ウィンドウについて計算されたマスター平均からのオフセット。
- Offset from master std dev
- 最後のサンプリング・ウィンドウについて計算されたマスター標準偏差からのオフセット。
- Observed drift mean
- 最後のサンプリング・ウィンドウについて計算された観測ドリフトまたはローカル・クロック周波数調整の平均
- Observed drift std dev
- 最後のサンプリング・ウィンドウについて計算された観測ドリフトまたはローカル・クロック周波数調整の標準偏差。低い値は、クロックがあまり積極的に制御されていないことを示します。したがって、値がより安定しています。
global:statistics_update_interval
設定を使用して制御されます。シグナルの処理
ptpd デーモンは、以下のシグナルを処理します。
項目 | 説明 |
---|---|
SIGHUP
|
構成ファイルを再ロードし (デーモンによって使用される場合)、ログ・ファイルを再オープンします。SRC の refresh サブコマンドは同じタスクを実行します。 |
SIGUSR1
|
サブシステムがスレーブ状態にある場合、ptpd デーモンは強制的にクロックをマスター値から現行オフセット値にステップさせます。 |
SIGUSR2
|
すべての PTP プロトコル・カウンターを現行ログ・ターゲットにダンプします (そして、ptpengine:sigusr2_clears_counters 属性が設定されている場合は、カウンターをクリアします)。 |
SIGINT|SIGTERM |
ログ・ファイルとその他のオープン・ファイルを閉じます。ロック・ファイルもクリーンアップして、終了します。 |
SIGKILL |
非クリーン終了を強制します。 |
終了状況
終了すると、ptpd デーモンは正常時には 0 を返します。これは、デーモン・モードで正常に開始したか、クリーンに終了したかのいずれかです。-k (--check-config) オプションが使用されており、構成が正しかった場合も、値 0 が返されます。エラー時には、ゼロ以外の終了コードが返されます。ptpd デーモンが root 以外のユーザーによって開始された場合は、値 127 が返されます。ロック・ファイル・エラー時、および ptpd デーモンをデーモンとして開始できない場合は、値 3 が返されます。デーモンの開始時のメモリー割り振りエラーでは、値 2 が返されます。構成エラー、ヘルプ・モードまたはパラメーターなしでの ptpd デーモンの実行、サブシステムの自動シャットダウン、ネットワーク始動エラーなど、その他のすべてのエラー条件では、値 1 が返されます。
例
- SRC で ptpd デーモンを開始するには、次のコマンドを入力します。
startsrc -s ptpd
- SRC で ptpd デーモンを停止するには、次のコマンドを入力します。
stopsrc -s ptpd
- SRC で ptpd デーモンをリフレッシュするには、次のコマンドを入力します。
ptpd デーモンは構成ファイルを再ロードし (デーモンによって使用される場合)、ログ・ファイルを再オープンします。refresh -s ptpd
- /etc/ptpd2.conf パス内の構成ファイルが正しく構成されているかどうかを確認するには、次のコマンドを入力します。
ptpd -k
- 単一の設定の意味を表示するには、次のコマンドを入力します。
この出力は、ptpd -e ptpengine:interface
ptpengine:interface
設定の意味を説明します。
ファイル
項目 | 説明 |
---|---|
/etc/ptpd2.conf | ptpd デーモン構成ファイルのデフォルト・パス。 |
/usr/samples/tcpip/ptpd2/ptpd2.conf | ptpd2.conf 構成ファイルのサンプル・ファイル。 |