netconfcentral logo

ietf-te-topology-state@2017-10-25



  module ietf-te-topology-state {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-te-topology-state";

    prefix tet-s;

    import ietf-te-types {
      prefix te-types;
    }
    import ietf-te-topology {
      prefix tet;
    }
    import ietf-network-state {
      prefix nw-s;
    }
    import ietf-network-topology-state {
      prefix nt-s;
    }

    organization
      "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";

    contact
      "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     WG Chair: Lou Berger
               <mailto:lberger@labn.net>

     WG Chair: Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Xufeng Liu
               <mailto:Xufeng_Liu@jabil.com>

     Editor:   Igor Bryskin
               <mailto:Igor.Bryskin@huawei.com>

     Editor:   Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Tarek Saad
               <mailto:tsaad@cisco.com>

     Editor:   Himanshu Shah
               <mailto:hshah@ciena.com>

     Editor:   Oscar Gonzalez De Dios
               <mailto:oscar.gonzalezdedios@telefonica.com>";

    description "TE topology state model";

    revision "2017-10-25" {
      description "Initial revision";
      reference
        "RFC XXXX: YANG Data Model for TE Topologies";

    }


    grouping te-node-connectivity-matrix-attributes {
      description
        "Termination point references of a connectivity matrix entry.";
      container from {
        description
          "Reference to source link termination point.";
        leaf tp-ref {
          type leafref {
            path "../../../../../../nt-s:termination-point/nt-s:tp-id";
          }
          description
            "Relative reference to a termination point.";
        }

        uses tet:connectivity-label-restriction-list;
      }  // container from

      container to {
        description
          "Reference to destination link termination point.";
        leaf tp-ref {
          type leafref {
            path "../../../../../../nt-s:termination-point/nt-s:tp-id";
          }
          description
            "Relative reference to a termination point.";
        }

        uses tet:connectivity-label-restriction-list;
      }  // container to

      uses tet:connectivity-matrix-entry-path-attributes;
    }  // grouping te-node-connectivity-matrix-attributes

    grouping te-node-tunnel-termination-point-llc-list {
      description
        "Local link connectivity list of a tunnel termination
       point on a TE node.";
      list local-link-connectivity {
        key "link-tp-ref";
        description
          "The termination capabilities between
         tunnel-termination-point and link termination-point.
         The capability information can be used to compute
         the tunnel path.
         The Interface Adjustment Capability Descriptors (IACD)
         [RFC6001] on each link-tp can be derived from this
         local-link-connectivity list.";
        reference
          "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
          for Multi-Layer and Multi-Region Networks (MLN/MRN).";

        leaf link-tp-ref {
          type leafref {
            path
              "../../../../../nt-s:termination-point/nt-s:tp-id";
          }
          description
            "Link termination point.";
        }

        uses tet:connectivity-label-restriction-list;

        uses tet:connectivity-matrix-entry-path-attributes;
      }  // list local-link-connectivity
    }  // grouping te-node-tunnel-termination-point-llc-list

    augment /nw-s:networks/nw-s:network/nw-s:network-types {
      description
        "Introduce new network type for TE topology.";
      container te-topology {
        presence "Indicates TE topology.";
        description
          "Its presence identifies the TE topology type.";
      }  // container te-topology
    }

    augment /nw-s:networks {
      description
        "Augmentation parameters for TE topologies.";
      uses tet:te-topologies-augment;
    }

    augment /nw-s:networks/nw-s:network {
      when
        "nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Configuration parameters for TE topology.";
      uses tet:te-topology-augment;
    }

    augment /nw-s:networks/nw-s:network/nw-s:node {
      when
        "../nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Configuration parameters for TE at node level.";
      leaf te-node-id {
        type te-types:te-node-id;
        description
          "The identifier of a node in the TE topology.
         A node is specific to a topology to which it belongs.";
      }

      container te {
        must "../te-node-id" {
          description
            "te-node-id is mandatory.";
        }
        must
          "count(../nw-s:supporting-node)<=1" {
          description
            "For a node in a TE topology, there cannot be more
           than 1 supporting node. If multiple nodes are abstracted,
           the underlay-topology is used.";
        }
        presence "TE support.";
        description "Indicates TE support.";
        uses tet:te-node-augment;
      }  // container te
    }

    augment /nw-s:networks/nw-s:network/nt-s:link {
      when
        "../nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Configuration parameters for TE at link level.";
      container te {
        must
          "count(../nt-s:supporting-link)<=1" {
          description
            "For a link in a TE topology, there cannot be more
           than 1 supporting link. If one or more link paths are
           abstracted, the underlay is used.";
        }
        presence "TE support.";
        description "Indicates TE support.";
        uses tet:te-link-augment;
      }  // container te
    }

    augment /nw-s:networks/nw-s:network/nw-s:node/nt-s:termination-point {
      when
        "../../nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Configuration parameters for TE at termination point level.";
      uses tet:te-termination-point-augment;
    }

    augment /nw-s:networks/nw-s:network/nt-s:link/te/bundle-stack-level/bundle/bundled-links/bundled-link {
      when
        "../../../../nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Augment TE link bundled link.";
      leaf src-tp-ref {
        type leafref {
          path "../../../../../nw-s:node[nw-s:node-id = current()/../../../../nt-s:source/nt-s:source-node]/nt-s:termination-point/nt-s:tp-id";
        }
        description
          "Reference to another TE termination point on the
         same souruce node.";
      }

      leaf des-tp-ref {
        type leafref {
          path "../../../../../nw-s:node[nw-s:node-id = current()/../../../../nt-s:destination/nt-s:dest-node]/nt-s:termination-point/nt-s:tp-id";
        }
        description
          "Reference to another TE termination point on the
         same destination node.";
      }
    }

    augment /nw-s:networks/nw-s:network/nw-s:node/te/information-source-entry/connectivity-matrices/connectivity-matrix {
      when
        "../../../../../nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Augment TE node connectivity-matrix.";
      uses te-node-connectivity-matrix-attributes;
    }

    augment /nw-s:networks/nw-s:network/nw-s:node/te/te-node-attributes/connectivity-matrices/connectivity-matrix {
      when
        "../../../../../nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Augment TE node connectivity-matrix.";
      uses te-node-connectivity-matrix-attributes;
    }

    augment /nw-s:networks/nw-s:network/nw-s:node/te/tunnel-termination-point/local-link-connectivities {
      when
        "../../../../nw-s:network-types/tet-s:te-topology" {
        description
          "Augmentation parameters apply only for networks with
         TE topology type.";
      }
      description
        "Augment TE node tunnel termination point LLCs
      (Local Link Connectivities).";
      uses te-node-tunnel-termination-point-llc-list;
    }
  }  // module ietf-te-topology-state