13.5. PTP デバイスの設定

PTP Operator は NodePtpDevice.ptp.openshift.io カスタムリソース定義 (CRD) を OpenShift Container Platform に追加します。

インストールが完了すると、PTP Operator はクラスターを検索して各ノードで PTP 対応のネットワークデバイスを検索します。これは、互換性のある PTP 対応のネットワークデバイスを提供する各ノードの NodePtpDevice カスタムリソース (CR) オブジェクトを作成し、更新します。

13.5.1. クラスター内の PTP 対応ネットワークデバイスの検出

  • クラスター内の PTP 対応ネットワークデバイスの一覧を返すには、以下のコマンドを実行します。

    $ oc get NodePtpDevice -n openshift-ptp -o yaml

    出力例

    apiVersion: v1
    items:
    - apiVersion: ptp.openshift.io/v1
      kind: NodePtpDevice
      metadata:
        creationTimestamp: "2022-01-27T15:16:28Z"
        generation: 1
        name: dev-worker-0 1
        namespace: openshift-ptp
        resourceVersion: "6538103"
        uid: d42fc9ad-bcbf-4590-b6d8-b676c642781a
      spec: {}
      status:
        devices: 2
        - name: eno1
        - name: eno2
        - name: eno3
        - name: eno4
        - name: enp5s0f0
        - name: enp5s0f1
    ...

    1
    name パラメーターの値は、親ノードの名前と同じです。
    2
    デバイスコレクションには、PTP Operator がノードに対して検出した PTP 対応デバイスのリストが含まれています。

13.5.2. linuxptp サービスを通常のクロックとして設定

Ptp Configカスタムリソース (CR) オブジェクトを作成して、 linuxptpサービス (ptp4lphc2sys) を通常のクロックとして設定できます。

注記

次の例の PtpConfig CR を、特定のハードウェアおよび環境の通常クロックとして linuxptp サービスを設定する基礎として使用します。この例の CR は PTP 高速イベントを設定しません。PTP 高速イベントを設定するには、ptp4lOptsptp4lConfptpClockThreshold に適切な値を設定します。ptpClockThreshold は、イベントが有効な場合にのみ必要です。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • PTP Operator をインストールします。

