mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-06 06:46:26 +01:00
Adding docs for TELCODOCS-1879 - PTP Operator T-GM leap seconds
Adding leap second config procedure
This commit is contained in:
@@ -46,7 +46,7 @@ See "Configuring the PTP fast event notifications publisher" for more informatio
|
||||
====
|
||||
[source,yaml]
|
||||
----
|
||||
include::snippets/ptp_PtpConfigDualCardGmWpc.yaml[]
|
||||
include::snippets/ztp_PtpConfigDualCardGmWpc.yaml[]
|
||||
----
|
||||
====
|
||||
+
|
||||
|
||||
@@ -36,26 +36,12 @@ See "Configuring the PTP fast event notifications publisher" for more informatio
|
||||
.. Depending on your requirements, use one of the following T-GM configurations for your deployment.
|
||||
Save the YAML in the `grandmaster-clock-ptp-config.yaml` file:
|
||||
+
|
||||
.Example PTP grandmaster clock configuration
|
||||
[%collapsible]
|
||||
=====
|
||||
[source,yaml]
|
||||
----
|
||||
include::snippets/ptp_PtpConfigGmWpc.yaml[]
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
The example PTP grandmaster clock configuration is for test purposes only and is not intended for production.
|
||||
====
|
||||
=====
|
||||
+
|
||||
.PTP grandmaster clock configuration for E810 NIC
|
||||
[%collapsible]
|
||||
====
|
||||
[source,yaml]
|
||||
----
|
||||
include::snippets/ptp_PtpConfigGmWpc.yaml[]
|
||||
include::snippets/ztp_PtpConfigGmWpc.yaml[]
|
||||
----
|
||||
====
|
||||
+
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/ptp/about-ptp.adoc
|
||||
// * networking/ptp/configuring-ptp.adoc
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="install-ptp-operator-cli_{context}"]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/ptp/about-ptp.adoc
|
||||
// * networking/ptp/configuring-ptp.adoc
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="install-ptp-operator-web-console_{context}"]
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/ptp/configuring-ptp.adoc
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="ptp-configuring-dynamic-leap-seconds-handling-for-tgm_{context}"]
|
||||
= Configuring dynamic leap seconds handling for PTP grandmaster clocks
|
||||
|
||||
The PTP Operator container image includes the latest `leap-seconds.list` file that is available at the time of release.
|
||||
You can configure the PTP Operator to automatically update the leap second file by using Global Positioning System (GPS) announcements.
|
||||
|
||||
Leap second information is stored in an automatically generated `ConfigMap` resource named `leap-configmap` in the `openshift-ptp` namespace.
|
||||
The PTP Operator mounts the `leap-configmap` resource as a volume in the `linuxptp-daemon` pod that is accessible by the `ts2phc` process.
|
||||
|
||||
If the GPS satellite broadcasts new leap second data, the PTP Operator updates the `leap-configmap` resource with the new data.
|
||||
The `ts2phc` process picks up the changes automatically.
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
The following procedure is provided as reference.
|
||||
The {product-version} version of the PTP Operator enables automatic leap second management by default.
|
||||
====
|
||||
|
||||
.Prerequisites
|
||||
|
||||
* You have installed the OpenShift CLI (`oc`).
|
||||
|
||||
* You have logged in as a user with `cluster-admin` privileges.
|
||||
|
||||
* You have installed the PTP Operator and configured a PTP grandmaster clock (T-GM) in the cluster.
|
||||
|
||||
.Procedure
|
||||
|
||||
. Configure automatic leap second handling in the `phc2sysOpts` section of the `PtpConfig` CR.
|
||||
Set the following options:
|
||||
+
|
||||
[source,yaml]
|
||||
----
|
||||
phc2sysOpts: -r -u 0 -m -w -N 8 -R 16 -S 2 -s ens2f0 -n 24 <1>
|
||||
----
|
||||
<1> Set `-w` to force `phc2sys` to wait until `ptp4l` has synchronized the system hardware clock before starting its own synchronization process.
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
Previously, the T-GM required an offset adjustment in the `phc2sys` configuration (`-O -37`) to account for historical leap seconds.
|
||||
This is no longer needed.
|
||||
====
|
||||
|
||||
. Configure the Intel e810 NIC to enable periodical reporting of `NAV-TIMELS` messages by the GPS receiver in the `spec.profile.plugins.e810.ublxCmds` section of the `PtpConfig` CR.
|
||||
For example:
|
||||
+
|
||||
[source,yaml]
|
||||
----
|
||||
- args: #ubxtool -P 29.20 -p CFG-MSG,1,38,248
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-p"
|
||||
- "CFG-MSG,1,38,248"
|
||||
----
|
||||
|
||||
.Verification
|
||||
|
||||
. Validate that the configured T-GM is receiving `NAV-TIMELS` messages from the connected GPS.
|
||||
Run the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc -n openshift-ptp -c linuxptp-daemon-container exec -it $(oc -n openshift-ptp get pods -o name | grep daemon) -- ubxtool -t -p NAV-TIMELS -P 29.20
|
||||
----
|
||||
+
|
||||
.Example output
|
||||
[source,terminal]
|
||||
----
|
||||
1722509534.4417
|
||||
UBX-NAV-STATUS:
|
||||
iTOW 384752000 gpsFix 5 flags 0xdd fixStat 0x0 flags2 0x8
|
||||
ttff 18261, msss 1367642864
|
||||
|
||||
1722509534.4419
|
||||
UBX-NAV-TIMELS:
|
||||
iTOW 384752000 version 0 reserved2 0 0 0 srcOfCurrLs 2
|
||||
currLs 18 srcOfLsChange 2 lsChange 0 timeToLsEvent 70376866
|
||||
dateOfLsGpsWn 2441 dateOfLsGpsDn 7 reserved2 0 0 0
|
||||
valid x3
|
||||
|
||||
1722509534.4421
|
||||
UBX-NAV-CLOCK:
|
||||
iTOW 384752000 clkB 784281 clkD 435 tAcc 3 fAcc 215
|
||||
|
||||
1722509535.4477
|
||||
UBX-NAV-STATUS:
|
||||
iTOW 384753000 gpsFix 5 flags 0xdd fixStat 0x0 flags2 0x8
|
||||
ttff 18261, msss 1367643864
|
||||
|
||||
1722509535.4479
|
||||
UBX-NAV-CLOCK:
|
||||
iTOW 384753000 clkB 784716 clkD 435 tAcc 3 fAcc 218
|
||||
----
|
||||
|
||||
. Validate that the `leap-configmap` resource has been successfully generated by the PTP Operator and is up to date with the latest version of the link:https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list[leap-seconds.list].
|
||||
Run the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc -n openshift-ptp get configmap leap-configmap -o jsonpath='{.data.<node_name>}' <1>
|
||||
----
|
||||
<1> Replace `<node_name>` with the node where you have installed and configured the PTP T-GM clock with automatic leap second management.
|
||||
Escape special characters in the node name.
|
||||
For example, `node-1\.example\.com`.
|
||||
|
||||
+
|
||||
.Example output
|
||||
[source,terminal]
|
||||
----
|
||||
# Do not edit
|
||||
# This file is generated automatically by linuxptp-daemon
|
||||
#$ 3913697179
|
||||
#@ 4291747200
|
||||
2272060800 10 # 1 Jan 1972
|
||||
2287785600 11 # 1 Jul 1972
|
||||
2303683200 12 # 1 Jan 1973
|
||||
2335219200 13 # 1 Jan 1974
|
||||
2366755200 14 # 1 Jan 1975
|
||||
2398291200 15 # 1 Jan 1976
|
||||
2429913600 16 # 1 Jan 1977
|
||||
2461449600 17 # 1 Jan 1978
|
||||
2492985600 18 # 1 Jan 1979
|
||||
2524521600 19 # 1 Jan 1980
|
||||
2571782400 20 # 1 Jul 1981
|
||||
2603318400 21 # 1 Jul 1982
|
||||
2634854400 22 # 1 Jul 1983
|
||||
2698012800 23 # 1 Jul 1985
|
||||
2776982400 24 # 1 Jan 1988
|
||||
2840140800 25 # 1 Jan 1990
|
||||
2871676800 26 # 1 Jan 1991
|
||||
2918937600 27 # 1 Jul 1992
|
||||
2950473600 28 # 1 Jul 1993
|
||||
2982009600 29 # 1 Jul 1994
|
||||
3029443200 30 # 1 Jan 1996
|
||||
3076704000 31 # 1 Jul 1997
|
||||
3124137600 32 # 1 Jan 1999
|
||||
3345062400 33 # 1 Jan 2006
|
||||
3439756800 34 # 1 Jan 2009
|
||||
3550089600 35 # 1 Jul 2012
|
||||
3644697600 36 # 1 Jul 2015
|
||||
3692217600 37 # 1 Jan 2017
|
||||
|
||||
#h e65754d4 8f39962b aa854a61 661ef546 d2af0bfa
|
||||
----
|
||||
@@ -28,3 +28,14 @@ Digital Phase-Locked Loop (DPLL)::
|
||||
DPLL provides clock synchronization between different PTP nodes in the network.
|
||||
DPLL compares the phase of the local system clock signal with the phase of the incoming synchronization signal, for example, PTP messages from the PTP grandmaster clock.
|
||||
The DPLL continuously adjusts the local clock frequency and phase to minimize the phase difference between the local clock and the reference clock.
|
||||
|
||||
[discrete]
|
||||
[id="handling-leap-second-events-in-gnss_{context}"]
|
||||
== Handling leap second events in GNSS-synced PTP grandmaster clocks
|
||||
|
||||
A leap second is a one-second adjustment that is occasionally applied to Coordinated Universal Time (UTC) to keep it synchronized with International Atomic Time (TAI).
|
||||
UTC leap seconds are unpredictable.
|
||||
Internationally agreed leap seconds are listed in link:https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list[leap-seconds.list].
|
||||
This file is regularly updated by the International Earth Rotation and Reference Systems Service (IERS).
|
||||
An unhandled leap second can have a significant impact on far edge RAN networks.
|
||||
It can cause the far edge RAN application to immediately disconnect voice calls and data sessions.
|
||||
|
||||
@@ -8,7 +8,7 @@ toc::[]
|
||||
|
||||
The PTP Operator adds the `NodePtpDevice.ptp.openshift.io` custom resource definition (CRD) to {product-title}.
|
||||
|
||||
When installed, the PTP Operator searches your cluster for PTP-capable network devices on each node. It creates and updates a `NodePtpDevice` custom resource (CR) object for each node that provides a compatible PTP-capable network device.
|
||||
When installed, the PTP Operator searches your cluster for Precision Time Protocol (PTP) capable network devices on each node. It creates and updates a `NodePtpDevice` custom resource (CR) object for each node that provides a compatible PTP-capable network device.
|
||||
|
||||
include::modules/nw-ptp-installing-operator-cli.adoc[leveloffset=+1]
|
||||
|
||||
@@ -35,6 +35,8 @@ include::modules/nw-ptp-e810-hardware-configuration-reference.adoc[leveloffset=+
|
||||
|
||||
include::modules/nw-ptp-dual-wpc-hardware-config-reference.adoc[leveloffset=+2]
|
||||
|
||||
include::modules/ptp-configuring-dynamic-leap-seconds-handling-for-tgm.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/nw-ptp-configuring-linuxptp-services-as-boundary-clock.adoc[leveloffset=+1]
|
||||
|
||||
[role="_additional-resources"]
|
||||
|
||||
@@ -7,7 +7,7 @@ include::_attributes/common-attributes.adoc[]
|
||||
toc::[]
|
||||
|
||||
Cloud native applications such as virtual RAN (vRAN) require access to notifications about hardware timing events that are critical to the functioning of the overall network.
|
||||
PTP clock synchronization errors can negatively affect the performance and reliability of your low-latency application, for example, a vRAN application running in a distributed unit (DU).
|
||||
Precision Time Protocol (PTP) clock synchronization errors can negatively affect the performance and reliability of your low-latency application, for example, a vRAN application running in a distributed unit (DU).
|
||||
|
||||
include::modules/cnf-about-ptp-and-clock-synchronization.adoc[leveloffset=+1]
|
||||
|
||||
|
||||
@@ -1,230 +0,0 @@
|
||||
apiVersion: ptp.openshift.io/v1
|
||||
kind: PtpConfig
|
||||
metadata:
|
||||
name: grandmaster
|
||||
namespace: openshift-ptp
|
||||
annotations:
|
||||
ran.openshift.io/ztp-deploy-wave: "10"
|
||||
spec:
|
||||
profile:
|
||||
- name: "grandmaster"
|
||||
ptp4lOpts: "-2 --summary_interval -4"
|
||||
phc2sysOpts: -r -u 0 -m -O -37 -N 8 -R 16 -s $iface_nic1 -n 24
|
||||
ptpSchedulingPolicy: SCHED_FIFO
|
||||
ptpSchedulingPriority: 10
|
||||
ptpSettings:
|
||||
logReduce: "true"
|
||||
plugins:
|
||||
e810:
|
||||
enableDefaultConfig: false
|
||||
settings:
|
||||
LocalMaxHoldoverOffSet: 1500
|
||||
LocalHoldoverTimeout: 14400
|
||||
MaxInSpecOffset: 100
|
||||
pins:
|
||||
"$iface_nic1":
|
||||
"U.FL2": "0 2"
|
||||
"U.FL1": "0 1"
|
||||
"SMA2": "0 2"
|
||||
"SMA1": "2 1"
|
||||
"$iface_nic2":
|
||||
"U.FL2": "0 2"
|
||||
"U.FL1": "0 1"
|
||||
"SMA2": "0 2"
|
||||
"SMA1": "1 1"
|
||||
ublxCmds:
|
||||
- args: #ubxtool -P 29.20 -z CFG-HW-ANT_CFG_VOLTCTRL,1
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-z"
|
||||
- "CFG-HW-ANT_CFG_VOLTCTRL,1"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -e GPS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-e"
|
||||
- "GPS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d Galileo
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "Galileo"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d GLONASS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "GLONASS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d BeiDou
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "BeiDou"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d SBAS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "SBAS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -t -w 5 -v 1 -e SURVEYIN,600,50000
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-t"
|
||||
- "-w"
|
||||
- "5"
|
||||
- "-v"
|
||||
- "1"
|
||||
- "-e"
|
||||
- "SURVEYIN,600,50000"
|
||||
reportOutput: true
|
||||
- args: #ubxtool -P 29.20 -p MON-HW
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-p"
|
||||
- "MON-HW"
|
||||
reportOutput: true
|
||||
ts2phcOpts: " "
|
||||
ts2phcConf: |
|
||||
[nmea]
|
||||
ts2phc.master 1
|
||||
[global]
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
logging_level 7
|
||||
ts2phc.pulsewidth 100000000
|
||||
#cat /dev/GNSS to find available serial port
|
||||
#example value of gnss_serialport is /dev/ttyGNSS_1700_0
|
||||
ts2phc.nmea_serialport $gnss_serialport
|
||||
leapfile /usr/share/zoneinfo/leap-seconds.list
|
||||
[$iface_nic1]
|
||||
ts2phc.extts_polarity rising
|
||||
ts2phc.extts_correction 0
|
||||
[$iface_nic2]
|
||||
ts2phc.master 0
|
||||
ts2phc.extts_polarity rising
|
||||
#this is a measured value in nanoseconds to compensate for SMA cable delay
|
||||
ts2phc.extts_correction -10
|
||||
ptp4lConf: |
|
||||
[$iface_nic1]
|
||||
masterOnly 1
|
||||
[$iface_nic1_1]
|
||||
masterOnly 1
|
||||
[$iface_nic1_2]
|
||||
masterOnly 1
|
||||
[$iface_nic1_3]
|
||||
masterOnly 1
|
||||
[$iface_nic2]
|
||||
masterOnly 1
|
||||
[$iface_nic2_1]
|
||||
masterOnly 1
|
||||
[$iface_nic2_2]
|
||||
masterOnly 1
|
||||
[$iface_nic2_3]
|
||||
masterOnly 1
|
||||
[global]
|
||||
#
|
||||
# Default Data Set
|
||||
#
|
||||
twoStepFlag 1
|
||||
priority1 128
|
||||
priority2 128
|
||||
domainNumber 24
|
||||
#utc_offset 37
|
||||
clockClass 6
|
||||
clockAccuracy 0x27
|
||||
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 0
|
||||
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 -4
|
||||
kernel_leap 1
|
||||
check_fup_sync 0
|
||||
clock_class_threshold 7
|
||||
#
|
||||
# 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
|
||||
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 1
|
||||
#
|
||||
# Clock description
|
||||
#
|
||||
productDescription ;;
|
||||
revisionData ;;
|
||||
manufacturerIdentity 00:00:00
|
||||
userDescription ;
|
||||
timeSource 0x20
|
||||
recommend:
|
||||
- profile: "grandmaster"
|
||||
priority: 4
|
||||
match:
|
||||
- nodeLabel: "node-role.kubernetes.io/$mcp"
|
||||
@@ -1,208 +0,0 @@
|
||||
apiVersion: ptp.openshift.io/v1
|
||||
kind: PtpConfig
|
||||
metadata:
|
||||
name: grandmaster
|
||||
namespace: openshift-ptp
|
||||
spec:
|
||||
profile:
|
||||
- name: "grandmaster"
|
||||
ptp4lOpts: "-2 --summary_interval -4"
|
||||
phc2sysOpts: -r -u 0 -m -O -37 -N 8 -R 16 -s $iface_master -n 24
|
||||
ptpSchedulingPolicy: SCHED_FIFO
|
||||
ptpSchedulingPriority: 10
|
||||
ptpSettings:
|
||||
logReduce: "true"
|
||||
plugins:
|
||||
e810:
|
||||
enableDefaultConfig: false
|
||||
settings:
|
||||
LocalMaxHoldoverOffSet: 1500
|
||||
LocalHoldoverTimeout: 14400
|
||||
MaxInSpecOffset: 100
|
||||
pins: $e810_pins
|
||||
# "$iface_master":
|
||||
# "U.FL2": "0 2"
|
||||
# "U.FL1": "0 1"
|
||||
# "SMA2": "0 2"
|
||||
# "SMA1": "0 1"
|
||||
ublxCmds:
|
||||
- args: #ubxtool -P 29.20 -z CFG-HW-ANT_CFG_VOLTCTRL,1
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-z"
|
||||
- "CFG-HW-ANT_CFG_VOLTCTRL,1"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -e GPS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-e"
|
||||
- "GPS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d Galileo
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "Galileo"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d GLONASS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "GLONASS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d BeiDou
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "BeiDou"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d SBAS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "SBAS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -t -w 5 -v 1 -e SURVEYIN,600,50000
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-t"
|
||||
- "-w"
|
||||
- "5"
|
||||
- "-v"
|
||||
- "1"
|
||||
- "-e"
|
||||
- "SURVEYIN,600,50000"
|
||||
reportOutput: true
|
||||
- args: #ubxtool -P 29.20 -p MON-HW
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-p"
|
||||
- "MON-HW"
|
||||
reportOutput: true
|
||||
ts2phcOpts: " "
|
||||
ts2phcConf: |
|
||||
[nmea]
|
||||
ts2phc.master 1
|
||||
[global]
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
logging_level 7
|
||||
ts2phc.pulsewidth 100000000
|
||||
ts2phc.nmea_serialport $gnss_serialport
|
||||
leapfile /usr/share/zoneinfo/leap-seconds.list
|
||||
[$iface_master]
|
||||
ts2phc.extts_polarity rising
|
||||
ts2phc.extts_correction 0
|
||||
ptp4lConf: |
|
||||
[$iface_master]
|
||||
masterOnly 1
|
||||
[$iface_master_1]
|
||||
masterOnly 1
|
||||
[$iface_master_2]
|
||||
masterOnly 1
|
||||
[$iface_master_3]
|
||||
masterOnly 1
|
||||
[global]
|
||||
#
|
||||
# Default Data Set
|
||||
#
|
||||
twoStepFlag 1
|
||||
priority1 128
|
||||
priority2 128
|
||||
domainNumber 24
|
||||
#utc_offset 37
|
||||
clockClass 6
|
||||
clockAccuracy 0x27
|
||||
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 0
|
||||
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 -4
|
||||
kernel_leap 1
|
||||
check_fup_sync 0
|
||||
clock_class_threshold 7
|
||||
#
|
||||
# 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
|
||||
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 0x20
|
||||
recommend:
|
||||
- profile: "grandmaster"
|
||||
priority: 4
|
||||
match:
|
||||
- nodeLabel: "node-role.kubernetes.io/$mcp"
|
||||
@@ -1,221 +1,238 @@
|
||||
# 2 cards $iface_master and $iface_master_1 are connected via SMA1 ports by a cable and $iface_master_1 receives 1PPS signals from $iface_master
|
||||
# In this example two cards $iface_nic1 and $iface_nic2 are connected via
|
||||
# SMA1 ports by a cable and $iface_nic2 receives 1PPS signals from $iface_nic1
|
||||
apiVersion: ptp.openshift.io/v1
|
||||
kind: PtpConfig
|
||||
metadata:
|
||||
name: grandmaster
|
||||
namespace: openshift-ptp
|
||||
annotations: {}
|
||||
annotations:
|
||||
ran.openshift.io/ztp-deploy-wave: "10"
|
||||
spec:
|
||||
profile:
|
||||
- name: "grandmaster"
|
||||
ptp4lOpts: "-2 --summary_interval -4"
|
||||
phc2sysOpts: -r -u 0 -m -O -37 -N 8 -R 16 -s $iface_master -n 24
|
||||
ptpSchedulingPolicy: SCHED_FIFO
|
||||
ptpSchedulingPriority: 10
|
||||
ptpSettings:
|
||||
logReduce: "true"
|
||||
plugins:
|
||||
e810:
|
||||
enableDefaultConfig: false
|
||||
settings:
|
||||
LocalMaxHoldoverOffSet: 1500
|
||||
LocalHoldoverTimeout: 14400
|
||||
MaxInSpecOffset: 100
|
||||
pins: $e810_pins
|
||||
# "$iface_master":
|
||||
# "U.FL2": "0 2"
|
||||
# "U.FL1": "0 1"
|
||||
# "SMA2": "0 2"
|
||||
# "SMA1": "2 1"
|
||||
# "$iface_master_1":
|
||||
# "U.FL2": "0 2"
|
||||
# "U.FL1": "0 1"
|
||||
# "SMA2": "0 2"
|
||||
# "SMA1": "1 1"
|
||||
ublxCmds:
|
||||
- args: #ubxtool -P 29.20 -z CFG-HW-ANT_CFG_VOLTCTRL,1
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-z"
|
||||
- "CFG-HW-ANT_CFG_VOLTCTRL,1"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -e GPS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-e"
|
||||
- "GPS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d Galileo
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "Galileo"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d GLONASS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "GLONASS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d BeiDou
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "BeiDou"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d SBAS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "SBAS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -t -w 5 -v 1 -e SURVEYIN,600,50000
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-t"
|
||||
- "-w"
|
||||
- "5"
|
||||
- "-v"
|
||||
- "1"
|
||||
- "-e"
|
||||
- "SURVEYIN,600,50000"
|
||||
reportOutput: true
|
||||
- args: #ubxtool -P 29.20 -p MON-HW
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-p"
|
||||
- "MON-HW"
|
||||
reportOutput: true
|
||||
ts2phcOpts: " "
|
||||
ts2phcConf: |
|
||||
[nmea]
|
||||
ts2phc.master 1
|
||||
[global]
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
logging_level 7
|
||||
ts2phc.pulsewidth 100000000
|
||||
#cat /dev/GNSS to find available serial port
|
||||
#example value of gnss_serialport is /dev/ttyGNSS_1700_0
|
||||
ts2phc.nmea_serialport $gnss_serialport
|
||||
leapfile /usr/share/zoneinfo/leap-seconds.list
|
||||
[$iface_master]
|
||||
ts2phc.extts_polarity rising
|
||||
ts2phc.extts_correction 0
|
||||
[$iface_master_1]
|
||||
ts2phc.extts_polarity rising
|
||||
#this is a measured value in nanoseconds to compensate for SMA cable delay
|
||||
ts2phc.extts_correction -10
|
||||
ptp4lConf: |
|
||||
[$iface_master]
|
||||
masterOnly 1
|
||||
[$iface_master_1]
|
||||
masterOnly 1
|
||||
[$iface_master_1_1]
|
||||
masterOnly 1
|
||||
[$iface_master_1_2]
|
||||
masterOnly 1
|
||||
[global]
|
||||
#
|
||||
# Default Data Set
|
||||
#
|
||||
twoStepFlag 1
|
||||
priority1 128
|
||||
priority2 128
|
||||
domainNumber 24
|
||||
#utc_offset 37
|
||||
clockClass 6
|
||||
clockAccuracy 0x27
|
||||
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 0
|
||||
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 -4
|
||||
kernel_leap 1
|
||||
check_fup_sync 0
|
||||
clock_class_threshold 7
|
||||
#
|
||||
# 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
|
||||
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 1
|
||||
#
|
||||
# Clock description
|
||||
#
|
||||
productDescription ;;
|
||||
revisionData ;;
|
||||
manufacturerIdentity 00:00:00
|
||||
userDescription ;
|
||||
timeSource 0x20
|
||||
- name: "grandmaster"
|
||||
ptp4lOpts: "-2 --summary_interval -4"
|
||||
phc2sysOpts: -r -u 0 -m -w -N 8 -R 16 -s $iface_nic1 -n 24
|
||||
ptpSchedulingPolicy: SCHED_FIFO
|
||||
ptpSchedulingPriority: 10
|
||||
ptpSettings:
|
||||
logReduce: "true"
|
||||
plugins:
|
||||
e810:
|
||||
enableDefaultConfig: false
|
||||
settings:
|
||||
LocalMaxHoldoverOffSet: 1500
|
||||
LocalHoldoverTimeout: 14400
|
||||
MaxInSpecOffset: 100
|
||||
pins: $e810_pins
|
||||
# "$iface_nic1":
|
||||
# "U.FL2": "0 2"
|
||||
# "U.FL1": "0 1"
|
||||
# "SMA2": "0 2"
|
||||
# "SMA1": "2 1"
|
||||
# "$iface_nic2":
|
||||
# "U.FL2": "0 2"
|
||||
# "U.FL1": "0 1"
|
||||
# "SMA2": "0 2"
|
||||
# "SMA1": "1 1"
|
||||
ublxCmds:
|
||||
- args: #ubxtool -P 29.20 -z CFG-HW-ANT_CFG_VOLTCTRL,1
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-z"
|
||||
- "CFG-HW-ANT_CFG_VOLTCTRL,1"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -e GPS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-e"
|
||||
- "GPS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d Galileo
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "Galileo"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d GLONASS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "GLONASS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d BeiDou
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "BeiDou"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -d SBAS
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-d"
|
||||
- "SBAS"
|
||||
reportOutput: false
|
||||
- args: #ubxtool -P 29.20 -t -w 5 -v 1 -e SURVEYIN,600,50000
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-t"
|
||||
- "-w"
|
||||
- "5"
|
||||
- "-v"
|
||||
- "1"
|
||||
- "-e"
|
||||
- "SURVEYIN,600,50000"
|
||||
reportOutput: true
|
||||
- args: #ubxtool -P 29.20 -p MON-HW
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-p"
|
||||
- "MON-HW"
|
||||
reportOutput: true
|
||||
- args: #ubxtool -P 29.20 -p CFG-MSG,1,38,248
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-p"
|
||||
- "CFG-MSG,1,38,248"
|
||||
reportOutput: true
|
||||
ts2phcOpts: " "
|
||||
ts2phcConf: |
|
||||
[nmea]
|
||||
ts2phc.master 1
|
||||
[global]
|
||||
use_syslog 0
|
||||
verbose 1
|
||||
logging_level 7
|
||||
ts2phc.pulsewidth 100000000
|
||||
#cat /dev/GNSS to find available serial port
|
||||
#example value of gnss_serialport is /dev/ttyGNSS_1700_0
|
||||
ts2phc.nmea_serialport $gnss_serialport
|
||||
leapfile /usr/share/zoneinfo/leap-seconds.list
|
||||
[$iface_nic1]
|
||||
ts2phc.extts_polarity rising
|
||||
ts2phc.extts_correction 0
|
||||
[$iface_nic2]
|
||||
ts2phc.master 0
|
||||
ts2phc.extts_polarity rising
|
||||
#this is a measured value in nanoseconds to compensate for SMA cable delay
|
||||
ts2phc.extts_correction -10
|
||||
ptp4lConf: |
|
||||
[$iface_nic1]
|
||||
masterOnly 1
|
||||
[$iface_nic1_1]
|
||||
masterOnly 1
|
||||
[$iface_nic1_2]
|
||||
masterOnly 1
|
||||
[$iface_nic1_3]
|
||||
masterOnly 1
|
||||
[$iface_nic2]
|
||||
masterOnly 1
|
||||
[$iface_nic2_1]
|
||||
masterOnly 1
|
||||
[$iface_nic2_2]
|
||||
masterOnly 1
|
||||
[$iface_nic2_3]
|
||||
masterOnly 1
|
||||
[global]
|
||||
#
|
||||
# Default Data Set
|
||||
#
|
||||
twoStepFlag 1
|
||||
priority1 128
|
||||
priority2 128
|
||||
domainNumber 24
|
||||
#utc_offset 37
|
||||
clockClass 6
|
||||
clockAccuracy 0x27
|
||||
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 0
|
||||
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 -4
|
||||
kernel_leap 1
|
||||
check_fup_sync 0
|
||||
clock_class_threshold 7
|
||||
#
|
||||
# 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
|
||||
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 1
|
||||
#
|
||||
# Clock description
|
||||
#
|
||||
productDescription ;;
|
||||
revisionData ;;
|
||||
manufacturerIdentity 00:00:00
|
||||
userDescription ;
|
||||
timeSource 0x20
|
||||
recommend:
|
||||
- profile: "grandmaster"
|
||||
priority: 4
|
||||
match:
|
||||
- nodeLabel: "node-role.kubernetes.io/$mcp"
|
||||
- profile: "grandmaster"
|
||||
priority: 4
|
||||
match:
|
||||
- nodeLabel: "node-role.kubernetes.io/$mcp"
|
||||
|
||||
@@ -80,6 +80,12 @@ spec:
|
||||
- "-p"
|
||||
- "MON-HW"
|
||||
reportOutput: true
|
||||
- args: #ubxtool -P 29.20 -p CFG-MSG,1,38,248
|
||||
- "-P"
|
||||
- "29.20"
|
||||
- "-p"
|
||||
- "CFG-MSG,1,38,248"
|
||||
reportOutput: true
|
||||
ts2phcOpts: " "
|
||||
ts2phcConf: |
|
||||
[nmea]
|
||||
@@ -92,7 +98,6 @@ spec:
|
||||
#cat /dev/GNSS to find available serial port
|
||||
#example value of gnss_serialport is /dev/ttyGNSS_1700_0
|
||||
ts2phc.nmea_serialport $gnss_serialport
|
||||
leapfile /usr/share/zoneinfo/leap-seconds.list
|
||||
[$iface_master]
|
||||
ts2phc.extts_polarity rising
|
||||
ts2phc.extts_correction 0
|
||||
|
||||
Reference in New Issue
Block a user