Skip to content

Commit 8c8cb88

Browse files
authored
Merge pull request #69941 from aireilly/TELCODOCS-1480-ptp-gm-dual-nic
TELCODOCS-1480 - PTP T-GM dual NIC config for D-RAN use cases
2 parents 925d081 + 8b6c328 commit 8c8cb88

6 files changed

+400
-3
lines changed
179 KB
Loading
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/ptp/configuring-ptp.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="configuring-linuxptp-services-as-grandmaster-clock-dual-nic_{context}"]
7+
= Configuring linuxptp services as a grandmaster clock for dual E810 Westport Channel NICs
8+
9+
You can configure the `linuxptp` services (`ptp4l`, `phc2sys`, `ts2phc`) as grandmaster clock (T-GM) for dual E810 Westport Channel NICs by creating a `PtpConfig` custom resource (CR) that configures the host NICs.
10+
11+
For distributed RAN (D-RAN) use cases, you can configure PTP for dual NICs as follows:
12+
13+
* NIC one is synced to the global navigation satellite system (GNSS) time source.
14+
* NIC two is synced to the 1PPS timing output provided by NIC one. This configuration is provided by the PTP hardware plugin in the `PtpConfig` CR.
15+
16+
The dual NIC PTP T-GM configuration uses a single instance of `ptp4l` and one `ts2phc` process reporting two `ts2phc` instances, one for each NIC.
17+
The host system clock is synchronized from the NIC that is connected to the GNSS time source.
18+
19+
[NOTE]
20+
====
21+
Use the following example `PtpConfig` CR as the basis to configure `linuxptp` services as T-GM for dual Intel Westport Channel E810-XXVDA4T network interfaces.
22+
23+
To configure PTP fast events, set appropriate values for `ptp4lOpts`, `ptp4lConf`, and `ptpClockThreshold`.
24+
`ptpClockThreshold` is used only when events are enabled.
25+
See "Configuring the PTP fast event notifications publisher" for more information.
26+
====
27+
28+
.Prerequisites
29+
30+
* For T-GM clocks in production environments, install two Intel E810 Westport Channel NICs in the bare-metal cluster host.
31+
32+
* Install the OpenShift CLI (`oc`).
33+
34+
* Log in as a user with `cluster-admin` privileges.
35+
36+
* Install the PTP Operator.
37+
38+
.Procedure
39+
40+
. Create the `PtpConfig` CR. For example:
41+
42+
.. Save the following YAML in the `grandmaster-clock-ptp-config-dual-nics.yaml` file:
43+
+
44+
.PTP grandmaster clock configuration for dual E810 NICs
45+
[%collapsible]
46+
====
47+
[source,yaml]
48+
----
49+
include::snippets/ptp_PtpConfigDualCardGmWpc.yaml[]
50+
----
51+
====
52+
+
53+
[NOTE]
54+
====
55+
For E810 Westport Channel NICs, set the value for `ts2phc.nmea_serialport` to `/dev/gnss0`.
56+
====
57+
58+
.. Create the CR by running the following command:
59+
+
60+
[source,terminal]
61+
----
62+
$ oc create -f grandmaster-clock-ptp-config-dual-nics.yaml
63+
----
64+
65+
.Verification
66+
67+
. Check that the `PtpConfig` profile is applied to the node.
68+
69+
.. Get the list of pods in the `openshift-ptp` namespace by running the following command:
70+
+
71+
[source,terminal]
72+
----
73+
$ oc get pods -n openshift-ptp -o wide
74+
----
75+
+
76+
.Example output
77+
[source,terminal]
78+
----
79+
NAME READY STATUS RESTARTS AGE IP NODE
80+
linuxptp-daemon-74m2g 3/3 Running 3 4d15h 10.16.230.7 compute-1.example.com
81+
ptp-operator-5f4f48d7c-x7zkf 1/1 Running 1 4d15h 10.128.1.145 compute-1.example.com
82+
----
83+
84+
.. Check that the profile is correct. Examine the logs of the `linuxptp` daemon that corresponds to the node you specified in the `PtpConfig` profile.
85+
Run the following command:
86+
+
87+
[source,terminal]
88+
----
89+
$ oc logs linuxptp-daemon-74m2g -n openshift-ptp -c linuxptp-daemon-container
90+
----
91+
+
92+
.Example output
93+
[source,terminal]
94+
----
95+
ts2phc[509863.660]: [ts2phc.0.config] nmea delay: 347527248 ns
96+
ts2phc[509863.660]: [ts2phc.0.config] ens2f0 extts index 0 at 1705516553.000000000 corr 0 src 1705516553.652499081 diff 0
97+
ts2phc[509863.660]: [ts2phc.0.config] ens2f0 master offset 0 s2 freq -0
98+
I0117 18:35:16.000146 1633226 stats.go:57] state updated for ts2phc =s2
99+
I0117 18:35:16.000163 1633226 event.go:417] dpll State s2, gnss State s2, tsphc state s2, gm state s2,
100+
ts2phc[1705516516]:[ts2phc.0.config] ens2f0 nmea_status 1 offset 0 s2
101+
GM[1705516516]:[ts2phc.0.config] ens2f0 T-GM-STATUS s2
102+
ts2phc[509863.677]: [ts2phc.0.config] ens7f0 extts index 0 at 1705516553.000000010 corr -10 src 1705516553.652499081 diff 0
103+
ts2phc[509863.677]: [ts2phc.0.config] ens7f0 master offset 0 s2 freq -0
104+
I0117 18:35:16.016597 1633226 stats.go:57] state updated for ts2phc =s2
105+
phc2sys[509863.719]: [ptp4l.0.config] CLOCK_REALTIME phc offset -6 s2 freq +15441 delay 510
106+
phc2sys[509863.782]: [ptp4l.0.config] CLOCK_REALTIME phc offset -7 s2 freq +15438 delay 502
107+
----
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/ptp/configuring-ptp.adoc
4+
5+
:_mod-docs-content-type: REFERENCE
6+
[id="nw-ptp-dual-wpc-hardware-config-reference_{context}"]
7+
= Dual E810 Westport Channel NIC configuration reference
8+
9+
Use this information to understand how to use the link:https://github.com/openshift/linuxptp-daemon/blob/release-4.14/addons/intel/e810.go[Intel E810-XXVDA4T hardware plugin] to configure a pair of E810 network interfaces as PTP grandmaster clock (T-GM).
10+
11+
Before you configure the dual NIC cluster host, you must connect the two NICs with an SMA1 cable using the 1PPS faceplace connections.
12+
13+
When you configure a dual NIC T-GM, you need to compensate for the 1PPS signal delay that occurs when you connect the NICs using the SMA1 connection ports.
14+
Various factors such as cable length, ambient temperature, and component and manufacturing tolerances can affect the signal delay.
15+
To compensate for the delay, you must calculate the specific value that you use to offset the signal delay.
16+
17+
.E810 dual NIC T-GM PtpConfig CR reference
18+
[cols="1,2" width="90%", options="header"]
19+
|====
20+
|PtpConfig field
21+
|Description
22+
23+
|`spec.profile.plugins.e810.pins`
24+
a|Configure the E810 hardware pins using the PTP Operator E810 hardware plugin.
25+
26+
* Pin `2 1` enables the `1PPS OUT` connection for `SMA1` on NIC one.
27+
* Pin `1 1` enables the `1PPS IN` connection for `SMA1` on NIC two.
28+
29+
|`spec.profile.ts2phcConf`
30+
|Use the `ts2phcConf` field to configure parameters for NIC one and NIC two.
31+
Set `ts2phc.master 0` for NIC two.
32+
This configures the timing source for NIC two from the 1PPS input, not GNSS.
33+
Configure the `ts2phc.extts_correction` value for NIC two to compensate for the delay that is incurred for the specific SMA cable and cable length that you use.
34+
The value that you configure depends on your specific measurements and SMA1 cable length.
35+
36+
|`spec.profile.ptp4lConf`
37+
|Set the value of `boundary_clock_jbod` to 1 to enable support for multiple NICs.
38+
|====