手順

  1. 以下の PtpConfig CR を作成してから、YAML を ordinary-clock-ptp-config.yaml ファイルに保存します。

    推奨される PTP 通常クロック設定

    apiVersion: ptp.openshift.io/v1
    kind: PtpConfig
    metadata:
      name: ordinary-clock-ptp-config
      namespace: openshift-ptp
      spec:
        profile:
          - name: ordinary-clock
            interface: "<interface_name>"
            phc2sysOpts: "-a -r -n 24"
            ptp4lOpts: "-2 -s"
            ptpSchedulingPolicy: SCHED_FIFO
            ptpSchedulingPriority: 10
            ptp4lConf: |
              [global]
              #
              # Default Data Set
              #
              twoStepFlag 1
              slaveOnly 1
              priority1 128
              priority2 128
              domainNumber 24
              clockClass 255
              clockAccuracy 0xFE
              offsetScaledLogVariance 0xFFFF
              free_running 0
              freq_est_interval 1
              dscp_event 0
              dscp_general 0
              dataset_comparison G.8275.x
              G.8275.defaultDS.localPriority 128
              #
              # Port Data Set
              #
              logAnnounceInterval -3
              logSyncInterval -4
              logMinDelayReqInterval -4
              logMinPdelayReqInterval -4
              announceReceiptTimeout 3
              syncReceiptTimeout 0
              delayAsymmetry 0
              fault_reset_interval 4
              neighborPropDelayThresh 20000000
              masterOnly 0
              G.8275.portDS.localPriority 128
              #
              # Run time options
              #
              assume_two_step 0
              logging_level 6
              path_trace_enabled 0
              follow_up_info 0
              hybrid_e2e 0
              inhibit_multicast_service 0
              net_sync_monitor 0
              tc_spanning_tree 0
              tx_timestamp_timeout 50
              unicast_listen 0
              unicast_master_table 0
              unicast_req_duration 3600
              use_syslog 1
              verbose 0
              summary_interval 0
              kernel_leap 1
              check_fup_sync 0
              #
              # Servo Options
              #
              pi_proportional_const 0.0
              pi_integral_const 0.0
              pi_proportional_scale 0.0
              pi_proportional_exponent -0.3
              pi_proportional_norm_max 0.7
              pi_integral_scale 0.0
              pi_integral_exponent 0.4
              pi_integral_norm_max 0.3
              step_threshold 2.0
              first_step_threshold 0.00002
              max_frequency 900000000
              clock_servo pi
              sanity_freq_limit 200000000
              ntpshm_segment 0
              #
              # Transport options
              #
              transportSpecific 0x0
              ptp_dst_mac 01:1B:19:00:00:00
              p2p_dst_mac 01:80:C2:00:00:0E
              udp_ttl 1
              udp6_scope 0x0E
              uds_address /var/run/ptp4l
              #
              # Default interface options
              #
              clock_type OC
              network_transport L2
              delay_mechanism E2E
              time_stamping hardware
              tsproc_mode filter
              delay_filter moving_median
              delay_filter_length 10
              egressLatency 0
              ingressLatency 0
              boundary_clock_jbod 0
              #
              # Clock description
              #
              productDescription ;;
              revisionData ;;
              manufacturerIdentity 00:00:00
              userDescription ;
              timeSource 0xA0
          recommend:
          - profile: ordinary-clock
            priority: 4
            match:
            - nodeLabel: "node-role.kubernetes.io/worker"
              nodeName: "<node_name>"

    表13.1 PTP 通常クロック CR 設定のオプション

    カスタムリソースフィールド説明

    name

    PtpConfig CR の名前。

    profile

    1 つ以上の profile オブジェクトの配列を指定します。各プロファイルの名前は一意である必要があります。

    interface

    ptp4l サービスで使用するネットワークインターフェイスを指定します (例: ens787f1)。

    ptp4lOpts

    ptp4l サービスのシステム設定オプションを指定します。たとえば、-2 で IEEE 802.3 ネットワークトランスポートを選択します。ネットワークインターフェイス名とサービス設定ファイルが自動的に追加されるため、オプションには、ネットワークインターフェイス名 -i <interface> およびサービス設定ファイル -f /etc/ptp4l.conf を含めないでください。このインターフェイスで PTP 高速イベントを使用するには、--summary_interval -4 を追加します。

    phc2sysOpts

    phc2sys サービスのシステム設定オプションを指定します。このフィールドが空の場合、PTP Operator は phc2sys サービスを開始しません。Intel Columbiaville 800 Series NIC の場合、phc2sysOpts オプションを -a -r -m -n 24 -N 8 -R 16 に設定します。-m はメッセージを stdout に出力します。linuxptp-daemon DaemonSet はログを解析し、Prometheus メトリックを生成します。

    ptp4lConf

    デフォルトの /etc/ptp4l.conf ファイルを置き換える設定が含まれる文字列を指定します。デフォルト設定を使用するには、フィールドを空のままにします。

    tx_timestamp_timeout

    Intel Columbiaville 800 Series NIC の場合、tx_timestamp_timeout50 に設定します。

    boundary_clock_jbod

    Intel Columbiaville 800 Series NIC の場合、boundary_clock_jbod0 に設定します。

    ptpSchedulingPolicy

    ptp4lphc2sys プロセスのスケジューリングポリシー。デフォルト値は SCHED_OTHER です。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFO を使用してください。

    ptpSchedulingPriority

    ptp SchedulingPolicySCHED_FIFO に設定されている場合に、ptp4l および phc2sys プロセスの FIFO の優先度を設定するために使用される 1-65 の整数値。ptpSchedulingPriority フィールドは、ptpSchedulingPolicySCHED_OTHER に設定されている場合は使用されません。

    ptpClockThreshold

    オプション: ptpClockThreshold が存在しない場合、ptpClockThreshold フィールドにはデフォルト値が使用されます。ptpClockThreshold は、PTP マスタークロックが切断されてから PTP イベントが発生するまでの時間を設定します。holdOverTimeout は、PTP マスタークロックが切断されたときに、PTP クロックイベントの状態が FREERUN に変わるまでの時間値 (秒単位) です。maxOffsetThreshold および minOffsetThreshold 設定は、CLOCK_REALTIME (phc2sys) またはマスターオフセット (ptp4l) の値と比較するナノ秒単位のオフセット値を設定します。ptp4l または phc2sys のオフセット値がこの範囲外の場合、PTP クロックの状態が FREERUN に設定されます。オフセット値がこの範囲内にある場合、PTP クロックの状態が LOCKED に設定されます。

    recommend

    profile がノードに適用される方法を定義する 1 つ以上の recommend オブジェクトの配列を指定します。

    .recommend.profile

    profile セクションで定義される .recommend.profile オブジェクト名を指定します。

    .recommend.priority

    通常クロックの .recommend.priority0 に設定します。

    .recommend.match

    .recommend.match ルールを nodeLabel または nodeName に指定します。

    .recommend.match.nodeLabel

    oc get nodes --show-labels コマンドを使用して、ノードオブジェクトのnode.LabelskeynodeLabel に指定します。例: node-role.kubernetes.io/worker

    .recommend.match.nodeLabel

    oc get nodes コマンドを使用して、ノードオブジェクトの nodeNamenode.Name の値に更新します。例: compute-0.example.com

  2. 次のコマンドを実行して、 PtpConfig CR を作成します。

    $ oc create -f ordinary-clock-ptp-config.yaml

