Network Working Group                                        Xufeng Liu
 Internet Draft                                                 Ericsson
 Intended status: Standards Track                    Vishnu Pavan Beeram
                                                        Juniper Networks
                                                         Alexander Clemm
                                                                   Cisco
                                                            Igor Bryskin
                                                               Aihua Guo
                                                 ADVA Optical Networking
 Expires: April 27, 2015                                October 27, 2014
 
 
 
            A Yang module for Traffic Engineering Database (TED)
                            draft-liu-yang-ted-00
 
 
 Status of this Memo
 
    This Internet-Draft is submitted in full conformance with the
    provisions of BCP 78 and BCP 79.
 
    Internet-Drafts are working documents of the Internet Engineering
    Task Force (IETF), its areas, and its working groups.  Note that
    other groups may also distribute working documents as Internet-
    Drafts.
 
    Internet-Drafts are draft documents valid for a maximum of six
    months and may be updated, replaced, or obsoleted by other documents
    at any time.  It is inappropriate to use Internet-Drafts as
    reference material or to cite them other than as "work in progress."
 
    The list of current Internet-Drafts can be accessed at
    http://www.ietf.org/ietf/1id-abstracts.txt
 
    The list of Internet-Draft Shadow Directories can be accessed at
    http://www.ietf.org/shadow.html
 
    This Internet-Draft will expire on April 27, 2015.
 
 Copyright Notice
 
    Copyright (c) 2014 IETF Trust and the persons identified as the
    document authors. All rights reserved.
 
    This document is subject to BCP 78 and the IETF Trust's Legal
    Provisions Relating to IETF Documents
    (http://trustee.ietf.org/license-info) in effect on the date of
    publication of this document. Please review these documents
 
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 1]


 Internet-Draft                YANG - TED                   October 2014
 
 
    carefully, as they describe your rights and restrictions with
    respect to this document.  Code Components extracted from this
    document must include Simplified BSD License text as described in
    Section 4.e of the Trust Legal Provisions and are provided without
    warranty as described in the Simplified BSD License.
 
 Abstract
 
    This document defines a YANG module for Traffic Engineering
    Database.
 
 Conventions used in this document
 
    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
    document are to be interpreted as described in RFC-2119 [RFC2119].
 
 
 Table of Contents
 
    1. Introduction...................................................2
    2. Tree Structure.................................................3
    3. TED Yang Module................................................4
    4. Security Considerations.......................................16
    5. IANA Considerations...........................................16
    6. Normative References..........................................16
    7. Acknowledgments...............................................17
 
 1. Introduction
 
    MPLS-TE and GMPLS based Traffic-Engineering (TE) systems provide
    tools to establish paths through a network in a controlled manner.
    TE paths are computed by examining the Traffic Engineering Database
    (TED) and selecting a sequence of links and nodes that are capable
    of catering to the requirements of the path to be established. The
    TED contains all the relevant information that a Path computation
    function needs and is typically constructed from information
    distributed by link-state protocols like OSPF-TE, ISIS-TE and BGP-
    LS.
 
    This document defines a YANG [RFC6020] [RFC6021] module for Traffic
    Engineering Database. This "TED" module contains a set of groupings
    capturing data related to traffic engineering and can be used as a
    helper-module for other YANG modules that define OSPF-Topology, ISIS
    Topology or Abstract TE Topology.
 
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 2]


 Internet-Draft                YANG - TED                   October 2014
 
 
 2. Tree Structure
 
    The structure of the groupings in this module are depicted below.
    Brackets enclose list keys, "rw" means configuration data, "ro"
    means operational state data, and "?" designates optional nodes.
 
 
    module: ted
 
    grouping ted-node-attributes
       +--rw te-router-id-ipv4?    inet:ipv4-address
       +--rw te-router-id-ipv6?    inet:ipv6-address
       +--rw ipv4-local-address*   [ipv4-prefix]
       |  +--rw ipv4-prefix        inet:ipv4-prefix
       +--rw ipv6-local-address*   [ipv6-prefix]
       |  +--rw ipv6-prefix        inet:ipv6-prefix
       |  +--rw prefix-option?     uint8
       +--rw pcc-capabilities?     pcc-capabilities
 
    grouping ted-link-attributes
       +--rw link-index?                         uint64
       +--rw information-source?                 enumeration
       +--rw credibility-preference?             uint16
       +--rw admin-status?                       enumeration
       +--rw oper-status?                        enumeration
       +--rw area-id?                            binary
       +--rw color?                              uint32
       +--rw max-link-bandwidth?                 decimal64
       +--rw max-resv-link-bandwidth?            decimal64
       +--rw unreserved-bandwidth* [priority]
       |  +--rw priority     uint8
       |  +--rw bandwidth?   decimal64
       +--rw te-default-metric?                  uint32
       +--rw link-protection-type?               enumeration
       +--rw interface-switching-capabilities* [switching-capability]
       |  +--rw switching-capability       ted:switching-capabilities
       |  +--rw encoding?                          ted:encoding-type
       |  +--rw max-lsp-bandwidth* [priority]
       |  |  +--rw priority     uint8
       |  |  +--rw bandwidth?   decimal64
       |  +--rw packet-switch-capable
       |  |  +--rw minimum-lsp-bandwidth?   decimal64
       |  |  +--rw interface-mtu?           uint16
       |  +--rw time-division-multiplex-capable
       |     +--rw minimum-lsp-bandwidth?   decimal64
       |     +--rw indication?              enumeration
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 3]


 Internet-Draft                YANG - TED                   October 2014
 
 
       +--rw srlg
       |  +--rw srlg-values* [srlg-value]
       |     +--rw srlg-value    uint32
       +--rw alt-information-sources* [information-source]
          +--rw information-source                  enumeration
          +--rw credibility-preference?             uint16
          +--rw link-index?                         uint64
          +--rw color?                              uint32
          +--rw max-link-bandwidth?                 decimal64
          +--rw max-resv-link-bandwidth?            decimal64
          +--rw unreserved-bandwidth* [priority]
          |  +--rw priority     uint8
          |  +--rw bandwidth?   decimal64
          +--rw te-default-metric?                  uint32
          +--rw link-protection-type?               enumeration
          +--rw interface-switching-capabilities* [switching-capability]
          |  +--rw switching-capability       ted:switching-capabilities
          |  +--rw encoding?                          ted:encoding-type
          |  +--rw max-lsp-bandwidth* [priority]
          |  |  +--rw priority     uint8
          |  |  +--rw bandwidth?   decimal64
          |  +--rw packet-switch-capable
          |  |  +--rw minimum-lsp-bandwidth?   decimal64
          |  |  +--rw interface-mtu?           uint16
          |  +--rw time-division-multiplex-capable
          |     +--rw minimum-lsp-bandwidth?   decimal64
          |     +--rw indication?              enumeration
          +--rw srlg
             +--rw srlg-values* [srlg-value]
                +--rw srlg-value    uint32
 
 3. TED Yang Module
 
    module ted {
      yang-version 1;
      namespace "urn:TBD:params:xml:ns:yang:network:ted";
      // replace with IANA namespace when assigned
      prefix ted;
 
      import ietf-inet-types {
        prefix "inet";
      }
 
      organization "TBD";
      contact "TBD";
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 4]


 Internet-Draft                YANG - TED                   October 2014
 
 
      description
        "Helper module to hold trafic engineering attributes for
         any topology on which trafic engineering is enabled.";
 
      revision 2014-10-27 {
        description
          "Initial revision";
        reference
          "RFC 4220: Traffic Engineering Link Management Information
          Base.
          RFC 6825: Traffic Engineering Database Management Information
          Base in Support of MPLS-TE/GMPLS.
          RFC 4802: Generalized Multiprotocol Label Switching (GMPLS)
          Traffic Engineering Management Information Base";
      }
 
      typedef switching-capabilities {
        type enumeration {
          enum "psc-1" {
            value 1;
            description
              "Packet-Switch Capable-1 (PSC-1)";
          }
          enum "evpl" {
            value 30;
            description
              "Ethernet Virtual Private Line (EVPL)";
          }
          enum "l2sc" {
            value 51;
            description
              "Layer-2 Switch Capable (L2SC)";
          }
          enum "tdm" {
            value 100;
            description
              "Time-Division-Multiplex Capable (TDM)";
          }
          enum "otn-tdm" {
            value 110;
            description
              "OTN-TDM Capable";
          }
          enum "lsc" {
            value 150;
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 5]


 Internet-Draft                YANG - TED                   October 2014
 
 
            description
              "Lambda-Switch Capable (LSC)";
          }
          enum "fsc" {
            value 200;
            description
              "Fiber-Switch Capable (FSC)";
          }
        }
        description
          "Switching Capabilities of an interface.";
        reference
          "RFC 5307: IS-IS Extensions in Support of Generalized
           Multi-Protocol Label Switching (GMPLS).
           RFC 3812: Multiprotocol Label Switching (MPLS) Traffic
           Engineering (TE) Management Information Base (MIB).
           RFC 7074: Revised Definition of the GMPLS Switching
           Capability and Type Fields.
           RFC 7138: Traffic Engineering Extensions to OSPF
           for GMPLS Control of Evolving G.709 Optical Transport
           Networks.
           RFC 7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks.";
      }
 
      typedef encoding-type {
        type enumeration {
          enum "not-gmpls" {
            value 0;
            description
              "GMPLS is not in use";
          }
          enum "packet" {
            value 1;
            description
              "Packet";
          }
          enum "ethernet" {
            value 2;
            description
               "Ethernet";
          }
          enum "pdh" {
            value 3;
            description
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 6]


 Internet-Draft                YANG - TED                   October 2014
 
 
              "PDH";
          }
          enum "sdh-sonet" {
            value 5;
            description
              "SDH or SONET";
          }
          enum "digital-wrapper" {
            value 7;
            description
              "Digital Wrapper";
          }
          enum "lambda" {
            value 8;
            description
              "Lambda";
          }
          enum "fiber" {
            value 9;
            description
              "Fiber";
          }
          enum "fiber-channel" {
            value 11;
            description
              "Fiber Channel";
          }
          enum "oduk" {
            value 12;
            description
              "G.709 OKUk (Digital Path)";
          }
          enum "optical-channel" {
            value 13;
            description
              "G.709 Optical Channel";
          }
        }
        description
          "Encoding type of an interface.";
        reference
          "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
           Signaling Functional Description.
           RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS)
           Signaling Extensions for G.709 Optical Transport Networks
           Control.";
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 7]


 Internet-Draft                YANG - TED                   October 2014
 
 
      }
 
      typedef pcc-capabilities {
        type bits {
          bit path-computation-with-gmpls-link-constraints {
            position 0;
            description "Link constraints";
          }
          bit bidirectional-path-computation {
            position 1;
            description "Bidirectional";
          }
          bit diverse-path-computation {
            position 2;
            description "Diverse";
          }
          bit load-balanced-path-computation {
            position 3;
            description "Load balanced";
          }
          bit synchronized-path-computation {
            position 4;
            description "Synchronized";
          }
          bit support-for-multiple-objective-functions {
            position 5;
            description "Multiple objective functions";
          }
          bit support-for-additive-path-constraints {
            position 6;
            description "Additive path constraints";
          }
          bit support-for-request-prioritization {
            position 7;
            description "Request prioritization";
          }
          bit support-for-multiple-requests-per-message {
            position 8;
            description "Multiple requests per message";
          }
        }
        description
          "Path Computation Capabilities.";
        reference
          "RFC 5088, draft-ietf-pce-disco-protoc-isis-07.txt
           OSPF/ISIS Protocol Extensions for Path Computation Element
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 8]


 Internet-Draft                YANG - TED                   October 2014
 
 
           (PCE) Discovery.";
      }
 
      grouping ted-node-attributes {
        description
          "Identifier to uniquely identify a node in TED";
        reference
          "RFC 5305, RFC 6119: IPv6 Traffic Engineering in IS-IS/OSPF";
        leaf te-router-id-ipv4 {
          type inet:ipv4-address;
          description
            "Globally unique IPv4 Traffic Engineering Router ID.";
        }
        leaf te-router-id-ipv6 {
          type inet:ipv6-address;
          description
            "Globally unique IPv6 Traffic Engineering Router ID";
        }
        list ipv4-local-address {
          key "ipv4-prefix";
          description
            "List of IPv4 Local Address(OSPF). RFC 5786";
 
          leaf ipv4-prefix {
            type inet:ipv4-prefix;
            description
              "Local IPv4 address for the node";
          }
        }
        list ipv6-local-address {
          key "ipv6-prefix";
          description
            "List of IPv6 Local Address.";
          reference
            "RFC 5786: Advertising a Router's Local Addresses
             in OSPF Traffic Engineering (TE) Extensions";
          leaf ipv6-prefix {
            type inet:ipv6-prefix;
            description
              "Local IPv6 address for the node";
          }
          leaf prefix-option {
            type uint8;
            description
               "IPv6 prefix option.";
          }
 
 
 
 Liu, et al              Expires April 27, 2015                 [Page 9]


 Internet-Draft                YANG - TED                   October 2014
 
 
        }
        leaf pcc-capabilities {
          type pcc-capabilities;
          description
            "OSPF/ISIS PCC capabilities";
        }
      }
 
      grouping ted-link-info-attributes {
        description
          "Advertised TE informaton attributes.";
        leaf information-source {
          type enumeration {
            enum "unknown" {
              description "The source is unknown";
            }
            enum "locally-configured" {
              description "Configured TE link";
            }
            enum "ospfv2" {
              description "OSPFv2";
            }
            enum "ospfv3" {
              description "OSPFv3";
            }
            enum "isis" {
              description "ISIS";
            }
            enum "other" {
              description "Other source";
            }
          }
          description
            "Indicates the source of the information about the link";
        }
        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.";
        }
        leaf link-index {
          type uint64;
          description
 
 
 
 Liu, et al              Expires April 27, 2015                [Page 10]


 Internet-Draft                YANG - TED                   October 2014
 
 
            "The link identifier.  If OSPF is used, this represents an
            ospfLsdbID.  If IS-IS is used, this represents an isisLSPID.
            If a locally configured link is used, this object represents
            an unique value, which is locally defined in a router.";
        }
        leaf color {
          type uint32;
          description
            "Administrative group or color of the link";
        }
        leaf max-link-bandwidth {
          type decimal64 {
            fraction-digits 2;
          }
          description
            "Maximum bandwidth that can be see on this link in this
            direction. Units in bytes per second";
        }
 
        leaf max-resv-link-bandwidth {
          type decimal64 {
            fraction-digits 2;
          }
          description
            "Maximum amount of bandwidth that can be reserved in this
            direction in this link. Units in bytes per second";
        }
        list unreserved-bandwidth {
          key "priority";
          max-elements "8";
          description
            "Unreserved bandwidth for 0-7 priority levels. Units in
            bytes per second";
          leaf priority {
            type uint8 {
              range "0..7";
            }
            description "Priority";
          }
          leaf bandwidth {
            type decimal64 {
              fraction-digits 2;
            }
            description
              "Unreserved bandwidth for this level";
          }
 
 
 
 Liu, et al              Expires April 27, 2015                [Page 11]


 Internet-Draft                YANG - TED                   October 2014
 
 
        }
        leaf te-default-metric {
          type uint32;
          description
            "Traffic Engineering Metric";
        }
        leaf link-protection-type {
          type enumeration {
            enum "unprotected" {
              description "unprotected";
            }
            enum "extra-traffic" {
              description "Extra traffic";
            }
            enum "shared" {
              description "Shared";
            }
            enum "1-for-1" {
              description "One for one protection";
            }
            enum "1-plus-1" {
              description "One plus one protection";
            }
            enum "enhanced" {
              description "Enhanced protection";
            }
          }
          description
            "Link Protection Type desired for this link";
        }
        list interface-switching-capabilities {
          key "switching-capability";
          description
            "List of interface capabilities for this interface";
          leaf switching-capability {
            type ted:switching-capabilities;
            description
              "Switching Capability for this interface";
          }
          leaf encoding {
            type ted:encoding-type;
            description
              "Encoding supported by this interface";
          }
          list max-lsp-bandwidth {
            key "priority";
 
 
 
 Liu, et al              Expires April 27, 2015                [Page 12]


 Internet-Draft                YANG - TED                   October 2014
 
 
            max-elements "8";
            description
              "Maximum LSP Bandwidth at priorities 0-7";
            leaf priority {
              type uint8 {
                range "0..7";
              }
              description "Priority";
            }
            leaf bandwidth {
              type decimal64 {
                fraction-digits 2;
              }
              description
                "Max LSP Bandwidth for this level";
            }
          }
          container packet-switch-capable {
            when "../switching-capability = PSC-1  or "
              +"../switching-capability = PSC-2 or "
              +"../switching-capability = PSC-3 or "
              +"../switching-capability = PSC-4" {
              description "Valid only for PSC";
            }
            description
              "Interface has packet-switching capabilities";
            leaf minimum-lsp-bandwidth {
              type decimal64 {
                fraction-digits 2;
              }
              description
                "Minimum LSP Bandwidth. Units in bytes per second";
            }
            leaf interface-mtu {
              type uint16;
              description
                "Interface MTU";
            }
          }
          container time-division-multiplex-capable {
            when "../switching-capability = TDM" {
              description "Valid only for TDM";
            }
            description
              "Interface has time-division multiplex capabilities";
 
 
 
 
 Liu, et al              Expires April 27, 2015                [Page 13]


 Internet-Draft                YANG - TED                   October 2014
 
 
            leaf minimum-lsp-bandwidth {
              type decimal64 {
                fraction-digits 2;
              }
              description
                "Minimum LSP Bandwidth. Units in bytes per second";
            }
            leaf indication {
              type enumeration {
                enum "standard" {
                  description "Indicates support of standard SONET/SDH";
                }
                enum "arbitrary" {
                  description "Indicates support of arbitrary
                              SONET/SDH";
 
                }
              }
              description
                "Indication whether the interface supports Standard or
                 Arbitrary SONET/SDH";
            }
          }
        }
        container srlg {
          description
            "Shared Risk Link Group Attributes";
          uses srlg-attributes;
        }
      }
 
      grouping ted-link-attributes {
        description
          "TED Attributes associated with the link.";
        reference
          "RFC 3630, RFC 3784: IS-IS / OSPF Traffic Engineering (TE)";
        leaf admin-status {
          type enumeration {
            enum up {
              value 1;
              description
                "Enabled.";
            }
            enum down {
              value 2;
              description
                "Disabled.";
 
 
 Liu, et al              Expires April 27, 2015                [Page 14]


 Internet-Draft                YANG - TED                   October 2014
 
 
            }
            enum testing {
              value 3;
              description
                "In some test mode.";
            }
          }
          description
            "The desired state of the link.";
          }
        leaf oper-status {
          type enumeration {
            enum up {
              value 1;
              description
                "Operational up";
            }
            enum down {
              value 2;
              description
                "Operational down.";
            }
            enum testing {
              value 3;
              description
                "In some test mode";
            }
            enum unknown {
              value 4;
              description
                "Status cannot be determined for some reason.";
            }
          }
          description
            "The current operational state of the link.";
        }
        leaf area-id {
          type binary {
            length 1..13;
          }
          description
            "This object indicates the area identifier of the IGP.
            If OSPF is used to advertise LSA, this represents an
            ospfArea. If IS-IS is used, this represents an area address.
            Otherwise, this is zero.";
        }
 
 
 
 Liu, et al              Expires April 27, 2015                [Page 15]


 Internet-Draft                YANG - TED                   October 2014
 
 
        uses ted-link-info-attributes;
        list alt-information-sources {
          key "information-source";
          description
            "A list of information sources";
          uses ted-link-info-attributes;
        }
      }
 
      grouping srlg-attributes {
        description
          "Shared Risk Link Group Attributes";
        reference
          "RFC 5307, RFC 4203: ISIS / OSPF Extensions in Support of
           Generalized Multi-Protocol Label Switching (GMPLS)";
        list srlg-values {
          key "srlg-value";
          description
            "List of Shared Risk Link Group this interface belongs to.";
          leaf srlg-value {
            type uint32;
            description
              "Shared Risk Link Group value";
          }
        }
      }
    }
 4. Security Considerations
 
    The YANG module by itself does not create any security implications.
 
 5. IANA Considerations
 
    TBD
 
 6. Normative References
 
    [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
                Requirement Levels", BCP 14, RFC 2119, March 1997.
 
    [RFC6020]   Bjorklund, M., "YANG - A Data Modeling language for the
                Network Configuration Protocol (NETCONF)", RFC 6020,
                October 2010.
 
    [RFC6021]   Schoenwaelder, J., "Common YANG Data Types", RFC 6021,
                October 2010.
 
 
 
 Liu, et al              Expires April 27, 2015                [Page 16]


 Internet-Draft                YANG - TED                   October 2014
 
 
 
 
 7. Acknowledgments
 
    The authors of this draft would like to thank the
    authors/contributors of <draft-clemm-i2rs-yang-network-topo> for
    laying the foundation for Topology specific YANG modules.
 
 Authors' Addresses
 
    Xufeng Liu
    Ericsson
    Xufeng.liu@ericsson.com
 
    Vishnu Pavan Beeram
    Juniper Networks
    Email: vbeeram@juniper.net
 
    Alexander Clemm
    Cisco
    alex@cisco.com
 
    Igor Bryskin
    ADVA Optical Networking
    Email: ibryskin@advaoptical.com
 
    Aihua Guo
    ADVA Optical Networking
    Email: aguo@advaoptical.com
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Liu, et al              Expires April 27, 2015                [Page 17]