Skip to content

Commit d2c1b74

Browse files
authored
Merge pull request #80764 from aireilly/TELCODOCS-1862-O-RAN-API
TELCODOCS-1862 - Adding docs for O-RAN v3 compliant PTP fast events REST API v2
2 parents 8de182c + a643d60 commit d2c1b74

32 files changed

+5269
-425
lines changed

_topic_maps/_topic_map.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1376,10 +1376,14 @@ Topics:
13761376
File: about-ptp
13771377
- Name: Configuring PTP hardware
13781378
File: configuring-ptp
1379-
- Name: Using PTP events
1380-
File: using-ptp-events
1381-
- Name: Developing PTP events consumer applications
1379+
- Name: Developing PTP events consumer applications with the REST API v2
1380+
File: ptp-cloud-events-consumer-dev-reference-v2
1381+
- Name: PTP events REST API v2 reference
1382+
File: ptp-events-rest-api-reference-v2
1383+
- Name: Developing PTP events consumer applications with the REST API v1
13821384
File: ptp-cloud-events-consumer-dev-reference
1385+
- Name: PTP events REST API v1 reference
1386+
File: ptp-events-rest-api-reference
13831387
- Name: External DNS Operator
13841388
Dir: external_dns_operator
13851389
Topics:
Loading

modules/cnf-about-ptp-and-clock-synchronization.adoc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
// Module included in the following assemblies:
22
//
3-
// * networking/ptp/using-ptp-events.adoc
3+
// * networking/ptp/about-ptp.adoc
44

55
:_mod-docs-content-type: CONCEPT
66
[id="cnf-about-ptp-and-clock-synchronization_{context}"]
77
= About PTP and clock synchronization error events
88

9-
Loss of PTP synchronization is a critical error for a RAN network. If synchronization is lost on a node, the radio might be shut down and the network Over the Air (OTA) traffic might be shifted to another node in the wireless network. Fast event notifications mitigate against workload errors by allowing cluster nodes to communicate PTP clock sync status to the vRAN application running in the DU.
9+
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.
10+
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).
1011

11-
Event notifications are available to vRAN applications running on the same DU node. A publish/subscribe REST API passes events notifications to the messaging bus. Publish/subscribe messaging, or pub-sub messaging, is an asynchronous service-to-service communication architecture where any message published to a topic is immediately received by all of the subscribers to the topic.
12+
Loss of PTP synchronization is a critical error for a RAN network.
13+
If synchronization is lost on a node, the radio might be shut down and the network Over the Air (OTA) traffic might be shifted to another node in the wireless network.
14+
Fast event notifications mitigate against workload errors by allowing cluster nodes to communicate PTP clock sync status to the vRAN application running in the DU.
15+
16+
Event notifications are available to vRAN applications running on the same DU node.
17+
A publish/subscribe REST API passes events notifications to the messaging bus.
18+
Publish/subscribe messaging, or pub-sub messaging, is an asynchronous service-to-service communication architecture where any message published to a topic is immediately received by all of the subscribers to the topic.
1219

