--- 1/draft-ietf-ospf-yang-11.txt 2018-07-02 14:13:54.224276353 -0700 +++ 2/draft-ietf-ospf-yang-12.txt 2018-07-02 14:13:54.400280620 -0700 @@ -1,56 +1,56 @@ Internet D. Yeung Internet-Draft Arrcus Intended status: Standards Track Y. Qu -Expires: October 5, 2018 Huawei +Expires: January 3, 2019 Huawei J. Zhang Juniper Networks I. Chen Jabil A. Lindem Cisco Systems - April 3, 2018 + July 2, 2018 Yang Data Model for OSPF Protocol - draft-ietf-ospf-yang-11 + draft-ietf-ospf-yang-12 Abstract This document defines a YANG data model that can be used to configure and manage OSPF. 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). 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/. + Drafts is at https://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 October 5, 2018. + This Internet-Draft will expire on January 3, 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 + (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents 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. Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 @@ -60,24 +60,25 @@ 2.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3. OSPFv2 and OSPFv3 . . . . . . . . . . . . . . . . . . . . 5 2.4. Optional Features . . . . . . . . . . . . . . . . . . . . 5 2.5. OSPF Router Configuration/Operational State . . . . . . . 5 2.6. OSPF Area Configuration/Operational State . . . . . . . . 8 2.7. OSPF Interface Configuration/Operational State . . . . . 13 2.8. OSPF notification . . . . . . . . . . . . . . . . . . . . 15 2.9. OSPF RPC Operations . . . . . . . . . . . . . . . . . . . 19 3. OSPF Yang Module . . . . . . . . . . . . . . . . . . . . . . 19 4. Security Considerations . . . . . . . . . . . . . . . . . . . 100 - 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 101 - 6. Normative References . . . . . . . . . . . . . . . . . . . . 101 - Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 107 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 107 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 101 + 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 102 + 7. Normative References . . . . . . . . . . . . . . . . . . . . 102 + Appendix A. Contributors' Addreses . . . . . . . . . . . . . . . 108 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 108 1. Overview YANG [RFC6020] 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 @@ -905,21 +906,21 @@ The following RFCs and drafts are not referenced in the document text but are referenced in the ietf-ospf.yang module: [RFC0905], [RFC1765], [RFC4552], [RFC4576], [RFC4915], [RFC5082], [RFC5185], [RFC5250], [RFC5286], [RFC5329], [RFC5443], [RFC5613], [RFC5714], [RFC5880], [RFC5881], [RFC6021], [RFC6860], [RFC6987], [RFC7490], [RFC7684], [RFC7770], [RFC7777], [RFC8291], [RFC8343], [RFC8349], [I-D.ietf-bfd-yang], and [I-D.ietf-rtgwg-backoff-algo]. - file "ietf-ospf@2018-04-03.yang" + file "ietf-ospf@2018-07-02.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 6021 - Common YANG Data Types"; } @@ -1004,21 +1005,21 @@ Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2018-04-03 { + revision 2018-07-02 { description "Initial revision."; reference "RFC XXXX: A YANG Data Model for OSPF."; } feature multi-topology { description "Support Multiple-Topolgy Routing (MTR)."; reference "RFC 4915 - Multi-Topology Routing"; @@ -1067,21 +1068,21 @@ feature nsr { description "Non-Stop-Routing (NSR) support."; } feature graceful-restart { description "Graceful OSPF Restart as defined in RFC 3623 and RFC 5187."; - reference "RFC 3630 - Graceful OSPF Restart + reference "RFC 3623 - Graceful OSPF Restart RFC 5187 - OSPFv3 Graceful Restart"; } feature admin-control { description "Administrative control of the protocol state."; } feature auto-cost { description @@ -1306,20 +1307,26 @@ description "OSPFv2 Area-Scoped Opaque LSA - Type 10"; } identity ospfv2-as-scope-opaque-lsa { base ospfv2-opaque-lsa-type; description "OSPFv2 AS-Scoped Opaque LSA - Type 11"; } + identity ospfv2-unknown-lsa-type { + base ospfv2-lsa-type; + description + "OSPFv2 Unknown LSA type"; + } + identity ospfv3-lsa-type { base ospf-lsa-type; description "OSPFv3 LSA types."; } identity ospfv3-router-lsa { base ospfv3-lsa-type; description "OSPFv3 Router LSA - Type 0x2001"; @@ -1370,27 +1377,33 @@ base ospfv3-lsa-type; description "OSPFv3 Link LSA - Type 0x0008"; } identity ospfv3-intra-area-prefix-lsa { base ospfv3-lsa-type; description "OSPFv3 Intra-area Prefix LSA - Type 0x2009"; } - identity ospfv3-router-information-lsa { base ospfv3-lsa-type; description "OSPFv3 Router Information LSA - Types 0x800C, 0xA00C, and 0xC00C"; } + + identity ospfv3-unknown-lsa-type { + base ospfv3-lsa-type; + description + "OSPFv3 Unknown LSA type"; + } + identity lsa-log-reason { description "Base identity for an LSA log reason."; } identity lsa-refresh { base lsa-log-reason; description "Identity used when the LSA is logged as a result of receiving a refresh LSA."; @@ -1711,20 +1721,52 @@ leaf tag { type uint32; description "Node admin tag value."; } description "List of tags."; } } + grouping ospf-router-lsa-flags { + leaf flags { + type bits { + bit V { + description + "When set, the router is an endpoint of one or + more virtual links."; + } + bit E { + description + "When set, the router is an AS Boundary Router + (ASBR)."; + } + bit B { + description + "When set, the router is an Area Border + Router (ABR)."; + } + bit Nt { + description + "When set, the router is an NSSA border router + that is unconditionally translating NSSA LSAs + into AS-external LSAs."; + } + } + description "Router LSA Flags."; + } + description + "Router LSA Flags - Currently common for OSPFv2 and + OSPFv3 but it may diverge with future augmentations."; + } + grouping ospfv2-router-link { description "OSPFv2 router link."; leaf link-id { type union { type inet:ipv4-address; type yang:dotted-quad; } description "Router-LSA Link ID"; } leaf link-data { @@ -1743,46 +1785,21 @@ grouping ospfv2-lsa-body { description "OSPFv2 LSA body."; container router { when "derived-from-or-self(../../header/type, " + "'ospf:ospfv2-router-lsa')" { description "Only applies to Router-LSAs."; } description "Router LSA."; - leaf flags { - type bits { - bit V { - description - "When set, the router is an endpoint of one or - more virtual links."; - } - bit E { - description - "When set, the router is an AS Boundary Router - (ASBR)."; - } - bit B { - description - "When set, the router is an Area Border - Router (ABR)."; - } - bit Nt { - description - "When set, the router is an NSSA border router - that is unconditionally translating NSSA LSAs - into AS-external LSAs."; - } - } - description "Flags."; - } + uses ospf-router-lsa-flags; leaf num-of-links { type uint16; description "Number of links in Router LSA."; } container links { description "All router Links."; list link { description "Router LSA link."; uses ospfv2-router-link; container topologies { @@ -2171,81 +2189,62 @@ bit T { description "When set, an External Route Tag is included in the LSA."; } } description "Flags."; } leaf referenced-ls-type { - type uint16; + type identityref { + base ospf:ospfv3-lsa-type; + } description "Referenced Link State type."; + + } + leaf unknown-referenced-ls-type { + type uint16; + description + "Value for an unknown Referenced Link State type."; } uses ospfv3-lsa-prefix; leaf forwarding-address { type inet:ipv6-address; description "Forwarding address."; } leaf external-route-tag { type uint32; description "Route tag."; } leaf referenced-link-state-id { - type uint32; + type yang:dotted-quad; description "Referenced Link State ID."; } } grouping ospfv3-lsa-body { description "OSPFv3 LSA body."; container router { when "derived-from-or-self(../../header/type, " + "'ospfv3-router-lsa')" { description "Only applies to Router LSAs."; } description "Router LSA."; - leaf flags { - type bits { - bit V { - description - "When set, the router is an endpoint of one or - more virtual links."; - } - bit E { - description - "When set, the router is an AS Boundary Router - (ASBR)."; - } - bit B { - description - "When set, the router is an Area Border - Router (ABR)."; - } - bit Nt { - description - "When set, the router is an NSSA border router - that is unconditionally translating NSSA LSAs - into AS-external LSAs."; - } - } - mandatory true; - description "Router LSA flags."; - } - + uses ospf-router-lsa-flags; uses ospfv3-lsa-options; container links { description "All router link."; list link { description "Router LSA link."; leaf interface-id { type uint32; description "Interface ID for link."; } @@ -2378,33 +2377,40 @@ } container intra-area-prefix { when "derived-from-or-self(../../header/type, " + "'ospfv3-intra-area-prefix-lsa')" { description "Only applies to Intra-Area-Prefix LSAs."; } description "Intra-Area-Prefix LSA."; leaf referenced-ls-type { - type uint16; + type identityref { + base ospf:ospfv3-lsa-type; + } description "Referenced Link State type."; } + leaf unknown-referenced-ls-type { + type uint16; + description + "Value for an unknown Referenced Link State type."; + + } leaf referenced-link-state-id { - type uint32; + type yang:dotted-quad; description "Referenced Link State ID."; } leaf referenced-adv-router { - type inet:ipv4-address; + type rt-types:router-id; description "Referenced Advertising Router."; - } leaf num-of-prefixes { type uint16; description "Number of prefixes."; } container prefixes { description "All prefixes in this LSA."; list prefix { description "List of prefixes in this LSA."; @@ -2446,21 +2451,21 @@ description "LSA age."; } leaf type { type identityref { base ospf-lsa-type; } mandatory true; description "LSA type"; } leaf adv-router { - type yang:dotted-quad; + type rt-types:router-id; mandatory true; description "LSA advertising router."; } leaf seq-num { type uint32; mandatory true; description "LSA sequence number."; } leaf checksum { type fletcher-checksum16-type; @@ -2613,21 +2620,21 @@ "OSPF LSA key."; leaf lsa-id { type union { type yang:dotted-quad; type uint32; } description "Link-State ID."; } leaf adv-router { - type inet:ipv4-address; + type rt-types:router-id; description "Advertising router."; } } grouping instance-stat { description "Per-instance statistics"; leaf originate-new-lsa-count { type yang:counter32; description "The number of new LSAs originated."; @@ -4022,21 +4026,21 @@ leaf type { type uint16; description "LSA type."; } leaf lsa-id { type yang:dotted-quad; description "Link-State ID."; } leaf adv-router { - type yang:dotted-quad; + type rt-types:router-id; description "LSA advertising router."; } leaf seq-num { type uint32; description "LSA sequence number."; } } @@ -4823,75 +4826,97 @@ [RFC8177]. This includes the considerations with respect to the local storage and handling of authentication keys. Some of the RPC operations in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control access to these operations. The OSPF Yang module support the "clear-neighbor" and "clear-database" RPCs. If access too either of these is compromised, they can result in temporary network outages be employed to mount DoS attacks. -5. Acknowledgements +5. IANA Considerations + + This document registers a URI in the IETF XML registry [RFC3688]. + Following the format in [RFC3688], the following registration is + requested to be made: + + URI: urn:ietf:params:xml:ns:yang:ietf-ospf + Registrant Contact: The IESG. + XML: N/A, the requested URI is an XML namespace. + + This document registers a YANG module in the YANG Module Names + registry [RFC6020]. + + name: ietf-ospf + namespace: urn:ietf:params:xml:ns:yang:ietf-ospf + prefix: ospf + reference: RFC XXXX + +6. Acknowledgements 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. This document was produced using Marshall Rose's xml2rfc tool. -6. Normative References +7. 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-13 (work in progress), March 2018. [I-D.ietf-rtgwg-backoff-algo] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., Francois, P., and C. Bowers, "SPF Back-off Delay algorithm for link state IGPs", draft-ietf-rtgwg-backoff-algo-10 (work in progress), March 2018. [RFC0905] "ISO Transport Protocol specification ISO DP 8073", RFC 905, DOI 10.17487/RFC0905, April 1984, . [RFC1765] Moy, J., "OSPF Database Overflow", RFC 1765, - DOI 10.17487/RFC1765, March 1995, . + DOI 10.17487/RFC1765, March 1995, + . [RFC1793] Moy, J., "Extending OSPF to Support Demand Circuits", RFC 1793, DOI 10.17487/RFC1793, April 1995, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, - DOI 10.17487/RFC2119, March 1997, . + DOI 10.17487/RFC2119, March 1997, + . [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, - DOI 10.17487/RFC2328, April 1998, . + DOI 10.17487/RFC2328, April 1998, + . [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option", RFC 3101, DOI 10.17487/RFC3101, January 2003, . [RFC3623] Moy, J., Pillay-Esnault, P., and A. Lindem, "Graceful OSPF Restart", RFC 3623, DOI 10.17487/RFC3623, November 2003, . [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering (TE) Extensions to OSPF Version 2", RFC 3630, - DOI 10.17487/RFC3630, September 2003, . + DOI 10.17487/RFC3630, September 2003, + . + + [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, + DOI 10.17487/RFC3688, January 2004, + . [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006, . [RFC4576] Rosen, E., Psenak, P., and P. Pillay-Esnault, "Using a Link State Advertisement (LSA) Options Bit to Prevent Looping in BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4576, DOI 10.17487/RFC4576, June 2006, . @@ -4911,117 +4936,117 @@ RFC 4915, DOI 10.17487/RFC4915, June 2007, . [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C. Pignataro, "The Generalized TTL Security Mechanism (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007, . [RFC5185] Mirtorabi, S., Psenak, P., Lindem, A., Ed., and A. Oswal, "OSPF Multi-Area Adjacency", RFC 5185, - DOI 10.17487/RFC5185, May 2008, . + DOI 10.17487/RFC5185, May 2008, + . [RFC5187] Pillay-Esnault, P. and A. Lindem, "OSPFv3 Graceful Restart", RFC 5187, DOI 10.17487/RFC5187, June 2008, . [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, - DOI 10.17487/RFC5246, August 2008, . + DOI 10.17487/RFC5246, August 2008, + . [RFC5250] Berger, L., Bryskin, I., Zinin, A., and R. Coltun, "The OSPF Opaque LSA Option", RFC 5250, DOI 10.17487/RFC5250, July 2008, . [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for IP Fast Reroute: Loop-Free Alternates", RFC 5286, - DOI 10.17487/RFC5286, September 2008, . + DOI 10.17487/RFC5286, September 2008, + . [RFC5329] Ishiguro, K., Manral, V., Davey, A., and A. Lindem, Ed., "Traffic Engineering Extensions to OSPF Version 3", RFC 5329, DOI 10.17487/RFC5329, September 2008, . [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, . [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP Synchronization", RFC 5443, DOI 10.17487/RFC5443, March 2009, . [RFC5613] Zinin, A., Roy, A., Nguyen, L., Friedman, B., and D. Yeung, "OSPF Link-Local Signaling", RFC 5613, - DOI 10.17487/RFC5613, August 2009, . + DOI 10.17487/RFC5613, August 2009, + . [RFC5643] Joyal, D., Ed. and V. Manral, Ed., "Management Information Base for OSPFv3", RFC 5643, DOI 10.17487/RFC5643, August 2009, . [RFC5714] Shand, M. and S. Bryant, "IP Fast Reroute Framework", RFC 5714, DOI 10.17487/RFC5714, January 2010, . [RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and R. Aggarwal, "Support of Address Families in OSPFv3", RFC 5838, DOI 10.17487/RFC5838, April 2010, . [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, . [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, - DOI 10.17487/RFC5881, June 2010, . + DOI 10.17487/RFC5881, June 2010, + . [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, - DOI 10.17487/RFC6020, October 2010, . + DOI 10.17487/RFC6020, October 2010, + . [RFC6021] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6021, DOI 10.17487/RFC6021, October 2010, . [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, . [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration Protocol (NETCONF) Access Control Model", RFC 6536, - DOI 10.17487/RFC6536, March 2012, . + DOI 10.17487/RFC6536, March 2012, + . [RFC6565] Pillay-Esnault, P., Moyer, P., Doyle, J., Ertekin, E., and M. Lundberg, "OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol", RFC 6565, DOI 10.17487/RFC6565, June 2012, . [RFC6860] Yang, Y., Retana, A., and A. Roy, "Hiding Transit-Only Networks in OSPF", RFC 6860, DOI 10.17487/RFC6860, January 2013, . [RFC6987] Retana, A., Nguyen, L., Zinin, A., White, R., and D. McPherson, "OSPF Stub Router Advertisement", RFC 6987, - DOI 10.17487/RFC6987, September 2013, . + DOI 10.17487/RFC6987, September 2013, + . [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", RFC 7490, DOI 10.17487/RFC7490, April 2015, . [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute Advertisement", RFC 7684, DOI 10.17487/RFC7684, November 2015, . @@ -5039,40 +5064,40 @@ [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. Zhang, "YANG Data Model for Key Chains", RFC 8177, - DOI 10.17487/RFC8177, June 2017, . + DOI 10.17487/RFC8177, June 2017, + . [RFC8291] Thomson, M., "Message Encryption for Web Push", RFC 8291, - DOI 10.17487/RFC8291, November 2017, . + DOI 10.17487/RFC8291, November 2017, + . [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, . [RFC8343] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, . [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, - DOI 10.17487/RFC8349, March 2018, . + DOI 10.17487/RFC8349, March 2018, + . Appendix A. Contributors' Addreses Dean Bogdanovic Volta Networks, Inc. EMail: dean@voltanet.io Kiran Koushik Agrahara Sreenivasa Cisco Systems