ptpd デーモン
目的
Precision Time Protocol (1588-2008) デーモン (ptpd) を開始します。
構文
/usr/sbin/ptpd[ -?] [ '-h] [ '-H] [ '-e 設定] [ '-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 ファイル | --config-file ファイル | 構成ファイルのパスを指定します。 |
| -C | --foreground | フォアグラウンドで実行するコマンドを指定します。 このフラグは、global 属性を次のように設定します。注: ptpd デーモンが SRC から開始された場合、このオプションは無視されます。
|
| -d ドメイン番号 (domain_number) | --domain ドメイン番号 (domain_number) | 所属する PTP ドメイン番号を指定します。 このフラグは、ptpengine 属性を次のように設定します。 |
| -D [DD] | --debug | デバッグ・レベルを指定します。 このフラグは、global 属性を次のように設定します。デバッグ・レベル情報を増やすには、複数インスタンスを指定できます。 例えば、-D オプションは、最小デバッグ情報を指定します。 -DD オプションは、詳細デバッグ情報を指定します。 -DDD オプションは、最大デバッグ情報を指定します。 |
| -e 設定 | --explain 設定 | 単一の設定のヘルプ情報を表示します。 このフラグは、section 属性を次のように設定します。 |
| -E | --e2e | エンドツーエンド遅延検出を指定します。 このフラグは、ptpengine 属性を次のように設定します。 |
| -f ファイル | --log-file ファイル | ログ・ファイルへのパスを指定します。 このフラグは、global 属性を次のように設定します。 |
| -h | --help | ヘルプ画面を表示します。 |
| -H | --long-help | すべての設定および動作の詳細ヘルプを表示します。 |
| -i 開発 | --interface 開発 | ptpd 実装に使用するインターフェースを指定します。 例えば、en0 などです。 このフラグは、ptpengine 属性を次のように設定します。 |
| -k | --check-config | PTP 構成と出口を検査します。 構成が正しい場合は 0 を返します。 |
| -l ファイル | --lockfile ファイル | ロック・ファイルのパスを指定します。 このフラグは、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 番号 | --delay-interval 番号 | 遅延要求メッセージ (ログ 2) の間隔を指定します。 このフラグは、ptpengine 属性を次のように設定します。 |
| -R ディレクトリー | --lock-directory ディレクトリー | ロック・ファイルを保管するディレクトリーを指定します。 このフラグは、global 属性を次のように設定します。 |
| -S ファイル | --statistics-file ファイル | 統計ファイルのパスを指定します。 このフラグは、global 属性を次のように設定します。 |
| -s | --slaveonly | スレーブのみモードをオンにします。 このフラグは、ptpengine 属性を次のように設定します。 |
| -u | --unicast | ユニキャスト・モード (ユニキャスト・ネゴシエーションなし) を指定し、すべてのメッセージを IP に送信します。 このフラグは、ptpengine 属性を次のように設定します。 |
| -v | --version | バージョン・ストリングと出口を出力します。 |
| -V | --verbose | フォアグラウンドで実行して、すべてのメッセージを標準出力に記録するコマンドを指定します。 このフラグは、global 属性を次のように設定します。注: ptpd デーモンが SRC から開始された場合、このオプションは無視されます。
|
| -y | --hybrid | ハイブリッド・モード (マルチキャストとユニキャストの操作の混合) を指定します。 同期と告知にマルチキャストを使用し、遅延要求と応答にユニキャストを使用します。 このフラグは、ptpengine 属性を次のように設定します。 |
PTP デーモンのポート状態
ptpd ポートには、以下の状態があります。
| State | 説明 |
|---|---|
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 メッセージに制限できます。 統計ログ・ファイルのサイズと最大数も制御できます。
統計ログ・ファイル内の列の説明は、次のとおりです。
- タイムスタンプ
- メッセージを受信した時刻。 日時情報は、
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:interfaceptpengine:interface設定の意味を説明します。
ファイル
| 項目 | 説明 |
|---|---|
| /etc/ptpd2.conf | ptpd デーモン構成ファイルのデフォルト・パス。 |
| /usr/samples/tcpip/ptpd2/ptpd2.conf | ptpd2.conf 構成ファイルのサンプル・ファイル。 |