modules/ptp-dual-nics.adoc

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,28 @@
44

55
:_mod-docs-content-type: CONCEPT
66
[id="ptp-dual-nics_{context}"]
7-
= Using PTP with dual NIC hardware
7+
= Using dual Intel E810 NIC hardware with PTP
88

9-
{product-title} supports single and dual NIC hardware for precision PTP timing in the cluster.
9+
{product-title} supports single and dual NIC Intel E810 hardware for precision PTP timing in grandmaster clocks (T-GM) and boundary clocks (T-BC).
1010

11-
For 5G telco networks that deliver mid-band spectrum coverage, each virtual distributed unit (vDU) requires connections to 6 radio units (RUs). To make these connections, each vDU host requires 2 NICs configured as boundary clocks.
11+
Dual NIC grandmaster clock::
12+
You can use a cluster host that has dual NIC hardware as PTP grandmaster clock.
13+
One NIC receives timing information from the global navigation satellite system (GNSS).
14+
The second NIC receives the timing information from the first using the SMA1 Tx/Rx connections on the E810 NIC faceplate.
15+
The system clock on the cluster host is synchronized from the NIC that is connected to the GNSS satellite.
16+
+
17+
Dual NIC grandmaster clocks are a feature of distributed RAN (D-RAN) configurations where the Remote Radio Unit (RRU) and Baseband Unit (BBU) are located at the same radio cell site.
18+
D-RAN distributes radio functions across multiple sites, with backhaul connections linking them to the core network.
19+
+
20+
.Dual NIC grandmaster clock
21+
image::561_OpenShift_Using_PTP_network_0124.png[Dual NIC PTP grandmaster clock connected to GNSS timing source and downstream PTP boundary and ordinary clocks]
22+
+
23+
[NOTE]
24+
====
25+
In a dual NIC T-GM configuration, a single `ts2phc` process reports as two `ts2phc` instances in the system.
26+
====
1227

28+
Dual NIC boundary clock::
29+
For 5G telco networks that deliver mid-band spectrum coverage, each virtual distributed unit (vDU) requires connections to 6 radio units (RUs). To make these connections, each vDU host requires 2 NICs configured as boundary clocks.
30+
+
1331
Dual NIC hardware allows you to connect each NIC to the same upstream leader clock with separate `ptp4l` instances for each NIC feeding the downstream clocks.

networking/ptp/configuring-ptp.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ include::modules/ptp-using-hardware-specific-nic-features.adoc[leveloffset=+1]
2020

2121
include::modules/nw-ptp-configuring-linuxptp-services-as-grandmaster-clock.adoc[leveloffset=+1]
2222

23+
include::modules/nw-ptp-configuring-linuxptp-services-as-grandmaster-clock-dual-nic.adoc[leveloffset=+1]
24+
2325
[role="_additional-resources"]
2426
.Additional resources
2527

@@ -31,6 +33,8 @@ include::modules/nw-ptp-grandmaster-clock-class-reference.adoc[leveloffset=+2]
3133

3234
include::modules/nw-ptp-e810-hardware-configuration-reference.adoc[leveloffset=+2]
3335

36+
include::modules/nw-ptp-dual-wpc-hardware-config-reference.adoc[leveloffset=+2]
37+
3438
include::modules/nw-ptp-configuring-linuxptp-services-as-boundary-clock.adoc[leveloffset=+1]
3539

3640
[role="_additional-resources"]

0 commit comments

Comments
 (0)