|
| 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-three-nic_{context}"] |
| 7 | += Configuring linuxptp services as a grandmaster clock for 3 E810 NICs |
| 8 | + |
| 9 | +You can configure the `linuxptp` services (`ptp4l`, `phc2sys`, `ts2phc`) as a grandmaster clock (T-GM) for 3 E810 NICs by creating a `PtpConfig` custom resource (CR) that configures the NICs. |
| 10 | + |
| 11 | +You can configure the `linuxptp` services as a T-GM with 3 NICs for the following E810 NICs: |
| 12 | + |
| 13 | +* Intel E810-XXVDA4T Westport Channel NIC |
| 14 | +* Intel E810-CQDA2T Logan Beach NIC |
| 15 | +
|
| 16 | +For distributed RAN (D-RAN) use cases, you can configure PTP for 3 NICs as follows: |
| 17 | + |
| 18 | +* NIC 1 is synced to the Global Navigation Satellite System (GNSS) |
| 19 | +* NICs 2 and 3 are synced to NIC 1 with 1PPS faceplate connections |
| 20 | +
|
| 21 | +Use the following example `PtpConfig` CRs as the basis to configure `linuxptp` services as a 3-card Intel E810 T-GM. |
| 22 | + |
| 23 | +.Prerequisites |
| 24 | + |
| 25 | +* For T-GM clocks in production environments, install 3 Intel E810 NICs in the bare-metal cluster host. |
| 26 | +
|
| 27 | +* Install the OpenShift CLI (`oc`). |
| 28 | +
|
| 29 | +* Log in as a user with `cluster-admin` privileges. |
| 30 | +
|
| 31 | +* Install the PTP Operator. |
| 32 | +
|
| 33 | +.Procedure |
| 34 | + |
| 35 | +. Create the `PtpConfig` CR. For example: |
| 36 | + |
| 37 | +.. Save the following YAML in the `three-nic-grandmaster-clock-ptp-config.yaml` file: |
| 38 | ++ |
| 39 | +.PTP grandmaster clock configuration for 3 E810 NICs |
| 40 | +[%collapsible] |
| 41 | +==== |
| 42 | +[source,yaml] |
| 43 | +---- |
| 44 | +include::snippets/ptp_PtpConfigThreeCardGmWpc.yaml[] |
| 45 | +---- |
| 46 | +==== |
| 47 | ++ |
| 48 | +[NOTE] |
| 49 | +==== |
| 50 | +Set the value for `ts2phc.nmea_serialport` to `/dev/gnss0`. |
| 51 | +==== |
| 52 | + |
| 53 | +.. Create the CR by running the following command: |
| 54 | ++ |
| 55 | +[source,terminal] |
| 56 | +---- |
| 57 | +$ oc create -f three-nic-grandmaster-clock-ptp-config.yaml |
| 58 | +---- |
| 59 | + |
| 60 | +.Verification |
| 61 | + |
| 62 | +. Check that the `PtpConfig` profile is applied to the node. |
| 63 | + |
| 64 | +.. Get the list of pods in the `openshift-ptp` namespace by running the following command: |
| 65 | ++ |
| 66 | +[source,terminal] |
| 67 | +---- |
| 68 | +$ oc get pods -n openshift-ptp -o wide |
| 69 | +---- |
| 70 | ++ |
| 71 | +.Example output |
| 72 | +[source,terminal] |
| 73 | +---- |
| 74 | +NAME READY STATUS RESTARTS AGE IP NODE |
| 75 | +linuxptp-daemon-74m3q 3/3 Running 3 4d15h 10.16.230.7 compute-1.example.com |
| 76 | +ptp-operator-5f4f48d7c-x6zkn 1/1 Running 1 4d15h 10.128.1.145 compute-1.example.com |
| 77 | +---- |
| 78 | + |
| 79 | +.. Check that the profile is correct. Run the following command, and examine the logs of the `linuxptp` daemon that corresponds to the node you specified in the `PtpConfig` profile: |
| 80 | ++ |
| 81 | +[source,terminal] |
| 82 | +---- |
| 83 | +$ oc logs linuxptp-daemon-74m3q -n openshift-ptp -c linuxptp-daemon-container |
| 84 | +---- |
| 85 | ++ |
| 86 | +.Example output |
| 87 | +[source,terminal] |
| 88 | +---- |
| 89 | +ts2phc[2527.586]: [ts2phc.0.config:7] adding tstamp 1742826342.000000000 to clock /dev/ptp11 <1> |
| 90 | +ts2phc[2527.586]: [ts2phc.0.config:7] adding tstamp 1742826342.000000000 to clock /dev/ptp7 <1> |
| 91 | +ts2phc[2527.586]: [ts2phc.0.config:7] adding tstamp 1742826342.000000000 to clock /dev/ptp14 <1> |
| 92 | +ts2phc[2527.586]: [ts2phc.0.config:7] nmea delay: 56308811 ns |
| 93 | +ts2phc[2527.586]: [ts2phc.0.config:6] /dev/ptp14 offset 0 s2 freq +0 <2> |
| 94 | +ts2phc[2527.587]: [ts2phc.0.config:6] /dev/ptp7 offset 0 s2 freq +0 <2> |
| 95 | +ts2phc[2527.587]: [ts2phc.0.config:6] /dev/ptp11 offset 0 s2 freq -0 <2> |
| 96 | +I0324 14:25:05.000439 106907 stats.go:61] state updated for ts2phc =s2 |
| 97 | +I0324 14:25:05.000504 106907 event.go:419] dpll State s2, gnss State s2, tsphc state s2, gm state s2, |
| 98 | +I0324 14:25:05.000906 106907 stats.go:61] state updated for ts2phc =s2 |
| 99 | +I0324 14:25:05.001059 106907 stats.go:61] state updated for ts2phc =s2 |
| 100 | +ts2phc[1742826305]:[ts2phc.0.config] ens4f0 nmea_status 1 offset 0 s2 |
| 101 | +GM[1742826305]:[ts2phc.0.config] ens4f0 T-GM-STATUS s2 <3> |
| 102 | +---- |
| 103 | +<1> `ts2phc` is updating the PTP hardware clock. |
| 104 | +<2> Estimated PTP device offset between PTP device and the reference clock is 0 nanoseconds. |
| 105 | +The PTP device is in sync with the leader clock. |
| 106 | +<3> T-GM is in a locked state (s2). |
0 commit comments