検証

  1. PtpConfig プロファイルがノードに適用されていることを確認します。

    1. 以下のコマンドを実行して、openshift-ptp namespace の Pod の一覧を取得します。

      $ oc get pods -n openshift-ptp -o wide

      出力例

      NAME                            READY   STATUS    RESTARTS   AGE   IP               NODE
      linuxptp-daemon-4xkbb           1/1     Running   0          43m   10.1.196.24      compute-0.example.com
      linuxptp-daemon-tdspf           1/1     Running   0          43m   10.1.196.25      compute-1.example.com
      ptp-operator-657bbb64c8-2f8sj   1/1     Running   0          43m   10.129.0.61      control-plane-1.example.com

    2. プロファイルが正しいことを確認します。PtpConfig プロファイルで指定したノードに対応する linuxptp デーモンのログを検査します。以下のコマンドを実行します。

      $ oc logs linuxptp-daemon-4xkbb -n openshift-ptp -c linuxptp-daemon-container

      出力例

      I1115 09:41:17.117596 4143292 daemon.go:107] in applyNodePTPProfile
      I1115 09:41:17.117604 4143292 daemon.go:109] updating NodePTPProfile to:
      I1115 09:41:17.117607 4143292 daemon.go:110] ------------------------------------
      I1115 09:41:17.117612 4143292 daemon.go:102] Profile Name: profile1
      I1115 09:41:17.117616 4143292 daemon.go:102] Interface: ens787f1
      I1115 09:41:17.117620 4143292 daemon.go:102] Ptp4lOpts: -2 -s
      I1115 09:41:17.117623 4143292 daemon.go:102] Phc2sysOpts: -a -r -n 24
      I1115 09:41:17.117626 4143292 daemon.go:116] ------------------------------------

関連情報

13.5.3. linuxptp サービスを境界クロックとして設定

