blob: e7568b14d6397ddf74ef40a4d67944ba0e576423 [file] [log] [blame]
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;
}
}
}
}