1320
The PTP Operator generates fast event notifications for every PTP-capable network interface. You can access the events by using a `cloud-event-proxy` sidecar container over an HTTP message bus.
1421

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/ptp/ptp-cloud-events-consumer-dev-reference.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="cnf-about-ptp-events-consumer-sidecar-and-http-transport_{context}"]
7+
= Retrieving PTP events with the PTP events REST API v1
8+
9+
Applications run the `cloud-event-proxy` container in a sidecar pattern to subscribe to PTP events.
10+
The `cloud-event-proxy` sidecar container can access the same resources as the primary application container without using any of the resources of the primary application and with no significant latency.
11+
12+
.Overview of PTP fast events with consumer sidecar and HTTP message transport
13+
image::319_OpenShift_PTP_bare-metal_OCP_nodes_0323_4.13.png[Overview of PTP fast events with consumer sidecar and HTTP message transport]
14+
15+
image:darkcircle-1.png[20,20] Event is generated on the cluster host::
16+
`linuxptp-daemon` in the PTP Operator-managed pod runs as a Kubernetes `DaemonSet` and manages the various `linuxptp` processes (`ptp4l`, `phc2sys`, and optionally for grandmaster clocks, `ts2phc`).
17+
The `linuxptp-daemon` passes the event to the UNIX domain socket.
18+
19+
image:darkcircle-2.png[20,20] Event is passed to the cloud-event-proxy sidecar::
20+
The PTP plugin reads the event from the UNIX domain socket and passes it to the `cloud-event-proxy` sidecar in the PTP Operator-managed pod.
21+
`cloud-event-proxy` delivers the event from the Kubernetes infrastructure to Cloud-Native Network Functions (CNFs) with low latency.
22+
23+
image:darkcircle-3.png[20,20] Event is persisted::
24+
The `cloud-event-proxy` sidecar in the PTP Operator-managed pod processes the event and publishes the cloud-native event by using a REST API.
25+
26+
image:darkcircle-4.png[20,20] Message is transported::
27+
The message transporter transports the event to the `cloud-event-proxy` sidecar in the application pod over HTTP.
28+
29+
image:darkcircle-5.png[20,20] Event is available from the REST API::
30+
The `cloud-event-proxy` sidecar in the Application pod processes the event and makes it available by using the REST API.
31+
32+
image:darkcircle-6.png[20,20] Consumer application requests a subscription and receives the subscribed event::
33+
The consumer application sends an API request to the `cloud-event-proxy` sidecar in the application pod to create a PTP events subscription.
34+
The `cloud-event-proxy` sidecar creates an HTTP messaging listener protocol for the resource specified in the subscription.
35+
36+
The `cloud-event-proxy` sidecar in the application pod receives the event from the PTP Operator-managed pod, unwraps the cloud events object to retrieve the data, and posts the event to the consumer application.
37+
The consumer application listens to the address specified in the resource qualifier and receives and processes the PTP event.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/ptp/ptp-cloud-events-consumer-dev-reference-v2.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="cnf-about-ptp-events-using-ptp-event-producer-with-o-ran-api_{context}"]
7+
= Retrieving PTP events with the PTP events REST API v2
8+
9+
Applications subscribe to PTP events by using an O-RAN v3 compatible REST API in the producer-side cloud event proxy sidecar.
10+
The `cloud-event-proxy` sidecar container can access the same resources as the primary application container without using any of the resources of the primary application and with no significant latency.
11+
12+
.Overview of consuming PTP fast events from the PTP event producer REST API v2
13+
image::319_OpenShift_PTP_bare-metal_OCP_nodes_0323_4.17.png[Overview of consuming PTP fast events from the PTP event producer REST API]
14+
15+
image:darkcircle-1.png[20,20] Event is generated on the cluster host::
16+
The `linuxptp-daemon` process in the PTP Operator-managed pod runs as a Kubernetes `DaemonSet` and manages the various `linuxptp` processes (`ptp4l`, `phc2sys`, and optionally for grandmaster clocks, `ts2phc`).
17+
The `linuxptp-daemon` passes the event to the UNIX domain socket.
18+
19+
image:darkcircle-2.png[20,20] Event is passed to the cloud-event-proxy sidecar::
20+
The PTP plugin reads the event from the UNIX domain socket and passes it to the `cloud-event-proxy` sidecar in the PTP Operator-managed pod.
21+
`cloud-event-proxy` delivers the event from the Kubernetes infrastructure to Cloud-Native Network Functions (CNFs) with low latency.
22+
23+
image:darkcircle-3.png[20,20] Event is published::
24+
The `cloud-event-proxy` sidecar in the PTP Operator-managed pod processes the event and publishes the event by using the PTP events REST API v2.
25+
26+
image:darkcircle-4.png[20,20] Consumer application requests a subscription and receives the subscribed event::
27+
The consumer application sends an API request to the producer `cloud-event-proxy` sidecar to create a PTP events subscription.
28+
Once subscribed, the consumer application listens to the address specified in the resource qualifier and receives and processes the PTP events.
Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,17 @@
11
// Module included in the following assemblies:
22
//
3-
// * networking/ptp/using-ptp-events.adoc
3+
// * networking/ptp/ptp-cloud-events-consumer-dev-reference-v2.adoc
4+
// * networking/ptp/ptp-cloud-events-consumer-dev-reference.adoc
45