PtpConfig カスタムリソース (CR) オブジェクトを作成して、linuxptp サービス (ptp4lphc2sys を設定できます。

注記

次の例の PtpConfig CR を、特定のハードウェアおよび環境の境界クロックとして linuxptp サービスを設定する基礎として使用します。この例の CR は PTP 高速イベントを設定しません。PTP 高速イベントを設定するには、ptp4lOptsptp4lConfptpClockThreshold に適切な値を設定します。ptpClockThreshold は、イベントが有効になっている場合にのみ使用されます。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • PTP Operator をインストールします。

手順

  1. 以下の PtpConfig CR を作成してから、YAML を boundary-clock-ptp-config.yaml ファイルに保存します。

    推奨される PTP 境界クロックの設定

    ---
    apiVersion: ptp.openshift.io/v1
    kind: PtpConfig
    metadata:
      name: boundary-clock-ptp-config
      namespace: openshift-ptp
    spec:
      profile:
      - name: boundary-clock
        phc2sysOpts: "-a -r -n 24"
        ptp4lOpts: "-2"
        ptpSchedulingPolicy: SCHED_FIFO
        ptpSchedulingPriority: 10
        ptp4lConf: |
          [<interface_1>]
          masterOnly 0
          [<interface_2>]
          masterOnly 1
          [<interface_3>]
          masterOnly 1
          [<interface_4>]
          masterOnly 1
          [global]
          #
          # Default Data Set
          #
          twoStepFlag 1
          slaveOnly 0
          priority1 128
          priority2 128
          domainNumber 24
          clockClass 248
          clockAccuracy 0xFE
          offsetScaledLogVariance 0xFFFF
          free_running 0
          freq_est_interval 1
          dscp_event 0
          dscp_general 0
          dataset_comparison G.8275.x
          G.8275.defaultDS.localPriority 128
          #
          # Port Data Set
          #
          logAnnounceInterval -3
          logSyncInterval -4
          logMinDelayReqInterval -4
          logMinPdelayReqInterval -4
          announceReceiptTimeout 3
          syncReceiptTimeout 0
          delayAsymmetry 0
          fault_reset_interval 4
          neighborPropDelayThresh 20000000
          masterOnly 0
          G.8275.portDS.localPriority 128
          #
          # Run time options
          #
          assume_two_step 0
          logging_level 6
          path_trace_enabled 0
          follow_up_info 0
          hybrid_e2e 0
          inhibit_multicast_service 0
          net_sync_monitor 0
          tc_spanning_tree 0
          tx_timestamp_timeout 50
          unicast_listen 0
          unicast_master_table 0
          unicast_req_duration 3600
          use_syslog 1
          verbose 0
          summary_interval 0
          kernel_leap 1
          check_fup_sync 0
          #
          # Servo Options
          #
          pi_proportional_const 0.0
          pi_integral_const 0.0
          pi_proportional_scale 0.0
          pi_proportional_exponent -0.3
          pi_proportional_norm_max 0.7
          pi_integral_scale 0.0
          pi_integral_exponent 0.4
          pi_integral_norm_max 0.3
          step_threshold 2.0
          first_step_threshold 0.00002
          max_frequency 900000000
          clock_servo pi
          sanity_freq_limit 200000000
          ntpshm_segment 0
          #
          # Transport options
          #
          transportSpecific 0x0
          ptp_dst_mac 01:1B:19:00:00:00
          p2p_dst_mac 01:80:C2:00:00:0E
          udp_ttl 1
          udp6_scope 0x0E
          uds_address /var/run/ptp4l
          #
          # Default interface options
          #
          clock_type BC
          network_transport L2
          delay_mechanism E2E
          time_stamping hardware
          tsproc_mode filter
          delay_filter moving_median
          delay_filter_length 10
          egressLatency 0
          ingressLatency 0
          boundary_clock_jbod 0
          #
          # Clock description
          #
          productDescription ;;
          revisionData ;;
          manufacturerIdentity 00:00:00
          userDescription ;
          timeSource 0xA0
      recommend:
      - profile: boundary-clock
        priority: 4
        match:
        - nodeLabel: node-role.kubernetes.io/master
          nodeName: <nodename>

    表13.2 PTP 境界クロックの CR 設定オプション

    カスタムリソースフィールド説明

    name

    PtpConfig CR の名前。

    profile

    1 つ以上の profile オブジェクトの配列を指定します。

    name

    プロファイルオブジェクトを一意に識別するプロファイルオブジェクトの名前を指定します。

    ptp4lOpts

    ptp4l サービスのシステム設定オプションを指定します。ネットワークインターフェイス名とサービス設定ファイルが自動的に追加されるため、オプションには、ネットワークインターフェイス名 -i <interface> およびサービス設定ファイル -f /etc/ptp4l.conf を含めないでください。

    ptp4lConf

    ptp4l を境界クロックとして起動するために必要な設定を指定します。たとえば、ens1f0 はグランドマスタークロックから同期し、ens1f3 は接続されたデバイスを同期します。

    <interface_1>

    同期クロックを受信するインターフェイス。

    <interface_2>

    Synchronization クロックを送信するインターフェイス。

    tx_timestamp_timeout

    Intel Columbiaville 800 Series NIC の場合、tx_timestamp_timeout50 に設定します。

    boundary_clock_jbod

    Intel Columbiaville 800 Series NIC の場合、boundary_clock_jbod0 に設定されていることを確認します。Intel Fortville X710 シリーズ NIC の場合、boundary_clock_jbod1 に設定されていることを確認します。

    phc2sysOpts

    phc2sys サービスのシステム設定オプションを指定します。このフィールドが空の場合、PTP Operator は phc2sys サービスを開始しません。

    ptpSchedulingPolicy

    ptp4l と phc2sys プロセスのスケジューリングポリシー。デフォルト値は SCHED_OTHER です。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFO を使用してください。

    ptpSchedulingPriority

    ptp SchedulingPolicySCHED_FIFO に設定されている場合に、ptp4l および phc2sys プロセスの FIFO の優先度を設定するために使用される 1-65 の整数値。ptpSchedulingPriority フィールドは、ptpSchedulingPolicySCHED_OTHER に設定されている場合は使用されません。

    ptpClockThreshold

    オプション: ptpClockThreshold が存在しない場合、ptpClockThreshold フィールドにはデフォルト値が使用されます。ptpClockThreshold は、PTP マスタークロックが切断されてから PTP イベントが発生するまでの時間を設定します。holdOverTimeout は、PTP マスタークロックが切断されたときに、PTP クロックイベントの状態が FREERUN に変わるまでの時間値 (秒単位) です。maxOffsetThreshold および minOffsetThreshold 設定は、CLOCK_REALTIME (phc2sys) またはマスターオフセット (ptp4l) の値と比較するナノ秒単位のオフセット値を設定します。ptp4l または phc2sys のオフセット値がこの範囲外の場合、PTP クロックの状態が FREERUN に設定されます。オフセット値がこの範囲内にある場合、PTP クロックの状態が LOCKED に設定されます。

    recommend

    profile がノードに適用される方法を定義する 1 つ以上の recommend オブジェクトの配列を指定します。

    .recommend.profile

    profile セクションで定義される .recommend.profile オブジェクト名を指定します。

    .recommend.priority

    0 から 99 までの整数値で priority を指定します。数値が大きいほど優先度が低くなるため、99 の優先度は 10 よりも低くなります。ノードが match フィールドで定義されるルールに基づいて複数のプロファイルに一致する場合、優先順位の高いプロファイルがそのノードに適用されます。

    .recommend.match

    .recommend.match ルールを nodeLabel または nodeName に指定します。

    .recommend.match.nodeLabel

    oc get nodes --show-labels コマンドを使用して、ノードオブジェクトのnode.LabelskeynodeLabel に指定します。例: node-role.kubernetes.io/worker

    .recommend.match.nodeLabel

    oc get nodes コマンドを使用して、ノードオブジェクトの nodeNamenode.Name の値に更新します。例: compute-0.example.com

  2. 以下のコマンドを実行して CR を作成します。

    $ oc create -f boundary-clock-ptp-config.yaml

検証

  1. PtpConfig プロファイルがノードに適用されていることを確認します。

    1. 以下のコマンドを実行して、openshift-ptp namespace の Pod の一覧を取得します。

      $ oc get pods -n openshift-ptp -o wide

      出力例

      NAME                            READY   STATUS    RESTARTS   AGE   IP               NODE
      linuxptp-daemon-4xkbb           1/1     Running   0          43m   10.1.196.24      compute-0.example.com
      linuxptp-daemon-tdspf           1/1     Running   0          43m   10.1.196.25      compute-1.example.com
      ptp-operator-657bbb64c8-2f8sj   1/1     Running   0          43m   10.129.0.61      control-plane-1.example.com

    2. プロファイルが正しいことを確認します。PtpConfig プロファイルで指定したノードに対応する linuxptp デーモンのログを検査します。以下のコマンドを実行します。

      $ oc logs linuxptp-daemon-4xkbb -n openshift-ptp -c linuxptp-daemon-container

      出力例

      I1115 09:41:17.117596 4143292 daemon.go:107] in applyNodePTPProfile
      I1115 09:41:17.117604 4143292 daemon.go:109] updating NodePTPProfile to:
      I1115 09:41:17.117607 4143292 daemon.go:110] ------------------------------------
      I1115 09:41:17.117612 4143292 daemon.go:102] Profile Name: profile1
      I1115 09:41:17.117616 4143292 daemon.go:102] Interface:
      I1115 09:41:17.117620 4143292 daemon.go:102] Ptp4lOpts: -2
      I1115 09:41:17.117623 4143292 daemon.go:102] Phc2sysOpts: -a -r -n 24
      I1115 09:41:17.117626 4143292 daemon.go:116] ------------------------------------

