| module org-openroadm-common-service-types { |
| namespace "http://org/openroadm/common/service/types"; |
| prefix org-openroadm-common-service-types; |
| |
| import ietf-yang-types { |
| prefix yang; |
| } |
| import ietf-inet-types { |
| prefix inet; |
| } |
| import org-openroadm-routing-constraints { |
| prefix org-openroadm-routing-constraints; |
| } |
| import org-openroadm-topology { |
| prefix org-openroadm-topology; |
| } |
| import org-openroadm-common-types { |
| prefix org-openroadm-common-types; |
| } |
| import org-openroadm-resource-types { |
| prefix org-openroadm-resource-types; |
| } |
| |
| organization |
| "Open ROADM MSA"; |
| contact |
| "OpenROADM.org"; |
| description |
| "YANG definitions of common service types. |
| |
| Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, |
| AT&T Intellectual Property. All other rights reserved. |
| |
| Redistribution and use in source and binary forms, with or without modification, |
| are permitted provided that the following conditions are met: |
| |
| * Redistributions of source code must retain the above copyright notice, this |
| list of conditions and the following disclaimer. |
| * Redistributions in binary form must reproduce the above copyright notice, |
| this list of conditions and the following disclaimer in the documentation and/or |
| other materials provided with the distribution. |
| * Neither the Members of the Open ROADM MSA Agreement nor the names of its |
| contributors may be used to endorse or promote products derived from this software |
| without specific prior written permission. |
| |
| THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' |
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, |
| INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, |
| OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| POSSIBILITY OF SUCH DAMAGE"; |
| |
| revision 2016-10-14 { |
| description |
| "Version 1.2"; |
| } |
| |
| grouping configuration-response-common { |
| container configuration-response-common { |
| leaf request-id { |
| type string; |
| mandatory true; |
| } |
| leaf response-code { |
| type string; |
| mandatory true; |
| } |
| leaf response-message { |
| type string; |
| } |
| leaf ack-final-indicator { |
| type string; |
| mandatory true; |
| } |
| } |
| } |
| |
| grouping response-parameters { |
| container response-parameters { |
| uses org-openroadm-routing-constraints:routing-constraints; |
| } |
| } |
| |
| grouping service-endpoint { |
| leaf service-format { |
| type service-format; |
| mandatory true; |
| description |
| "Format of the requested service: Ethernet, OTU, etc."; |
| } |
| leaf service-rate { |
| when "../service-format!='OMS'"{ |
| description "service rate not applicable when service |
| format is roadmline"; |
| } |
| type uint32; |
| mandatory true; |
| description |
| "Rate of the requested service in GBps"; |
| } |
| leaf clli { |
| type string; |
| mandatory true; |
| description |
| "CLLI"; |
| } |
| uses org-openroadm-resource-types:device-id; |
| container site; |
| container tx-direction { |
| uses service-port; |
| uses service-lgx; |
| uses service-tail; |
| } |
| container rx-direction { |
| uses service-port; |
| uses service-lgx; |
| uses service-tail; |
| } |
| leaf optic-type { |
| type org-openroadm-common-types:optic-types; |
| } |
| container router { |
| description |
| "Needed for communication with DWDM pluggable"; |
| leaf node-id { |
| type string; |
| description |
| "Node id. This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| leaf ip-address { |
| type inet:ip-address; |
| description |
| "Router IP Address. This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| leaf url { |
| type string; |
| description |
| "URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| } |
| leaf user-label { |
| type string; |
| mandatory false; |
| description |
| "Label for service endpoint, defined by the user"; |
| } |
| } |
| |
| typedef rpc-actions { |
| description "rpc-actions include all the rpc methods"; |
| type enumeration { |
| enum service-create { |
| value "1"; |
| } |
| enum service-feasibility-check { |
| value "2"; |
| } |
| enum service-delete { |
| value "3"; |
| } |
| enum equipment-notification { |
| value "4"; |
| } |
| enum temp-service-create { |
| value "5"; |
| } |
| enum temp-service-delete { |
| value "6"; |
| } |
| enum service-roll { |
| value "7"; |
| } |
| enum service-reconfigure { |
| value "8"; |
| } |
| enum service-restoration { |
| value "9"; |
| } |
| enum service-reversion { |
| value "10"; |
| } |
| enum service-reroute { |
| value "11"; |
| } |
| enum service-reroute-confirm { |
| value "12"; |
| } |
| enum network-re-optimization { |
| value "13"; |
| } |
| } |
| } |
| |
| grouping sdnc-request-header { |
| container sdnc-request-header { |
| leaf request-id { |
| type string; |
| } |
| leaf rpc-action { |
| type rpc-actions; |
| } |
| leaf notification-url { |
| type string; |
| } |
| leaf request-system-id{ |
| type string; |
| } |
| } |
| } |
| |
| grouping service-port { |
| container port { |
| leaf port-device-name { |
| type string; |
| } |
| leaf port-type { |
| type string; |
| } |
| leaf port-name { |
| type string; |
| } |
| leaf port-rack { |
| type string; |
| } |
| leaf port-shelf { |
| type string; |
| } |
| leaf port-slot { |
| type string; |
| } |
| leaf port-sub-slot { |
| type string; |
| } |
| } |
| } |
| |
| grouping service-lgx { |
| container lgx { |
| leaf lgx-device-name { |
| type string; |
| } |
| leaf lgx-port-name { |
| type string; |
| } |
| leaf lgx-port-rack { |
| type string; |
| } |
| leaf lgx-port-shelf { |
| type string; |
| } |
| } |
| } |
| |
| grouping service-tail { |
| container tail { |
| container tail-roadm { |
| description |
| "ROADM on which the transponder is connected to (TID, IP Address, |
| or FQDN)"; |
| uses org-openroadm-resource-types:device-id; |
| } |
| container xponder-port { |
| description |
| "Muxponder port used in tail, that will get used as a service endpoint."; |
| leaf circuit-pack-name { |
| type string; |
| } |
| leaf port-name { |
| type string; |
| } |
| } |
| leaf tail-roadm-port-aid { |
| type string; |
| description |
| "This will provide the transponder port needed to inter-city ROADM |
| connection"; |
| } |
| leaf tail-roadm-port-rack-location { |
| type string; |
| description |
| "Transponder's location"; |
| } |
| } |
| } |
| |
| grouping service-information { |
| leaf due-date { |
| type yang:date-and-time; |
| description |
| "Date and time service to be turn up. If time is not specified for a given date, default to midnight. Service turned up immediately if no due date is specified"; |
| } |
| leaf end-date { |
| type yang:date-and-time; |
| description |
| "Date and time service to be removed"; |
| mandatory false; |
| } |
| leaf nc-code { |
| type string; |
| description |
| "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| leaf nci-code { |
| type string; |
| description |
| "NCI code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| leaf secondary-nci-code { |
| type string; |
| description |
| "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| leaf customer { |
| type string; |
| description |
| "To be included in ticket information.This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| leaf customer-contact { |
| type string; |
| description |
| "Customer contact information To be included in ticket information. This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| leaf operator-contact { |
| type string; |
| description |
| "Operator contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network."; |
| } |
| } |
| |
| grouping service { |
| leaf service-name { |
| type string; |
| description |
| "Identifier for the service to be created in |
| the ROADM network, e.g., CLFI, CLCI, etc."; |
| mandatory true; |
| } |
| leaf common-id { |
| type string; |
| description |
| "To be used by the ROADM controller to identify the routing |
| constraints received from planning application (PED)."; |
| } |
| uses sdnc-request-header; |
| leaf connection-type { |
| type connection-type; |
| mandatory true; |
| description |
| "Connection type"; |
| } |
| leaf lifecycle-state { |
| type org-openroadm-common-types:lifecycle-state; |
| description |
| "Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc."; |
| } |
| leaf administrative-state { |
| type org-openroadm-common-types:state; |
| description |
| "Administrative State: Intended state of service"; |
| } |
| leaf operational-state { |
| type org-openroadm-common-types:state; |
| config false; |
| description |
| "Operational State: Actual state of service"; |
| } |
| leaf condition { |
| type service-condition; |
| description |
| "Service Condition: Additional information about the state of the service. Only sent when applicable."; |
| } |
| container service-a-end { |
| uses service-endpoint; |
| } |
| container service-z-end { |
| uses service-endpoint; |
| } |
| uses org-openroadm-routing-constraints:routing-constraints; |
| uses service-information; |
| leaf latency { |
| type uint32; |
| description |
| "Latency on service"; |
| } |
| leaf-list fiber-span-srlgs { |
| type string; |
| description |
| "Shared risk link group identifiers"; |
| } |
| list equipment-srgs { |
| key "srg-number"; |
| uses org-openroadm-resource-types:srg-number; |
| } |
| leaf-list supporting-service-name { |
| description |
| "The service name that this runs over top. If connection-type is service, then this is the related |
| connection-type = infrastructure service, for example."; |
| type string; |
| } |
| container topology { |
| uses org-openroadm-topology:topology; |
| } |
| } |
| |
| grouping service-notification-result { |
| leaf service-name { |
| type string; |
| description |
| "Identifier for the service e.g., CLFI, CLCI, etc."; |
| mandatory true; |
| } |
| leaf actual-date { |
| type yang:date-and-time; |
| description |
| "Actual date and time (if successful)"; |
| } |
| } |
| |
| typedef service-format { |
| type enumeration { |
| enum "Ethernet" { |
| value 1; |
| } |
| enum "OTU" { |
| value 2; |
| } |
| enum "OC" { |
| value 3; |
| } |
| enum "STM" { |
| value 4; |
| } |
| enum "OMS" { |
| value 5; |
| } |
| enum "ODU" { |
| value 6; |
| } |
| enum "OTM" { |
| value 7; |
| } |
| } |
| } |
| |
| typedef service-notification-types { |
| type enumeration { |
| enum "service-create-result" { |
| value 1; |
| } |
| enum "service-reconfigure-result" { |
| value 2; |
| } |
| enum "service-delete-result" { |
| value 3; |
| } |
| enum "service-roll-result" { |
| value 4; |
| } |
| enum "service-revert-result" { |
| value 5; |
| } |
| enum "service-reroute-result" { |
| value 6; |
| } |
| enum "service-restoration-result" { |
| value 7; |
| } |
| } |
| } |
| |
| typedef connection-type { |
| type enumeration { |
| enum "service" { |
| value 1; |
| } |
| enum "infrastructure" { |
| value 2; |
| } |
| enum "roadm-line" { |
| value 3; |
| } |
| } |
| } |
| |
| typedef service-condition { |
| type enumeration { |
| enum "restored-temporarily" { |
| value 1; |
| } |
| enum "re-routed-temporarily" { |
| value 2; |
| } |
| enum "activated-for-service" { |
| value 3; |
| } |
| enum "activated-for-further-check" { |
| value 4; |
| } |
| enum "activated-for-troubleshooting-failure" { |
| value 5; |
| } |
| } |
| } |
| } |