{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"2a4d7614-98b9-4573-8a0c-6ea91b8494d7","name":"OpenROADM Modules in RESTCONF","description":"<img src=\"https://content.pstmn.io/26b90f18-e78f-4c8e-b76f-95b877af4fb9/aW1hZ2UucG5n\" width=\"581\" height=\"245\">\n\n_OpenROADM is a disaggregated optical networking architecture that enables service providers to create open, scalable, and flexible networks capable of supporting a variety of services and applications. The OpenROADM MSA group defines and promotes Open API models and optical specifications to create an ecosystem that promotes vendor interoperability, reduces vendor lock-in, and lowers the total cost of network ownership._\n\n<img src=\"https://content.pstmn.io/4ec7a1c4-638f-4cf8-8e0b-a47e96db4b71/aW1hZ2UucG5n\" width=\"602\" height=\"602\">\n\n### OpenConfig Commons\n\n<img src=\"https://content.pstmn.io/2f80390c-fd22-4822-81e8-b2d8089dc800/aW1hZ2UucG5n\" alt=\"\" height=\"329\" width=\"401\">\n\n### What is specified?\n\n- Interoperable open optical interfaces – please see current MSA published device white paper and optical specification for more details:\n    \n    - W (Single-Wavelength Interface)\n        \n    - Wr (Single-Wavelength Interface for ROADM Add/Drop Ports)\n        \n    - MW (Multi-Wavelength Interface)\n        \n    - MWi (Multi-Wavelength Interface for ILAs)\n        \n    - OSC (Optical Supervisory Channel)\n        \n- Management information models and APIs/RPCs – please see current MSA published Github repository including white papers on device, network and services for more details:\n    \n    - Device data model and APIs\n        \n    - Network data model and APIs\n        \n    - Service data model and APIs\n        \n\n## DWDM Network\n\nThe DWDM network is divided into 3 layers to simplify network monitoring and management. The OTN network is modeled as an additional layer that builds on top of the DWDM OPENROADM topology layer. Each layer is uniquely identified in the network based on the attribute “network-id” and has its own set of nodes and optionally termination points and links. A node in a layer is uniquely identified with the attribute “node-id” and within the entire network based on combination of the network-id and node-id. A link in a layer is uniquely identified based on the “link-id” attribute and within the entire network using combination of network-id and link-id. The attributes “network-ref”, “node-ref” and “link-ref” hold the network-id, node-id and link-id of their respective parents (supporting-nodes).\n\n<img src=\"https://content.pstmn.io/79ee74dd-a49b-4695-9348-03453f129f66/aW1hZ2UucG5n\" width=\"657\" height=\"548\">\n\n### CLLI-Network\n\nThe clli-network layer holds the list of all the office locations where the OpenROADM equipment (ROADM, transponder, Muxponder etc.) can be planned or deployed. Nodes in the layer are office locations. Termination points for this layer can be ROADMs, transponders or other OpenROADM equipment located in the office. Links and termination points may be optionally added into CLLI layer. The value of CLLI (office) in this layer is based on preference of the service provider.\n\n### OpenROADM Network\n\nThis layer holds equipment management level information such as vendor, IP, plan due date, maintenance schedule, shelf, model, software version etc. The “network-ref” for this layer is openroadm-network . The network-ref of its supporting network (or parent) is clli-network and all the nodes within same CLLI (office) will point to the same CLLI node in the clli-network. The openroadm-network layer is an underlay to the clli layer. This layer can have termination points and links depending on service provider’s preference. It inventories all the OpenROADM equipment planned or deployed in the network.\n\nThis layer contains the following network node types:\n\n- ROADM\n    \n- XPONDER\n    \n- EXT-PLUGGABLE\n    \n\n### OpenROADM Topology\n\nThe openroadm-topology layer holds the disaggregated view (degree and SRG for ROADM, multiple transponder card within an xponder) of the OpenROADM equipment. Information in this layer can be used by applications such as PCE (path computation engine), provisioning, power control etc. Each node in this layer is expected to have a number of “termination-points” that map directly to the attribute “logical- connection-point” in the device model. Spectrum availability or usage for each termination point should be reflected using avail-freq-maps/used-wavelengths. Spectrum usage should be updated after every service turn-up/turn-down to reflect the available spectrum.\n\nThis layer holds node types of the following:\n\n- DEGREE\n    \n    - bi-directional:\n        \n        - DEGREE-TXRX-TTP\n            \n        - DEGREE-TXRX-CTP\n            \n    - uni-directional:\n        \n        - DEGREE-TX-TTP\n            \n        - DEGREE-RX-TTP\n            \n        - DEGREE-TX-CTP\n            \n        - DEGREE-RX-CTP\n            \n- SRG\n    \n    - bi-directional:\n        \n        - SRG-TXRX-CP\n            \n        - SRG-TXRX-PPn (count based on device for n)\n            \n    - uni-directional:\n        \n        - SRG-TX-CP\n            \n        - SRG-TX-PPn (count based on device for n)\n            \n        - SRG-RX-CP\n            \n        - SRG-RX-PPn (count based on device for n)\n            \n- TPDR or MUXPDR or SWITCH\n    \n    - XPONDER-NETWORK (count based on device for n)\n        \n    - XPONDER-CLIENT (count based on device for n)\n        \n- REGEN or REGEN-UNI\n    \n    - bi-directional or uni-directional\n        \n        - XPONDER-NETWORK (count based on device for n)\n            \n        - XPONDER-CLIENT (count based on device for n)\n            \n\nThis layer holds the external links relative to a node which can be of the following type:\n\n- EXPRESS-LINK\n    \n- ADD-LINK\n    \n- DROP-LINK\n    \n- ROADM-TO-ROADM\n    \n- XPONDER-INPUT\n    \n- XPONDER-OUTPUT\n    \n\n### OTN Topology\n\nNetwork information for OTN elements including Muxponders, OTN Switches/switchponders, Transponders, and Regens. OTN Layer is built on top of openroadm-topology.\n\nNodes in this layer:\n\n- SWITCH\n    \n- MUXPDR\n    \n- TPDR\n    \n- REGEN\n    \n- REGEN-UNI\n    \n\n### Controller\n\n<img src=\"https://content.pstmn.io/0019907f-7aa8-4f54-9309-525cbf66ce95/aW1hZ2UucG5n\" width=\"536\" height=\"280\">\n\n### ONOS Operations\n\n[ONF's XOS Postman Collection from ETI](https://xos.etisoftware.com/)\n\n<img src=\"https://content.pstmn.io/38d81e8c-84e6-422c-a0e0-f320b16580f1/aW1hZ2UucG5n\" width=\"541\" height=\"473\">\n\n### Ring Managing East - West Traffic\n\n<img src=\"https://content.pstmn.io/2a7f0ea0-1614-4da3-bce2-291d9128355f/aW1hZ2UucG5n\" width=\"508\" height=\"630\">\n\n### Termination Points\n\nConnection and Tail Termination Points services applied by wavelength, 96 wavelengths, one each for each and west traffic.\n\n<img src=\"https://content.pstmn.io/8136cfa7-47a2-4c24-8fbd-a1ac75e1521e/aW1hZ2UucG5n\" width=\"545\" height=\"552\">\n\n### Dir-1 Service\n\nA service/circuit coming in one of a ROADM degree is received at its external OMS-TTP-Rx. In the reverse direction, the same service received at CTP-Rx will be transmitted out to another ROADM via OMS-TTP-Tx. Therefore, the 96 connection termination points in CTP-Tx are one-to-one connected to the 96 trail termination points in OMS-TTP-Rx. The 96 connection termination points in CTP-Rx are one-to-one connected to the 96 trail termination points in OMS-TTP-Tx.\n\n<img src=\"https://content.pstmn.io/1ce1c07f-b6d2-49bf-a80a-c904b2dcb2d8/aW1hZ2UucG5n\" width=\"591\" height=\"609\">\n\n### Connections between two ROADM nodes\n\n<img src=\"https://content.pstmn.io/90f2161d-e09d-4865-98af-a614198f8271/aW1hZ2UucG5n\" width=\"577\" height=\"218\">\n\n#### REST Verbs\n\nWe are providing full API for configurational data which can be edited (by POST, PUT, PATCH and DELETE).  \nFor operational data we only provide GET API.\n\nFor majority of request you can see only config data in examples. That's because we can show only one example per request. The exception when you can see operational data in example is when data are representing operational (config false) container with no config data in it.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"11528456","team":1088250,"collectionId":"2a4d7614-98b9-4573-8a0c-6ea91b8494d7","publishedId":"2sAYJ99dLx","public":true,"publicUrl":"https://openroadm.etisoftware.com","privateUrl":"https://go.postman.co/documentation/11528456-2a4d7614-98b9-4573-8a0c-6ea91b8494d7","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-01-03T18:05:57.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/52de83af874f462001674ddb9bdc1bfca2ae7a02c72a76650e1d6907bc6253c0","favicon":"https://etisoftware.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://openroadm.etisoftware.com/view/metadata/2sAYJ99dLx"}