+module transportpce-portmapping {
+ yang-version 1;
+ namespace "http://org/opendaylight/transportpce/portmapping";
+ prefix org-opendaylight-transportpce-portmapping;
+
+ import ietf-inet-types {
+ prefix ietf-inet-types;
+ revision-date 2013-07-15;
+ }
+ import org-openroadm-common-optical-channel-types {
+ prefix org-openroadm-common-optical-channel-types;
+ revision-date 2020-05-29;
+ }
+ import org-openroadm-device-types {
+ prefix org-openroadm-device-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-switching-pool-types {
+ prefix org-openroadm-switching-pool-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-port-types {
+ prefix org-openroadm-port-types;
+ revision-date 2020-03-27;
+ }
+ import transportpce-common-types {
+ prefix org-transportpce-common-types;
+ revision-date 2020-12-11;
+ }
+
+
+ organization
+ "transportPCE";
+ contact
+ "transportPCE committers - ODL";
+ description
+ "YANG definitions of RPCs supported by OLM. Copyright (c) 2017
+ AT&T and others. All rights reserved. authors: Dhruv Bhardwaj
+ ( db929a@att.com ) Shweta Vachhani ( sv111y@att.com )";
+
+ revision 2021-03-15 {
+ description
+ "Refacto model to use grouping";
+ }
+ revision 2021-03-10 {
+ description
+ "Add operational and administrative state of device port
+ in mapping";
+ }
+ revision 2020-10-12 {
+ description
+ "Upgrading imported models to 7.1.0";
+ }
+ revision 2020-08-27 {
+ description
+ "Add support to differentiate flexible and fixed
+ grid capabilities with mc-capabilities";
+ }
+ revision 2020-04-29 {
+ description
+ "Add SAPI/DAPI lcp hash value";
+ }
+ revision 2020-01-28 {
+ description
+ "Add necessary parameters to consolidate OTN
+ and address ONAP MDONS use case";
+ }
+ revision 2020-01-13 {
+ description
+ "Add OTN data from device and necessary
+ to build node inside otn topology";
+ }
+ revision 2019-11-15 {
+ description
+ "OTN support";
+ }
+ revision 2019-07-02 {
+ description
+ "Version 2. To manage device 2.2.1";
+ }
+ revision 2017-02-28 {
+ description
+ "Initial revision of port mapping model";
+ }
+
+ typedef openroadm-node-version {
+ type enumeration {
+ enum 1.2.1 {
+ value 1;
+ description
+ "Version 1.2.1";
+ }
+ enum 2.2.1 {
+ value 2;
+ description
+ "Version 2.2.1";
+ }
+ enum 7.1.0 {
+ value 3;
+ description
+ "Version 7.1.0";
+ }
+ }
+ }
+
+ grouping node-info {
+ leaf node-type {
+ type org-openroadm-device-types:node-types;
+ description
+ "Identifier for node-type e.g Roadm, xponder";
+ }
+ leaf openroadm-version {
+ type openroadm-node-version;
+ }
+ leaf node-clli {
+ type string;
+ description
+ "Common Language Location Identifier.";
+ }
+ leaf node-vendor {
+ type string;
+ description
+ "Vendor of the equipment";
+ }
+ leaf node-model {
+ type string;
+ description
+ "Physical resource model information.";
+ }
+ leaf node-ip-address {
+ type ietf-inet-types:ip-address;
+ description
+ "Current IP Address of device";
+ }
+ }
+
+ grouping mapping {
+ list mapping {
+ key "logical-connection-point";
+ description
+ "Mapping for Physical circuit pack/port/parent interfaces corresponding
+ to each logical connection point present in the node.";
+ leaf logical-connection-point {
+ type string;
+ }
+ leaf supporting-circuit-pack-name {
+ type string;
+ description
+ "Circuit pack where the logical connection point is located";
+ }
+ leaf supporting-port {
+ type string;
+ description
+ "Port where the logical connection point is located";
+ }
+ leaf supporting-oms {
+ type string;
+ description
+ "OMS interface provisioned on the port";
+ }
+ leaf supporting-ots {
+ type string;
+ description
+ "OTS interface provisioned on the port";
+ }
+ leaf port-direction {
+ type string;
+ description
+ "Useful for line port of XPDR, for which there is no indication
+ in its logical-termination-point naming";
+ }
+ leaf port-qual {
+ type string;
+ description
+ "Useful to identify from portmapping client from network ports
+ of XPDR";
+ }
+ leaf port-admin-state {
+ type string;
+ description
+ "admin-state of port";
+ }
+ leaf port-oper-state {
+ type string;
+ description
+ "operational-state of port";
+ }
+ leaf supporting-ethernet {
+ type string;
+ description
+ "Ethernet interface provisioned on the port";
+ }
+ leaf supporting-odu4 {
+ type string;
+ description
+ "ODU4 interface provisioned on the port";
+ }
+ leaf rate {
+ type string;
+ description
+ "Rate supported by the port";
+ }
+ leaf-list supported-interface-capability {
+ type identityref {
+ base org-openroadm-port-types:supported-if-capability;
+ }
+ }
+ leaf xponder-type {
+ type org-openroadm-device-types:xpdr-node-types;
+ }
+ leaf connection-map-lcp {
+ type string;
+ description
+ "For XPDR, associate two logical-connection-points from device/connnection-map
+ data";
+ }
+ leaf partner-lcp {
+ type string;
+ description
+ "For XPDR unidirectional NETWORK port, associate two logical-connection-points
+ from device/partner port data";
+ }
+ leaf lcp-hash-val {
+ type string;
+ description
+ "Hash value generated from node-id and lcp. This value will be used to map-
+ back SAPI and DAPI resource";
+ }
+ }
+ }
+
+ grouping mc-capabilities {
+ list mc-capabilities {
+ when "../node-info/node-type = 'rdm'";
+ key "mc-node-name";
+ description
+ "Capabilities of the media channel associated with a degree or a SRG.";
+ leaf mc-node-name {
+ type string;
+ description
+ "Name of the node, it has the format of DEGi-TTP or SRGj-PP
+ Where i, and j are the degree and SRG numbers respectively";
+ }
+ leaf slot-width-granularity {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ default "50";
+ description
+ "Width of a slot measured in GHz.";
+ }
+ leaf center-freq-granularity {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ default "50";
+ description
+ "Width of a slot measured in GHz.";
+ }
+ }
+ }
+
+ grouping cp-to-degree {
+ list cp-to-degree {
+ key "circuit-pack-name";
+ description
+ "This mapping helps locate degree number of the circuitpack that
+ does lldp protocol management";
+ leaf circuit-pack-name {
+ type string;
+ }
+ leaf degree-number {
+ type uint32;
+ }
+ leaf interface-name {
+ type string;
+ }
+ }
+ }
+
+ grouping switching-pool-lcp {
+ list switching-pool-lcp {
+ key "switching-pool-number";
+ description
+ "For MUXPDR and SWITCH, associates from device/odu-switching-pools data,
+ the logical-connection-points";
+ leaf switching-pool-number {
+ type uint16;
+ description
+ "Unique identifier for this odu-switching-pool";
+ }
+ leaf switching-pool-type {
+ type org-openroadm-switching-pool-types:switching-pool-types;
+ }
+ list non-blocking-list {
+ key "nbl-number";
+ leaf nbl-number {
+ type uint16;
+ description
+ "Identifier for this non-blocking-list. Unique within odu-switching-pool";
+ }
+ leaf interconnect-bandwidth-unit {
+ type uint32;
+ description
+ "Switch fabric interconnect bandwidth unit rate in bits per second.
+ Represents granularity of switch fabric";
+ }
+ leaf interconnect-bandwidth {
+ type uint32;
+ description
+ "Total interconnect bandwidth for a non-blocking element expressed as
+ number of inter-connect-bandwidth units : corresponds to capable-
+ inter-connect bandwidth";
+ }
+ leaf available-interconnect-bandwidth {
+ type uint32;
+ description
+ "Total interconnect bandwidth available for a non-blocking element can use as
+ number of inter-connect-bandwidth units";
+ }
+ leaf-list lcp-list {
+ type string;
+ }
+ }
+ }
+ }
+
+ container network {
+ list nodes {
+ key "node-id";
+ leaf node-id {
+ type string;
+ description
+ "Unique identifier for node in the network";
+ }
+ container node-info {
+ uses node-info;
+ }
+ uses mapping;
+ uses mc-capabilities;
+ uses cp-to-degree;
+ uses switching-pool-lcp;
+ }
+ }
+}