relying on open models, each of them communicating through published APIs.
-.. figure:: ./images/TransportPCE-Diagram-Phosphorus.jpg
+.. figure:: ./images/TransportPCE-Diagram-Sulfur.jpg
:alt: TransportPCE architecture
TransportPCE architecture
monitoring device port state changes. Associated notifications are handled through
Kafka and DMaaP clients.
+The chlorine release brings structural changes to the project. indeed, all the official
+yang models of the OpenROADM and ONF-TAPI communities are no longer managed directly
+in the TransportPCE project but in a dedicated sub-project: transportpce/models.
+Also, the implementation of these models which is made in TransportPCE now imports
+the models already compiled by maven dependency.
+From a functional point of view, Chlorine supports the autonomous reroute of WDM services
+terminated on 100G or 400G Transponders, as well as the beginning of developments around
+the OpenROAM catalog management that will allow to support Alien Wavelength use cases.
+
Module description
~~~~~~~~~~~~~~~~~~
North API, interconnecting the Service Handler to higher level applications
relies on the Service Model defined in the MSA. The Renderer and the OLM are
-developed to allow configuring Open ROADM devices through a southbound
+developed to allow configuring OpenROADM devices through a southbound
Netconf/Yang interface and rely on the MSA’s device model.
ServiceHandler Service
In the current version, only optical equipment compliant with open ROADM datamodels are managed
by transportPCE.
+ Since Chlorine release, the bierman implementation of RESTCONF is no longer supported for the benefit of the RFC8040.
+ Thus REST API must be compliant to the RFC8040 format.
+
Connecting nodes
~~~~~~~~~~~~~~~~
end-to-end optical connectivity service between two xpdr over an optical network composed of rdm
nodes.
-**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
+**REST API** : *POST /rests/operations/org-openroadm-service:service-create*
**Sample JSON Data**
"node-id": "<xpdr-node-id>",
"service-format": "Ethernet",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"service-z-end": {
"node-id": "<xpdr-node-id>",
"service-format": "Ethernet",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"due-date": "yyyy-mm-ddT00:00:01Z",
end-to end Optical Channel (OC) connectivity service between two add/drop ports (PP port of SRG
node) over an optical network only composed of rdm nodes.
-**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
+**REST API** : *POST /rests/operations/org-openroadm-service:service-create*
**Sample JSON Data**
"node-id": "<xpdr-node-id>",
"service-format": "OC",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"service-z-end": {
"node-id": "<xpdr-node-id>",
"service-format": "OC",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-client-port>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"due-date": "yyyy-mm-ddT00:00:01Z",
between two optical network ports of OTN Xponder (MUXPDR or SWITCH). Such service configure the
optical network infrastructure composed of rdm nodes.
-**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
+**REST API** : *POST /rests/operations/org-openroadm-service:service-create*
**Sample JSON Data**
"service-format": "OTU",
"otu-service-rate": "org-openroadm-otn-common-types:OTU4",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"service-z-end": {
"service-format": "OTU",
"otu-service-rate": "org-openroadm-otn-common-types:OTU4",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"due-date": "yyyy-mm-ddT00:00:01Z",
connectivity service between two optical network ports of OTN Xponder (MUXPDR or SWITCH). Such
service configure the optical network infrastructure composed of rdm nodes.
-**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
+**REST API** : *POST /rests/operations/org-openroadm-service:service-create*
**Sample JSON Data**
"service-format": "OTU",
"otu-service-rate": "org-openroadm-otn-common-types:OTUCn",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"service-z-end": {
"service-format": "OTU",
"otu-service-rate": "org-openroadm-otn-common-types:OTUCn",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"due-date": "yyyy-mm-ddT00:00:01Z",
low-order OTN services (ODU2e, ODU0). As for OTU4, such a service must be created between two network
ports of OTN Xponder (MUXPDR or SWITCH).
-**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
+**REST API** : *POST /rests/operations/org-openroadm-service:service-create*
**Sample JSON Data**
"service-format": "ODU",
"otu-service-rate": "org-openroadm-otn-common-types:ODU4",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"service-z-end": {
"service-format": "ODU",
"otu-service-rate": "org-openroadm-otn-common-types:ODU4",
"clli": "<ccli-name>",
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"due-date": "yyyy-mm-ddT00:00:01Z",
Such a service must be created between two client ports of OTN Xponder (MUXPDR or SWITCH)
configured to support 10GE interfaces.
-**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
+**REST API** : *POST /rests/operations/org-openroadm-service:service-create*
**Sample JSON Data**
"committed-burst-size": "64"
}
},
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"service-z-end": {
"committed-burst-size": "64"
}
},
- "tx-direction": {
+ "tx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
- "rx-direction": {
+ },
+ "index": 0
+ }],
+ "rx-direction": [{
"port": {
"port-device-name": "<xpdr-node-id-in-otn-topology>",
"port-type": "fixed",
"lgx-port-name": "Some lgx-port-name",
"lgx-port-rack": "000000.00",
"lgx-port-shelf": "00"
- }
- },
+ },
+ "index": 0
+ }],
"optic-type": "gray"
},
"due-date": "yyyy-mm-ddT00:00:01Z",
Use the following REST RPC to invoke *service handler* module in order to delete a given optical
connectivity service.
-**REST API** : *POST /restconf/operations/org-openroadm-service:service-delete*
+**REST API** : *POST /rests/operations/org-openroadm-service:service-delete*
**Sample JSON Data**
Checking OTU4 service connectivity
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-**REST API** : *POST /restconf/operations/transportpce-pce:path-computation-request*
+**REST API** : *POST /rests/operations/transportpce-pce:path-computation-request*
**Sample JSON Data**
"service-format": "OTU",
"node-id": "<otn-node-id>"
},
- "pce-metric": "hop-count"
+ "pce-routing-metric": "hop-count"
}
}
Checking ODU4 service connectivity
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-**REST API** : *POST /restconf/operations/transportpce-pce:path-computation-request*
+**REST API** : *POST /rests/operations/transportpce-pce:path-computation-request*
**Sample JSON Data**
"service-format": "ODU",
"node-id": "<otn-node-id>"
},
- "pce-metric": "hop-count"
+ "pce-routing-metric": "hop-count"
}
}
Checking 10GE/ODU2e service connectivity
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-**REST API** : *POST /restconf/operations/transportpce-pce:path-computation-request*
+**REST API** : *POST /rests/operations/transportpce-pce:path-computation-request*
**Sample JSON Data**
"service-format": "Ethernet",
"node-id": "<otn-node-id>"
},
- "pce-metric": "hop-count"
+ "pce-routing-metric": "hop-count"
}
}
This feature allows TransportPCE application to expose at its northbound interface other APIs than
those defined by the OpenROADM MSA. With this feature, TransportPCE provides part of the Transport-API
-specified by the Open Networking Foundation. More specifically, the Topology Service and Connectivity
-Service components are implemented, allowing to expose to higher level applications an abstraction of
-its OpenROADM topologies in the form of topologies respecting the T-API modelling, as well as
-creating/deleting connectivity services between the Service Interface Points (SIPs) exposed by the
-T-API topology. The current version of TransportPCE implements the *tapi-topology.yang* and
-*tapi-connectivity.yang* models in the revision 2018-12-10 (T-API v2.1.2).
+specified by the Open Networking Foundation. More specifically, the Topology Service, Connectivity and Notification
+Service components are implemented, allowing to:
-Additionally, support for the Notification Service component will be added in future releases, which
-will allow higher level applications to create/delete a Notification Subscription Service to receive
-several T-API notifications as defined in the *tapi-notification.yang* model.
+1. Expose to higher level applications an abstraction of its OpenROADM topologies in the form of topologies respecting the T-API modelling.
+2. Create/delete connectivity services between the Service Interface Points (SIPs) exposed by the T-API topology.
+3. Create/Delete Notification Subscription Service to expose to higher level applications T-API notifications through a Kafka server.
+
+The current version of TransportPCE implements the *tapi-topology.yang*,
+*tapi-connectivity.yang* and *tapi-notification.yang* models in the revision
+2018-12-10 (T-API v2.1.2).
+
+Additionally, support for the Path Computation Service will be added in future releases, which will allow T-PCE
+to compute a path over the T-API topology.
T-API Topology Service
~~~~~~~~~~~~~~~~~~~~~~
of respectively XPDR-A1-XPDR1 and XPDR-C1-XPDR1...
-**REST API** : *POST /restconf/operations/tapi-topology:get-topology-details*
+**REST API** : *POST /rests/operations/tapi-topology:get-topology-details*
This request builds the TAPI *T0 - Multi-layer topology* abstraction with regard to the current
state of *openroadm-topology* and *otn-topology* topologies stored in OpenDaylight datastores.
}
}
-**REST API** : *POST /restconf/operations/tapi-topology:get-node-details*
+**REST API** : *POST /rests/operations/tapi-topology:get-node-details*
This request returns the information, stored in the Topology Context, of the corresponding T-API node.
The user can provide, either the Uuid associated to the attribute or its name.
{
"tapi-topology:input": {
"tapi-topology:topology-id-or-name": "T0 - Full Multi-layer topology",
- "tapi-topology:node-id-or-name": "ROADM-A1+PHOTONINC_MEDIA"
+ "tapi-topology:node-id-or-name": "ROADM-A1+PHOTONIC_MEDIA"
}
}
-**REST API** : *POST /restconf/operations/tapi-topology:get-node-edge-point-details*
+**REST API** : *POST /rests/operations/tapi-topology:get-node-edge-point-details*
This request returns the information, stored in the Topology Context, of the corresponding T-API NEP.
The user can provide, either the Uuid associated to the attribute or its name.
{
"tapi-topology:input": {
"tapi-topology:topology-id-or-name": "T0 - Full Multi-layer topology",
- "tapi-topology:node-id-or-name": "ROADM-A1+PHOTONINC_MEDIA",
- "tapi-topology:ep-id-or-name": "ROADM-A1+PHOTONINC_MEDIA+DEG1-TTP-TXRX"
+ "tapi-topology:node-id-or-name": "ROADM-A1+PHOTONIC_MEDIA",
+ "tapi-topology:ep-id-or-name": "ROADM-A1+PHOTONIC_MEDIA+DEG1-TTP-TXRX"
}
}
-**REST API** : *POST /restconf/operations/tapi-topology:get-link-details*
+**REST API** : *POST /rests/operations/tapi-topology:get-link-details*
This request returns the information, stored in the Topology Context, of the corresponding T-API link.
The user can provide, either the Uuid associated to the attribute or its name.
From xpdr <--> rdm:
^^^^^^^^^^^^^^^^^^^
-**REST API** : *POST /restconf/operations/transportpce-tapinetworkutils:init-xpdr-rdm-tapi-link*
+**REST API** : *POST /rests/operations/transportpce-tapinetworkutils:init-xpdr-rdm-tapi-link*
**Sample JSON Data**
Use the following REST RPC to invoke T-API module in order to create a bidirectional connectivity
service between two devices. The network should be composed of two ROADMs and two Xponders (SWITCH or MUX)
-**REST API** : *POST /restconf/operations/tapi-connectivity:create-connectivity-service*
+**REST API** : *POST /rests/operations/tapi-connectivity:create-connectivity-service*
**Sample JSON Data**
Use the following REST RPC to invoke *TAPI* module in order to delete a given optical
connectivity service.
-**REST API** : *POST /restconf/operations/tapi-connectivity:delete-connectivity-service*
+**REST API** : *POST /rests/operations/tapi-connectivity:delete-connectivity-service*
**Sample JSON Data**
T-API Notification Service
~~~~~~~~~~~~~~~~~~~~~~~~~~
-In future releases, the T-API notification service will be implemented. The objective will be to write and read
-T-API notifications stored in topics of a Kafka server as explained later in the odl-transportpce-nbinotifications
-section, but T-API based.
+- RPC calls implemented:
+
+ - create-notification-subscription-service
+
+ - get-supported-notification-types
+
+ - delete-notification-subscription-service
+
+ - get-notification-subscription-service-details
+
+ - get-notification-subscription-service-list
+
+ - get-notification-list
+
+Sulfur SR1 extends the T-API interface support by implementing the T-API notification service. This feature
+allows TransportPCE to write and read tapi-notifications stored in topics of a Kafka server. It also upgrades
+the nbinotifications module to support the serialization and deserialization of tapi-notifications into JSON
+format and vice-versa. Current implementation of the notification service creates a Kafka topic and stores
+tapi-notification on reception of a create-notification-subscription-service request. Only connectivity-service
+related notifications are stored in the Kafka server.
+
+In comparison with openroadm notifications, in which several pre-defined kafka topics are created on nbinotification
+module instantiation, tapi-related kafka topics are created on-demand. Upon reception of a
+*create-notification-subscription-service request*, a new topic will be created in the Kafka server.
+This topic is named after the connectivity-service UUID.
+
+.. note::
+ Creating a Notification Subscription Service could include a list of T-API object UUIDs, therefore 1 topic per UUID
+ is created in the Kafka server.
+
+In the current implementation, only Connectivity Service related notification are supported.
+
+**REST API** : *POST /rests/operations/tapi-notification:get-supported-notification-types*
+
+The response body will include the type of notifications supported and the object types
+
+Use the following RPC to create a Notification Subscription Service.
+
+**REST API** : *POST /rests/operations/tapi-notification:create-notification-subscription-service*
+
+**Sample JSON Data**
+
+.. code:: json
+
+ {
+ "tapi-notification:input": {
+ "tapi-notification:subscription-filter": {
+ "tapi-notification:requested-notification-types": [
+ "ALARM_EVENT"
+ ],
+ "tapi-notification:requested-object-types": [
+ "CONNECTIVITY_SERVICE"
+ ],
+ "tapi-notification:requested-layer-protocols": [
+ "<LAYER_PROTOCOL_NAME>"
+ ],
+ "tapi-notification:requested-object-identifier": [
+ "<Service_UUID>"
+ ],
+ "tapi-notification:include-content": true,
+ "tapi-notification:local-id": "localId",
+ "tapi-notification:name": [
+ {
+ "tapi-notification:value-name": "Subscription name",
+ "tapi-notification:value": "<notification_service_name>"
+ }
+ ]
+ },
+ "tapi-notification:subscription-state": "ACTIVE"
+ }
+ }
+
+This call will return the *UUID* of the Notification Subscription service, which can later be used to retrieve the
+details of the created subscription, to delete the subscription (and all the related kafka topics) or to retrieve
+all the tapi notifications related to that subscription service.
+
+The figure below shows an example of the application of tapi and nbinotifications in order to notify when there is
+a connectivity service creation process. Depending on the status of the process a tapi-notification with the
+corresponding updated state of the connectivity service is sent to the topic "Service_UUID".
+
+.. figure:: ./images/TransportPCE-tapi-nbinotifications-service-example.jpg
+ :alt: Example of tapi connectivity service notifications using the feature nbinotifications in TransportPCE
+
+Additionally, when a connectivity service breaks down or is restored a tapi notification alarming the new status
+will be sent to a Kafka Server. Below an example of a tapi notification is shown.
+
+**Sample JSON T-API notification**
+
+.. code:: json
+
+ {
+ "nbi-notifications:notification-tapi-service": {
+ "layer-protocol-name": "<LAYER_PROTOCOL_NAME>",
+ "notification-type": "ATTRIBUTE_VALUE_CHANGE",
+ "changed-attributes": [
+ {
+ "value-name": "administrativeState",
+ "old-value": "<LOCKED_OR_UNLOCKED>",
+ "new-value": "<UNLOCKED_OR_LOCKED>"
+ },
+ {
+ "value-name": "operationalState",
+ "old-value": "DISABLED_OR_ENABLED",
+ "new-value": "ENABLED_OR_DISABLED"
+ }
+ ],
+ "target-object-name": [
+ {
+ "value-name": "Connectivity Service Name",
+ "value": "<SERVICE_UUID>"
+ }
+ ],
+ "uuid": "<NOTIFICATION_UUID>",
+ "target-object-type": "CONNECTIVITY_SERVICE",
+ "event-time-stamp": "2022-04-06T09:06:01+00:00",
+ "target-object-identifier": "<SERVICE_UUID>"
+ }
+ }
+
+To retrieve these tapi connectivity service notifications stored in the kafka server:
+
+**REST API** : *POST /rests/operations/tapi-notification:get-notification-list*
+
+**Sample JSON Data**
+
+.. code:: json
+
+ {
+ "tapi-notification:input": {
+ "tapi-notification:subscription-id-or-name": "<SUBSCRIPTION_UUID_OR_NAME>",
+ "tapi-notification:time-period": "time-period"
+ }
+ }
+Further development will support more types of T-API objects, i.e., node, link, topology, connection...
odl-transportpce-dmaap-client
-----------------------------
To retrieve these service notifications stored in the Kafka server :
-**REST API** : *POST /restconf/operations/nbi-notifications:get-notifications-process-service*
+**REST API** : *POST /rests/operations/nbi-notifications:get-notifications-process-service*
**Sample JSON Data**
To retrieve these alarm notifications stored in the Kafka server :
-**REST API** : *POST /restconf/operations/nbi-notifications:get-notifications-alarm-service*
+**REST API** : *POST /rests/operations/nbi-notifications:get-notifications-alarm-service*
**Sample JSON Data**