1 .. _transportpce-user-guide:
3 TransportPCE User Guide
4 =======================
9 TransportPCE describes an application running on top of the OpenDaylight
10 controller. Its primary function is to control an optical transport
11 infrastructure using a non-proprietary South Bound Interface (SBI). It may be
12 interconnected with Controllers of different layers (L2, L3 Controller…),
13 a higher layer Controller and/or an Orchestrator through non-proprietary
14 Application Programing Interfaces (APIs). Control includes the capability to
15 configure the optical equipment, and to provision services according to a
16 request coming from a higher layer controller and/or an orchestrator.
17 This capability may rely on the controller only or it may be delegated to
18 distributed (standardized) protocols.
20 It provides basic alarm/fault and performance monitoring,
21 but this function might be externalized to improve the scalability.
22 A Graphical User Interface has been developped separately and is not proposed
23 here since automated control does not imply user interactions at the transport
26 TransportPCE modular architecture is described on the next diagram. Each main
27 function such as Topology management, Path Calculation Engine (PCE), Service
28 handler, Renderer responsible for the path configuration through optical
29 equipment and Optical Line Management (OLM) is associated with a generic block
30 relying on open models, each of them communicating through published APIs.
32 .. figure:: ./images/TransportPCE-Diagram-Phosphorus.jpg
33 :alt: TransportPCE architecture
35 TransportPCE architecture
37 TransportPCE User-Facing Features
38 ---------------------------------
39 - **odl-transportpce**
41 - This feature contains all other features/bundles of TransportPCE project.
42 If you install it, it provides all functions that the TransportPCE project
44 It exposes all Transportpce project specific models defined in "Service-path".
45 These models complement OpenROADM models describing South and Northbound APIs, and define the
46 data structure used to interconnect the generic blocks/functions described on the previous
49 - **feature odl-transportpce-tapi**
51 - This feature provides transportPCE a limited support of TAPI version 2.1.2 Northbound interface.
53 - **feature odl-transportpce-inventory**
55 - This feature is considered experimental. It provides transportPCE with an external connector to
56 a MariaDB inventory currently limited to OpenROADM 1.2.1 devices.
58 - **feature odl-transportpce-dmaap-client**
60 - This feature is considered experimental. It provides a REST client in order to send TPCE notifications
61 to ONAP Dmaap Message router.
63 - **feature odl-transportpce-nbinotifications**
65 - This feature is considered experimental. It provides transportPCE with connectors in order to read/write
66 notifications stored in topics of a Kafka server.
71 Preparing for Installation
72 ~~~~~~~~~~~~~~~~~~~~~~~~~~
74 1. Devices must support the standard OpenROADM Models more precisely versions 1.2.1 and 2.2.1.
75 Since Magnesium SR0, an OTN experimental support is provided for OpenROADM devices 2.2.1.
76 Magnesium SR2 is the first release managing end-to-end OTN services, as OCH-OTU4,
77 structured ODU4 or again 10GE-ODU2e services.
79 2. Devices must support configuration through NETCONF protocol/API.
86 Creation of services with TransportPCE controller on real optical devices takes a rather long while,
87 due to the fact that the output optical power level modification on interfaces requires time for stabilisation
88 level. Per default values of TransportPCE timers are those recommended by OpenROADM MSA, respectively 120 000
90 When running TransportPCE controller with honeynode simulators, which is the case of all TransportPCE functional tests,
91 we don't need so important timer values. You can considerably speed tests using respectively 3000 and 2000 seconds.
92 To that end, before running OpenDaylight, set OLM_TIMER1 and OLM_TIMER2 as environment variables.
95 export OLM_TIMER1=3000 OLM_TIMER2=2000
97 To come back with per default values for these timers, just logout from OpenDaylight controller, and unset your
98 environment variables, and start again the controller::
100 unset OLM_TIMER1 OLM_TIMER2
103 Run OpenDaylight and install TransportPCE Service *odl-transportpce* as below::
105 feature:install odl-transportpce
107 if you need TAPI limited support, then run::
109 feature:install odl-transportpce-tapi
111 When installing the TAPI feature, you might encounter a heap memory size problem in Karaf.
112 In that case, consider increasing Karaf heap memory size.
113 For example by modifying the environment variables JAVA_MIN_MEM and JAVA_MAX_MEM before starting Karaf::
115 export JAVA_MIN_MEM=1024M
116 export JAVA_MAX_MEM=4069M
118 if you need the inventory external connector support limited to 1.2.1 OpenROADM devices, then run::
120 feature:install odl-transportpce-inventory
122 if you need the Dmaap connector support, before running Opendaylight, set DMAAP_BASE_URL as environment variable.
123 For example, if the base url of your Dmaap server is "https://dmaap-mr:30226", then::
125 export DMAAP_BASE_URL=https://dmaap-mr:30226
127 if your Dmaap server provides https connection through a self-signed certificate, do not forget to add the certificate
128 to the JAVA truststore::
130 echo -n | openssl s_client -showcerts -connect dmaap-mr:30226 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/dmaap.crt
131 keytool -import -v -trustcacerts -alias dmaap -file /tmp/dmaap.crt -keystore /etc/ssl/certs/java/cacerts -keypass changeit -storepass changeit -noprompt
133 where dmaap-mr:30226 is the url of your Dmaap server.
137 feature:install odl-transportpce-dmaap-client
139 If you need the NBI-notifications support, before installing odl-transportpce-nbinotifications feature,
140 make sure to run ZooKeeper and then the Kafka server.
141 By default, it is considered that the Kafka server is installed in localhost and listens on the 9092 port,
142 if it isn't the case then set the KAFKA_SERVER environment variable of your system or
143 modify the file *'transportpce/features/odl-transportpce-nbinotifications
144 /src/main/resources/org.opendaylight.transportpce.nbinotifications.cfg'*::
146 suscriber.server=${env:KAFKA_SERVER:-[IP_ADDRESS]:[PORT]}
147 publisher.server=${env:KAFKA_SERVER:-[IP_ADDRESS]:[PORT]}
149 *where [IP_ADDRESS] and [PORT] are respectively the IP address and the port that host the Kafka server.*
151 After that, run in karaf::
153 feature:install odl-transportpce-nbinotifications
155 For a more detailed overview of the TransportPCE, see the :ref:`transportpce-dev-guide`.