draft-ietf-ospf-yang-28.txt   draft-ietf-ospf-yang-29.txt 
Internet D. Yeung Internet D. Yeung
Internet-Draft Arrcus Internet-Draft Arrcus
Intended status: Standards Track Y. Qu Intended status: Standards Track Y. Qu
Expires: February 27, 2020 Futurewei Expires: April 19, 2020 Futurewei
J. Zhang J. Zhang
Juniper Networks Juniper Networks
I. Chen I. Chen
The MITRE Corporation The MITRE Corporation
A. Lindem A. Lindem
Cisco Systems Cisco Systems
August 26, 2019 October 17, 2019
YANG Data Model for OSPF Protocol YANG Data Model for OSPF Protocol
draft-ietf-ospf-yang-28 draft-ietf-ospf-yang-29
Abstract Abstract
This document defines a YANG data model that can be used to configure 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 and manage OSPF. The model is based on YANG 1.1 as defined in RFC
7950 and conforms to the Network Management Datastore Architecture 7950 and conforms to the Network Management Datastore Architecture
(NMDA) as described in RFC 8342. (NMDA) as described in RFC 8342.
Status of This Memo Status of This Memo
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://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 Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 27, 2020. This Internet-Draft will expire on April 19, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://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 publication of this document. Please review these documents
skipping to change at page 23, line 49 skipping to change at page 23, line 49
-> /rt:routing/control-plane-protocols/ -> /rt:routing/control-plane-protocols/
control-plane-protocol/name control-plane-protocol/name
3. OSPF YANG Module 3. OSPF YANG Module
The following RFCs and drafts are not referenced in the document text The following RFCs and drafts are not referenced in the document text
but are referenced in the ietf-ospf.yang module: [RFC0905], but are referenced in the ietf-ospf.yang module: [RFC0905],
[RFC4576], [RFC4973], [RFC5250], [RFC5309], [RFC5642], [RFC5881], [RFC4576], [RFC4973], [RFC5250], [RFC5309], [RFC5642], [RFC5881],
[RFC6991], [RFC7770], [RFC7884], [RFC8294], and [RFC8476]. [RFC6991], [RFC7770], [RFC7884], [RFC8294], and [RFC8476].
<CODE BEGINS> file "ietf-ospf@2019-08-26.yang" <CODE BEGINS> file "ietf-ospf@2019-10-17.yang"
module ietf-ospf { module ietf-ospf {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf"; namespace "urn:ietf:params:xml:ns:yang:ietf-ospf";
prefix ospf; prefix ospf;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
reference "RFC 6991: Common YANG Data Types"; reference "RFC 6991: Common YANG Data Types";
} }
skipping to change at page 26, line 10 skipping to change at page 26, line 10
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here. they appear in all capitals, as shown here.
This version of this YANG module is part of RFC XXXX; This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices."; see the RFC itself for full legal notices.";
revision 2019-08-26 { revision 2019-10-17 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for OSPF."; "RFC XXXX: A YANG Data Model for OSPF.";
} }
feature multi-topology { feature multi-topology {
description description
"Support Multiple-Topology Routing (MTR)."; "Support Multiple-Topology Routing (MTR).";
reference "RFC 4915: Multi-Topology Routing"; reference "RFC 4915: Multi-Topology Routing";
skipping to change at page 99, line 47 skipping to change at page 99, line 47
determine interface cost (Mbits). The cost is the determine interface cost (Mbits). The cost is the
reference bandwidth divided by the interface speed reference bandwidth divided by the interface speed
with 1 being the minimum cost."; with 1 being the minimum cost.";
} }
} }
container spf-control { container spf-control {
leaf paths { leaf paths {
if-feature max-ecmp; if-feature max-ecmp;
type uint16 { type uint16 {
range "1..32"; range "1..65535";
} }
description description
"Maximum number of Equal-Cost Multi-Path (ECMP) paths."; "Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
} }
container ietf-spf-delay { container ietf-spf-delay {
if-feature ietf-spf-delay; if-feature ietf-spf-delay;
uses ietf-spf-delay; uses ietf-spf-delay;
description description
"IETF SPF delay algorithm configuration."; "IETF SPF delay algorithm configuration.";
} }
skipping to change at page 107, line 27 skipping to change at page 107, line 27
} }
description description
"This reason for the LSA log entry."; "This reason for the LSA log entry.";
} }
} }
} }
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "derived-from(rt:type, 'ospf-protocol')" { when "derived-from(rt:type, 'ospf')" {
description description
"This augmentation is only valid for a routing protocol "This augmentation is only valid for a routing protocol
instance of OSPF (type 'ospfv2' or 'ospfv3')."; instance of OSPF (type 'ospfv2' or 'ospfv3').";
} }
description "OSPF protocol ietf-routing module description "OSPF protocol ietf-routing module
control-plane-protocol augmentation."; control-plane-protocol augmentation.";
container ospf { container ospf {
description description
"OSPF protocol Instance"; "OSPF protocol Instance";
skipping to change at page 109, line 49 skipping to change at page 109, line 49
uses interface-state; uses interface-state;
} }
} }
} }
} }
} }
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf" { + "rt:control-plane-protocol/ospf" {
when "derived-from(../rt:type, 'ospf-protocol')" { when "derived-from(../rt:type, 'ospf')" {
description description
"This augmentation is only valid for OSPF "This augmentation is only valid for OSPF
(type 'ospfv2' or 'ospfv3')."; (type 'ospfv2' or 'ospfv3').";
} }
if-feature multi-topology; if-feature multi-topology;
description description
"OSPF multi-topology instance configuration "OSPF multi-topology instance configuration
state augmentation."; state augmentation.";
container topologies { container topologies {
skipping to change at page 112, line 30 skipping to change at page 112, line 30
default "0"; default "0";
description "OSPF route tag."; description "OSPF route tag.";
} }
leaf route-type { leaf route-type {
type route-type; type route-type;
description "OSPF route type"; description "OSPF route type";
} }
} }
augment "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route" { augment "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route" {
when "derived-from(rt:source-protocol, 'ospf-protocol')" { when "derived-from(rt:source-protocol, 'ospf')" {
description description
"This augmentation is only valid for routes whose "This augmentation is only valid for routes whose
source protocol is OSPF."; source protocol is OSPF.";
} }
description description
"OSPF-specific route attributes."; "OSPF-specific route attributes.";
uses route-content; uses route-content;
} }
/* /*
skipping to change at page 114, line 27 skipping to change at page 114, line 27
data for OSPF notifications."; data for OSPF notifications.";
leaf routing-protocol-name { leaf routing-protocol-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
must "derived-from( " must "derived-from( "
+ "/rt:routing/rt:control-plane-protocols/" + "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol[rt:name=current()]/" + "rt:control-plane-protocol[rt:name=current()]/"
+ "rt:type, 'ospf-protocol')"; + "rt:type, 'ospf')";
description description
"OSPF routing protocol instance name."; "OSPF routing protocol instance name.";
} }
leaf address-family { leaf address-family {
type leafref { type leafref {
path "/rt:routing/" path "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "[rt:name=current()/../routing-protocol-name]/" + "[rt:name=current()/../routing-protocol-name]/"
+ "ospf/address-family"; + "ospf/address-family";
skipping to change at page 123, line 28 skipping to change at page 123, line 28
registry [RFC6020]. registry [RFC6020].
name: ietf-ospf name: ietf-ospf
namespace: urn:ietf:params:xml:ns:yang:ietf-ospf namespace: urn:ietf:params:xml:ns:yang:ietf-ospf
prefix: ospf prefix: ospf
reference: RFC XXXX reference: RFC XXXX
6. Acknowledgements 6. Acknowledgements
The authors wish to thank Yi Yang, Alexander Clemm, Gaurav Gupta, The authors wish to thank Yi Yang, Alexander Clemm, Gaurav Gupta,
Ladislav Lhotka, Stephane Litkowski, Greg Hankins, Manish Gupta and Ladislav Lhotka, Stephane Litkowski, Greg Hankins, Manish Gupta,
Alan Davey for their thorough reviews and helpful comments. Michael Darwish, and Alan Davey for their thorough reviews and
helpful comments.
Thanks to Tom Petch for last call review and improvement of the Thanks to Tom Petch for last call review and improvement of the
document organization. document organization.
Thanks to Alvaro Retana for AD comments. Thanks to Alvaro Retana for AD comments.
Thanks to Benjamin Kaduk, Suresh Krishnan, and Roman Dannyliw for Thanks to Benjamin Kaduk, Suresh Krishnan, and Roman Dannyliw for
IESG review comments. IESG review comments.
This document was produced using Marshall Rose's xml2rfc tool. This document was produced using Marshall Rose's xml2rfc tool.
 End of changes. 12 change blocks. 
13 lines changed or deleted 14 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/