--- /dev/null
+#!/usr/bin/env python
+
+##############################################################################
+#Copyright (c) 2017 Orange, Inc. and others. All rights reserved.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import json
+import os
+import psutil
+import requests
+import signal
+import shutil
+import subprocess
+import time
+import unittest
+import logging
+
+class TransportGNPYtesting(unittest.TestCase):
+
+ gnpy_process = None
+ odl_process = None
+ restconf_baseurl = "http://localhost:8181/restconf"
+
+ @classmethod
+ def __init_logfile(cls):
+ if os.path.isfile("./transportpce_tests/gnpy.log"):
+ os.remove("transportpce_tests/gnpy.log")
+
+ @classmethod
+ def __start_odl(cls):
+ executable = "../karaf/target/assembly/bin/karaf"
+ with open('transportpce_tests/odl.log', 'w') as outfile:
+ cls.odl_process = subprocess.Popen(
+ ["bash", executable, "server"], stdout=outfile,
+ stdin=open(os.devnull))
+
+ @classmethod
+ def setUpClass(cls):
+ cls.__start_odl()
+ time.sleep(30)
+
+ @classmethod
+ def tearDownClass(cls):
+ for child in psutil.Process(cls.odl_process.pid).children():
+ child.send_signal(signal.SIGINT)
+ child.wait()
+ cls.odl_process.send_signal(signal.SIGINT)
+ cls.odl_process.wait()
+
+ def setUp(self):
+ time.sleep(2)
+
+ #Connect the different topology
+ def test_01_connect_clliNetwork(self):
+ #Config ROADMA
+ url = ("{}/config/ietf-network:networks/network/clli-network"
+ .format(self.restconf_baseurl))
+ data = {"network": [{
+ "network-id": "clli-network",
+ "network-types": {
+ "org-openroadm-clli-network:clli-network": {}
+ },
+ "node": [
+ {
+ "node-id": "NodeA",
+ "org-openroadm-clli-network:clli": "NodeA"
+ },
+ {
+ "node-id": "NodeB",
+ "org-openroadm-clli-network:clli": "NodeB"
+ },
+ {
+ "node-id": "NodeC",
+ "org-openroadm-clli-network:clli": "NodeC"
+ }
+ ]
+ }]
+ }
+ headers = {'content-type': 'application/json'}
+ response = requests.request(
+ "PUT", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(3)
+
+ def test_02_connect_openroadmNetwork(self):
+ #Config ROADMA
+ url = ("{}/config/ietf-network:networks/network/openroadm-network"
+ .format(self.restconf_baseurl))
+ data = {"network": [{
+ "network-id": "openroadm-network",
+ "network-types": {
+ "org-openroadm-common-network:openroadm-common-network": {}
+ },
+ "node": [
+ {
+ "node-id": "ROADMB",
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeB"
+ }
+ ],
+ "org-openroadm-network:node-type": "ROADM",
+ "org-openroadm-network:vendor": "vendorA",
+ "org-openroadm-network:ip": "127.0.0.12",
+ "org-openroadm-network:model": "2"
+ },
+ {
+ "node-id": "ROADMC",
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ }
+ ],
+ "org-openroadm-network:node-type": "ROADM",
+ "org-openroadm-network:vendor": "vendorA",
+ "org-openroadm-network:ip": "127.0.0.13",
+ "org-openroadm-network:model": "2"
+ },
+ {
+ "node-id": "XPDRB",
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeB"
+ }
+ ],
+ "org-openroadm-network:node-type": "XPONDER",
+ "org-openroadm-network:vendor": "vendorA",
+ "org-openroadm-network:ip": "127.0.0.14",
+ "org-openroadm-network:model": "1"
+ },
+ {
+ "node-id": "ROADMA",
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ }
+ ],
+ "org-openroadm-network:node-type": "ROADM",
+ "org-openroadm-network:vendor": "vendorA",
+ "org-openroadm-network:ip": "127.0.0.11",
+ "org-openroadm-network:model": "2"
+ },
+ {
+ "node-id": "XPDRA",
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ }
+ ],
+ "org-openroadm-network:node-type": "XPONDER",
+ "org-openroadm-network:vendor": "vendorA",
+ "org-openroadm-network:ip": "127.0.0.10",
+ "org-openroadm-network:model": "1"
+ }
+ ]
+ }]
+ }
+ headers = {'content-type': 'application/json'}
+ response = requests.request(
+ "PUT", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(3)
+
+ def test_03_connect_openroadmTopology(self):
+ #Config ROADMA
+ url = ("{}/config/ietf-network:networks/network/openroadm-topology"
+ .format(self.restconf_baseurl))
+ data = {"network": [{
+ "network-id": "openroadm-topology",
+ "node": [
+ {
+ "node-id": "XPDRA-XPDR1",
+ "org-openroadm-network-topology:node-type": "XPONDER",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT2",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK2"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK2",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "XPDR1-CLIENT2"
+ }
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "XPDR1-CLIENT1"
+ }
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDRA"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMC-DEG2",
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 2,
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "DEGREE",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG2-CTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-CTP"
+ },
+ {
+ "tp-id": "DEG2-TTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-TTP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMC"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMC-SRG1",
+ "org-openroadm-network-topology:srg-attributes": {
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "SRG",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "SRG1-PP16-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP10-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP3-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP6-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP9-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP1-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP13-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP4-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP7-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP11-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP15-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP8-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-CP-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-CP"
+ },
+ {
+ "tp-id": "SRG1-PP12-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP14-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP2-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP5-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMC"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMA-DEG1",
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 1,
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "DEGREE",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG1-TTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-TTP"
+ },
+ {
+ "tp-id": "DEG1-CTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-CTP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMA"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMA-DEG2",
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 2,
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "DEGREE",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG2-CTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-CTP"
+ },
+ {
+ "tp-id": "DEG2-TTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-TTP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMA"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMB-SRG1",
+ "org-openroadm-network-topology:srg-attributes": {
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "SRG",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "SRG1-PP16-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP10-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP3-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP6-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP9-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP1-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP13-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP4-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP7-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP11-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP15-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP8-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-CP-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-CP"
+ },
+ {
+ "tp-id": "SRG1-PP12-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP14-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP2-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP5-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMB"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMC-DEG1",
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 1,
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "DEGREE",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG1-TTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-TTP"
+ },
+ {
+ "tp-id": "DEG1-CTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-CTP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMC"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDRB-XPDR1",
+ "org-openroadm-network-topology:node-type": "XPONDER",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT2",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK2"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK2",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "XPDR1-CLIENT2"
+ }
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "org-openroadm-network-topology:xpdr-client-attributes": {
+ "tail-equipment-id": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "XPDR1-CLIENT1"
+ }
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDRB"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMB-DEG1",
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 1,
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "DEGREE",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG1-TTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-TTP"
+ },
+ {
+ "tp-id": "DEG1-CTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-CTP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMB"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMA-SRG1",
+ "org-openroadm-network-topology:srg-attributes": {
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "SRG",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "SRG1-PP16-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP10-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP3-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP6-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP9-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP1-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP13-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP4-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP7-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP11-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP15-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP8-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-CP-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-CP"
+ },
+ {
+ "tp-id": "SRG1-PP12-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP14-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP2-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP5-TXRX",
+ "org-openroadm-network-topology:tp-type": "SRG-TXRX-PP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMA"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADMB-DEG2",
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 2,
+ "available-wavelengths": [
+ {
+ "index": 94
+ },
+ {
+ "index": 93
+ },
+ {
+ "index": 96
+ },
+ {
+ "index": 95
+ },
+ {
+ "index": 42
+ },
+ {
+ "index": 41
+ },
+ {
+ "index": 44
+ },
+ {
+ "index": 43
+ },
+ {
+ "index": 38
+ },
+ {
+ "index": 37
+ },
+ {
+ "index": 40
+ },
+ {
+ "index": 39
+ },
+ {
+ "index": 34
+ },
+ {
+ "index": 33
+ },
+ {
+ "index": 36
+ },
+ {
+ "index": 35
+ },
+ {
+ "index": 30
+ },
+ {
+ "index": 29
+ },
+ {
+ "index": 32
+ },
+ {
+ "index": 31
+ },
+ {
+ "index": 58
+ },
+ {
+ "index": 57
+ },
+ {
+ "index": 60
+ },
+ {
+ "index": 59
+ },
+ {
+ "index": 54
+ },
+ {
+ "index": 53
+ },
+ {
+ "index": 56
+ },
+ {
+ "index": 55
+ },
+ {
+ "index": 50
+ },
+ {
+ "index": 49
+ },
+ {
+ "index": 52
+ },
+ {
+ "index": 51
+ },
+ {
+ "index": 46
+ },
+ {
+ "index": 45
+ },
+ {
+ "index": 48
+ },
+ {
+ "index": 47
+ },
+ {
+ "index": 74
+ },
+ {
+ "index": 73
+ },
+ {
+ "index": 76
+ },
+ {
+ "index": 75
+ },
+ {
+ "index": 70
+ },
+ {
+ "index": 69
+ },
+ {
+ "index": 72
+ },
+ {
+ "index": 71
+ },
+ {
+ "index": 66
+ },
+ {
+ "index": 65
+ },
+ {
+ "index": 68
+ },
+ {
+ "index": 67
+ },
+ {
+ "index": 62
+ },
+ {
+ "index": 61
+ },
+ {
+ "index": 64
+ },
+ {
+ "index": 63
+ },
+ {
+ "index": 90
+ },
+ {
+ "index": 89
+ },
+ {
+ "index": 92
+ },
+ {
+ "index": 91
+ },
+ {
+ "index": 86
+ },
+ {
+ "index": 85
+ },
+ {
+ "index": 88
+ },
+ {
+ "index": 87
+ },
+ {
+ "index": 82
+ },
+ {
+ "index": 81
+ },
+ {
+ "index": 84
+ },
+ {
+ "index": 83
+ },
+ {
+ "index": 78
+ },
+ {
+ "index": 77
+ },
+ {
+ "index": 80
+ },
+ {
+ "index": 79
+ },
+ {
+ "index": 10
+ },
+ {
+ "index": 9
+ },
+ {
+ "index": 12
+ },
+ {
+ "index": 11
+ },
+ {
+ "index": 6
+ },
+ {
+ "index": 5
+ },
+ {
+ "index": 8
+ },
+ {
+ "index": 7
+ },
+ {
+ "index": 2
+ },
+ {
+ "index": 1
+ },
+ {
+ "index": 4
+ },
+ {
+ "index": 3
+ },
+ {
+ "index": 26
+ },
+ {
+ "index": 25
+ },
+ {
+ "index": 28
+ },
+ {
+ "index": 27
+ },
+ {
+ "index": 22
+ },
+ {
+ "index": 21
+ },
+ {
+ "index": 24
+ },
+ {
+ "index": 23
+ },
+ {
+ "index": 18
+ },
+ {
+ "index": 17
+ },
+ {
+ "index": 20
+ },
+ {
+ "index": 19
+ },
+ {
+ "index": 14
+ },
+ {
+ "index": 13
+ },
+ {
+ "index": 16
+ },
+ {
+ "index": 15
+ }
+ ]
+ },
+ "org-openroadm-network-topology:node-type": "DEGREE",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG2-CTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-CTP"
+ },
+ {
+ "tp-id": "DEG2-TTP-TXRX",
+ "org-openroadm-network-topology:tp-type": "DEGREE-TXRX-TTP"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADMB"
+ }
+ ]
+ }
+ ],
+ "network-types": {
+ "org-openroadm-common-network:openroadm-common-network": {}
+ },
+ "ietf-network-topology:link": [
+ {
+ "link-id": "ROADMA-DEG1-DEG1-CTP-TXRXtoROADMA-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADMA-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "DROP-LINK",
+ "destination": {
+ "dest-node": "ROADMA-SRG1",
+ "dest-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-SRG1-SRG1-CP-TXRXtoROADMA-DEG1-DEG1-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMA-DEG2-DEG2-CTP-TXRXtoROADMA-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADMA-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "DROP-LINK",
+ "destination": {
+ "dest-node": "ROADMA-SRG1",
+ "dest-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-SRG1-SRG1-CP-TXRXtoROADMA-DEG2-DEG2-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMA-DEG1-DEG1-CTP-TXRXtoROADMA-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMA-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "EXPRESS-LINK",
+ "destination": {
+ "dest-node": "ROADMA-DEG2",
+ "dest-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-DEG2-DEG2-CTP-TXRXtoROADMA-DEG1-DEG1-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMC-DEG1-DEG1-CTP-TXRXtoROADMC-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADMC-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "DROP-LINK",
+ "destination": {
+ "dest-node": "ROADMC-SRG1",
+ "dest-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-SRG1-SRG1-CP-TXRXtoROADMC-DEG1-DEG1-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-DEG1-DEG1-CTP-TXRXtoROADMB-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADMB-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "DROP-LINK",
+ "destination": {
+ "dest-node": "ROADMB-SRG1",
+ "dest-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-SRG1-SRG1-CP-TXRXtoROADMB-DEG1-DEG1-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-DEG2-DEG2-CTP-TXRXtoROADMB-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADMB-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "DROP-LINK",
+ "destination": {
+ "dest-node": "ROADMB-SRG1",
+ "dest-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-SRG1-SRG1-CP-TXRXtoROADMB-DEG2-DEG2-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMC-DEG2-DEG2-CTP-TXRXtoROADMC-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADMC-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "DROP-LINK",
+ "destination": {
+ "dest-node": "ROADMC-SRG1",
+ "dest-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-SRG1-SRG1-CP-TXRXtoROADMC-DEG2-DEG2-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMC-DEG1-DEG1-CTP-TXRXtoROADMC-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMC-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "EXPRESS-LINK",
+ "destination": {
+ "dest-node": "ROADMC-DEG2",
+ "dest-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-DEG2-DEG2-CTP-TXRXtoROADMC-DEG1-DEG1-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-DEG1-DEG1-CTP-TXRXtoROADMB-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMB-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "EXPRESS-LINK",
+ "destination": {
+ "dest-node": "ROADMB-DEG2",
+ "dest-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-DEG2-DEG2-CTP-TXRXtoROADMB-DEG1-DEG1-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMA-DEG1-DEG1-TTP-TXRXtoROADMC-DEG2-DEG2-TTP-TXRX",
+ "source": {
+ "source-node": "ROADMA-DEG1",
+ "source-tp": "DEG1-TTP-TXRX"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "opposite-link": "ROADMC-DEG2-DEG2-TTP-TXRXtoROADMA-DEG1-DEG1-TTP-TXRX",
+ "span": {
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "SRLG-length": 100000,
+ "pmd": 0.5,
+ "fiber-type": "smf"
+ }
+ ],
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "clfi": "fiber1",
+ "auto-spanloss": "true"
+ }
+ },
+ "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM",
+ "destination": {
+ "dest-node": "ROADMC-DEG2",
+ "dest-tp": "DEG2-TTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-DEG2-DEG2-TTP-TXRXtoROADMA-DEG1-DEG1-TTP-TXRX"
+ },
+ {
+ "link-id": "XPDRA-XPDR1-XPDR1-NETWORK1toROADMA-SRG1-SRG1-PP1-TXRX",
+ "source": {
+ "source-node": "XPDRA-XPDR1",
+ "source-tp": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:opposite-link": "ROADMA-SRG1-SRG1-PP1-TXRXtoXPDRA-XPDR1-XPDR1-NETWORK1",
+ "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT",
+ "destination": {
+ "dest-node": "ROADMA-SRG1",
+ "dest-tp": "SRG1-PP1-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-SRG1-SRG1-PP1-TXRXtoXPDRA-XPDR1-XPDR1-NETWORK1"
+ },
+ {
+ "link-id": "ROADMC-DEG1-DEG1-TTP-TXRXtoROADMB-DEG2-DEG2-TTP-TXRX",
+ "source": {
+ "source-node": "ROADMC-DEG1",
+ "source-tp": "DEG1-TTP-TXRX"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "opposite-link": "ROADMB-DEG2-DEG2-TTP-TXRXtoROADMC-DEG1-DEG1-TTP-TXRX",
+ "span": {
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "SRLG-length": 100000,
+ "pmd": 0.5,
+ "fiber-type": "smf"
+ }
+ ],
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "clfi": "fiber2",
+ "auto-spanloss": "true"
+ }
+ },
+ "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM",
+ "destination": {
+ "dest-node": "ROADMB-DEG2",
+ "dest-tp": "DEG2-TTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-DEG2-DEG2-TTP-TXRXtoROADMC-DEG1-DEG1-TTP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-DEG1-DEG1-TTP-TXRXtoROADMA-DEG2-DEG2-TTP-TXRX",
+ "source": {
+ "source-node": "ROADMB-DEG1",
+ "source-tp": "DEG1-TTP-TXRX"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "opposite-link": "ROADMA-DEG2-DEG2-TTP-TXRXtoROADMB-DEG1-DEG1-TTP-TXRX",
+ "span": {
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "SRLG-length": 100000,
+ "pmd": 0.5,
+ "fiber-type": "smf"
+ }
+ ],
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "clfi": "fiber3",
+ "auto-spanloss": "true"
+ }
+ },
+ "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM",
+ "destination": {
+ "dest-node": "ROADMA-DEG2",
+ "dest-tp": "DEG2-TTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-DEG2-DEG2-TTP-TXRXtoROADMB-DEG1-DEG1-TTP-TXRX"
+ },
+ {
+ "link-id": "ROADMA-SRG1-SRG1-CP-TXRXtoROADMA-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMA-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "ADD-LINK",
+ "destination": {
+ "dest-node": "ROADMA-DEG2",
+ "dest-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-DEG2-DEG2-CTP-TXRXtoROADMA-SRG1-SRG1-CP-TXRX"
+ },
+ {
+ "link-id": "ROADMA-DEG2-DEG2-CTP-TXRXtoROADMA-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMA-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "EXPRESS-LINK",
+ "destination": {
+ "dest-node": "ROADMA-DEG1",
+ "dest-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-DEG1-DEG1-CTP-TXRXtoROADMA-DEG2-DEG2-CTP-TXRX"
+ },
+ {
+ "link-id": "XPDRB-XPDR1-XPDR1-NETWORK1toROADMB-SRG1-SRG1-PP1-TXRX",
+ "source": {
+ "source-node": "XPDRB-XPDR1",
+ "source-tp": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-network-topology:opposite-link": "ROADMB-SRG1-SRG1-PP1-TXRXtoXPDRB-XPDR1-XPDR1-NETWORK1",
+ "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT",
+ "destination": {
+ "dest-node": "ROADMB-SRG1",
+ "dest-tp": "SRG1-PP1-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-SRG1-SRG1-PP1-TXRXtoXPDRB-XPDR1-XPDR1-NETWORK1"
+ },
+ {
+ "link-id": "ROADMA-SRG1-SRG1-CP-TXRXtoROADMA-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMA-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "ADD-LINK",
+ "destination": {
+ "dest-node": "ROADMA-DEG1",
+ "dest-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-DEG1-DEG1-CTP-TXRXtoROADMA-SRG1-SRG1-CP-TXRX"
+ },
+ {
+ "link-id": "ROADMA-SRG1-SRG1-PP1-TXRXtoXPDRA-XPDR1-XPDR1-NETWORK1",
+ "source": {
+ "source-node": "ROADMA-SRG1",
+ "source-tp": "SRG1-PP1-TXRX"
+ },
+ "org-openroadm-network-topology:opposite-link": "XPDRA-XPDR1-XPDR1-NETWORK1toROADMA-SRG1-SRG1-PP1-TXRX",
+ "org-openroadm-network-topology:link-type": "XPONDER-INPUT",
+ "destination": {
+ "dest-node": "XPDRA-XPDR1",
+ "dest-tp": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-common-network:opposite-link": "XPDRA-XPDR1-XPDR1-NETWORK1toROADMA-SRG1-SRG1-PP1-TXRX"
+ },
+ {
+ "link-id": "ROADMC-DEG2-DEG2-CTP-TXRXtoROADMC-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMC-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "EXPRESS-LINK",
+ "destination": {
+ "dest-node": "ROADMC-DEG1",
+ "dest-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-DEG1-DEG1-CTP-TXRXtoROADMC-DEG2-DEG2-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-DEG2-DEG2-TTP-TXRXtoROADMC-DEG1-DEG1-TTP-TXRX",
+ "source": {
+ "source-node": "ROADMB-DEG2",
+ "source-tp": "DEG2-TTP-TXRX"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "opposite-link": "ROADMC-DEG1-DEG1-TTP-TXRXtoROADMB-DEG2-DEG2-TTP-TXRX",
+ "span": {
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "SRLG-length": 100000,
+ "pmd": 0.5,
+ "fiber-type": "smf"
+ }
+ ],
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "clfi": "fiber4",
+ "auto-spanloss": "true"
+ }
+ },
+ "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM",
+ "destination": {
+ "dest-node": "ROADMC-DEG1",
+ "dest-tp": "DEG1-TTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-DEG1-DEG1-TTP-TXRXtoROADMB-DEG2-DEG2-TTP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-DEG2-DEG2-CTP-TXRXtoROADMB-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMB-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "EXPRESS-LINK",
+ "destination": {
+ "dest-node": "ROADMB-DEG1",
+ "dest-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-DEG1-DEG1-CTP-TXRXtoROADMB-DEG2-DEG2-CTP-TXRX"
+ },
+ {
+ "link-id": "ROADMA-DEG2-DEG2-TTP-TXRXtoROADMB-DEG1-DEG1-TTP-TXRX",
+ "source": {
+ "source-node": "ROADMA-DEG2",
+ "source-tp": "DEG2-TTP-TXRX"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "opposite-link": "ROADMB-DEG1-DEG1-TTP-TXRXtoROADMA-DEG2-DEG2-TTP-TXRX",
+ "span": {
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "SRLG-length": 100000,
+ "pmd": 0.5,
+ "fiber-type": "smf"
+ }
+ ],
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "clfi": "fiber5",
+ "auto-spanloss": "true"
+ }
+ },
+ "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM",
+ "destination": {
+ "dest-node": "ROADMB-DEG1",
+ "dest-tp": "DEG1-TTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-DEG1-DEG1-TTP-TXRXtoROADMA-DEG2-DEG2-TTP-TXRX"
+ },
+ {
+ "link-id": "ROADMC-SRG1-SRG1-CP-TXRXtoROADMC-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMC-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "ADD-LINK",
+ "destination": {
+ "dest-node": "ROADMC-DEG2",
+ "dest-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-DEG2-DEG2-CTP-TXRXtoROADMC-SRG1-SRG1-CP-TXRX"
+ },
+ {
+ "link-id": "ROADMC-DEG2-DEG2-TTP-TXRXtoROADMA-DEG1-DEG1-TTP-TXRX",
+ "source": {
+ "source-node": "ROADMC-DEG2",
+ "source-tp": "DEG2-TTP-TXRX"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "opposite-link": "ROADMA-DEG1-DEG1-TTP-TXRXtoROADMC-DEG2-DEG2-TTP-TXRX",
+ "span": {
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "SRLG-length": 100000,
+ "pmd": 0.5,
+ "fiber-type": "smf"
+ }
+ ],
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "clfi": "fiber6",
+ "auto-spanloss": "true"
+ }
+ },
+ "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM",
+ "destination": {
+ "dest-node": "ROADMA-DEG1",
+ "dest-tp": "DEG1-TTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMA-DEG1-DEG1-TTP-TXRXtoROADMC-DEG2-DEG2-TTP-TXRX"
+ },
+ {
+ "link-id": "ROADMC-SRG1-SRG1-CP-TXRXtoROADMC-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMC-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "ADD-LINK",
+ "destination": {
+ "dest-node": "ROADMC-DEG1",
+ "dest-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMC-DEG1-DEG1-CTP-TXRXtoROADMC-SRG1-SRG1-CP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-SRG1-SRG1-CP-TXRXtoROADMB-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMB-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "ADD-LINK",
+ "destination": {
+ "dest-node": "ROADMB-DEG1",
+ "dest-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-DEG1-DEG1-CTP-TXRXtoROADMB-SRG1-SRG1-CP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-SRG1-SRG1-CP-TXRXtoROADMB-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADMB-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-network-topology:link-type": "ADD-LINK",
+ "destination": {
+ "dest-node": "ROADMB-DEG2",
+ "dest-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:opposite-link": "ROADMB-DEG2-DEG2-CTP-TXRXtoROADMB-SRG1-SRG1-CP-TXRX"
+ },
+ {
+ "link-id": "ROADMB-SRG1-SRG1-PP1-TXRXtoXPDRB-XPDR1-XPDR1-NETWORK1",
+ "source": {
+ "source-node": "ROADMB-SRG1",
+ "source-tp": "SRG1-PP1-TXRX"
+ },
+ "org-openroadm-network-topology:opposite-link": "XPDRB-XPDR1-XPDR1-NETWORK1toROADMB-SRG1-SRG1-PP1-TXRX",
+ "org-openroadm-network-topology:link-type": "XPONDER-INPUT",
+ "destination": {
+ "dest-node": "XPDRB-XPDR1",
+ "dest-tp": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-common-network:opposite-link": "XPDRB-XPDR1-XPDR1-NETWORK1toROADMB-SRG1-SRG1-PP1-TXRX"
+ }
+ ]
+ }]
+ }
+ headers = {'content-type': 'application/json'}
+ response = requests.request(
+ "PUT", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(3)
+
+ #Test the gnpy
+ def test_04_path_computation_xpdr_bi(self):
+ url = ("{}/operations/transportpce-pce:path-computation-request"
+ .format(self.restconf_baseurl))
+ body = {"input": {
+ "service-name": "service-1",
+ "resource-reserve": "true",
+ "pce-metric": "hop-count",
+ "service-handler-header": {
+ "request-id": "request-1"
+ },
+ "service-a-end": {
+ "node-id": "XPDRA",
+ "service-rate": "100",
+ "clli": "nodeA"
+ },
+ "service-z-end": {
+ "node-id": "XPDRB",
+ "service-rate": "100",
+ "clli": "nodeB"
+ }
+ }
+ }
+ headers = {'content-type': 'application/json',
+ "Accept": "application/json"}
+ response = requests.request(
+ "POST", url, data=json.dumps(body), headers=headers,
+ auth=('admin', 'admin'))
+ self.assertEqual(response.status_code, requests.codes.ok)
+ res = response.json()
+ self.assertEqual(res['output']['gnpy-response'][0]['path-dir'], 'A-to-Z')
+ self.assertEqual(res['output']['gnpy-response'][0]['feasibility'],True)
+ self.assertEqual(res['output']['gnpy-response'][1]['path-dir'], 'Z-to-A')
+ self.assertEqual(res['output']['gnpy-response'][1]['feasibility'],True)
+ time.sleep(5)
+
+ #Disconnect the different topology
+ def test_05_disconnect_openroadmTopology(self):
+ url = ("{}/config/ietf-network:networks/network/openroadm-topology"
+ .format(self.restconf_baseurl))
+ data = {}
+ headers = {'content-type': 'application/json'}
+ response = requests.request(
+ "DELETE", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(3)
+
+ def test_06_disconnect_openroadmNetwork(self):
+ #Config ROADMA
+ url = ("{}/config/ietf-network:networks/network/openroadm-network"
+ .format(self.restconf_baseurl))
+ data = {}
+ headers = {'content-type': 'application/json'}
+ response = requests.request(
+ "DELETE", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(3)
+
+ def test_07_disconnect_clliNetwork(self):
+ url = ("{}/config/ietf-network:networks/network/clli-network"
+ .format(self.restconf_baseurl))
+ data = {}
+ headers = {'content-type': 'application/json'}
+ response = requests.request(
+ "DELETE", url, data=json.dumps(data), headers=headers,
+ auth=('admin', 'admin'))
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(3)
+
+if __name__ == "__main__":
+ #logging.basicConfig(filename='./transportpce_tests/log/response.log',filemode='w',level=logging.DEBUG)
+ unittest.main(verbosity=2)