draft-ietf-bfd-yang-07.txt   draft-ietf-bfd-yang-08.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: May 3, 2018 Huawei Technologies Expires: July 15, 2018 Huawei Technologies
M. Jethanandani, Ed. M. Jethanandani, Ed.
Cisco Systems Cisco Systems
S. Pallagatti S. Pallagatti
G. Mirsky G. Mirsky
ZTE Corporation ZTE Corporation
October 30, 2017 January 11, 2018
YANG Data Model for Bidirectional Forwarding Detection (BFD) YANG Data Model for Bidirectional Forwarding Detection (BFD)
draft-ietf-bfd-yang-07.txt draft-ietf-bfd-yang-08.txt
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).
Requirements Language 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
skipping to change at page 1, line 44 skipping to change at page 1, line 44
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 http://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 May 3, 2018. This Internet-Draft will expire on July 15, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 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 (http://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
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4
2.1. Design of Configuration Model . . . . . . . . . . . . . . 5 2.1. Design of Configuration Model . . . . . . . . . . . . . . 5
2.1.1. Common BFD configuration parameters . . . . . . . . . 5 2.1.1. Common BFD configuration parameters . . . . . . . . . 5
2.1.2. Single-hop IP . . . . . . . . . . . . . . . . . . . . 6 2.1.2. Single-hop IP . . . . . . . . . . . . . . . . . . . . 6
2.1.3. Multi-hop IP . . . . . . . . . . . . . . . . . . . . 6 2.1.3. Multi-hop IP . . . . . . . . . . . . . . . . . . . . 7
2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 7 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 7
2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 8 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 8
2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 8 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 8
2.2. Design of Operational Model . . . . . . . . . . . . . . . 8 2.2. Design of Operational Model . . . . . . . . . . . . . . . 8
2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 9 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 9
2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 9 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 9
2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 9 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 9
2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 9 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 10
2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11 2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11
2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13
2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 16 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 16
2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 18 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 18
2.11. Interaction with other YANG modules . . . . . . . . . . . 20 2.11. Interaction with other YANG modules . . . . . . . . . . . 20
2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 20 2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 20
2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 20 2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 20
2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 20 2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 21
2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 21 2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 21
2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 21 2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 21
2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 23 2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 24
2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 35 2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 35
2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 37 2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 36
2.16. BFD IP multi-hop YANG Module . . . . . . . . . . . . . . 39 2.16. BFD IP multi-hop YANG Module . . . . . . . . . . . . . . 39
2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 42 2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 42
2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 45 2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 45
2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 48 2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 48
2.20. Security Considerations . . . . . . . . . . . . . . . . . 51 2.20. Security Considerations . . . . . . . . . . . . . . . . . 51
2.21. IANA Considerations . . . . . . . . . . . . . . . . . . . 51 2.21. IANA Considerations . . . . . . . . . . . . . . . . . . . 51
2.21.1. IANA-Maintained iana-bfd-types module . . . . . . . 53 2.21.1. IANA-Maintained iana-bfd-types module . . . . . . . 53
2.22. Acknowledgements . . . . . . . . . . . . . . . . . . . . 53 2.22. Acknowledgements . . . . . . . . . . . . . . . . . . . . 53
3. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1. Normative References . . . . . . . . . . . . . . . . . . 53 3.1. Normative References . . . . . . . . . . . . . . . . . . 53
3.2. Informative References . . . . . . . . . . . . . . . . . 54 3.2. Informative References . . . . . . . . . . . . . . . . . 54
Appendix A. Echo function configuration example . . . . . . . . 55 Appendix A. Echo function configuration example . . . . . . . . 55
A.1. Example YANG module for BFD echo function . . . . . . . . 56 A.1. Example YANG module for BFD echo function . . . . . . . . 56
Appendix B. BFD client configuration example . . . . . . . . . . 58 Appendix B. BFD client configuration example . . . . . . . . . . 58
B.1. Example YANG module for BFD client . . . . . . . . . . . 58 B.1. Example YANG module for BFD client . . . . . . . . . . . 58
Appendix C. Change log . . . . . . . . . . . . . . . . . . . . . 60 Appendix C. Change log . . . . . . . . . . . . . . . . . . . . . 60
C.1. Changes between versions -06 and -07 . . . . . . . . . . 60 C.1. Changes between versions -07 and -08 . . . . . . . . . . 60
C.2. Changes between versions -05 and -06 . . . . . . . . . . 61 C.2. Changes between versions -06 and -07 . . . . . . . . . . 61
C.3. Changes between versions -04 and -05 . . . . . . . . . . 61 C.3. Changes between versions -05 and -06 . . . . . . . . . . 61
C.4. Changes between versions -03 and -04 . . . . . . . . . . 61 C.4. Changes between versions -04 and -05 . . . . . . . . . . 61
C.5. Changes between versions -02 and -03 . . . . . . . . . . 61 C.5. Changes between versions -03 and -04 . . . . . . . . . . 61
C.6. Changes between versions -01 and -02 . . . . . . . . . . 61 C.6. Changes between versions -02 and -03 . . . . . . . . . . 61
C.7. Changes between versions -00 and -01 . . . . . . . . . . 61 C.7. Changes between versions -01 and -02 . . . . . . . . . . 61
C.8. Changes between versions -00 and -01 . . . . . . . . . . 62
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62
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 5, line 33 skipping to change at page 5, line 33
requirements of the BFD client. Ideally all configuration should be requirements of the BFD client. Ideally all configuration should be
centralized under BFD. However, this is a problem for clients of BFD centralized under BFD. However, this is a problem for clients of BFD
which auto-discover their peers. For example, IGPs do not have the which auto-discover their peers. For example, IGPs do not have the
peer address configured, instead the IGP is enabled on an interface peer address configured, instead the IGP is enabled on an interface
and the IGP peers are auto-discovered. So for an operator to and the IGP peers are auto-discovered. So for an operator to
configure BFD to an IGP peer, the operator would first have to configure BFD to an IGP peer, the operator would first have to
determine the peer addresses. And when a new peer is discovered, BFD determine the peer addresses. And when a new peer is discovered, BFD
configuration would need to be added. To avoid this issue, we define configuration would need to be added. To avoid this issue, we define
grouping client-cfg-parms in Section 2.13 for BFD clients to grouping client-cfg-parms in Section 2.13 for BFD clients to
configure BFD: this allows BFD clients such as the IGPs to have configure BFD: this allows BFD clients such as the IGPs to have
configuration (multipler and intervals) for the BFD sessions they configuration (multiplier and intervals) for the BFD sessions they
need. The mechanism how the BFD sessions are created by the BFD need. The mechanism how the BFD sessions are created by the BFD
clients is outside the scope of this document. clients is outside the scope of this document. For BFD clients which
create BFD sessions via their own configuration, authentication
parameters (if required) are still specified in BFD.
2.1.1. Common BFD configuration parameters 2.1.1. Common BFD configuration parameters
The basic BFD configuration parameters are: The basic BFD configuration parameters are:
local-multiplier local-multiplier
This is the detection time multiplier as defined in BFD This is the detection time multiplier as defined in BFD
[RFC5880]. [RFC5880].
desired-min-tx-interval desired-min-tx-interval
skipping to change at page 6, line 13 skipping to change at page 6, line 15
[RFC5880]. [RFC5880].
Although BFD [RFC5880] allows for different values for transmit and Although BFD [RFC5880] allows for different values for transmit and
receive intervals, some implementations allow users to specify just receive intervals, some implementations allow users to specify just
one interval which is used for both transmit and receive intervals or one interval which is used for both transmit and receive intervals or
separate values for transmit and receive intervals. The BFD YANG separate values for transmit and receive intervals. The BFD YANG
model supports this: there is a choice between "min-interval", used model supports this: there is a choice between "min-interval", used
for both transmit and receive intervals, and "desired-min-tx- for both transmit and receive intervals, and "desired-min-tx-
interval" and "required-min-rx-interval". This is supported via a interval" and "required-min-rx-interval". This is supported via a
grouping which is used by the YANG modules for the various forwarding grouping which is used by the YANG modules for the various forwarding
paths. For BFD authentication we have: paths.
For BFD authentication we have:
key-chain key-chain
This is a reference to key-chain defined in YANG Data Model This is a reference to key-chain defined in YANG Data Model
for Key Chains [RFC8177]. The keys, cryptographic algotihms, for Key Chains [RFC8177]. The keys, cryptographic
key lifetime etc are all defined in the key-chain model. algorithms, key lifetime etc are all defined in the key-chain
model.
replay-protection meticulous
This specifies meticulous v/s non-meticulous mode as per BFD This enables meticulous mode as per BFD [RFC5880].
[RFC5880].
2.1.2. Single-hop IP 2.1.2. Single-hop IP
For single-hop IP, there is an augment of the "bfd" data node in For single-hop IP, there is an augment of the "bfd" data node in
Section 2. The "ip-sh" node contains a list of IP single-hop Section 2. The "ip-sh" node contains a list of IP single-hop
sessions where each session is uniquely identified by the interface sessions where each session is uniquely identified by the interface
and destination address pair. For the configuration parameters we and destination address pair. For the configuration parameters we
use what is defined in Section 2.1.1 use what is defined in Section 2.1.1. The "ip-sh" node also contains
a list of interfaces, this is used to specify authentication
parameters for BFD sessions which are created by BFD clients, see
Section 2.1.
[RFC5880] and [RFC5881] do not specify whether echo function is [RFC5880] and [RFC5881] do not specify whether echo function is
continuous or on demand. Therefore the mechanism used to start and continuous or on demand. Therefore the mechanism used to start and
stop echo function is implementation specific and should be done by stop echo function is implementation specific and should be done by
augmentation: augmentation:
1) Configuration. This is suitable for continuous echo function. 1) Configuration. This is suitable for continuous echo function.
An example is provided in Appendix A. An example is provided in Appendix A.
2) RPC. This is suitable for on-demand echo function. 2) RPC. This is suitable for on-demand echo function.
skipping to change at page 9, line 5 skipping to change at page 9, line 12
second category includes a BFD session running information, e.g. the second category includes a BFD session running information, e.g. the
remote BFD state and the diagnostic code received. Another example remote BFD state and the diagnostic code received. Another example
is the actual transmit interval between the control packets, which is the actual transmit interval between the control packets, which
may be different from the desired minimum transmit interval may be different from the desired minimum transmit interval
configured, is shown in this category. Similar examples are actual configured, is shown in this category. Similar examples are actual
received interval between the control packets and the actual transmit received interval between the control packets and the actual transmit
interval between the echo packets. The third category contains the interval between the echo packets. The third category contains the
detailed statistics of the session, e.g. when the session detailed statistics of the session, e.g. when the session
transitioned up/down and how long it has been in that state. transitioned up/down and how long it has been in that state.
For some session types, there may be more than 1 session on the For some path types, there may be more than 1 session on the virtual
virtual path to the destination. For example, with IP multi-hop and path to the destination. For example, with IP multi-hop and MPLS
MPLS LSPs, there could be multiple BFD sessions from the source to LSPs, there could be multiple BFD sessions from the source to the
the same destination to test the various paths (ECMP) to the same destination to test the various paths (ECMP) to the destination.
destination. This is represented by having multiple "sessions" under This is represented by having multiple "sessions" under each
each "session-group". "session-group".
2.3. Notifications 2.3. Notifications
This YANG model defines notifications to inform clients of BFD of This YANG model defines notifications to inform clients of BFD of
important events detected during the protocol operation. Pair of important events detected during the protocol operation. Pair of
local and remote discriminator identifies a BFD session on local local and remote discriminator identifies a BFD session on local
system. Notifications also give more important details about BFD system. Notifications also give more important details about BFD
sessions; e.g. new state, time in previous state, network-instance sessions; e.g. new state, time in previous state, network-instance
and the reason that the BFD session state changed. The notifications and the reason that the BFD session state changed. The notifications
are defined for each type of forwarding path but use groupings for are defined for each type of forwarding path but use groupings for
skipping to change at page 10, line 15 skipping to change at page 10, line 23
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:
+--rw ip-sh +--rw ip-sh
+--ro session-statistics +--ro session-statistics
| +--ro session-count? uint32 | +--ro session-count? uint32
| +--ro session-up-count? uint32 | +--ro session-up-count? uint32
| +--ro session-down-count? uint32 | +--ro session-down-count? uint32
| +--ro session-admin-down-count? uint32 | +--ro session-admin-down-count? uint32
+--rw sessions* [interface dest-addr] +--rw sessions* [interface dest-addr]
+--rw interface if:interface-ref | +--rw interface if:interface-ref
+--rw dest-addr inet:ip-address | +--rw dest-addr inet:ip-address
+--rw source-addr? inet:ip-address | +--rw source-addr? inet:ip-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-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-parms! {authentication}? | +--rw authentication-parms! {authentication}?
| +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | | +--rw meticulous? boolean
+--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? | | +--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? iana-bfd-types:auth-ty | | +--ro remote-authentication-type? iana-bfd-types:auth-ty
pe pe
| | {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 sesssion-statistics | +--ro sesssion-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? uint32 | +--ro down-count? uint32
+--ro admin-down-count? uint32 | +--ro admin-down-count? uint32
+--ro receive-packet-count? uint64 | +--ro receive-packet-count? uint64
+--ro send-packet-count? uint64 | +--ro send-packet-count? uint64
+--ro receive-bad-packet? uint64 | +--ro receive-bad-packet? uint64
+--ro send-failed-packet? uint64 | +--ro send-failed-packet? uint64
+--rw interfaces* [interface]
+--rw interface if:interface-ref
+--rw authentication-parms! {authentication}?
+--rw key-chain? kc:key-chain-ref
+--rw meticulous? boolean
notifications: notifications:
+---n singlehop-notification +---n singlehop-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
skipping to change at page 12, line 9 skipping to change at page 12, line 22
| +--ro session-count? uint32 | +--ro session-count? uint32
| +--ro session-up-count? uint32 | +--ro session-up-count? uint32
| +--ro session-down-count? uint32 | +--ro session-down-count? uint32
| +--ro session-admin-down-count? uint32 | +--ro session-admin-down-count? uint32
+--rw session-group* [source-addr dest-addr] +--rw session-group* [source-addr dest-addr]
+--rw source-addr inet:ip-address +--rw source-addr inet:ip-address
+--rw dest-addr inet:ip-address +--rw dest-addr inet:ip-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-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-parms! {authentication}? +--rw authentication-parms! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | +--rw meticulous? boolean
+--rw tx-ttl? bfd-types:hops +--rw tx-ttl? bfd-types:hops
+--rw rx-ttl bfd-types:hops +--rw rx-ttl bfd-types:hops
+--ro sessions* +--ro sessions*
+--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
skipping to change at page 13, line 51 skipping to change at page 14, line 16
| +--ro session-up-count? uint32 | +--ro session-up-count? uint32
| +--ro session-down-count? uint32 | +--ro session-down-count? uint32
| +--ro session-admin-down-count? uint32 | +--ro session-admin-down-count? uint32
+--rw sessions* [lag-name] +--rw sessions* [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-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-parms! {authentication}? +--rw authentication-parms! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | +--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
skipping to change at page 16, line 30 skipping to change at page 16, line 43
+--ro session-statistics +--ro session-statistics
| +--ro session-count? uint32 | +--ro session-count? uint32
| +--ro session-up-count? uint32 | +--ro session-up-count? uint32
| +--ro session-down-count? uint32 | +--ro session-down-count? uint32
| +--ro session-admin-down-count? uint32 | +--ro session-admin-down-count? uint32
+--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-interval)
| | +--rw min-interval uint32 | | +--rw min-interval? uint32
| +--rw authentication-parms! {authentication}? | +--rw authentication-parms! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | +--rw meticulous? boolean
+--rw session-group* [mpls-fec] +--rw session-group* [mpls-fec]
+--rw mpls-fec inet:ip-prefix +--rw mpls-fec inet:ip-prefix
+--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-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-parms! {authentication}? +--rw authentication-parms! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | +--rw meticulous? boolean
+--ro sessions* +--ro sessions*
+--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
skipping to change at page 18, line 21 skipping to change at page 18, line 34
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-interval)
| | +--rw min-interval uint32 | | +--rw min-interval? uint32
| +--rw authentication-parms! {authentication}? | +--rw authentication-parms! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | +--rw meticulous? boolean
+--ro session-statistics +--ro session-statistics
+--ro session-count? uint32 +--ro session-count? uint32
+--ro session-up-count? uint32 +--ro session-up-count? uint32
+--ro session-down-count? uint32 +--ro session-down-count? uint32
+--ro session-admin-down-count? uint32 +--ro session-admin-down-count? uint32
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-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-parms! {authentication}? +--rw authentication-parms! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | +--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
skipping to change at page 21, line 17 skipping to change at page 21, line 26
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@2017-10-30.yang" <CODE BEGINS> file "iana-bfd-types@2018-01-11.yang"
module iana-bfd-types { module iana-bfd-types {
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";
contact contact
" Internet Assigned Numbers Authority " Internet Assigned Numbers Authority
skipping to change at page 22, line 5 skipping to change at page 22, line 13
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 2017-10-30 { revision 2018-01-11 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: IANA BFD YANG Data Types."; reference "RFC XXXX: IANA BFD YANG Data Types.";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
typedef diagnostic { typedef diagnostic {
type enumeration { type enumeration {
enum none { enum none {
skipping to change at page 23, line 43 skipping to change at page 24, line 4
} }
enum meticulous-keyed-sha1 { enum meticulous-keyed-sha1 {
value 5; value 5;
description "Meticulous keyed SHA1"; description "Meticulous keyed SHA1";
} }
} }
description description
"BFD authentication type as defined in RFC5880. Range is 0 to "BFD authentication type as defined in RFC5880. Range is 0 to
255."; 255.";
} }
} }
<CODE ENDS> <CODE ENDS>
2.13. BFD types YANG Module 2.13. BFD types YANG Module
<CODE BEGINS> file "ietf-bfd-types@2017-10-30.yang" <CODE BEGINS> file "ietf-bfd-types@2018-01-11.yang"
module ietf-bfd-types { module ietf-bfd-types {
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 25, line 4 skipping to change at page 25, line 12
Copyright (c) 2017 IETF Trust and the persons Copyright (c) 2017 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
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 2017-10-30 { revision 2018-01-11 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD"; reference "RFC XXXX: A YANG data model for BFD";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
identity bfdv1 { identity bfdv1 {
base "rt:control-plane-protocol"; base "rt:control-plane-protocol";
description "BFD protocol version 1 as per RFC5880."; description "BFD protocol version 1 as per RFC5880.";
skipping to change at page 26, line 23 skipping to change at page 26, line 31
description description
"This corresponds to Time To Live for IPv4 and corresponds to hop "This corresponds to Time To Live for IPv4 and corresponds to hop
limit for IPv6"; limit for IPv6";
} }
/* /*
* Identity definitions * Identity definitions
*/ */
identity path-type { identity path-type {
description description
"Base identity for BFD path type. The session type indicates "Base identity for BFD path type. The path type indicates
the type of path on which BFD is running"; the type of path on which BFD is running";
} }
identity path-ip-sh { identity path-ip-sh {
base path-type; base path-type;
description "BFD on IP single hop"; description "BFD on IP single hop";
} }
identity path-ip-mh { identity path-ip-mh {
base path-type; base path-type;
description "BFD on IP multi hop"; description "BFD on IP multi hop";
} }
skipping to change at page 27, line 7 skipping to change at page 27, line 16
identity encap-type { identity encap-type {
description description
"Base identity for BFD encapsulation type."; "Base identity for BFD encapsulation type.";
} }
identity encap-ip { identity encap-ip {
base encap-type; base encap-type;
description "BFD with IP encapsulation."; description "BFD with IP encapsulation.";
} }
identity auth-replay-protection {
description
"Base identity for BFD authentication replay protection. " +
"See section 6.7 of RFC5880.";
}
identity auth-replay-protection-non-meticulous {
base auth-replay-protection;
description "Non-meticulous (see section 6.7.3 of RFC5880)";
}
identity auth-replay-protection-meticulous {
base auth-replay-protection;
description "Meticulous (see section 6.7.3 of RFC5880)";
}
/* /*
* Feature definitions. * Feature definitions.
*/ */
feature authentication { feature authentication {
description "BFD authentication supported"; description "BFD authentication supported";
} }
feature demand-mode { feature demand-mode {
description "BFD demand mode supported"; description "BFD demand mode supported";
} }
feature echo-mode { feature echo-mode {
description "BFD echo mode supported"; description "BFD echo mode supported";
} }
/* /*
skipping to change at page 28, line 4 skipping to change at page 27, line 47
(see section 6.7 of RFC5880)."; (see section 6.7 of RFC5880).";
container authentication-parms { container authentication-parms {
if-feature authentication; if-feature authentication;
presence presence
"Enables BFD authentication (see section 6.7 of RFC5880)."; "Enables BFD authentication (see section 6.7 of RFC5880).";
description "Parameters for BFD authentication"; description "Parameters for BFD authentication";
leaf key-chain { leaf key-chain {
type kc:key-chain-ref; type kc:key-chain-ref;
description "Name of key-chain"; description "Name of key-chain";
} }
leaf replay-protection { leaf meticulous {
type identityref { type boolean;
base auth-replay-protection;
}
description description
"Protection against replays"; "Enables meticulous mode as described in section 6.7 " +
"of RFC5880";
} }
} }
} }
grouping base-cfg-parms { grouping base-cfg-parms {
description "BFD grouping for base config parameters"; description "BFD grouping for base config parameters";
leaf local-multiplier { leaf local-multiplier {
type multiplier; type multiplier;
default 3; default 3;
description "Multiplier transmitted by local system"; description "Multiplier transmitted by local system";
} }
choice interval-config-type { choice interval-config-type {
description description
"Two interval values or 1 value used for both tx and rx"; "Two interval values or 1 value used for both tx and rx";
case tx-rx-intervals { case tx-rx-intervals {
leaf desired-min-tx-interval { leaf desired-min-tx-interval {
type uint32; type uint32;
units microseconds; units microseconds;
mandatory true; default 1000000;
description description
"Desired minimum transmit interval of control packets"; "Desired minimum transmit interval of control packets";
} }
leaf required-min-rx-interval { leaf required-min-rx-interval {
type uint32; type uint32;
units microseconds; units microseconds;
mandatory true; default 1000000;
description description
"Required minimum receive interval of control packets"; "Required minimum receive interval of control packets";
} }
} }
case single-interval { case single-interval {
leaf min-interval { leaf min-interval {
type uint32; type uint32;
units microseconds; units microseconds;
mandatory true; default 1000000;
description description
"Desired minimum transmit interval and required " + "Desired minimum transmit interval and required " +
"minimum receive interval of control packets"; "minimum receive interval of control packets";
} }
} }
} }
} }
grouping client-cfg-parms { grouping client-cfg-parms {
description description
"BFD grouping for config parameters "BFD grouping for config parameters
used by clients of BFD, e.g. IGP or MPLS"; used by clients of BFD, e.g. IGP or MPLS";
skipping to change at page 30, line 6 skipping to change at page 29, line 48
} }
grouping all-session { grouping all-session {
description "BFD session operational information"; description "BFD session operational information";
leaf path-type { leaf path-type {
type identityref { type identityref {
base path-type; base path-type;
} }
config "false"; config "false";
description description
"BFD session type, this indicates the path type that BFD is "BFD path type, this indicates the path type that BFD is
running on"; running on";
} }
leaf ip-encapsulation { leaf ip-encapsulation {
type boolean; type boolean;
config "false"; config "false";
description "Whether BFD encapsulation uses IP"; description "Whether BFD encapsulation uses IP";
} }
leaf local-discriminator { leaf local-discriminator {
type discriminator; type discriminator;
config "false"; config "false";
skipping to change at page 35, line 32 skipping to change at page 35, line 26
} }
description "BFD path type"; description "BFD path type";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.14. BFD top-level YANG Module 2.14. BFD top-level YANG Module
<CODE BEGINS> file "ietf-bfd@2017-10-30.yang" <CODE BEGINS> file "ietf-bfd@2018-01-11.yang"
module ietf-bfd { module ietf-bfd {
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 {
prefix "bfd-types"; prefix "bfd-types";
} }
skipping to change at page 36, line 25 skipping to change at page 36, line 20
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 2017-10-30 { revision 2018-01-11 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD"; reference "RFC XXXX: A YANG data model for BFD";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "rt:type = 'bfd-types:bfdv1'" { when "rt:type = 'bfd-types:bfdv1'" {
skipping to change at page 37, line 7 skipping to change at page 36, line 49
uses bfd-types:session-statistics; uses bfd-types:session-statistics;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.15. BFD IP single-hop YANG Module 2.15. BFD IP single-hop YANG Module
<CODE BEGINS> file "ietf-bfd-ip-sh@2017-10-30.yang" <CODE BEGINS> file "ietf-bfd-ip-sh@2018-01-11.yang"
module ietf-bfd-ip-sh { module ietf-bfd-ip-sh {
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 {
prefix "bfd-types"; prefix "bfd-types";
} }
skipping to change at page 38, line 8 skipping to change at page 38, line 4
Copyright (c) 2017 IETF Trust and the persons Copyright (c) 2017 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
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 2017-10-30 { revision 2018-01-11 {
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";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
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 38, line 49 skipping to change at page 38, line 44
} }
leaf source-addr { leaf source-addr {
type inet:ip-address; type inet:ip-address;
description "Local address"; description "Local address";
} }
uses bfd-types:common-cfg-parms; uses bfd-types:common-cfg-parms;
uses bfd-types:all-session; uses bfd-types:all-session;
} }
list interfaces {
key "interface";
description "List of interfaces";
leaf interface {
type if:interface-ref;
description
"BFD information for this interface.";
}
uses bfd-types:auth-parms;
}
} }
} }
notification singlehop-notification { notification singlehop-notification {
description description
"Notification for BFD single-hop session state change. An " + "Notification for BFD single-hop session state change. An " +
"implementation may rate-limit notifications, e.g. when a" + "implementation may rate-limit notifications, e.g. when a" +
"session is continuously changing state."; "session is continuously changing state.";
uses bfd-types:notification-parms; uses bfd-types:notification-parms;
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
skipping to change at page 39, line 29 skipping to change at page 39, line 34
description "Was echo enabled for BFD"; description "Was echo enabled for BFD";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.16. BFD IP multi-hop YANG Module 2.16. BFD IP multi-hop YANG Module
<CODE BEGINS> file "ietf-bfd-ip-mh@2017-10-30.yang" <CODE BEGINS> file "ietf-bfd-ip-mh@2018-01-11.yang"
module ietf-bfd-ip-mh { module ietf-bfd-ip-mh {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-ip-mh"; prefix "bfd-ip-mh";
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
} }
skipping to change at page 40, line 31 skipping to change at page 40, line 35
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 2017-10-30 { revision 2018-01-11 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; reference "RFC XXXX: A YANG data model for BFD IP multi-hop";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
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 multi-hop"; description "BFD augmentation for IP multi-hop";
skipping to change at page 42, line 4 skipping to change at page 42, line 8
notification multihop-notification { notification multihop-notification {
description description
"Notification for BFD multi-hop session state change. An " + "Notification for BFD multi-hop session state change. An " +
"implementation may rate-limit notifications, e.g. when a" + "implementation may rate-limit notifications, e.g. when a" +
"session is continuously changing state."; "session is continuously changing state.";
uses bfd-types:notification-parms; uses bfd-types:notification-parms;
} }
} }
<CODE ENDS> <CODE ENDS>
2.17. BFD over LAG YANG Module 2.17. BFD over LAG YANG Module
<CODE BEGINS> file "ietf-bfd-lag@2017-10-30.yang" <CODE BEGINS> file "ietf-bfd-lag@2018-01-11.yang"
module ietf-bfd-lag { module ietf-bfd-lag {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-lag"; prefix "bfd-lag";
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
} }
skipping to change at page 43, line 15 skipping to change at page 43, line 18
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 2017-10-30 { revision 2018-01-11 {
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";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
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 45, line 25 skipping to change at page 45, line 28
type if:interface-ref; type if:interface-ref;
description "Member link on which BFD is running"; description "Member link on which BFD is running";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.18. BFD over MPLS YANG Module 2.18. BFD over MPLS YANG Module
<CODE BEGINS> file "ietf-bfd-mpls@2017-10-30.yang" <CODE BEGINS> file "ietf-bfd-mpls@2018-01-11.yang"
module ietf-bfd-mpls { module ietf-bfd-mpls {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-mpls"; prefix "bfd-mpls";
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
} }
skipping to change at page 46, line 27 skipping to change at page 46, line 29
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 2017-10-30 { revision 2018-01-11 {
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";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
identity encap-gach { identity encap-gach {
base bfd-types:encap-type; base bfd-types:encap-type;
description description
skipping to change at page 48, line 39 skipping to change at page 48, line 41
"Destination address as per RFC5884. "Destination address as per RFC5884.
Needed if IP encapsulation is used"; Needed if IP encapsulation is used";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.19. BFD over MPLS-TE YANG Module 2.19. BFD over MPLS-TE YANG Module
<CODE BEGINS> file "ietf-bfd-mpls-te@2017-10-30.yang" <CODE BEGINS> file "ietf-bfd-mpls-te@2018-01-11.yang"
module ietf-bfd-mpls-te { module ietf-bfd-mpls-te {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-mpls-te"; prefix "bfd-mpls-te";
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
} }
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
} }
import ietf-bfd-mpls { import ietf-bfd-mpls {
prefix "bfd-mpls"; prefix "bfd-mpls";
} }
import ietf-te { import ietf-te {
prefix "te"; prefix "te";
} }
skipping to change at page 49, line 46 skipping to change at page 49, line 47
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 2017-10-30 { revision 2018-01-11 {
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";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
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";
container mpls-te { container mpls-te {
description "BFD MPLS-TE top level container"; description "BFD MPLS-TE top level container";
container egress { container egress {
description "Egress configuration"; description "Egress configuration";
uses bfd-types:client-cfg-parms; uses bfd-types:client-cfg-parms;
skipping to change at page 54, line 48 skipping to change at page 54, line 48
3.2. Informative References 3.2. Informative References
[I-D.dsdt-nmda-guidelines] [I-D.dsdt-nmda-guidelines]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Guidelines for YANG Module Authors and R. Wilton, "Guidelines for YANG Module Authors
(NMDA)", draft-dsdt-nmda-guidelines-01 (work in progress), (NMDA)", draft-dsdt-nmda-guidelines-01 (work in progress),
May 2017. May 2017.
[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 Operations, Administration, "Generic YANG Data Model for the Management of Operations,
and Maintenance(OAM) protocols for Connectionless Administration, and Maintenance (OAM) Protocols that use
networks", draft-ietf-lime-yang-connectionless-oam-13 Connectionless Communications", draft-ietf-lime-yang-
(work in progress), October 2017. connectionless-oam-18 (work in progress), November 2017.
[I-D.ietf-mpls-base-yang] [I-D.ietf-mpls-base-yang]
Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T.,
Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data
Model for MPLS Base", draft-ietf-mpls-base-yang-05 (work Model for MPLS Base", draft-ietf-mpls-base-yang-05 (work
in progress), July 2017. in progress), July 2017.
[I-D.ietf-netmod-schema-mount] [I-D.ietf-netmod-schema-mount]
Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft-
ietf-netmod-schema-mount-08 (work in progress), October ietf-netmod-schema-mount-08 (work in progress), October
2017. 2017.
[I-D.ietf-rtgwg-device-model] [I-D.ietf-rtgwg-device-model]
Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps,
"Network Device YANG Logical Organization", draft-ietf- "Network Device YANG Logical Organization", draft-ietf-
rtgwg-device-model-02 (work in progress), March 2017. rtgwg-device-model-02 (work in progress), March 2017.
[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 Logical Network Elements", draft-ietf-rtgwg- Liu, "YANG Logical Network Elements", draft-ietf-rtgwg-
lne-model-04 (work in progress), September 2017. lne-model-05 (work in progress), December 2017.
[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 Network Instances", draft-ietf-rtgwg-ni- Liu, "YANG Network Instances", draft-ietf-rtgwg-ni-
model-04 (work in progress), September 2017. model-05 (work in progress), December 2017.
[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-08 (work Tunnels and Interfaces", draft-ietf-teas-yang-te-10 (work
in progress), July 2017. in progress), December 2017.
[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, <https://www.rfc-
editor.org/info/rfc8177>. editor.org/info/rfc8177>.
Appendix A. Echo function configuration example Appendix A. Echo function configuration example
The following intervals are added for the echo function (if The following intervals are added for the echo function (if
supported): supported):
skipping to change at page 56, line 8 skipping to change at page 56, line 8
desired-min-echo-tx-interval desired-min-echo-tx-interval
This is the minimum interval that the local system would like This is the minimum interval that the local system would like
to use when transmitting BFD echo packets. If 0, the echo to use when transmitting BFD echo packets. If 0, the echo
function as defined in BFD [RFC5880] is disabled. function as defined in BFD [RFC5880] is disabled.
required-min-echo-rx-interval required-min-echo-rx-interval
This is the Required Min Echo RX Interval as defined in BFD This is the Required Min Echo RX Interval as defined in BFD
[RFC5880]. [RFC5880].
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-proto
/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh col/bfd:bfd/bfd-ip-sh:ip-sh/bfd-ip-sh:sessions:
/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 A.1. Example YANG module for BFD echo function
module example-bfd-echo { module example-bfd-echo {
namespace "tag:example.com,2017:example-bfd-echo"; namespace "tag:example.com,2017:example-bfd-echo";
prefix "example-bfd-echo"; prefix "example-bfd-echo";
skipping to change at page 57, line 18 skipping to change at page 57, line 18
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 2017-10-30 { revision 2018-01-11 {
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 58, line 27 skipping to change at page 58, line 27
grouping client-cfg-parms. grouping client-cfg-parms.
module: example-bfd-client module: example-bfd-client
+--rw area* [area-id] +--rw area* [area-id]
+--rw area-id uint32 +--rw area-id uint32
+--rw bfd +--rw bfd
| +--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-interval)
| +--rw min-interval uint32 | +--rw min-interval? uint32
+--rw interface* [interface] +--rw interface* [interface]
+--rw interface if:interface-ref +--rw interface if:interface-ref
+--rw bfd +--rw bfd
+--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-interval)
+--rw min-interval uint32 +--rw min-interval? uint32
B.1. Example YANG module for BFD client B.1. Example YANG module for BFD client
module example-bfd-client { module example-bfd-client {
namespace "tag:example.com,2017:example-bfd-client"; namespace "tag:example.com,2017:example-bfd-client";
prefix "example-bfd-client"; prefix "example-bfd-client";
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
skipping to change at page 59, line 38 skipping to change at page 59, line 38
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 2017-10-30 { revision 2018-01-11 {
description "Initial revision."; description "Initial revision.";
reference reference
"RFC XXXX: A YANG data model example for BFD client."; "RFC XXXX: A YANG data model example for BFD client.";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
feature routing-app-bfd { feature routing-app-bfd {
description "BFD configuration under routing-app"; description "BFD configuration under routing-app";
skipping to change at page 60, line 42 skipping to change at page 60, line 42
} }
} }
} }
} }
Appendix C. Change log Appendix C. Change log
RFC Editor: Remove this section upon publication as an RFC. RFC Editor: Remove this section upon publication as an RFC.
C.1. Changes between versions -06 and -07 C.1. Changes between versions -07 and -08
o Timer intervals in client-cfg-parms are not mandatory anymore.
o Added list of interfaces under "ip-sh" node for authentication
parameters.
o Renamed replay-protection to meticulous.
C.2. 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.
C.2. Changes between versions -05 and -06 C.3. 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.
C.3. Changes between versions -04 and -05 C.4. Changes between versions -04 and -05
o "bfd" node in augment of control-plane-protocol as per A YANG Data o "bfd" node in augment of control-plane-protocol as per A YANG Data
Model for Routing Management [RFC8022]. Model for Routing Management [RFC8022].
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.
C.4. Changes between versions -03 and -04 C.5. 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.
C.5. Changes between versions -02 and -03 C.6. 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.
C.6. Changes between versions -01 and -02 C.7. Changes between versions -01 and -02
o Replace routing-instance, which has been removed from A YANG Data o Replace routing-instance, which has been removed from A YANG Data
Model for Routing Management [RFC8022], with network-instance from Model for Routing Management [RFC8022], with network-instance from
YANG Network Instances [I-D.ietf-rtgwg-ni-model] YANG Network Instances [I-D.ietf-rtgwg-ni-model]
C.7. Changes between versions -00 and -01 C.8. 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
[RFC8177] [RFC8177]
Authors' Addresses Authors' Addresses
Reshad Rahman (editor) Reshad Rahman (editor)
Cisco Systems Cisco Systems
Canada Canada
Email: rrahman@cisco.com Email: rrahman@cisco.com
 End of changes. 94 change blocks. 
185 lines changed or deleted 201 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/