|
6 | 6 | [id="cnf-about-ptp-fast-event-notifications-framework_{context}"]
|
7 | 7 | = About the PTP fast event notifications framework
|
8 | 8 |
|
9 |
| -You can subscribe distributed unit (DU) applications to Precision Time Protocol (PTP) fast events notifications that are generated by {product-title} with the PTP Operator and `cloud-event-proxy` sidecar container. You enable the `cloud-event-proxy` sidecar container by setting the `enableEventPublisher` field to `true` in the `ptpOperatorConfig` custom resource (CR) and specifying an Advanced Message Queuing Protocol (AMQP) `transportHost` address. PTP fast events use an AMQP event notification bus provided by the AMQ Interconnect Operator. AMQ Interconnect is a component of Red Hat AMQ, a messaging router that provides flexible routing of messages between any AMQP-enabled endpoints. An overview of the PTP fast events framework is below: |
| 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 | 10 |
|
11 |
| -.Overview of PTP fast events |
12 |
| -image::218_OpenShift_PTP_events_0222.png[Overview of PTP fast events] |
13 |
| - |
14 |
| -The `cloud-event-proxy` sidecar container can access the same resources as the primary vRAN application without using any of the resources of the primary application and with no significant latency. |
15 |
| - |
16 |
| -The fast events notifications framework uses a REST API for communication and is based on the O-RAN REST API specification. The framework consists of a publisher, subscriber, and an AMQ messaging bus to handle communications between the publisher and subscriber applications. The `cloud-event-proxy` sidecar is a utility container that runs in a pod that is loosely coupled to the main DU application container on the DU node. It provides an event publishing framework that allows you to subscribe DU applications to published PTP events. |
17 |
| - |
18 |
| -DU applications run the `cloud-event-proxy` container in a sidecar pattern to subscribe to PTP events. The following workflow describes how a DU application uses PTP fast events: |
19 |
| - |
20 |
| -. *DU application requests a subscription*: The DU sends an API request to the `cloud-event-proxy` sidecar to create a PTP events subscription. The `cloud-event-proxy` sidecar creates a subscription resource. |
| 11 | +The framework consists of a publisher, subscriber, and an AMQ or HTTP messaging protocol to handle communications between the publisher and subscriber applications. |
| 12 | +Applications run the `cloud-event-proxy` container in a sidecar pattern to subscribe to PTP events. |
| 13 | +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. |
21 | 14 |
|
22 |
| -. *cloud-event-proxy sidecar creates the subscription*: The event resource is persisted by the `cloud-event-proxy` sidecar. The `cloud-event-proxy` sidecar container sends an acknowledgment with an ID and URL location to access the stored subscription resource. The sidecar creates an AMQ messaging listener protocol for the resource specified in the subscription. |
23 |
| - |
24 |
| -. *DU application receives the PTP event notification*: The `cloud-event-proxy` sidecar container listens to the address specified in the resource qualifier. The DU events consumer processes the message and passes it to the return URL specified in the subscription. |
25 |
| - |
26 |
| -. *cloud-event-proxy sidecar validates the PTP event and posts it to the DU application*: The `cloud-event-proxy` sidecar receives the event, unwraps the cloud events object to retrieve the data, and fetches the return URL to post the event back to the DU consumer application. |
27 |
| - |
28 |
| -. *DU application uses the PTP event*: The DU application events consumer receives and processes the PTP event. |
| 15 | +[NOTE] |
| 16 | +==== |
| 17 | +The fast events notifications framework uses a REST API for communication. The REST API is based on the _O-Cloud Notification API Specification for Event Consumers_ available from link:https://orandownloadsweb.azurewebsites.net/specifications[O-RAN ALLIANCE Specifications]. |
| 18 | +==== |
29 | 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 | +-- |
| 24 | +<1> `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 | +<2> 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. |
| 27 | +`cloud-event-proxy` delivers the event from the Kubernetes infrastructure to Cloud-Native Network Functions (CNFs) with low latency. |
| 28 | +<3> The `cloud-event-proxy` sidecar in the PTP Operator-managed pod persists the event and publishes the cloud native event using a REST API. |
| 29 | +<4> The message is transported to the `cloud-event-proxy` sidecar in the application pod over HTTP or AMQP 1.0 QPID. |
| 30 | +<5> The `cloud-event-proxy` sidecar in the Application pod processes the event and makes it available by using the REST API. |
| 31 | +<6> The consumer application sends an API request to the `cloud-event-proxy` sidecar in the application pod to create a PTP events subscription. |
| 32 | +The `cloud-event-proxy` sidecar creates an AMQ or HTTP messaging listener protocol for the resource specified in the subscription. |
| 33 | ++ |
| 34 | +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. |
| 35 | +The consumer application listens to the address specified in the resource qualifier and receives and processes the PTP event. |
| 36 | +-- |
0 commit comments