8.2.7. 境界クロックと時間スレーブクロックへのアシストなしホールドオーバーの適用


Intel E810-XXVDA4T NIC は、PTP 境界クロック (T-BC) または通信時刻同期クロック (T-TSC) として設定されている場合、アップストリームのタイミングソースが利用できなくなった場合でも、非アシストホールドオーバー機能によって時刻同期を維持できます。

ts2phc サービスは、タイミングレシーバー (TR) ポートにバインドされた ptp4l インスタンスを監視します。たとえば、TR ポートがタイムレシーバーとしての動作を停止したり、アップストリームグランドマスタークロック (T-GM) の品質が低下したり、リンクが切断されたりすると、システムはホールドオーバーモードに入り、動的に再設定されます。

重要

T-BC および T-TSC へのアシストなしホールドオーバーの適用は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

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

手順

  1. トリプルポート T-BC NIC を設定します。以下の例では、PtpConfig リソースに 2 つのプロファイルが含まれています。1 つは時間送信ポート (00-tbc-tt) 用で、もう 1 つはすべてのハードウェア、TR ポート、および ts2phcphc2sys プロセスを設定するためのものです。

    apiVersion: ptp.openshift.io/v1
    kind: PtpConfig
    metadata:
      name: t-bc
      namespace: openshift-ptp
    spec:
      profile:
      - name: 00-tbc-tt
        ptp4lConf: |
          [ens4f0]
          masterOnly 1 
    1
    
          [ens8f0]
          masterOnly 1 
    2
    
          [ens1f0]
          masterOnly 1 
    3
    
          [global]
          #
          # Default Data Set
          #
          twoStepFlag 1
          slaveOnly 0
          priority1 128
          priority2 128
          domainNumber 25
          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
          clock_class_threshold 135
          #
          # Servo Options
          #
          pi_proportional_const 0.60
          pi_integral_const 0.001
          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 AA:BB:CC:DD:EE:FF
          p2p_dst_mac BB:CC:DD:EE:FF:GG
          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 1
          #
          # Clock description
          #
          productDescription ;;
          revisionData ;;
          manufacturerIdentity 00:00:00
          userDescription ;
          timeSource 0xA0
        ptp4lOpts: -2 --summary_interval -4
        ptpSchedulingPolicy: SCHED_FIFO
        ptpSchedulingPriority: 10
        ptpSettings:
          controllingProfile: 01-tbc-tr
          logReduce: "false"
      - name: 01-tbc-tr
        phc2sysOpts: -r -n 25 -N 8 -R 16 -u 0 -m -s ens4f1 
    4
    
        plugins: 
    5
    
          e810:
            enableDefaultConfig: false
            interconnections: 
    6
    
            - gnssInput: false
              id: ens4f0
              part: E810-XXVDA4T
              phaseOutputConnectors:
              - SMA1
              - SMA2
              upstreamPort: ens4f1
            - id: ens1f0
              inputConnector:
                connector: SMA1
              part: E810-XXVDA4T
            - id: ens8f0
              inputConnector:
                connector: SMA1
              part: E810-XXVDA4T
            pins:
              ens4f0:
                SMA1: 2 1
                SMA2: 2 2
                U.FL1: 0 1
                U.FL2: 0 2
              ens1f0:
                SMA1: 1 1
                SMA2: 0 2
                U.FL1: 0 1
                U.FL2: 0 2
              ens8f0:
                SMA1: 1 1
                SMA2: 0 2
                U.FL1: 0 1
                U.FL2: 0 2
            settings:
              LocalHoldoverTimeout: 14400
              LocalMaxHoldoverOffSet: 1500
              MaxInSpecOffset: 100
        ptp4lConf: |
          # The interface name is hardware-specific
          [ens4f1]
          masterOnly 0
          [global]
          #
          # Default Data Set
          #
          twoStepFlag 1
          slaveOnly 0
          priority1 128
          priority2 128
          domainNumber 25
          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
          clock_class_threshold 135
          #
          # Servo Options
          #
          pi_proportional_const 0.60
          pi_integral_const 0.001
          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 AA:BB:CC:DD:EE:HH
          p2p_dst_mac BB:CC:DD:EE:FF:II
          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 1
          #
          # Clock description
          #
          productDescription ;;
          revisionData ;;
          manufacturerIdentity 00:00:00
          userDescription ;
          timeSource 0xA0
        ptp4lOpts: -2 --summary_interval -4
        ptpSchedulingPolicy: SCHED_FIFO
        ptpSchedulingPriority: 10
        ptpSettings:
          inSyncConditionThreshold: "10"
          inSyncConditionTimes: "12"
          logReduce: "false"
        ts2phcConf: |
          [global]
          use_syslog  0
          verbose 1
          logging_level 7
          ts2phc.pulsewidth 100000000
          leapfile  /usr/share/zoneinfo/leap-seconds.list
          domainNumber 25 
    7
    
          uds_address /var/run/ptp4l.0.socket 
    8
    
          [ens4f0] 
    9
    
          ts2phc.extts_polarity rising
          ts2phc.extts_correction -10
          ts2phc.master 0
          [ens1f0]
          ts2phc.extts_polarity rising
          ts2phc.extts_correction -27
          ts2phc.master 0
          [ens8f0]
          ts2phc.extts_polarity rising
          ts2phc.extts_correction -27
          ts2phc.master 0
        ts2phcOpts: -s generic -a --ts2phc.rh_external_pps 1 
    10
    
      recommend:
      - match:
        - nodeLabel: node-role.kubernetes.io/master
        priority: 4
        profile: 00-tbc-tt
      - match:
        - nodeLabel: node-role.kubernetes.io/master
        priority: 4
        profile: 01-tbc-tr
    1 2 3
    すべての TT ポートの masterOnly は 1 に設定されています。
    4
    TR プロファイルの phc2sysOpts 設定では、ノードの時刻同期のソースとしてアップストリームポート ens4f1 を指定します。
    5
    TR プロファイルには、ハードウェアプラグインセクションが含まれています。
    6
    ハードウェアプラグインの相互接続セクションには、ens4f0ens1f0ens8f0 の 3 つの NIC があります。プライマリー NIC (ens4f0) は、gnnsInput フィールドが false に設定され、かつ TR ポートを指定する upstreamPort フィールドを持つ唯一の NIC です。また、phaseOutputConnectorsSMA1SMA2 のリストもあります。次の NIC には inputConnector フィールドがあります。T-BC 設定と T-TSC 設定の両方で、タイムレシーバー NIC ens4f0 と特定の TR ポート (upstreamPort: ens4f1) を設定します。
    7
    ts2phc 設定には、アップストリーム PTP ドメインの domainNumber が含まれています。
    8
    ts2phc 設定には uds_address が含まれています。その値は重要ではありません。なぜなら、デーモンが正しいアドレスでそれにパッチを当てるからです。
    9
    ts2phc 設定には、このセットアップに参加しているすべての NIC (ens4f0ens1f0、および ens8f0) を含める必要があります。
    10
    ts2phcOpts は、-s generic でソースを汎用に設定し、-a で自動に設定します。最後のオプション --ts2phc.rh_external_pps 1 は、外部位相ソースである Digital Phase-Locked Loop (DPLL) と連携して動作するように設定します。
    注記

    単一 NIC の場合、1PPS 測定に使用する場合はすべてのピンを無効にするか、出力を有効にします。

注記

この設定を T-TSC 操作用にレンダリングするには、00-tbc-tt プロファイルを削除し、TR NIC のみをリストするように ts2phcConf セクションを調整します。

検証

T-BC ステータスを取得するには、次のコマンドを実行します。

$ oc -linuxptp-daemon-container logs ds/linuxptp-daemon --since=1s -f |grep T-BC

出力例

T-BC[1760525446]:[ts2phc.1.config] ens4f0 offset 1 T-BC-STATUS s2
T-BC[1760525447]:[ts2phc.1.config] ens4f0 offset 1 T-BC-STATUS s2
T-BC[1760525448]:[ts2phc.1.config] ens4f0 offset -1 T-BC-STATUS s2

これは 1 秒ごとに報告されます。s2 はロックされていることを示し、s1 はホールドオーバーがアクティブになっていることを示し、s0 はロック解除されていることを示します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る