draft-ietf-bfd-yang-12.txt   draft-ietf-bfd-yang-13.txt 
Network Working Group R. Rahman, Ed. Network Working Group R. Rahman, Ed.
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Standards Track L. Zheng, Ed. Intended status: Standards Track L. Zheng, Ed.
Expires: September 21, 2018 Huawei Technologies Expires: September 22, 2018 Huawei Technologies
M. Jethanandani, Ed. M. Jethanandani, Ed.
S. Pallagatti S. Pallagatti
G. Mirsky G. Mirsky
ZTE Corporation ZTE Corporation
March 20, 2018 March 21, 2018
YANG Data Model for Bidirectional Forwarding Detection (BFD) YANG Data Model for Bidirectional Forwarding Detection (BFD)
draft-ietf-bfd-yang-12.txt draft-ietf-bfd-yang-13
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 Bidirectional Forwarding Detection (BFD). and manage Bidirectional Forwarding Detection (BFD).
The YANG modules in this document conform to the Network Management The YANG modules in this document conform to the Network Management
Datastore Architecture (NMDA). Datastore Architecture (NMDA).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 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 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 September 21, 2018. This Internet-Draft will expire on September 22, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 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
(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 publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
skipping to change at page 3, line 15 skipping to change at page 3, line 15
4. Security Considerations . . . . . . . . . . . . . . . . . . . 61 4. Security Considerations . . . . . . . . . . . . . . . . . . . 61
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 64 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 64
5.1. IANA-Maintained iana-bfd-types module . . . . . . . . . . 65 5.1. IANA-Maintained iana-bfd-types module . . . . . . . . . . 65
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 65
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 66 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.1. Normative References . . . . . . . . . . . . . . . . . . 66 7.1. Normative References . . . . . . . . . . . . . . . . . . 66
7.2. Informative References . . . . . . . . . . . . . . . . . 68 7.2. Informative References . . . . . . . . . . . . . . . . . 68
Appendix A. Echo function configuration example . . . . . . . . 69 Appendix A. Echo function configuration example . . . . . . . . 69
A.1. Example YANG module for BFD echo function configuration . 69 A.1. Example YANG module for BFD echo function configuration . 69
Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 71 Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 71
B.1. Changes between versions -11 and -12 . . . . . . . . . . 71 B.1. Changes between versions -12 and -13 . . . . . . . . . . 71
B.2. Changes between versions -10 and -11 . . . . . . . . . . 71 B.2. Changes between versions -11 and -12 . . . . . . . . . . 71
B.3. Changes between versions -09 and -10 . . . . . . . . . . 71 B.3. Changes between versions -10 and -11 . . . . . . . . . . 71
B.4. Changes between versions -08 and -09 . . . . . . . . . . 71 B.4. Changes between versions -09 and -10 . . . . . . . . . . 71
B.5. Changes between versions -07 and -08 . . . . . . . . . . 72 B.5. Changes between versions -08 and -09 . . . . . . . . . . 72
B.6. Changes between versions -06 and -07 . . . . . . . . . . 72 B.6. Changes between versions -07 and -08 . . . . . . . . . . 72
B.7. Changes between versions -05 and -06 . . . . . . . . . . 72 B.7. Changes between versions -06 and -07 . . . . . . . . . . 72
B.8. Changes between versions -04 and -05 . . . . . . . . . . 72 B.8. Changes between versions -05 and -06 . . . . . . . . . . 72
B.9. Changes between versions -03 and -04 . . . . . . . . . . 72 B.9. Changes between versions -04 and -05 . . . . . . . . . . 72
B.10. Changes between versions -02 and -03 . . . . . . . . . . 73 B.10. Changes between versions -03 and -04 . . . . . . . . . . 73
B.11. Changes between versions -01 and -02 . . . . . . . . . . 73 B.11. Changes between versions -02 and -03 . . . . . . . . . . 73
B.12. Changes between versions -00 and -01 . . . . . . . . . . 73 B.12. Changes between versions -01 and -02 . . . . . . . . . . 73
B.13. Changes between versions -00 and -01 . . . . . . . . . . 73
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 73
1. Introduction 1. Introduction
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 Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD and manage Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD
is a network protocol which is used for liveness detection of is a network protocol which is used for liveness detection of
arbitrary paths between systems. Some examples of different types of arbitrary paths between systems. Some examples of different types of
paths over which we have BFD: paths over which we have BFD:
skipping to change at page 4, line 15 skipping to change at page 4, line 15
BFD typically does not operate on its own. Various control BFD typically does not operate on its own. Various control
protocols, also known as BFD clients, use the services provided by protocols, also known as BFD clients, use the services provided by
BFD for their own operation as described in Generic Application of BFD for their own operation as described in Generic Application of
BFD [RFC5882]. The obvious candidates which use BFD are those which BFD [RFC5882]. The obvious candidates which use BFD are those which
do not have "hellos" to detect failures, e.g. static routes, and do not have "hellos" to detect failures, e.g. static routes, and
routing protocols whose "hellos" do not support sub-second failure routing protocols whose "hellos" do not support sub-second failure
detection, e.g. OSPF and IS-IS. detection, e.g. OSPF and IS-IS.
The YANG modules in this document conform to the Network Management The YANG modules in this document conform to the Network Management
Datastore Architecture (NMDA) Network Management Datastore Datastore Architecture (NMDA) Network Management Datastore
Architecture [I-D.ietf-netmod-revised-datastores]. This means that Architecture [RFC8342]. This means that the data models do not have
the data models do not have separate top-level or sibling containers separate top-level or sibling containers for configuration and
for configuration and operational state data. operational state data.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 [RFC2119] document are to be interpreted as described in BCP 14 [RFC2119]
[RFC8174] when, and only when, they appear in all capitals, as shown [RFC8174] when, and only when, they appear in all capitals, as shown
here. here.
1.2. Tree Diagrams 1.2. Tree Diagrams
This document uses the graphical representation of data models This document uses the graphical representation of data models
defined in [I-D.ietf-netmod-yang-tree-diagrams]. defined in [RFC8340].
2. Design of the Data Model 2. Design of the Data Model
Since BFD is used for liveliness detection of various forwarding Since BFD is used for liveliness detection of various forwarding
paths, there is no uniform key to identify a BFD session. So the BFD paths, there is no uniform key to identify a BFD session. So the BFD
data model is split in multiple YANG modules where each module data model is split in multiple YANG modules where each module
corresponds to one type of forwarding path. For example, BFD for IP corresponds to one type of forwarding path. For example, BFD for IP
single-hop is in one YANG module and BFD for MPLS-TE is in another single-hop is in one YANG module and BFD for MPLS-TE is in another
YANG module. The main difference between these modules is how a BFD YANG module. The main difference between these modules is how a BFD
session is uniquely identified, i.e the key for the list containing session is uniquely identified, i.e the key for the list containing
skipping to change at page 10, line 34 skipping to change at page 10, line 34
None. None.
2.5. BFD top level hierarchy 2.5. BFD top level hierarchy
At the "bfd" node under control-plane-protocol, there is no At the "bfd" node under control-plane-protocol, there is no
configuration data, only operational state data. The operational configuration data, only operational state data. The operational
state data consist of overall BFD session statistics, i.e. for BFD on state data consist of overall BFD session statistics, i.e. for BFD on
all types of forwarding paths. all types of forwarding paths.
module: ietf-bfd module: ietf-bfd
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw bfd +--rw bfd
+--ro summary +--ro summary
+--ro number-of-sessions? yang:gauge32 +--ro number-of-sessions? yang:gauge32
+--ro number-of-sessions-up? yang:gauge32 +--ro number-of-sessions-up? yang:gauge32
+--ro number-of-sessions-down? yang:gauge32 +--ro number-of-sessions-down? yang:gauge32
+--ro number-of-sessions-admin-down? yang:gauge32 +--ro number-of-sessions-admin-down? yang:gauge32
2.6. BFD IP single-hop hierarchy 2.6. BFD IP single-hop hierarchy
An "ip-sh" node is added under "bfd" node in control-plane-protocol. An "ip-sh" node is added under "bfd" node in control-plane-protocol.
The configuration and operational state data for each BFD IP single- The configuration and operational state data for each BFD IP single-
hop session is under this "ip-sh" node. hop session is under this "ip-sh" node.
module: ietf-bfd-ip-sh module: ietf-bfd-ip-sh
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
skipping to change at page 14, line 35 skipping to change at page 14, line 32
+--ro source-addr? inet:ip-address +--ro source-addr? inet:ip-address
+--ro session-index? uint32 +--ro session-index? uint32
+--ro path-type? identityref +--ro path-type? identityref
2.8. BFD over LAG hierarchy 2.8. BFD over LAG hierarchy
A "lag" node is added under the "bfd" node in control-plane-protocol. A "lag" node is added under the "bfd" node in control-plane-protocol.
The configuration and operational state data for each BFD LAG session The configuration and operational state data for each BFD LAG session
is under this "lag" node. is under this "lag" node.
module: ietf-bfd-lag module: ietf-bfd-lag
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--rw lag +--rw lag
+--rw micro-bfd-ipv4-session-statistics +--rw micro-bfd-ipv4-session-statistics
| +--ro summary | +--ro summary
| +--ro number-of-sessions? yang:gauge32 | +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32 | +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32 | +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32 | +--ro number-of-sessions-admin-down? yang:gauge32
+--rw micro-bfd-ipv6-session-statistics +--rw micro-bfd-ipv6-session-statistics
| +--ro summary | +--ro summary
| +--ro number-of-sessions? yang:gauge32 | +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32 | +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32 | +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32 | +--ro number-of-sessions-admin-down? yang:gauge32
+--rw sessions +--rw sessions
+--rw session* [lag-name] +--rw session* [lag-name]
+--rw lag-name if:interface-ref +--rw lag-name if:interface-ref
+--rw ipv4-dest-addr? inet:ipv4-address +--rw ipv4-dest-addr? inet:ipv4-address
+--rw ipv6-dest-addr? inet:ipv6-address +--rw ipv6-dest-addr? inet:ipv6-address
+--rw local-multiplier? multiplier +--rw local-multiplier? multiplier
+--rw (interval-config-type)? +--rw (interval-config-type)?
| +--:(tx-rx-intervals) | +--:(tx-rx-intervals)
| | +--rw desired-min-tx-interval? uint32 | | +--rw desired-min-tx-interval? uint32
| | +--rw required-min-rx-interval? uint32 | | +--rw required-min-rx-interval? uint32
| +--:(single-interval) {single-minimum-interval}? | +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32 | +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}? +--rw demand-enabled? boolean {demand-mode}?
+--rw admin-down? boolean +--rw admin-down? boolean
+--rw authentication! {authentication}? +--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean | +--rw meticulous? boolean
+--rw use-ipv4? boolean +--rw use-ipv4? boolean
+--rw use-ipv6? boolean +--rw use-ipv6? boolean
+--ro member-links* [member-link] +--ro member-links* [member-link]
+--ro member-link if:interface-ref +--ro member-link if:interface-ref
+--ro micro-bfd-ipv4 +--ro micro-bfd-ipv4
| +--ro path-type? identityref | +--ro path-type? identityref
| +--ro ip-encapsulation? boolean | +--ro ip-encapsulation? boolean
| +--ro local-discriminator? discriminator | +--ro local-discriminator? discriminator
| +--ro remote-discriminator? discriminator | +--ro remote-discriminator? discriminator
| +--ro remote-multiplier? multiplier | +--ro remote-multiplier? multiplier
| +--ro demand-capability? boolean | +--ro demand-capability? boolean
| | {demand-mode}? | | {demand-mode}?
| +--ro source-port? inet:port-number | +--ro source-port? inet:port-number
| +--ro dest-port? inet:port-number | +--ro dest-port? inet:port-number
| +--ro session-running | +--ro session-running
| | +--ro session-index? uint32 | | +--ro session-index? uint32
| | +--ro local-state? state | | +--ro local-state? state
| | +--ro remote-state? state | | +--ro remote-state? state
| | +--ro local-diagnostic? | | +--ro local-diagnostic?
| | | iana-bfd-types:diagnostic | | | iana-bfd-types:diagnostic
| | +--ro remote-diagnostic? | | +--ro remote-diagnostic?
| | | iana-bfd-types:diagnostic | | | iana-bfd-types:diagnostic
| | +--ro remote-authenticated? boolean | | +--ro remote-authenticated? boolean
| | +--ro remote-authentication-type? | | +--ro remote-authentication-type?
| | | iana-bfd-types:auth-type | | | iana-bfd-types:auth-type
| | | {authentication}? | | | {authentication}?
| | +--ro detection-mode? enumeration | | +--ro detection-mode? enumeration
| | +--ro negotiated-tx-interval? uint32 | | +--ro negotiated-tx-interval? uint32
| | +--ro negotiated-rx-interval? uint32 | | +--ro negotiated-rx-interval? uint32
| | +--ro detection-time? uint32 | | +--ro detection-time? uint32
| | +--ro echo-tx-interval-in-use? uint32 | | +--ro echo-tx-interval-in-use? uint32
| | {echo-mode}? | | {echo-mode}?
| +--ro session-statistics | +--ro session-statistics
| +--ro create-time? | +--ro create-time?
| | yang:date-and-time | | yang:date-and-time
| +--ro last-down-time? | +--ro last-down-time?
| | yang:date-and-time | | yang:date-and-time
| +--ro last-up-time? | +--ro last-up-time?
| | yang:date-and-time | | yang:date-and-time
| +--ro down-count? | +--ro down-count?
| | yang:counter32 | | yang:counter32
| +--ro admin-down-count? | +--ro admin-down-count?
| | yang:counter32 | | yang:counter32
| +--ro receive-packet-count? | +--ro receive-packet-count?
| | yang:counter64 | | yang:counter64
| +--ro send-packet-count? | +--ro send-packet-count?
| | yang:counter64 | | yang:counter64
| +--ro receive-invalid-packet-count? | +--ro receive-invalid-packet-count?
| | yang:counter64 | | yang:counter64
| +--ro send-failed-packet-count? | +--ro send-failed-packet-count?
| yang:counter64 | yang:counter64
+--ro micro-bfd-ipv6 +--ro micro-bfd-ipv6
+--ro path-type? identityref +--ro path-type? identityref
+--ro ip-encapsulation? boolean +--ro ip-encapsulation? boolean
+--ro local-discriminator? discriminator +--ro local-discriminator? discriminator
+--ro remote-discriminator? discriminator +--ro remote-discriminator? discriminator
+--ro remote-multiplier? multiplier +--ro remote-multiplier? multiplier
+--ro demand-capability? boolean +--ro demand-capability? boolean
| {demand-mode}? | {demand-mode}?
+--ro source-port? inet:port-number +--ro source-port? inet:port-number
+--ro dest-port? inet:port-number +--ro dest-port? inet:port-number
+--ro session-running +--ro session-running
| +--ro session-index? uint32 | +--ro session-index? uint32
| +--ro local-state? state | +--ro local-state? state
| +--ro remote-state? state | +--ro remote-state? state
| +--ro local-diagnostic? | +--ro local-diagnostic?
| | iana-bfd-types:diagnostic | | iana-bfd-types:diagnostic
| +--ro remote-diagnostic? | +--ro remote-diagnostic?
| | iana-bfd-types:diagnostic | | iana-bfd-types:diagnostic
| +--ro remote-authenticated? boolean | +--ro remote-authenticated? boolean
| +--ro remote-authentication-type? | +--ro remote-authentication-type?
| | iana-bfd-types:auth-type | | iana-bfd-types:auth-type
| | {authentication}? | | {authentication}?
| +--ro detection-mode? enumeration | +--ro detection-mode? enumeration
| +--ro negotiated-tx-interval? uint32 | +--ro negotiated-tx-interval? uint32
| +--ro negotiated-rx-interval? uint32 | +--ro negotiated-rx-interval? uint32
| +--ro detection-time? uint32 | +--ro detection-time? uint32
| +--ro echo-tx-interval-in-use? uint32 | +--ro echo-tx-interval-in-use? uint32
| {echo-mode}? | {echo-mode}?
+--ro session-statistics +--ro session-statistics
+--ro create-time? +--ro create-time?
| yang:date-and-time | yang:date-and-time
+--ro last-down-time? +--ro last-down-time?
| yang:date-and-time | yang:date-and-time
+--ro last-up-time? +--ro last-up-time?
| yang:date-and-time | yang:date-and-time
+--ro down-count? +--ro down-count?
| yang:counter32 | yang:counter32
+--ro admin-down-count? +--ro admin-down-count?
| yang:counter32 | yang:counter32
+--ro receive-packet-count? +--ro receive-packet-count?
| yang:counter64 | yang:counter64
+--ro send-packet-count? +--ro send-packet-count?
| yang:counter64 | yang:counter64
+--ro receive-invalid-packet-count? +--ro receive-invalid-packet-count?
| yang:counter64 | yang:counter64
+--ro send-failed-packet-count? +--ro send-failed-packet-count?
yang:counter64 yang:counter64
notifications: notifications:
+---n lag-notification +---n lag-notification
+--ro local-discr? discriminator +--ro local-discr? discriminator
+--ro remote-discr? discriminator +--ro remote-discr? discriminator
+--ro new-state? state +--ro new-state? state
+--ro state-change-reason? iana-bfd-types:diagnostic +--ro state-change-reason? iana-bfd-types:diagnostic
+--ro time-of-last-state-change? yang:date-and-time +--ro time-of-last-state-change? yang:date-and-time
+--ro dest-addr? inet:ip-address +--ro dest-addr? inet:ip-address
+--ro source-addr? inet:ip-address +--ro source-addr? inet:ip-address
+--ro session-index? uint32 +--ro session-index? uint32
+--ro path-type? identityref +--ro path-type? identityref
+--ro lag-name? if:interface-ref +--ro lag-name? if:interface-ref
+--ro member-link? if:interface-ref +--ro member-link? if:interface-ref
2.9. BFD over MPLS LSPs hierarchy 2.9. BFD over MPLS LSPs hierarchy
An "mpls" node is added under the "bfd" node in control-plane- An "mpls" node is added under the "bfd" node in control-plane-
protocol. The configuration is per MPLS FEC under this "mpls" node. protocol. The configuration is per MPLS FEC under this "mpls" node.
In the operational state model we support multiple BFD sessions per In the operational state model we support multiple BFD sessions per
MPLS FEC (ECMP), the local discriminator is used as key. The "mpls" MPLS FEC (ECMP), the local discriminator is used as key. The "mpls"
node can be used in a network device (top-level), or mounted in an node can be used in a network device (top-level), or mounted in an
LNE or in a network instance. LNE or in a network instance.
skipping to change at page 19, line 46 skipping to change at page 19, line 43
+--ro session-index? uint32 +--ro session-index? uint32
+--ro path-type? identityref +--ro path-type? identityref
+--ro mpls-dest-address? inet:ip-address +--ro mpls-dest-address? inet:ip-address
2.10. BFD over MPLS-TE hierarchy 2.10. BFD over MPLS-TE hierarchy
YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te] is YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te] is
augmented. BFD is configured per MPLS-TE tunnel, and BFD session augmented. BFD is configured per MPLS-TE tunnel, and BFD session
operational state data is provided per MPLS-TE LSP. operational state data is provided per MPLS-TE LSP.
module: ietf-bfd-mpls-te module: ietf-bfd-mpls-te
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--rw mpls-te +--rw mpls-te
+--rw egress +--rw egress
| +--rw enable? boolean | +--rw enable? boolean
| +--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier
| +--rw (interval-config-type)? | +--rw (interval-config-type)?
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals)
| | | +--rw desired-min-tx-interval? uint32 | | | +--rw desired-min-tx-interval? uint32
| | | +--rw required-min-rx-interval? uint32 | | | +--rw required-min-rx-interval? uint32
| | +--:(single-interval) {single-minimum-interval}? | | +--:(single-interval) {single-minimum-interval}?
| | +--rw min-interval? uint32 | | +--rw min-interval? uint32
| +--rw authentication! {authentication}? | +--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean | +--rw meticulous? boolean
+--ro summary +--ro summary
+--ro number-of-sessions? yang:gauge32 +--ro number-of-sessions? yang:gauge32
+--ro number-of-sessions-up? yang:gauge32 +--ro number-of-sessions-up? yang:gauge32
+--ro number-of-sessions-down? yang:gauge32 +--ro number-of-sessions-down? yang:gauge32
+--ro number-of-sessions-admin-down? yang:gauge32 +--ro number-of-sessions-admin-down? yang:gauge32
augment /te:te/te:tunnels/te:tunnel: augment /te:te/te:tunnels/te:tunnel:
+--rw local-multiplier? multiplier +--rw local-multiplier? multiplier
+--rw (interval-config-type)? +--rw (interval-config-type)?
| +--:(tx-rx-intervals) | +--:(tx-rx-intervals)
| | +--rw desired-min-tx-interval? uint32 | | +--rw desired-min-tx-interval? uint32
| | +--rw required-min-rx-interval? uint32 | | +--rw required-min-rx-interval? uint32
| +--:(single-interval) {single-minimum-interval}? | +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32 | +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}? +--rw demand-enabled? boolean {demand-mode}?
+--rw admin-down? boolean +--rw admin-down? boolean
+--rw authentication! {authentication}? +--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean | +--rw meticulous? boolean
+--rw encap? identityref +--rw encap? identityref
augment /te:te/te:lsps-state/te:lsp: augment /te:te/te:lsps-state/te:lsp:
+--ro path-type? identityref +--ro path-type? identityref
+--ro ip-encapsulation? boolean +--ro ip-encapsulation? boolean
+--ro local-discriminator? discriminator +--ro local-discriminator? discriminator
+--ro remote-discriminator? discriminator +--ro remote-discriminator? discriminator
+--ro remote-multiplier? multiplier +--ro remote-multiplier? multiplier
+--ro demand-capability? boolean {demand-mode}? +--ro demand-capability? boolean {demand-mode}?
+--ro source-port? inet:port-number +--ro source-port? inet:port-number
+--ro dest-port? inet:port-number +--ro dest-port? inet:port-number
+--ro session-running +--ro session-running
| +--ro session-index? uint32 | +--ro session-index? uint32
| +--ro local-state? state | +--ro local-state? state
| +--ro remote-state? state | +--ro remote-state? state
| +--ro local-diagnostic? iana-bfd-types:diagnostic | +--ro local-diagnostic? iana-bfd-types:diagnostic
| +--ro remote-diagnostic? iana-bfd-types:diagnostic | +--ro remote-diagnostic? iana-bfd-types:diagnostic
| +--ro remote-authenticated? boolean | +--ro remote-authenticated? boolean
| +--ro remote-authentication-type? iana-bfd-types:auth-type | +--ro remote-authentication-type? iana-bfd-types:auth-type
| | {authentication}? | | {authentication}?
| +--ro detection-mode? enumeration | +--ro detection-mode? enumeration
| +--ro negotiated-tx-interval? uint32 | +--ro negotiated-tx-interval? uint32
| +--ro negotiated-rx-interval? uint32 | +--ro negotiated-rx-interval? uint32
| +--ro detection-time? uint32 | +--ro detection-time? uint32
| +--ro echo-tx-interval-in-use? uint32 {echo-mode}? | +--ro echo-tx-interval-in-use? uint32 {echo-mode}?
+--ro session-statistics +--ro session-statistics
| +--ro create-time? yang:date-and-time | +--ro create-time? yang:date-and-time
| +--ro last-down-time? yang:date-and-time | +--ro last-down-time? yang:date-and-time
| +--ro last-up-time? yang:date-and-time | +--ro last-up-time? yang:date-and-time
| +--ro down-count? yang:counter32 | +--ro down-count? yang:counter32
| +--ro admin-down-count? yang:counter32 | +--ro admin-down-count? yang:counter32
| +--ro receive-packet-count? yang:counter64 | +--ro receive-packet-count? yang:counter64
| +--ro send-packet-count? yang:counter64 | +--ro send-packet-count? yang:counter64
| +--ro receive-invalid-packet-count? yang:counter64 | +--ro receive-invalid-packet-count? yang:counter64
| +--ro send-failed-packet-count? yang:counter64 | +--ro send-failed-packet-count? yang:counter64
+--ro mpls-dest-address? inet:ip-address +--ro mpls-dest-address? inet:ip-address
notifications: notifications:
+---n mpls-te-notification +---n mpls-te-notification
+--ro local-discr? discriminator +--ro local-discr? discriminator
+--ro remote-discr? discriminator +--ro remote-discr? discriminator
+--ro new-state? state +--ro new-state? state
+--ro state-change-reason? iana-bfd-types:diagnostic +--ro state-change-reason? iana-bfd-types:diagnostic
+--ro time-of-last-state-change? yang:date-and-time +--ro time-of-last-state-change? yang:date-and-time
+--ro dest-addr? inet:ip-address +--ro dest-addr? inet:ip-address
+--ro source-addr? inet:ip-address +--ro source-addr? inet:ip-address
+--ro session-index? uint32 +--ro session-index? uint32
+--ro path-type? identityref +--ro path-type? identityref
+--ro mpls-dest-address? inet:ip-address +--ro mpls-dest-address? inet:ip-address
+--ro tunnel-name? string +--ro tunnel-name? string
2.11. Interaction with other YANG modules 2.11. Interaction with other YANG modules
Generic YANG Data Model for Connectionless OAM protocols Generic YANG Data Model for Connectionless OAM protocols
[I-D.ietf-lime-yang-connectionless-oam] describes how the LIME [I-D.ietf-lime-yang-connectionless-oam] describes how the LIME
connectionless OAM model could be extended to support BFD. connectionless OAM model could be extended to support BFD.
Also, the operation of the BFD data model depends on configuration Also, the operation of the BFD data model depends on configuration
parameters that are defined in other YANG modules. parameters that are defined in other YANG modules.
skipping to change at page 22, line 8 skipping to change at page 22, line 8
The following boolean configuration is defined in A YANG Data Model The following boolean configuration is defined in A YANG Data Model
for Interface Management [RFC8343]: for Interface Management [RFC8343]:
/if:interfaces/if:interface/if:enabled /if:interfaces/if:interface/if:enabled
If this configuration is set to "false", no BFD packets can If this configuration is set to "false", no BFD packets can
be transmitted or received on that interface. be transmitted or received on that interface.
2.11.2. Module ietf-ip 2.11.2. Module ietf-ip
The following boolean configuration is defined in A YANG Data Model The following boolean configuration is defined in A YANG Data Model
for IP Management [I-D.ietf-netmod-rfc7277bis]: for IP Management [RFC8344]:
/if:interfaces/if:interface/ip:ipv4/ip:enabled /if:interfaces/if:interface/ip:ipv4/ip:enabled
If this configuration is set to "false", no BFD IPv4 packets If this configuration is set to "false", no BFD IPv4 packets
can be transmitted or received on that interface. can be transmitted or received on that interface.
/if:interfaces/if:interface/ip:ipv4/ip:forwarding /if:interfaces/if:interface/ip:ipv4/ip:forwarding
If this configuration is set to "false", no BFD IPv4 packets If this configuration is set to "false", no BFD IPv4 packets
can be transmitted or received on that interface. can be transmitted or received on that interface.
/if:interfaces/if:interface/ip:ipv6/ip:enabled /if:interfaces/if:interface/ip:ipv6/ip:enabled
skipping to change at page 22, line 47 skipping to change at page 22, line 47
The following configuration is defined in the "ietf-te" YANG module The following configuration is defined in the "ietf-te" YANG module
YANG Data Model for TE Topology [I-D.ietf-teas-yang-te]: YANG Data Model for TE Topology [I-D.ietf-teas-yang-te]:
/ietf-te:te/ietf-te:tunnels/ietf-te:tunnel/ietf-te:config/ietf- /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel/ietf-te:config/ietf-
te:admin-status te:admin-status
If this configuration is not set to "state-up", no BFD MPLS If this configuration is not set to "state-up", no BFD MPLS
packets can be transmitted or received on that tunnel. packets can be transmitted or received on that tunnel.
2.12. IANA BFD YANG Module 2.12. IANA BFD YANG Module
<CODE BEGINS> file "iana-bfd-types@2018-03-20.yang" <CODE BEGINS> file "iana-bfd-types@2018-03-21.yang"
module iana-bfd-types { module iana-bfd-types {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:iana-bfd-types"; namespace "urn:ietf:params:xml:ns:yang:iana-bfd-types";
prefix "iana-bfd-types"; prefix "iana-bfd-types";
organization "IANA"; organization "IANA";
skipping to change at page 23, line 45 skipping to change at page 23, line 45
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove // RFC Ed.: replace XXXX with actual RFC number and remove
// this note // this note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: IANA BFD YANG Data Types."; reference "RFC XXXX: IANA BFD YANG Data Types.";
} }
/* /*
* Type Definitions * Type Definitions
*/ */
typedef diagnostic { typedef diagnostic {
type enumeration { type enumeration {
enum none { enum none {
skipping to change at page 25, line 45 skipping to change at page 25, line 45
} }
} }
<CODE ENDS> <CODE ENDS>
2.13. BFD types YANG Module 2.13. BFD types YANG Module
This YANG module imports typedefs from [RFC6991], [RFC8177] and the This YANG module imports typedefs from [RFC6991], [RFC8177] and the
"control-plane-protocol" identity from [RFC8349]. "control-plane-protocol" identity from [RFC8349].
<CODE BEGINS> file "ietf-bfd-types@2018-03-20.yang" <CODE BEGINS> file "ietf-bfd-types@2018-03-21.yang"
module ietf-bfd-types { module ietf-bfd-types {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-types"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-types";
prefix "bfd-types"; prefix "bfd-types";
import iana-bfd-types { import iana-bfd-types {
prefix "iana-bfd-types"; prefix "iana-bfd-types";
skipping to change at page 27, line 17 skipping to change at page 27, line 17
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: YANG Data Model for BFD"; reference "RFC XXXX: YANG Data Model for BFD";
} }
/* /*
* Feature definitions * Feature definitions
*/ */
feature single-minimum-interval { feature single-minimum-interval {
description description
"This feature indicates that the server supports configuration "This feature indicates that the server supports configuration
skipping to change at page 38, line 34 skipping to change at page 38, line 34
} }
} }
<CODE ENDS> <CODE ENDS>
2.14. BFD top-level YANG Module 2.14. BFD top-level YANG Module
This YANG module imports and augments "/routing/control-plane- This YANG module imports and augments "/routing/control-plane-
protocols/control-plane-protocol" from [RFC8349]. protocols/control-plane-protocol" from [RFC8349].
<CODE BEGINS> file "ietf-bfd@2018-03-20.yang" <CODE BEGINS> file "ietf-bfd@2018-03-21.yang"
module ietf-bfd { module ietf-bfd {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd";
prefix "bfd"; prefix "bfd";
import ietf-bfd-types { import ietf-bfd-types {
skipping to change at page 39, line 42 skipping to change at page 39, line 42
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: YANG Data Model for BFD"; reference "RFC XXXX: YANG Data Model for BFD";
} }
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-or-self(rt:type, 'bfd-types:bfdv1')" { when "derived-from-or-self(rt:type, 'bfd-types:bfdv1')" {
description description
"This augmentation is only valid for a control-plane protocol "This augmentation is only valid for a control-plane protocol
instance of BFD (type 'bfdv1')."; instance of BFD (type 'bfdv1').";
skipping to change at page 40, line 24 skipping to change at page 40, line 24
} }
<CODE ENDS> <CODE ENDS>
2.15. BFD IP single-hop YANG Module 2.15. BFD IP single-hop YANG Module
This YANG module imports "interface-ref" from [RFC8343], typedefs This YANG module imports "interface-ref" from [RFC8343], typedefs
from [RFC6991] and augments "/routing/control-plane-protocols/ from [RFC6991] and augments "/routing/control-plane-protocols/
control-plane-protocol" from [RFC8349]. control-plane-protocol" from [RFC8349].
<CODE BEGINS> file "ietf-bfd-ip-sh@2018-03-20.yang" <CODE BEGINS> file "ietf-bfd-ip-sh@2018-03-21.yang"
module ietf-bfd-ip-sh { module ietf-bfd-ip-sh {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh";
prefix "bfd-ip-sh"; prefix "bfd-ip-sh";
import ietf-bfd-types { import ietf-bfd-types {
skipping to change at page 41, line 43 skipping to change at page 41, line 43
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD IP single-hop"; reference "RFC XXXX: A YANG data model for BFD IP single-hop";
} }
/* /*
* Augments * Augments
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" { + "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for IP single-hop"; description "BFD augmentation for IP single-hop";
skipping to change at page 43, line 34 skipping to change at page 43, line 34
} }
<CODE ENDS> <CODE ENDS>
2.16. BFD IP multihop YANG Module 2.16. BFD IP multihop YANG Module
This YANG module imports typedefs from [RFC6991] and augments This YANG module imports typedefs from [RFC6991] and augments
"/routing/control-plane-protocols/control-plane-protocol" from "/routing/control-plane-protocols/control-plane-protocol" from
[RFC8349]. [RFC8349].
<CODE BEGINS> file "ietf-bfd-ip-mh@2018-03-20.yang" <CODE BEGINS> file "ietf-bfd-ip-mh@2018-03-21.yang"
module ietf-bfd-ip-mh { module ietf-bfd-ip-mh {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh";
prefix "bfd-ip-mh"; prefix "bfd-ip-mh";
import ietf-bfd-types { import ietf-bfd-types {
skipping to change at page 44, line 48 skipping to change at page 44, line 48
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD IP multihop."; reference "RFC XXXX: A YANG data model for BFD IP multihop.";
} }
/* /*
* Augments * Augments
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" { + "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for IP multihop."; description "BFD augmentation for IP multihop.";
container ip-mh { container ip-mh {
skipping to change at page 46, line 36 skipping to change at page 46, line 36
} }
<CODE ENDS> <CODE ENDS>
2.17. BFD over LAG YANG Module 2.17. BFD over LAG YANG Module
This YANG module imports "interface-ref" from [RFC8343], typedefs This YANG module imports "interface-ref" from [RFC8343], typedefs
from [RFC6991] and augments "/routing/control-plane-protocols/ from [RFC6991] and augments "/routing/control-plane-protocols/
control-plane-protocol" from [RFC8349]. control-plane-protocol" from [RFC8349].
<CODE BEGINS> file "ietf-bfd-lag@2018-03-20.yang" <CODE BEGINS> file "ietf-bfd-lag@2018-03-21.yang"
module ietf-bfd-lag { module ietf-bfd-lag {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag";
prefix "bfd-lag"; prefix "bfd-lag";
import ietf-bfd-types { import ietf-bfd-types {
skipping to change at page 48, line 10 skipping to change at page 48, line 10
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD over LAG"; reference "RFC XXXX: A YANG data model for BFD over LAG";
} }
/* /*
* Augments * Augments
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" { + "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for LAG"; description "BFD augmentation for LAG";
skipping to change at page 50, line 31 skipping to change at page 50, line 31
} }
<CODE ENDS> <CODE ENDS>
2.18. BFD over MPLS YANG Module 2.18. BFD over MPLS YANG Module
This YANG module imports typedefs from [RFC6991] and augments This YANG module imports typedefs from [RFC6991] and augments
"/routing/control-plane-protocols/control-plane-protocol" from "/routing/control-plane-protocols/control-plane-protocol" from
[RFC8349]. [RFC8349].
<CODE BEGINS> file "ietf-bfd-mpls@2018-03-20.yang" <CODE BEGINS> file "ietf-bfd-mpls@2018-03-21.yang"
module ietf-bfd-mpls { module ietf-bfd-mpls {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls";
prefix "bfd-mpls"; prefix "bfd-mpls";
import ietf-bfd-types { import ietf-bfd-types {
skipping to change at page 51, line 46 skipping to change at page 51, line 46
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs";
} }
/* /*
* Identity definitions * Identity definitions
*/ */
identity encap-gach { identity encap-gach {
base bfd-types:encap-type; base bfd-types:encap-type;
description description
skipping to change at page 54, line 24 skipping to change at page 54, line 24
} }
} }
<CODE ENDS> <CODE ENDS>
2.19. BFD over MPLS-TE YANG Module 2.19. BFD over MPLS-TE YANG Module
This YANG module imports and augments "/te/tunnels/tunnel" from This YANG module imports and augments "/te/tunnels/tunnel" from
[I-D.ietf-teas-yang-te]. [I-D.ietf-teas-yang-te].
<CODE BEGINS> file "ietf-bfd-mpls-te@2018-03-20.yang" <CODE BEGINS> file "ietf-bfd-mpls-te@2018-03-21.yang"
module ietf-bfd-mpls-te { module ietf-bfd-mpls-te {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te";
prefix "bfd-mpls-te"; prefix "bfd-mpls-te";
import ietf-bfd-types { import ietf-bfd-types {
skipping to change at page 55, line 41 skipping to change at page 55, line 41
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; reference "RFC XXXX: A YANG data model for BFD over MPLS-TE";
} }
/* /*
* Augments * Augments
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" { + "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for MPLS-TE."; description "BFD augmentation for MPLS-TE.";
skipping to change at page 66, line 14 skipping to change at page 66, line 14
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-mpls-base-yang] [I-D.ietf-mpls-base-yang]
Saad, T., Raza, K., Gandhi, R., Liu, X., and V. Beeram, "A Saad, T., Raza, K., Gandhi, R., Liu, X., and V. Beeram, "A
YANG Data Model for MPLS Base", draft-ietf-mpls-base- YANG Data Model for MPLS Base", draft-ietf-mpls-base-
yang-06 (work in progress), February 2018. yang-06 (work in progress), February 2018.
[I-D.ietf-netmod-rfc7277bis]
Bjorklund, M., "A YANG Data Model for IP Management",
draft-ietf-netmod-rfc7277bis-03 (work in progress),
January 2018.
[I-D.ietf-netmod-yang-tree-diagrams]
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft-
ietf-netmod-yang-tree-diagrams-06 (work in progress),
February 2018.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and
I. Bryskin, "A YANG Data Model for Traffic Engineering I. Bryskin, "A YANG Data Model for Traffic Engineering
Tunnels and Interfaces", draft-ietf-teas-yang-te-14 (work Tunnels and Interfaces", draft-ietf-teas-yang-te-14 (work
in progress), March 2018. in progress), March 2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, <https://www.rfc- DOI 10.17487/RFC2119, March 1997,
editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, <https://www.rfc- DOI 10.17487/RFC3688, January 2004,
editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246,
DOI 10.17487/RFC5246, August 2008, <https://www.rfc- DOI 10.17487/RFC5246, August 2008,
editor.org/info/rfc5246>. <https://www.rfc-editor.org/info/rfc5246>.
[RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed.,
"MPLS Generic Associated Channel", RFC 5586, "MPLS Generic Associated Channel", RFC 5586,
DOI 10.17487/RFC5586, June 2009, <https://www.rfc- DOI 10.17487/RFC5586, June 2009,
editor.org/info/rfc5586>. <https://www.rfc-editor.org/info/rfc5586>.
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
<https://www.rfc-editor.org/info/rfc5880>. <https://www.rfc-editor.org/info/rfc5880>.
[RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881,
DOI 10.17487/RFC5881, June 2010, <https://www.rfc- DOI 10.17487/RFC5881, June 2010,
editor.org/info/rfc5881>. <https://www.rfc-editor.org/info/rfc5881>.
[RFC5882] Katz, D. and D. Ward, "Generic Application of [RFC5882] Katz, D. and D. Ward, "Generic Application of
Bidirectional Forwarding Detection (BFD)", RFC 5882, Bidirectional Forwarding Detection (BFD)", RFC 5882,
DOI 10.17487/RFC5882, June 2010, <https://www.rfc- DOI 10.17487/RFC5882, June 2010,
editor.org/info/rfc5882>. <https://www.rfc-editor.org/info/rfc5882>.
[RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883,
June 2010, <https://www.rfc-editor.org/info/rfc5883>. June 2010, <https://www.rfc-editor.org/info/rfc5883>.
[RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow,
"Bidirectional Forwarding Detection (BFD) for MPLS Label "Bidirectional Forwarding Detection (BFD) for MPLS Label
Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884,
June 2010, <https://www.rfc-editor.org/info/rfc5884>. June 2010, <https://www.rfc-editor.org/info/rfc5884>.
[RFC5885] Nadeau, T., Ed. and C. Pignataro, Ed., "Bidirectional [RFC5885] Nadeau, T., Ed. and C. Pignataro, Ed., "Bidirectional
Forwarding Detection (BFD) for the Pseudowire Virtual Forwarding Detection (BFD) for the Pseudowire Virtual
Circuit Connectivity Verification (VCCV)", RFC 5885, Circuit Connectivity Verification (VCCV)", RFC 5885,
DOI 10.17487/RFC5885, June 2010, <https://www.rfc- DOI 10.17487/RFC5885, June 2010,
editor.org/info/rfc5885>. <https://www.rfc-editor.org/info/rfc5885>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, Protocol (NETCONF) Access Control Model", RFC 6536,
DOI 10.17487/RFC6536, March 2012, <https://www.rfc- DOI 10.17487/RFC6536, March 2012,
editor.org/info/rfc6536>. <https://www.rfc-editor.org/info/rfc6536>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed.,
Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional
Forwarding Detection (BFD) on Link Aggregation Group (LAG) Forwarding Detection (BFD) on Link Aggregation Group (LAG)
Interfaces", RFC 7130, DOI 10.17487/RFC7130, February Interfaces", RFC 7130, DOI 10.17487/RFC7130, February
2014, <https://www.rfc-editor.org/info/rfc7130>. 2014, <https://www.rfc-editor.org/info/rfc7130>.
skipping to change at page 68, line 15 skipping to change at page 68, line 7
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
Zhang, "YANG Data Model for Key Chains", RFC 8177, Zhang, "YANG Data Model for Key Chains", RFC 8177,
DOI 10.17487/RFC8177, June 2017, <https://www.rfc- DOI 10.17487/RFC8177, June 2017,
editor.org/info/rfc8177>. <https://www.rfc-editor.org/info/rfc8177>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>.
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
<https://www.rfc-editor.org/info/rfc8343>. <https://www.rfc-editor.org/info/rfc8343>.
[RFC8344] Bjorklund, M., "A YANG Data Model for IP Management",
RFC 8344, DOI 10.17487/RFC8344, March 2018,
<https://www.rfc-editor.org/info/rfc8344>.
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
Routing Management (NMDA Version)", RFC 8349, Routing Management (NMDA Version)", RFC 8349,
DOI 10.17487/RFC8349, March 2018, <https://www.rfc- DOI 10.17487/RFC8349, March 2018,
editor.org/info/rfc8349>. <https://www.rfc-editor.org/info/rfc8349>.
7.2. Informative References 7.2. Informative References
[I-D.ietf-lime-yang-connectionless-oam] [I-D.ietf-lime-yang-connectionless-oam]
Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan,
"Generic YANG Data Model for the Management of Operations, "Generic YANG Data Model for the Management of Operations,
Administration, and Maintenance (OAM) Protocols that use Administration, and Maintenance (OAM) Protocols that use
Connectionless Communications", draft-ietf-lime-yang- Connectionless Communications", draft-ietf-lime-yang-
connectionless-oam-18 (work in progress), November 2017. connectionless-oam-18 (work in progress), November 2017.
[I-D.ietf-netmod-revised-datastores]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore
Architecture", draft-ietf-netmod-revised-datastores-10
(work in progress), January 2018.
[I-D.ietf-rtgwg-lne-model] [I-D.ietf-rtgwg-lne-model]
Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X.
Liu, "YANG Model for Logical Network Elements", draft- Liu, "YANG Model for Logical Network Elements", draft-
ietf-rtgwg-lne-model-09 (work in progress), March 2018. ietf-rtgwg-lne-model-09 (work in progress), March 2018.
[I-D.ietf-rtgwg-ni-model] [I-D.ietf-rtgwg-ni-model]
Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X.
Liu, "YANG Model for Network Instances", draft-ietf-rtgwg- Liu, "YANG Model for Network Instances", draft-ietf-rtgwg-
ni-model-11 (work in progress), March 2018. ni-model-11 (work in progress), March 2018.
[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,
<https://www.rfc-editor.org/info/rfc8342>.
Appendix A. Echo function configuration example Appendix A. Echo function configuration example
As mentioned in Section 2.1.2, the mechanism to start and stop the As mentioned in Section 2.1.2, the mechanism to start and stop the
echo function, as defined in [RFC5880] and [RFC5881], is echo function, as defined in [RFC5880] and [RFC5881], is
implementation specific. In this section we provide an example of implementation specific. In this section we provide an example of
how the echo function can be implemented via configuration. how the echo function can be implemented via configuration.
module: example-bfd-echo module: example-bfd-echo
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd /rt:control-plane-protocol/bfd:bfd
/bfd-ip-sh:ip-sh/bfd-ip-sh:sessions: /bfd-ip-sh:ip-sh/bfd-ip-sh:sessions:
+--rw echo {bfd-types:echo-mode}? +--rw echo {bfd-types:echo-mode}?
+--rw desired-min-echo-tx-interval? uint32 +--rw desired-min-echo-tx-interval? uint32
+--rw required-min-echo-rx-interval? uint32 +--rw required-min-echo-rx-interval? uint32
A.1. Example YANG module for BFD echo function configuration A.1. Example YANG module for BFD echo function configuration
module example-bfd-echo { module example-bfd-echo {
namespace "tag:example.com,2018:example-bfd-echo"; namespace "tag:example.com,2018:example-bfd-echo";
prefix "example-bfd-echo"; prefix "example-bfd-echo";
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
skipping to change at page 70, line 22 skipping to change at page 70, line 22
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2018-03-20 { revision 2018-03-21 {
description "Initial revision."; description "Initial revision.";
reference reference
"RFC XXXX: A YANG data model example augmentation for BFD echo "RFC XXXX: A YANG data model example augmentation for BFD echo
function"; function";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
/* /*
skipping to change at page 71, line 28 skipping to change at page 71, line 28
uses echo-cfg-parms; uses echo-cfg-parms;
} }
} }
} }
Appendix B. Change log Appendix B. Change log
RFC Editor: Remove this section upon publication as an RFC. RFC Editor: Remove this section upon publication as an RFC.
B.1. Changes between versions -11 and -12 B.1. Changes between versions -12 and -13
o Updated references for drafts which became RFCs recently.
B.2. Changes between versions -11 and -12
o Addressed comments from YANG Doctor review of rev11. o Addressed comments from YANG Doctor review of rev11.
B.2. Changes between versions -10 and -11 B.3. Changes between versions -10 and -11
o Added 2 examples. o Added 2 examples.
o Added a container around some lists. o Added a container around some lists.
o Fixed some indentation nits. o Fixed some indentation nits.
B.3. Changes between versions -09 and -10 B.4. Changes between versions -09 and -10
o Addressed comments from YANG Doctor review. o Addressed comments from YANG Doctor review.
o Addressed comments from WGLC. o Addressed comments from WGLC.
B.4. Changes between versions -08 and -09 B.5. Changes between versions -08 and -09
o Mostly cosmetic changes to abide by draft-ietf-netmod-rfc6087bis. o Mostly cosmetic changes to abide by draft-ietf-netmod-rfc6087bis.
o Specified yang-version 1.1. o Specified yang-version 1.1.
o Added data model examples. o Added data model examples.
o Some minor changes. o Some minor changes.
B.5. Changes between versions -07 and -08 B.6. Changes between versions -07 and -08
o Timer intervals in client-cfg-parms are not mandatory anymore. o Timer intervals in client-cfg-parms are not mandatory anymore.
o Added list of interfaces under "ip-sh" node for authentication o Added list of interfaces under "ip-sh" node for authentication
parameters. parameters.
o Renamed replay-protection to meticulous. o Renamed replay-protection to meticulous.
B.6. Changes between versions -06 and -07 B.7. Changes between versions -06 and -07
o New ietf-bfd-types module. o New ietf-bfd-types module.
o Grouping for BFD clients to have BFD multiplier and interval o Grouping for BFD clients to have BFD multiplier and interval
values. values.
o Change in ietf-bfd-mpls-te since MPLS-TE model changed. o Change in ietf-bfd-mpls-te since MPLS-TE model changed.
o Removed bfd- prefix from many names. o Removed bfd- prefix from many names.
B.7. Changes between versions -05 and -06 B.8. Changes between versions -05 and -06
o Adhere to NMDA-guidelines. o Adhere to NMDA-guidelines.
o Echo function config moved to appendix as example. o Echo function config moved to appendix as example.
o Added IANA YANG modules. o Added IANA YANG modules.
o Addressed various comments. o Addressed various comments.
B.8. Changes between versions -04 and -05 B.9. Changes between versions -04 and -05
o "bfd" node in augment of control-plane-protocol. o "bfd" node in augment of control-plane-protocol.
o Removed augment of network-instance. Replaced by schema-mount. o Removed augment of network-instance. Replaced by schema-mount.
o Added information on interaction with other YANG modules. o Added information on interaction with other YANG modules.
B.9. Changes between versions -03 and -04 B.10. Changes between versions -03 and -04
o Updated author information. o Updated author information.
o Fixed YANG compile error in ietf-bfd-lag.yang which was due to o Fixed YANG compile error in ietf-bfd-lag.yang which was due to
incorrect when statement. incorrect when statement.
B.10. Changes between versions -02 and -03 B.11. Changes between versions -02 and -03
o Fixed YANG compilation warning due to incorrect revision date in o Fixed YANG compilation warning due to incorrect revision date in
ietf-bfd-ip-sh module. ietf-bfd-ip-sh module.
B.11. Changes between versions -01 and -02 B.12. Changes between versions -01 and -02
o Replace routing-instance with network-instance from YANG Network o Replace routing-instance with network-instance from YANG Network
Instances [I-D.ietf-rtgwg-ni-model] Instances [I-D.ietf-rtgwg-ni-model]
B.12. Changes between versions -00 and -01 B.13. Changes between versions -00 and -01
o Remove BFD configuration parameters from BFD clients, all BFD o Remove BFD configuration parameters from BFD clients, all BFD
configuration parameters in BFD configuration parameters in BFD
o YANG module split in multiple YANG modules (one per type of o YANG module split in multiple YANG modules (one per type of
forwarding path) forwarding path)
o For BFD over MPLS-TE we augment MPLS-TE model o For BFD over MPLS-TE we augment MPLS-TE model
o For BFD authentication we now use YANG Data Model for Key Chains o For BFD authentication we now use YANG Data Model for Key Chains
 End of changes. 59 change blocks. 
330 lines changed or deleted 332 lines changed or added

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