1 # Lighty-TransportPCE Controller
3 This project starts [TransportPCE](https://git.opendaylight.org/gerrit/#/admin/projects/transportpce) without karaf framework.
6 * Make sure you have JDK8 or later installed
7 * Make sure you have [maven 3.5.0](https://maven.apache.org/download.cgi) or later installed.
8 * Make sure you have proper [settings.xml](https://github.com/opendaylight/odlparent/blob/master/settings.xml) in your ``~/.m2`` directory.
10 #### Before compiling Lighty-TransportPCE
11 Make sure upstream projects are compiled locally and stored in local ``~/.m2/repository``:
12 1. compile __transportpce/master__
14 git clone https://git.opendaylight.org/gerrit/transportpce && (cd transportpce && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg https://git.opendaylight.org/gerrit/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)
17 Before compilation, make sure that deviations are not present in models:
19 transportpce/ordmodels/network/src/main/yang/org-openroadm-otn-network-topology@2018-11-30.yang
20 transportpce/ordmodels/network/src/main/yang/org-openroadm-network-topology@2018-11-30.yang
21 transportpce/ordmodels/network/src/main/yang/org-openroadm-network@2018-11-30.yang
23 After deviations are removed from models, compile the project.
25 mvn clean install -DskipTests
27 2. compile __lighty-core/10.0.x__
29 git clone https://github.com/PantheonTechnologies/lighty-core.git
32 mvn clean install -DskipTests
34 #### Compile Lighty-TransportPCE
35 * Project is build using maven command:
40 * After project build is done, use binary package to run the TransportPCE controller.
43 unzip lighty-transportpce-10.0.1-SNAPSHOT-bin.zip
44 cd lighty-transportpce-10.0.1-SNAPSHOT
47 * The whole build process described here and in the previous section can be performed automatically by launching the script build.sh from lighty folder.
49 ## TransportPCE lighty.io - karaf comparison
51 ### Application Boot test
52 This test compares TransportPCE application on lighty.io and karaf.
53 After TransportPCE is started, performance is measured using [visualvm](https://visualvm.github.io/) tool.
55 | Property Name | ODL/Karaf * | lighty.io ** |
56 |-----------------------------------|----------------|--------------|
57 | Build size | 225M | 64M |
58 | Startup Time | ~15s | ~6s |
59 | Shutdown Time | ~5s | ~100ms |
60 | Process memory allocated (RSS)*** | 1236 MB | 353 MB |
61 | HEAP memory (used/allocated) | 135 / 1008 MB | 58 / 128 MB |
62 | Metaspace (used/allocated) | 115 / 132 MB | 62 / 65 MB |
63 | Threads (live/daemon) | 111 / 48 | 70 / 11 |
64 | Classes loaded | 22027 | 12019 |
65 | No. of jars | 680 | 244 |
67 ### test_end2end_lighty.py
68 This test compares TransportPCE application on lighty.io and karaf while running __test_end2end_lighty.py__ (4 connected netconf devices).
70 | Property Name | ODL/Karaf * | lighty.io ** |
71 |-----------------------------------|----------------|--------------|
72 | Build size | 225M | 64M |
73 | Startup Time | ~15s | ~6s |
74 | Shutdown Time | ~5s | ~100ms |
75 | Process memory allocated (RSS)*** | 1185 MB | 440 MB |
76 | HEAP memory (used/allocated) | 158 / 960 MB | 85 / 128 MB |
77 | Metaspace (used/allocated) | 128 / 146 MB | 83 / 87 MB |
78 | Threads (live/daemon) | 148 / 60 | 129 / 26 |
79 | Classes loaded | 24326 | 16155 |
80 | No. of jars | 680 | 244 |
82 `* JVM parameters: -Xms128M -Xmx2048m ...`
83 `** JVM parameters: -Xms128m -Xmx128m -XX:MaxMetaspaceSize=128m`
84 `*** sudo ps -o pid,rss,user,command ax | grep java | grep transportpce`
86 ### Integration Test results
87 | Test Name | Failed | All | Comment |
88 |---------------------------------------|--------|-----|----------------------------|
89 | test_portmapping.py | 0 | 18 | |
90 | test_topoPortMapping.py | 1 | 6 | (same results with karaf) |
91 | test_topology.py | 0 | 33 | |
92 | test_renderer_service_path_nominal.py | 0 | 24 | |
93 | test_pce.py | 0 | 22 | |
94 | test_olm.py | 1 | 40 | (same results with karaf) |
95 | test_end2end_lighty.py | 18 | 52 | (same as karaf, need check)|
97 `karaf: executable = "../karaf/target/assembly/bin/karaf"`
98 `lighty.io executable = "../lighty/target/lighty-transportpce-10.0.1-SNAPSHOT/start-controller.sh": `
100 * __Total Success: 175__
101 * __Total Failed: 20__
103 ### Postman collection
104 Check this [postman collection](docs/TransportPCE.postman_collection.json) for RESTCONF examples.