関連情報

13.5.4. PTP 通常クロックの参照としての IntelColumbiavilleE800 シリーズ NIC

次の表に、Intel Columbiaville E800 シリーズ NIC を通常のクロックとして使用するために参照 PTP 設定に加える必要のある変更を示します。クラスターに適用する PtpConfig カスタムリソース (CR) に変更を加えます。

表13.3 Intel Columbiaville NIC の推奨 PTP 設定

PTP 設定推奨設定

phc2sysOpts

-a -r -m -n 24 -N 8 -R 16

tx_timestamp_timeout

50

boundary_clock_jbod

0

注記

phc2sysOpts の場合、-m はメッセージを stdout に出力します。linuxptp-daemon DaemonSet はログを解析し、Prometheus メトリックを生成します。

関連情報

13.5.5. PTP ハードウェアの FIFO 優先スケジューリングの設定

低遅延のパフォーマンスを確保する必要のある通信業者や他のデプロイメント設定では、PTP デーモンスレッドは、制約された CPU フットプリントで、残りのインフラストラクチャーのコンポーネントと一緒に、実行されます。デフォルトでは、PTP スレッドは SCHED_OTHER ポリシーで実行されます。負荷が高いと、エラーなしで運用する必要のある、これらのスレッドのスケジューリングでレイテンシーが発生する可能性があります。

