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 デーモンは、Network Time Protocol (NTP) および Simple Network Management Protocol (SNMP) 関連の機能をサポートしません。
ptpd デーモンでは、以下の用語を使用します。
スレーブ・デバイス
ptpd デーモンを実行しているシステム。master デバイスからのコマンドを受け入れ、システム時刻を同期化して、関連付けられた境界クロック時間に一致させます。
マスター・デバイス
境界クロックに結合されているデバイス。同じネットワークにある 1 つ以上の PTP スレーブ・デバイスのセットと時刻を同期化します。
グランドマスター・デバイス
Best Master Clock アルゴリズムにより提供された最良のクロックを持つマスター・デバイス。これは、他のすべてのマスター・デバイス (境界クロックとも呼ばれる) を同期化し、次に、マスター・デバイスが関連付けられたすべてのスレーブ・デバイスを更新して同期化します。グランドマスター・クロックは、ベスト・マスター・クロックまたはベスト・クロックとも呼ばれます。

フラグ

ショート・フラグ ロング・フラグ 説明
-a --delay-override スレーブ状態のマスターによって告知された遅延要求間隔をオーバーライドします。このフラグは、ptpengine 属性を次の設定値に設定します。
ptpengine:log_delayreq_override
-A --auto-lock 事前設定されたまたはポート・モード固有のロック・ファイル名を使用します。このフラグは、ptpd デーモンの複数インスタンスを実行する場合に便利です。
-c file --config-file file 構成ファイルのパスを指定します。
-C --foreground フォアグラウンドで実行するコマンドを指定します。このフラグは、global 属性を次のように設定します。
global:foreground=Y
注: ptpd デーモンが SRC から開始されている場合、このオプションは無視されます。
-d domain_number --domain domain_number 所属する PTP ドメイン番号を指定します。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:domain
-D [DD] --debug デバッグ・レベルを指定します。このフラグは、global 属性を次のように設定します。
global:debug_level
デバッグ・レベル情報を増やすには、複数インスタンスを指定できます。例えば、-D オプションは、最小デバッグ情報を指定します。-DD オプションは、詳細デバッグ情報を指定します。-DDD オプションは、最大デバッグ情報を指定します。
-e setting --explain setting 単一の設定のヘルプ情報を表示します。このフラグは、section 属性を次のように設定します。
section:key
-E --e2e エンドツーエンド遅延検出を指定します。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:delay_mechanism=E2E
-f file --log-file file ログ・ファイルへのパスを指定します。このフラグは、global 属性を次のように設定します。
global:logfile
-h --help ヘルプ画面を表示します。
-H --long-help すべての設定および動作の詳細ヘルプを表示します。
-i dev --interface dev ptpd 実装に使用するインターフェースを指定します。例えば、en0 になります。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:interface
-k --check-config PTP 構成と出口を検査します。構成が正しい場合は 0 を返します。
-l file --lockfile file ロック・ファイルのパスを指定します。このフラグは、global 属性を次のように設定します。
global:lock_file
-L --ignore-lock ロック・ファイルの検査とロッキングをスキップします。このフラグは、global 属性を次のように設定します。
global:ignore_lock
-m --masterslave 完全な IEEE 1588 実装 (グランドマスター (ベスト・マスター) でない場合、マスター、スレーブ) を指定します。 このフラグは、ptpengine 属性を次のように設定します。
ptpengine:preset=masterslave
-M --masteronly マスターのみモード (ベスト GM でない場合、パッシブ) を指定します。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:preset=masteronly
-n --clock:no_adjust クロックを調整しないことを指定します。このフラグは、clock 属性を次のように設定します。
clock:no_adjust
-O --default-config デフォルト構成と出口を表示します。この出力は、構成ファイルとして使用できます。
-p --print-lockfile ロック・ファイルのパスと出口を出力します。このフラグは、init スクリプトを自動ロック・ファイルと組み合わせるのに便利です。
-P --p2p ピアツーピア遅延検出を指定します。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:delay_mechanism=P2P
-r number --delay-interval number 遅延要求メッセージ (ログ 2) の間隔を指定します。 このフラグは、ptpengine 属性を次のように設定します。
ptpengine:log_delayreq_interval
-R dir --lock-directory dir ロック・ファイルを保管するディレクトリーを指定します。このフラグは、global 属性を次のように設定します。
global:lock_directory
-S file --statistics-file file 統計ファイルのパスを指定します。このフラグは、global 属性を次のように設定します。
global:statistics_file
-s --slaveonly スレーブのみモードをオンにします。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:preset=slaveonly
-u --unicast ユニキャスト・モード (ユニキャスト・ネゴシエーションなし) を指定し、すべてのメッセージを IP に送信します。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:ip_mode=unicast + ptpengine:unicast_address
-v --version バージョン・ストリングと出口を出力します。
-V --verbose フォアグラウンドで実行して、すべてのメッセージを標準出力に記録するコマンドを指定します。このフラグは、global 属性を次のように設定します。
global:verbose_foreground=Y
注: ptpd デーモンが SRC から開始されている場合、このオプションは無視されます。
-y --hybrid ハイブリッド・モード (マルチキャストとユニキャストの操作の混合) を指定します。同期と告知にマルチキャストを使用し、遅延要求と応答にユニキャストを使用します。このフラグは、ptpengine 属性を次のように設定します。
ptpengine:ip_mode=hybrid

PTP デーモンのポート状態

ptpd ポートには、以下の状態があります。

状態 説明
init 初期化中
flt 障害
lstn_init listen 中 (初回)
lstn_reset listen 中 (後続のリセット)
pass パッシブ (ベスト・マスター以外、告知以外)
uncl 未調整
slv スレーブ
pmst 事前マスター
mst マスター (アクティブ)
dsbl 使用不可
? (unk) 不明な状態

統計ログ・ファイルのフォーマット

ptpd 統計ログを使用可能にすると、以下のオプションが選択可能です。
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
最後のサンプリング・ウィンドウについて計算された観測ドリフトまたはローカル・クロック周波数調整の標準偏差。低い値は、クロックがあまり積極的に制御されていないことを示します。したがって、値がより安定しています。
注: すべての統計測定 (平均および標準偏差) は、--enable-statistics フラグを使用して ptpd デーモンが作成されていた場合にのみ、計算されて表示されます。サンプリング期間の所要時間は、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 が返されます。

  1. SRC で ptpd デーモンを開始するには、次のコマンドを入力します。
    startsrc -s ptpd
  2. SRC で ptpd デーモンを停止するには、次のコマンドを入力します。
    stopsrc -s ptpd
  3. SRC で ptpd デーモンをリフレッシュするには、次のコマンドを入力します。
    refresh -s ptpd
    ptpd デーモンは構成ファイルを再ロードし (デーモンによって使用される場合)、ログ・ファイルを再オープンします。
  4. /etc/ptpd2.conf パス内の構成ファイルが正しく構成されているかどうかを確認するには、次のコマンドを入力します。
    ptpd -k
  5. 単一の設定の意味を表示するには、次のコマンドを入力します。
    ptpd -e ptpengine:interface
    この出力は、ptpengine:interface 設定の意味を説明します。

ファイル

項目 説明
/etc/ptpd2.conf ptpd デーモン構成ファイルのデフォルト・パス。
/usr/samples/tcpip/ptpd2/ptpd2.conf ptpd2.conf 構成ファイルのサンプル・ファイル。