--- 1/draft-ietf-ospf-yang-17.txt 2018-11-27 15:13:14.855639831 -0800 +++ 2/draft-ietf-ospf-yang-18.txt 2018-11-27 15:13:15.043644403 -0800 @@ -1,25 +1,25 @@ Internet D. Yeung Internet-Draft Arrcus Intended status: Standards Track Y. Qu -Expires: March 16, 2019 Huawei +Expires: May 31, 2019 Huawei J. Zhang Juniper Networks I. Chen - MITRE Corporation + The MITRE Corporation A. Lindem Cisco Systems - September 12, 2018 + November 27, 2018 YANG Data Model for OSPF Protocol - draft-ietf-ospf-yang-17 + draft-ietf-ospf-yang-18 Abstract This document defines a YANG data model that can be used to configure and manage OSPF. The model is based on YANG 1.1 as defined in RFC 7950 and conforms to the Network Management Datastore Architecture (NDMA) as described in RFC 8342. Status of This Memo @@ -29,21 +29,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." - This Internet-Draft will expire on March 16, 2019. + This Internet-Draft will expire on May 31, 2019. Copyright Notice Copyright (c) 2018 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 @@ -62,28 +62,28 @@ 2.1. OSPF Operational State . . . . . . . . . . . . . . . . . 3 2.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3. OSPFv2 and OSPFv3 . . . . . . . . . . . . . . . . . . . . 5 2.4. Optional Features . . . . . . . . . . . . . . . . . . . . 5 2.5. OSPF Router Configuration/Operational State . . . . . . . 7 2.6. OSPF Area Configuration/Operational State . . . . . . . . 10 2.7. OSPF Interface Configuration/Operational State . . . . . 15 2.8. OSPF notification . . . . . . . . . . . . . . . . . . . . 17 2.9. OSPF RPC Operations . . . . . . . . . . . . . . . . . . . 21 3. OSPF YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 - 4. Security Considerations . . . . . . . . . . . . . . . . . . . 106 - 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 107 - 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 107 + 4. Security Considerations . . . . . . . . . . . . . . . . . . . 107 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 108 + 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 108 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 108 - 7.1. Normative References . . . . . . . . . . . . . . . . . . 108 - 7.2. Informative References . . . . . . . . . . . . . . . . . 112 - Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 114 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114 + 7.1. Normative References . . . . . . . . . . . . . . . . . . 109 + 7.2. Informative References . . . . . . . . . . . . . . . . . 113 + Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 115 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 115 1. Overview YANG [RFC6020][RFC7950] is a data definition language used to define the contents of a conceptual data store that allows networked devices to be managed using NETCONF [RFC6241]. YANG is proving relevant beyond its initial confines, as bindings to other interfaces (e.g., ReST) and encodings other than XML (e.g., JSON) are being defined. Furthermore, YANG data models can be used as the basis for implementation of other interfaces, such as CLI and programmatic @@ -187,23 +187,23 @@ configuration construct that is identified by the local identifier 'name'. The field 'version' allows support for OSPFv2 and OSPFv3. The ospf container includes one OSPF protocol engine instance. The instance includes OSPF router level configuration and operational state. The area and area/interface containers respectively define the OSPF configuration and operational state for OSPF areas and interfaces. - The topology container defines the OSPF configuration and operational - state for OSPF topologies when the multi-topology feature is - supported. + The topologies container defines the OSPF configuration and + operational state for OSPF topologies when the multi-topology feature + is supported. 2.3. OSPFv2 and OSPFv3 The data model defined herein supports both OSPFv2 and OSPFv3. The field 'version' is used to indicate the OSPF version and is mandatory. Based on the configured version, the data model varies to accommodate the differences between OSPFv2 and OSPFv3. 2.4. Optional Features @@ -1000,21 +1000,21 @@ +---w routing-protocol-name -> /rt:routing/control-plane-protocols/ control-plane-protocol/name 3. OSPF YANG Module The following RFCs and drafts are not referenced in the document text but are referenced in the ietf-ospf.yang module: [RFC0905], [RFC4576], [RFC5250], [RFC5881], [RFC6991], [RFC7770], and [RFC8294]. - file "ietf-ospf@2018-08-29.yang" + file "ietf-ospf@2018-11-27.yang" module ietf-ospf { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-ospf"; prefix ospf; import ietf-inet-types { prefix "inet"; reference "RFC 6991 - Common YANG Data Types"; } @@ -1054,40 +1054,40 @@ } import ietf-bfd-types { prefix "bfd-types"; reference "RFC YYYY - YANG Data Model for Bidirectional Forwarding Detection (BFD). Please replace YYYY with published RFC number for draft-ietf-bfd-yang-17."; } organization - "IETF OSPF - OSPF Working Group"; + "IETF LSR - Link State Routing Working Group"; contact - "WG Web: - WG List: + "WG Web: + WG List: Editor: Derek Yeung Author: Acee Lindem Author: Yingzhen Qu Author: Jeffrey Zhang Author: Ing-Wher Chen - + Author: Dean Bogdanovic Author: Kiran Agrahara Sreenivasa - "; + ../hello-interval" { error-message "The dead interval must be " + "larger than the hello interval"; @@ -3248,20 +3294,21 @@ description "Applied to OSPFv3 only."; } if-feature ospfv3-authentication-ipsec; leaf sa { type string; description "Security Association (SA) name."; } } case auth-trailer-key-chain { + if-feature key-chain; leaf key-chain { type key-chain:key-chain-ref; description "key-chain name."; } } case auth-trailer-key { leaf key { type string; description @@ -3617,21 +3660,21 @@ uses interface-common-config; uses interface-physical-link-config; } grouping sham-link-state { description "OSPF sham link operational state."; uses interface-common-state; } - grouping af-area-config { + grouping address-family-area-config { description "OSPF address-family specific area config state."; container ranges { description "Container for summary ranges"; list range { key "prefix"; description "Summarize routes matching address/mask - @@ -3640,26 +3683,26 @@ type inet:ip-prefix; description "IPv4 or IPv6 prefix"; } leaf advertise { type boolean; description "Advertise or hide."; } leaf cost { - type uint24 { + type ospf-metric { range "0..16777214"; - } description "Advertised cost of summary route."; + } } } } grouping area-common-config { description "OSPF area common configuration state."; leaf summary { @@ -3671,23 +3714,21 @@ description "Enable/Disable summary advertisement into the stub or NSSA area."; } leaf default-cost { when "derived-from(../area-type,'ospf:stub-nssa-area')" { description "Cost for LSA default route advertised into the stub or NSSA area."; } - type uint32 { - range "1..16777215"; - } + type ospf-metric; description "Set the summary default route cost for a stub or NSSA area."; } } grouping area-config { description "OSPF area configuration state."; @@ -3691,27 +3732,25 @@ description "OSPF area configuration state."; leaf area-type { type identityref { base area-type; } default normal-area; description "Area type."; - } uses area-common-config; - uses af-area-config; + uses address-family-area-config; } - grouping area-state { description "OSPF area operational state."; container statistics { config false; description "Per-area statistics"; uses area-stat; } @@ -3789,55 +3828,49 @@ type uint32; description "Metric for this route."; } leaf route-type { type route-type; description "Route type for this route."; } leaf route-tag { type uint32; description "Route tag for this route."; - } } } } grouping ietf-spf-delay { leaf initial-delay { - type uint16; - units msec; + type rt-types:timer-value-milliseconds; description "Delay used while in QUIET state (milliseconds)."; } leaf short-delay { - type uint16; - units msec; + type rt-types:timer-value-milliseconds; description "Delay used while in SHORT_WAIT state (milliseconds)."; } leaf long-delay { - type uint16; - units msec; + type rt-types:timer-value-milliseconds; description "Delay used while in LONG_WAIT state (milliseconds)."; } leaf hold-down { - type uint16; - units msec; + type rt-types:timer-value-milliseconds; description "Timer used to consider an IGP stability period (milliseconds)."; } leaf time-to-learn { - type uint16; - units msec; + type rt-types:timer-value-milliseconds; description "Duration used to learn all the IGP events related to a single component failure (milliseconds)."; } leaf current-state { type enumeration { enum "quiet" { description "QUIET state"; } enum "short-wait" { @@ -3838,37 +3871,35 @@ leaf current-state { type enumeration { enum "quiet" { description "QUIET state"; } enum "short-wait" { description "SHORT_WAIT state"; } enum "long-wait" { description "LONG_WAIT state"; - } } config false; description "Current SPF backoff algorithm state."; } leaf remaining-time-to-learn { - type uint16; - units "seconds"; + type rt-types:timer-value-seconds16; config false; description "Remaining time until time-to-learn timer fires."; + } leaf remaining-hold-down { - type uint16; - units "seconds"; + type rt-types:timer-value-seconds16; config false; description "Remaining time until hold-down timer fires."; } leaf last-event-received { type yang:timestamp; config false; description "Time of last SPF triggering event."; } @@ -4121,21 +4152,20 @@ "OSPF MPLS LDP config state."; leaf igp-sync { if-feature ldp-igp-sync; type boolean; description "Enable LDP IGP synchronization."; } } } uses instance-fast-reroute-config; - uses instance-fast-reroute-state; uses node-tag-config; } grouping instance-state { description "OSPF instance operational state."; leaf router-id { type rt-types:router-id; config false; @@ -4219,42 +4247,39 @@ topology in the stub or NSSA area."; } leaf default-cost { when "derived-from(" + "../../../../../areas/area[area-id=current()/../area-id]/" + "area-type, 'stub-nssa-area')" { description "Cost for LSA default route advertised into the topology into the stub or NSSA area."; } - type uint32 { - range "1..16777215"; - } + type ospf-metric; description "Set the summary default route cost for a stub or NSSA area."; } } grouping multi-topology-area-config { description "OSPF multi-topology area configuration state."; uses multi-topology-area-common-config; - uses af-area-config; + uses address-family-area-config; } grouping multi-topology-area-state { description "OSPF multi-topology area operational state."; } - grouping multi-topology-config { description "OSPF multi-topology configuration state."; } grouping multi-topology-state { description "OSPF multi-topology operational state."; uses local-rib; @@ -4397,21 +4422,21 @@ } } } grouping lsa-log { description "Grouping for the LSA log."; container lsa-log { config false; description - "This conatiner lists the LSA log. + "This container lists the LSA log. Local LSA modifications are also included in the list."; list event { key id; description "List of LSA log entries represented as a wrapping buffer."; leaf id { type uint32; description @@ -4450,21 +4475,21 @@ description "OSPF protocol ietf-routing module control-plane-protocol augmentation."; container ospf { description "OSPF protocol Instance"; uses ospf-config; uses ospf-state; - leaf af { + leaf address-family { type iana-rt-types:address-family; description "Address-family of the instance."; } uses instance-config; uses instance-state; container areas { description "All areas."; @@ -4767,26 +4792,26 @@ + "rt:control-plane-protocol/rt:name"; } must "derived-from( " + "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol[rt:name=current()]/" + "rt:type, 'ospf:ospf-protocol')"; description "OSPF routing protocol instance name."; } - leaf af { + leaf address-family { type leafref { path "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol" + "[rt:name=current()/../routing-protocol-name]/" - + "ospf:ospf/af"; + + "ospf:ospf/address-family"; } description "Address family of the OSPF instance."; } } grouping notification-interface { description "This grouping provides interface information for the OSPF interface specific notification."; @@ -5143,22 +5166,28 @@ The authors wish to thank Yi Yang, Alexander Clemm, Gaurav Gupta, Ladislav Lhotka, Stephane Litkowski, Greg Hankins, Manish Gupta and Alan Davey for their thorough reviews and helpful comments. Thanks to Tom Petch for last call review and improvement of the document organization. This document was produced using Marshall Rose's xml2rfc tool. -7. References + Author affiliation with The MITRE Corporation is provided for + identification purposes only, and is not intended to convey or imply + MITRE's concurrence with, or support for, the positions, opinions or + viewpoints expressed. MITRE has approved this document for Public + Release, Distribution Unlimited, with Public Release Case Number + 18-3194. +7. References 7.1. Normative References [I-D.ietf-bfd-yang] Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and G. Mirsky, "YANG Data Model for Bidirectional Forwarding Detection (BFD)", draft-ietf-bfd-yang-17 (work in progress), August 2018. [RFC1793] Moy, J., "Extending OSPF to Support Demand Circuits", RFC 1793, DOI 10.17487/RFC1793, April 1995, @@ -5396,26 +5425,26 @@ editor.org/info/rfc6987>. Appendix A. Contributors' Addreses Dean Bogdanovic Volta Networks, Inc. EMail: dean@voltanet.io Kiran Koushik Agrahara Sreenivasa - Cisco Systems - 12515 Research Blvd, Bldg 4 - Austin, TX 78681 + Verizon + 500 W Dove Rd + Southlake, TX 76092 USA - EMail: kkoushik@cisco.com + EMail: kk@employees.org Authors' Addresses Derek Yeung Arrcus EMail: derek@arrcus.com Yingzhen Qu Huawei @@ -5427,19 +5456,19 @@ Jeffrey Zhang Juniper Networks 10 Technology Park Drive Westford, MA 01886 USA EMail: zzhang@juniper.net Ing-Wher Chen - MITRE Corporation + The MITRE Corporation EMail: ingwherchen@mitre.org Acee Lindem Cisco Systems 301 Midenhall Way Cary, NC 27513 EMail: acee@cisco.com