スケジューリングのレイテンシーでエラーが発生する可能性を軽減するために、SCHED_FIFO ポリシーでスレッドを実行できるように、PTP Operator の linuxptp サービスを設定できます。Ptp ConfigCR に SCHED_FIFO が設定されている場合には、ptp4lphc2sys は、Ptp ConfigCR の ptp Scheduling Priority フィールドで設定された優先順位で、chrt の下の親コンテナーで実行されます。

注記

ptp Scheduling Policy の設定はオプションで、レイテンシーエラーが発生している場合にのみ必要となります。

手順

  1. Ptp Config CR プロファイルを編集します。

    $ oc edit PtpConfig -n openshift-ptp
  2. ptp Scheduling Policyptp Scheduling Priority フィールドを変更します。

    apiVersion: ptp.openshift.io/v1
    kind: PtpConfig
    metadata:
      name: <ptp_config_name>
      namespace: openshift-ptp
    ...
    spec:
      profile:
      - name: "profile1"
    ...
        ptpSchedulingPolicy: SCHED_FIFO 1
        ptpSchedulingPriority: 10 2
    1
    ptp4lphc2sys プロセスのスケジューリングポリシー。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFO を使用してください。
    2
    必須。ptp4l および phc2sys プロセスの FIFO 優先度の設定に使用する 1~65 の整数値を設定します。
  3. 保存して終了すると、Ptp ConfigCR に変更が適用されます。

検証

  1. Ptp ConfigCR が適用された linuxptp-daemon Pod と対応するノードの名前を取得します。

    $ oc get pods -n openshift-ptp -o wide

    出力例

    NAME                            READY   STATUS    RESTARTS   AGE     IP            NODE
    linuxptp-daemon-gmv2n           3/3     Running   0          1d17h   10.1.196.24   compute-0.example.com
    linuxptp-daemon-lgm55           3/3     Running   0          1d17h   10.1.196.25   compute-1.example.com
    ptp-operator-3r4dcvf7f4-zndk7   1/1     Running   0          1d7h    10.129.0.61   control-plane-1.example.com

  2. ptp4l プロセスが、更新された chrtFIFO 優先度で実行されていることを確認します。

    $ oc -n openshift-ptp logs linuxptp-daemon-lgm55 -c linuxptp-daemon-container|grep chrt

    出力例

    I1216 19:24:57.091872 1600715 daemon.go:285] /bin/chrt -f 65 /usr/sbin/ptp4l -f /var/run/ptp4l.0.config -2  --summary_interval -4 -m