56
:_mod-docs-content-type: CONCEPT
6-
[id="cnf-about-ptp-fast-event-notifications-framework_{context}"]
7+
[id="cnf-about-ptp-fast-event-notifications-framework-{ptp-events-rest-api}_{context}"]
78
= About the PTP fast event notifications framework
89
9-
Use the Precision Time Protocol (PTP) fast event notifications framework to subscribe cluster applications to PTP events that the bare-metal cluster node generates.
10+
Use the Precision Time Protocol (PTP) fast event REST API v2 to subscribe cluster applications to PTP events that the bare-metal cluster node generates.
1011
1112
[NOTE]
1213
====
13-
The fast events notifications framework uses a REST API for communication. The REST API is based on the _O-RAN O-Cloud Notification API Specification for Event Consumers 3.0_ that is available from link:https://orandownloadsweb.azurewebsites.net/specifications[O-RAN ALLIANCE Specifications].
14-
====
15-
16-
The framework consists of a publisher, subscriber, and an HTTP messaging protocol to handle communications between the publisher and subscriber applications.
17-
Applications run the `cloud-event-proxy` container in a sidecar pattern to subscribe to PTP events.
18-
The `cloud-event-proxy` sidecar container can access the same resources as the primary application container without using any of the resources of the primary application and with no significant latency.
19-
20-
.Overview of PTP fast events
21-
image::319_OpenShift_PTP_bare-metal_OCP_nodes_0323_4.13.png[Overview of PTP fast events]
22-
23-
image:darkcircle-1.png[20,20] Event is generated on the cluster host::
24-
`linuxptp-daemon` in the PTP Operator-managed pod runs as a Kubernetes `DaemonSet` and manages the various `linuxptp` processes (`ptp4l`, `phc2sys`, and optionally for grandmaster clocks, `ts2phc`).
25-
The `linuxptp-daemon` passes the event to the UNIX domain socket.
26-
27-
image:darkcircle-2.png[20,20] Event is passed to the cloud-event-proxy sidecar::
28-
The PTP plugin reads the event from the UNIX domain socket and passes it to the `cloud-event-proxy` sidecar in the PTP Operator-managed pod.
29-
`cloud-event-proxy` delivers the event from the Kubernetes infrastructure to Cloud-Native Network Functions (CNFs) with low latency.
14+
The fast events notifications framework uses a REST API for communication. The PTP events REST API v1 and v2 are based on the _O-RAN O-Cloud Notification API Specification for Event Consumers 3.0_ that is available from link:https://orandownloadsweb.azurewebsites.net/specifications[O-RAN ALLIANCE Specifications].
3015

31-
image:darkcircle-3.png[20,20] Event is persisted::
32-
The `cloud-event-proxy` sidecar in the PTP Operator-managed pod processes the event and publishes the cloud-native event by using a REST API.
33-
34-
image:darkcircle-4.png[20,20] Message is transported::
35-
The message transporter transports the event to the `cloud-event-proxy` sidecar in the application pod over HTTP.
36-
37-
image:darkcircle-5.png[20,20] Event is available from the REST API::
38-
The `cloud-event-proxy` sidecar in the Application pod processes the event and makes it available by using the REST API.
39-
40-
image:darkcircle-6.png[20,20] Consumer application requests a subscription and receives the subscribed event::
41-
The consumer application sends an API request to the `cloud-event-proxy` sidecar in the application pod to create a PTP events subscription.
42-
The `cloud-event-proxy` sidecar creates an HTTP messaging listener protocol for the resource specified in the subscription.
43-
44-
The `cloud-event-proxy` sidecar in the application pod receives the event from the PTP Operator-managed pod, unwraps the cloud events object to retrieve the data, and posts the event to the consumer application.
45-
The consumer application listens to the address specified in the resource qualifier and receives and processes the PTP event.
16+
Only the PTP events REST API v2 is O-RAN v3 compliant.
17+
====

modules/cnf-configuring-the-ptp-fast-event-publisher.adoc

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
// Module included in the following assemblies:
22
//
3-
// * networking/ptp/using-ptp-events.adoc
3+
// * networking/ptp/ptp-cloud-events-consumer-dev-reference-v2.adoc
4+
// * networking/ptp/ptp-cloud-events-consumer-dev-reference.adoc
45

56
:_mod-docs-content-type: PROCEDURE
6-
[id="cnf-configuring-the-ptp-fast-event-publisher_{context}"]
7+
[id="cnf-configuring-the-ptp-fast-event-publisher-{ptp-events-rest-api}_{context}"]
78
= Configuring the PTP fast event notifications publisher
89
910
To start using PTP fast event notifications for a network interface in your cluster, you must enable the fast event publisher in the PTP Operator `PtpOperatorConfig` custom resource (CR) and configure `ptpClockThreshold` values in a `PtpConfig` CR that you create.
@@ -22,21 +23,12 @@ To start using PTP fast event notifications for a network interface in your clus
2223
2324
.. Save the following YAML in the `ptp-operatorconfig.yaml` file:
2425
+
25-
[source,yaml]
26-
----
27-
apiVersion: ptp.openshift.io/v1
28-
kind: PtpOperatorConfig
29-
metadata:
30-
name: default
31-
namespace: openshift-ptp
32-
spec:
33-
daemonNodeSelector:
34-
node-role.kubernetes.io/worker: ""
35-
ptpEventConfig:
36-
enableEventPublisher: true <1>
37-
----
38-
<1> Set `enableEventPublisher` to `true` to enable PTP fast event notifications.
39-
26+
ifeval::["{ptp-events-rest-api}" == "v1"]
27+
include::snippets/ptp-event-config-api-v1.adoc[]
28+
endif::[]
29+
ifeval::["{ptp-events-rest-api}" == "v2"]
30+
include::snippets/ptp-event-config-api-v2.adoc[]
31+
endif::[]
4032
+
4133
[NOTE]
4234
====

0 commit comments

Comments
 (0)