netconfcentral logo

ietf-sr-topology@2017-10-30



  module ietf-sr-topology {

    yang-version 1.1;

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

    prefix srt;

    import ietf-network {
      prefix nw;
    }
    import ietf-network-topology {
      prefix nt;
    }
    import ietf-l3-unicast-topology {
      prefix l3t;
    }
    import ietf-segment-routing-common {
      prefix sr-cmn;
    }

    organization "TBD";

    contact "TBD";

    description "L3 TE Topology model";

    revision "2017-10-30" {
      description "Initial revision";
      reference
        "TBD";

    }


    grouping sr-topology-type {
      description
        "Identifies the SR topology type.";
      container sr {
        presence "Indiates SR Topology";
        description
          "Its presence identifies the SR topology type.";
      }  // container sr
    }  // grouping sr-topology-type

    augment /nw:networks/nw:network/nw:network-types/l3t:l3-unicast-topology {
      description
        "Defines the SR topology type.";
      uses sr-topology-type;
    }

    augment /nw:networks/nw:network/l3t:l3-topology-attributes {
      when
        "../nw:network-types/l3t:l3-unicast-topology/sr" {
        description
          "Augment only for SR topology.";
      }
      description
        "Augment topology configuration";
      uses sr-topology-attributes;
    }

    augment /nw:networks/nw:network/nw:node/l3t:l3-node-attributes {
      when
        "../../nw:network-types/l3t:l3-unicast-topology/sr" {
        description
          "Augment only for SR topology.";
      }
      description
        "Augment node configuration.";
      uses sr-node-attributes;
    }

    augment /nw:networks/nw:network/nw:node/l3t:l3-node-attributes/l3t:prefix {
      when
        "../../../nw:network-types/l3t:l3-unicast-topology/sr" {
        description
          "Augment only for SR topology.";
      }
      description "Augment node prefix.";
      uses sr-node-prefix-attributes;
    }

    augment /nw:networks/nw:network/nw:node/nt:termination-point/l3t:l3-termination-point-attributes {
      when
        "../../../nw:network-types/l3t:l3-unicast-topology/"
          + "sr" {
        description
          "Augment only for SR topology.";
      }
      description
        "Augment termination point configuration";
      uses sr-tp-attributes;
    }

    augment /nw:networks/nw:network/nt:link/l3t:l3-link-attributes {
      when
        "../../nw:network-types/l3t:l3-unicast-topology/sr" {
        description
          "Augment only for SR topology.";
      }
      description
        "Augment link configuration.";
      uses sr-link-attributes;
    }

    grouping sr-topology-attributes {
      description
        "SR topology scope attributes.";
      container sr {
        description
          "Containing SR attributes.";
        uses sr-cmn:srgb-cfg;
      }  // container sr
    }  // grouping sr-topology-attributes

    grouping information-source-attributes {
      description
        "The attributes identifying source that has provided the
       related information, and the source credibility.";
      leaf information-source {
        type enumeration {
          enum "unknown" {
            value 0;
            description
              "The source is unknown.";
          }
          enum "locally-configured" {
            value 1;
            description "Configured entity.";
          }
          enum "ospfv2" {
            value 2;
            description "OSPFv2.";
          }
          enum "ospfv3" {
            value 3;
            description "OSPFv3.";
          }
          enum "isis" {
            value 4;
            description "ISIS.";
          }
          enum "system-processed" {
            value 5;
            description
              "System processed entity.";
          }
          enum "other" {
            value 6;
            description "Other source.";
          }
        }
        config false;
        description
          "Indicates the source of the information.";
      }

      container information-source-state {
        config false;
        description
          "The container contains state attributes related to
         the information source.";
        leaf credibility-preference {
          type uint16;
          description
            "The preference value to calculate the traffic
           engineering database credibility value used for
           tie-break selection between different
           information-source values.
           Higher value is more preferable.";
        }
      }  // container information-source-state
    }  // grouping information-source-attributes

    grouping sr-node-attributes {
      description
        "SR node scope attributes.";
      container sr {
        description
          "Containing SR attributes.";
        uses sr-cmn:srgb-cfg;

        uses sr-cmn:srlb-cfg;

        uses sr-cmn:node-capabilities;

        uses information-source-attributes;
      }  // container sr
    }  // grouping sr-node-attributes

    grouping sr-node-prefix-attributes {
      description
        "Containing SR attributes for a prefix.";
      container sr {
        presence
          "Presence indicates SR is enabled.";
        description
          "Containing SR attributes for a prefix.";
        uses sr-cmn:prefix-sid-attributes;

        uses sr-cmn:last-hop-behavior;

        leaf is-local {
          type boolean;
          description
            "'true' if the SID is local.";
        }
      }  // container sr
    }  // grouping sr-node-prefix-attributes

    grouping sr-tp-attributes {
      description
        "SR termination point scope attributes";
    }  // grouping sr-tp-attributes

    grouping sr-link-attributes {
      description "SR link scope attributes";
      container sr {
        description
          "Containing SR attributes.";
        leaf sid {
          type uint32;
          description "SID.";
        }

        uses sr-cmn:sid-value-type;

        leaf is-local {
          type boolean;
          description
            "'true' if the SID is local.";
        }

        leaf is-part-of-set {
          type boolean;
          config false;
          description
            "'true' if the SID is part of a set.";
        }

        leaf is-on-lan {
          type boolean;
          config false;
          description "'true' if on a lan.";
        }

        uses information-source-attributes;
      }  // container sr
    }  // grouping sr-link-attributes
  }  // module ietf-sr-topology