All Downloads are FREE. Search and download functionalities are using the official Maven repository.

[email protected] Maven / Gradle / Ivy

There is a newer version: 10.1.0
Show newest version
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-otn-common-types {
      prefix org-openroadm-otn-common-types;
      revision-date 2020-03-27;
  }
  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 2023-05-26;
  }


  organization
    "transportPCE";
  contact
    "transportPCE committers - ODL";
  description
    "YANG definitions for defining port mapping in TransportPCE.
     Copyright (c) 2017 AT&T and others. All rights reserved.
     authors: Dhruv Bhardwaj ( [email protected] ) Shweta Vachhani ( [email protected] )
              Balagangadhar Bathula ( [email protected] )";

  revision 2023-12-21 {
    description
       "Add leaflist supported-operational-mode to lcp";
  }
  revision 2022-09-22 {
    description
       "Add initial support to regenerators functionality; Modify the attribute
       xponder-type to xpdr-type";
  }
  revision 2022-03-16 {
    description
      "Align org-openroadm-port-types model version to the latest one,
      that is 2020-12-11";
  }
  revision 2022-01-14 {
    description
      "Modify the container names for ODUCn and OTUCn supporting interfaces";
  }
  revision 2021-09-27 {
    description
      "Add supporting-otu interface in mapping";
  }
  revision 2021-04-26 {
    description
      "Adding mux-profile information to support 400G Muxponder";
  }
  revision 2021-04-25 {
    description
      "OpenROADM version fix 7.1.0 -> 7.1";
  }
  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 {
        value 3;
        description
          "Version 7.1";
      }
    }
    description
        "YANG enumerations for OpenROADM models;
         enums should be same as OpenROADM models
         defined in org-openroadm-common-types";
  }

  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-otu4 {
          type string;
          description
            "OTU4 interface provisioned on the port";
        }
      leaf supporting-otucn {
          type string;
          description
            "OTUCn interface provisioned on the port for B100G support. This includes
            OTUC2, OTUC3, OTUC4";
        }
      leaf supporting-odu4 {
          type string;
          description
            "ODU4 interface provisioned on the port";
        }
      leaf supporting-oducn {
        type string;
        description
          "ODUCn interface provisioned on the port for B100G support. This includes
           ODUC2, ODUC3, ODUC4";
      }
      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-list supported-operational-mode {
        type string;
        description
          "List of operational-mode supported by the port";
      }
      uses mpdr-restrictions-grp;
      uses regen-profiles-grp;
      leaf xpdr-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 regen-profiles-grp {
    container regen-profiles {
      when "../xpdr-type = 'regen'";
      description
        "This container is only populated when the xpdr-type is regen";
      leaf-list regen-profile {
        description
          "Supported regen profile, these are otsi-group-capabilities profile";
          type string;
      }
    }
  }

  grouping mpdr-restrictions-grp {
    container mpdr-restrictions {
      when "../port-qual = 'switch-client' and ../../node-info/openroadm-version = '7.1'";
      description
        "This container provides the information about multiplexing of LO ODUs to HO ODUs
        Caveat: If port advertizes multiple rates, this container does not work and results could
        be wrong, meaning if the supported-interface-capabilities include, if-100GE-ODU4, if-OTU4-ODU4,
        if-200GE-oduflexcbr, then min/max-trib-slot could be different";
      leaf min-trib-slot {
          type org-openroadm-otn-common-types:opucn-trib-slot-def;
          description
              "Minimum OPUCn 5G trib slots in the form of TS #A.B (G.709)";
      }
      leaf max-trib-slot {
          type org-openroadm-otn-common-types:opucn-trib-slot-def;
          description
              "Maximum OPUCn 5G trib slots in the form of TS #A.B (G.709)";
      }
    }
  }

  grouping mc-capabilities {
    list mc-capabilities {
      key "mc-node-name";
      description
        "Capabilities of the media channel associated with a degree SRG, or
        XPDR (7.1 and above). ";
      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.
           For XPDR type it will have one element in the leaf-list,
           with name XPDR-mcprofile";
      }
      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;
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy