Internet DRAFT - draft-liu-yang-ted

draft-liu-yang-ted










 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]