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 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]