draft-ietf-bfd-yang-10.txt   draft-ietf-bfd-yang-11.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 3, 2018 Huawei Technologies Expires: September 4, 2018 Huawei Technologies
M. Jethanandani, Ed. M. Jethanandani, Ed.
S. Pallagatti S. Pallagatti
G. Mirsky G. Mirsky
ZTE Corporation ZTE Corporation
March 2, 2018 March 3, 2018
YANG Data Model for Bidirectional Forwarding Detection (BFD) YANG Data Model for Bidirectional Forwarding Detection (BFD)
draft-ietf-bfd-yang-10.txt draft-ietf-bfd-yang-11.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).
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 https://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 September 3, 2018. This Internet-Draft will expire on September 4, 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
(https://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
skipping to change at page 2, line 35 skipping to change at page 2, line 35
2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 10
2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 10 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 10
2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 10 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 10
2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 10 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 10
2.7. BFD IP multihop hierarchy . . . . . . . . . . . . . . . . 12 2.7. BFD IP multihop hierarchy . . . . . . . . . . . . . . . . 12
2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 14 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 14
2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 17 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 17
2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 19 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 19
2.11. Interaction with other YANG modules . . . . . . . . . . . 21 2.11. Interaction with other YANG modules . . . . . . . . . . . 21
2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 21 2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 21
2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 21 2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 22
2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 22 2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 22
2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 22 2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 22
2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 22 2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 22
2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 25 2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 25
2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 37 2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 38
2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 39 2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 39
2.16. BFD IP multihop YANG Module . . . . . . . . . . . . . . . 42 2.16. BFD IP multihop YANG Module . . . . . . . . . . . . . . . 43
2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 45 2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 46
2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 49 2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 50
2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 53 2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 53
3. Data Model examples . . . . . . . . . . . . . . . . . . . . . 56 3. Data Model examples . . . . . . . . . . . . . . . . . . . . . 56
3.1. IP single-hop . . . . . . . . . . . . . . . . . . . . . . 56 3.1. IP single-hop . . . . . . . . . . . . . . . . . . . . . . 56
3.2. IP multihop . . . . . . . . . . . . . . . . . . . . . . . 56 3.2. IP multihop . . . . . . . . . . . . . . . . . . . . . . . 57
4. Security Considerations . . . . . . . . . . . . . . . . . . . 57 3.3. LAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 60 3.4. MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.1. IANA-Maintained iana-bfd-types module . . . . . . . . . . 61 4. Security Considerations . . . . . . . . . . . . . . . . . . . 60
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 63
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 61 5.1. IANA-Maintained iana-bfd-types module . . . . . . . . . . 64
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 61 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 64
7.1. Normative References . . . . . . . . . . . . . . . . . . 61 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.2. Informative References . . . . . . . . . . . . . . . . . 64 7.1. Normative References . . . . . . . . . . . . . . . . . . 65
Appendix A. Echo function configuration example . . . . . . . . 64 7.2. Informative References . . . . . . . . . . . . . . . . . 67
A.1. Example YANG module for BFD echo function configuration . 65 Appendix A. Echo function configuration example . . . . . . . . 68
Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 67 A.1. Example YANG module for BFD echo function configuration . 68
B.1. Changes between versions -09 and -10 . . . . . . . . . . 67 Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 70
B.2. Changes between versions -08 and -09 . . . . . . . . . . 67 B.1. Changes between versions -10 and -11 . . . . . . . . . . 70
B.3. Changes between versions -07 and -08 . . . . . . . . . . 67 B.2. Changes between versions -09 and -10 . . . . . . . . . . 70
B.4. Changes between versions -06 and -07 . . . . . . . . . . 67 B.3. Changes between versions -08 and -09 . . . . . . . . . . 70
B.5. Changes between versions -05 and -06 . . . . . . . . . . 68 B.4. Changes between versions -07 and -08 . . . . . . . . . . 71
B.6. Changes between versions -04 and -05 . . . . . . . . . . 68 B.5. Changes between versions -06 and -07 . . . . . . . . . . 71
B.7. Changes between versions -03 and -04 . . . . . . . . . . 68 B.6. Changes between versions -05 and -06 . . . . . . . . . . 71
B.8. Changes between versions -02 and -03 . . . . . . . . . . 68 B.7. Changes between versions -04 and -05 . . . . . . . . . . 71
B.9. Changes between versions -01 and -02 . . . . . . . . . . 68 B.8. Changes between versions -03 and -04 . . . . . . . . . . 71
B.10. Changes between versions -00 and -01 . . . . . . . . . . 68 B.9. Changes between versions -02 and -03 . . . . . . . . . . 72
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 69 B.10. Changes between versions -01 and -02 . . . . . . . . . . 72
B.11. Changes between versions -00 and -01 . . . . . . . . . . 72
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 72
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:
1) Two systems directly connected via IP. This is known as BFD over 1) Two systems directly connected via IP. This is known as BFD over
skipping to change at page 10, line 30 skipping to change at page 10, line 30
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. The "bfd" node under control-plane- all types of forwarding paths. The "bfd" node under control-plane-
protocol can be used in a network device (top-level), or mounted in protocol can be used in a network device (top-level), or mounted in
an LNE or in a network instance. an LNE or in a network instance.
module: ietf-bfd module: ietf-bfd
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-proto augment /rt:routing/rt:control-plane-protocols
col: /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. The "ip-sh" node can be used hop session is under this "ip-sh" node. The "ip-sh" node can be used
in a network device (top-level), or mounted in an LNE or in a network in a network device (top-level), or mounted in an LNE or in a network
instance. instance.
module: ietf-bfd-ip-sh module: ietf-bfd-ip-sh
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-proto augment /rt:routing/rt:control-plane-protocols
col/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--rw ip-sh +--rw ip-sh
+--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* [interface dest-addr] +--rw sessions
| +--rw interface if:interface-ref | +--rw session* [interface dest-addr]
| +--rw dest-addr inet:ip-address | +--rw interface if:interface-ref
| +--rw source-addr? inet:ip-address | +--rw dest-addr inet:ip-address
| +--rw local-multiplier? multiplier | +--rw source-addr? inet:ip-address
| +--rw (interval-config-type)? | +--rw local-multiplier? multiplier
| | +--:(tx-rx-intervals) | +--rw (interval-config-type)?
| | | +--rw desired-min-tx-interval? uint32 | | +--:(tx-rx-intervals)
| | | +--rw required-min-rx-interval? uint32 | | | +--rw desired-min-tx-interval? uint32
| | +--:(single-interval) {single-minimum-interval}? | | | +--rw required-min-rx-interval? uint32
| | +--rw min-interval? uint32 | | +--:(single-interval) {single-minimum-interval}?
| +--rw demand-enabled? boolean {demand-mode}? | | +--rw min-interval? uint32
| +--rw admin-down? boolean | +--rw demand-enabled? boolean {demand-mode}?
| +--rw authentication! {authentication}? | +--rw admin-down? boolean
| | +--rw key-chain? kc:key-chain-ref | +--rw authentication! {authentication}?
| | +--rw meticulous? boolean | | +--rw key-chain? kc:key-chain-ref
| +--ro path-type? identityref | | +--rw meticulous? boolean
| +--ro ip-encapsulation? boolean | +--ro path-type? identityref
| +--ro local-discriminator? discriminator | +--ro ip-encapsulation? boolean
| +--ro remote-discriminator? discriminator | +--ro local-discriminator? discriminator
| +--ro remote-multiplier? multiplier | +--ro remote-discriminator? discriminator
| +--ro demand-capability? boolean {demand-mode}? | +--ro remote-multiplier? multiplier
| +--ro source-port? inet:port-number | +--ro demand-capability? boolean {demand-mode}?
| +--ro dest-port? inet:port-number | +--ro source-port? inet:port-number
| +--ro session-running | +--ro dest-port? inet:port-number
| | +--ro session-index? uint32 | +--ro session-running
| | +--ro local-state? state | | +--ro session-index? uint32
| | +--ro remote-state? state | | +--ro local-state? state
| | +--ro local-diagnostic? | | +--ro remote-state? state
| | | iana-bfd-types:diagnostic | | +--ro local-diagnostic?
| | +--ro remote-diagnostic? | | | iana-bfd-types:diagnostic
| | | iana-bfd-types:diagnostic | | +--ro remote-diagnostic?
| | +--ro remote-authenticated? boolean | | | iana-bfd-types:diagnostic
| | +--ro remote-authentication-type? iana-bfd-types:auth-ty | | +--ro remote-authenticated? boolean
pe | | +--ro remote-authentication-type?
| | | {authentication}? | | | iana-bfd-types:auth-type {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
| +--ro session-statistics | | {echo-mode}?
| +--ro create-time? yang:date-and-time | +--ro session-statistics
| +--ro last-down-time? yang:date-and-time | +--ro create-time? yang:date-and-time
| +--ro last-up-time? yang:date-and-time | +--ro last-down-time? yang:date-and-time
| +--ro down-count? yang:counter32 | +--ro last-up-time? yang:date-and-time
| +--ro admin-down-count? yang:counter32 | +--ro down-count? yang:counter32
| +--ro receive-packet-count? yang:counter64 | +--ro admin-down-count? yang:counter32
| +--ro send-packet-count? yang:counter64 | +--ro receive-packet-count? yang:counter64
| +--ro receive-invalid-packet-count? yang:counter64 | +--ro send-packet-count? yang:counter64
| +--ro send-failed-packet-count? yang:counter64 | +--ro receive-invalid-packet-count? yang:counter64
| +--ro send-failed-packet-count? yang:counter64
+--rw interfaces* [interface] +--rw interfaces* [interface]
+--rw interface if:interface-ref +--rw interface if:interface-ref
+--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
notifications: notifications:
+---n singlehop-notification +---n singlehop-notification
+--ro local-discr? discriminator +--ro local-discr? discriminator
+--ro remote-discr? discriminator +--ro remote-discr? discriminator
skipping to change at page 12, line 41 skipping to change at page 12, line 43
An "ip-mh" node is added under the "bfd" node in cntrol-plane- An "ip-mh" node is added under the "bfd" node in cntrol-plane-
protocol. The configuration and operational state data for each BFD protocol. The configuration and operational state data for each BFD
IP multihop session is under this "ip-mh" node. In the operational IP multihop session is under this "ip-mh" node. In the operational
state model we support multiple BFD multihop sessions per remote state model we support multiple BFD multihop sessions per remote
address (ECMP), the local discriminator is used as key. The "ip-mh" address (ECMP), the local discriminator is used as key. The "ip-mh"
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.
module: ietf-bfd-ip-mh module: ietf-bfd-ip-mh
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-proto augment /rt:routing/rt:control-plane-protocols
col/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--rw ip-mh +--rw ip-mh
+--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 session-group* [source-addr dest-addr] +--rw session-groups
+--rw source-addr inet:ip-address +--rw session-group* [source-addr dest-addr]
+--rw dest-addr inet:ip-address +--rw source-addr inet:ip-address
+--rw local-multiplier? multiplier +--rw dest-addr inet:ip-address
+--rw (interval-config-type)? +--rw local-multiplier? multiplier
| +--:(tx-rx-intervals) +--rw (interval-config-type)?
| | +--rw desired-min-tx-interval? uint32 | +--:(tx-rx-intervals)
| | +--rw required-min-rx-interval? uint32 | | +--rw desired-min-tx-interval? uint32
| +--:(single-interval) {single-minimum-interval}? | | +--rw required-min-rx-interval? uint32
| +--rw min-interval? uint32 | +--:(single-interval) {single-minimum-interval}?
+--rw demand-enabled? boolean {demand-mode}? | +--rw min-interval? uint32
+--rw admin-down? boolean +--rw demand-enabled? boolean {demand-mode}?
+--rw authentication! {authentication}? +--rw admin-down? boolean
| +--rw key-chain? kc:key-chain-ref +--rw authentication! {authentication}?
| +--rw meticulous? boolean | +--rw key-chain? kc:key-chain-ref
+--rw tx-ttl? bfd-types:hops | +--rw meticulous? boolean
+--rw rx-ttl bfd-types:hops +--rw tx-ttl? bfd-types:hops
+--ro sessions* +--rw rx-ttl bfd-types:hops
+--ro path-type? identityref +--ro sessions*
+--ro ip-encapsulation? boolean
+--ro local-discriminator? discriminator
+--ro remote-discriminator? discriminator
+--ro remote-multiplier? multiplier
+--ro demand-capability? boolean {demand-mode}?
+--ro source-port? inet:port-number
+--ro dest-port? inet:port-number
+--ro session-running
| +--ro session-index? uint32
| +--ro local-state? state
| +--ro remote-state? state
| +--ro local-diagnostic?
| | iana-bfd-types:diagnostic
| +--ro remote-diagnostic?
| | iana-bfd-types:diagnostic
| +--ro remote-authenticated? boolean
| +--ro remote-authentication-type?
| | iana-bfd-types:auth-type {authentication}?
| +--ro detection-mode? enumeration
| +--ro negotiated-tx-interval? uint32
| +--ro negotiated-rx-interval? uint32
| +--ro detection-time? uint32
| +--ro echo-tx-interval-in-use? uint32
| {echo-mode}?
+--ro session-statistics
+--ro create-time? yang:date-and-tim
e
+--ro last-down-time? yang:date-and-tim
e
+--ro last-up-time? yang:date-and-tim
e
+--ro down-count? yang:counter32
+--ro admin-down-count? yang:counter32
+--ro receive-packet-count? yang:counter64
+--ro send-packet-count? yang:counter64
+--ro receive-invalid-packet-count? yang:counter64
+--ro send-failed-packet-count? yang:counter64
notifications:
+---n multihop-notification
+--ro local-discr? discriminator
+--ro remote-discr? discriminator
+--ro new-state? state
+--ro state-change-reason? iana-bfd-types:diagnostic
+--ro time-of-last-state-change? yang:date-and-time
+--ro dest-addr? inet:ip-address
+--ro source-addr? inet:ip-address
+--ro session-index? uint32
+--ro path-type? identityref
2.8. BFD over LAG hierarchy
A "lag" node is added under the "bfd" node in control-plane-protocol.
The configuration and operational state data for each BFD LAG session
is under this "lag" node. The "lag" node can be used in a network
device (top-level), or mounted in an LNE or in a network instance.
module: ietf-bfd-lag
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-proto
col/bfd:bfd:
+--rw lag
+--rw micro-bfd-ipv4-session-statistics
| +--ro summary
| +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32
+--rw micro-bfd-ipv6-session-statistics
| +--ro summary
| +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32
+--rw sessions* [lag-name]
+--rw lag-name if:interface-ref
+--rw ipv4-dest-addr? inet:ipv4-address
+--rw ipv6-dest-addr? inet:ipv6-address
+--rw local-multiplier? multiplier
+--rw (interval-config-type)?
| +--:(tx-rx-intervals)
| | +--rw desired-min-tx-interval? uint32
| | +--rw required-min-rx-interval? uint32
| +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}?
+--rw admin-down? boolean
+--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean
+--rw use-ipv4? boolean
+--rw use-ipv6? boolean
+--ro member-links* [member-link]
+--ro member-link if:interface-ref
+--ro micro-bfd-ipv4
| +--ro path-type? identityref
| +--ro ip-encapsulation? boolean
| +--ro local-discriminator? discriminator
| +--ro remote-discriminator? discriminator
| +--ro remote-multiplier? multiplier
| +--ro demand-capability? boolean {demand-mode}?
| +--ro source-port? inet:port-number
| +--ro dest-port? inet:port-number
| +--ro session-running
| | +--ro session-index? uint32
| | +--ro local-state? state
| | +--ro remote-state? state
| | +--ro local-diagnostic?
| | | iana-bfd-types:diagnostic
| | +--ro remote-diagnostic?
| | | iana-bfd-types:diagnostic
| | +--ro remote-authenticated? boolean
| | +--ro remote-authentication-type?
| | | iana-bfd-types:auth-type {authentication}?
| | +--ro detection-mode? enumeration
| | +--ro negotiated-tx-interval? uint32
| | +--ro negotiated-rx-interval? uint32
| | +--ro detection-time? uint32
| | +--ro echo-tx-interval-in-use? uint32
| | {echo-mode}?
| +--ro session-statistics
| +--ro create-time?
| | yang:date-and-time
| +--ro last-down-time?
| | yang:date-and-time
| +--ro last-up-time?
| | yang:date-and-time
| +--ro down-count? yang:counter32
| +--ro admin-down-count? yang:counter32
| +--ro receive-packet-count? yang:counter64
| +--ro send-packet-count? yang:counter64
| +--ro receive-invalid-packet-count? yang:counter64
| +--ro send-failed-packet-count? yang:counter64
+--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 {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
skipping to change at page 16, line 50 skipping to change at page 14, line 17
+--ro last-up-time? +--ro last-up-time?
| yang:date-and-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
notifications: notifications:
+---n multihop-notification
+--ro local-discr? discriminator
+--ro remote-discr? discriminator
+--ro new-state? state
+--ro state-change-reason? iana-bfd-types:diagnostic
+--ro time-of-last-state-change? yang:date-and-time
+--ro dest-addr? inet:ip-address
+--ro source-addr? inet:ip-address
+--ro session-index? uint32
+--ro path-type? identityref
2.8. BFD over LAG hierarchy
A "lag" node is added under the "bfd" node in control-plane-protocol.
The configuration and operational state data for each BFD LAG session
is under this "lag" node. The "lag" node can be used in a network
device (top-level), or mounted in an LNE or in a network instance.
module: ietf-bfd-lag
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd:
+--rw lag
+--rw micro-bfd-ipv4-session-statistics
| +--ro summary
| +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32
+--rw micro-bfd-ipv6-session-statistics
| +--ro summary
| +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32
+--rw sessions
+--rw session* [lag-name]
+--rw lag-name if:interface-ref
+--rw ipv4-dest-addr? inet:ipv4-address
+--rw ipv6-dest-addr? inet:ipv6-address
+--rw local-multiplier? multiplier
+--rw (interval-config-type)?
| +--:(tx-rx-intervals)
| | +--rw desired-min-tx-interval? uint32
| | +--rw required-min-rx-interval? uint32
| +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}?
+--rw admin-down? boolean
+--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean
+--rw use-ipv4? boolean
+--rw use-ipv6? boolean
+--ro member-links* [member-link]
+--ro member-link if:interface-ref
+--ro micro-bfd-ipv4
| +--ro path-type? identityref
| +--ro ip-encapsulation? boolean
| +--ro local-discriminator? discriminator
| +--ro remote-discriminator? discriminator
| +--ro remote-multiplier? multiplier
| +--ro demand-capability? boolean
| | {demand-mode}?
| +--ro source-port? inet:port-number
| +--ro dest-port? inet:port-number
| +--ro session-running
| | +--ro session-index? uint32
| | +--ro local-state? state
| | +--ro remote-state? state
| | +--ro local-diagnostic?
| | | iana-bfd-types:diagnostic
| | +--ro remote-diagnostic?
| | | iana-bfd-types:diagnostic
| | +--ro remote-authenticated? boolean
| | +--ro remote-authentication-type?
| | | iana-bfd-types:auth-type
| | | {authentication}?
| | +--ro detection-mode? enumeration
| | +--ro negotiated-tx-interval? uint32
| | +--ro negotiated-rx-interval? uint32
| | +--ro detection-time? uint32
| | +--ro echo-tx-interval-in-use? uint32
| | {echo-mode}?
| +--ro session-statistics
| +--ro create-time?
| | yang:date-and-time
| +--ro last-down-time?
| | yang:date-and-time
| +--ro last-up-time?
| | yang:date-and-time
| +--ro down-count?
| | yang:counter32
| +--ro admin-down-count?
| | yang:counter32
| +--ro receive-packet-count?
| | yang:counter64
| +--ro send-packet-count?
| | yang:counter64
| +--ro receive-invalid-packet-count?
| | yang:counter64
| +--ro send-failed-packet-count?
| yang:counter64
+--ro micro-bfd-ipv6
+--ro path-type? identityref
+--ro ip-encapsulation? boolean
+--ro local-discriminator? discriminator
+--ro remote-discriminator? discriminator
+--ro remote-multiplier? multiplier
+--ro demand-capability? boolean
| {demand-mode}?
+--ro source-port? inet:port-number
+--ro dest-port? inet:port-number
+--ro session-running
| +--ro session-index? uint32
| +--ro local-state? state
| +--ro remote-state? state
| +--ro local-diagnostic?
| | iana-bfd-types:diagnostic
| +--ro remote-diagnostic?
| | iana-bfd-types:diagnostic
| +--ro remote-authenticated? boolean
| +--ro remote-authentication-type?
| | iana-bfd-types:auth-type
| | {authentication}?
| +--ro detection-mode? enumeration
| +--ro negotiated-tx-interval? uint32
| +--ro negotiated-rx-interval? uint32
| +--ro detection-time? uint32
| +--ro echo-tx-interval-in-use? uint32
| {echo-mode}?
+--ro session-statistics
+--ro create-time?
| yang:date-and-time
+--ro last-down-time?
| yang:date-and-time
+--ro last-up-time?
| yang:date-and-time
+--ro down-count?
| yang:counter32
+--ro admin-down-count?
| yang:counter32
+--ro receive-packet-count?
| yang:counter64
+--ro send-packet-count?
| yang:counter64
+--ro receive-invalid-packet-count?
| yang:counter64
+--ro send-failed-packet-count?
yang:counter64
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
skipping to change at page 17, line 25 skipping to change at page 17, line 47
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.
module: ietf-bfd-mpls module: ietf-bfd-mpls
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-proto augment /rt:routing/rt:control-plane-protocols
col/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--rw mpls +--rw mpls
+--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 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
+--rw session-group* [mpls-fec] +--rw session-groups
+--rw mpls-fec inet:ip-prefix +--rw session-group* [mpls-fec]
+--rw local-multiplier? multiplier +--rw mpls-fec inet:ip-prefix
+--rw (interval-config-type)? +--rw local-multiplier? multiplier
| +--:(tx-rx-intervals) +--rw (interval-config-type)?
| | +--rw desired-min-tx-interval? uint32 | +--:(tx-rx-intervals)
| | +--rw required-min-rx-interval? uint32 | | +--rw desired-min-tx-interval? uint32
| +--:(single-interval) {single-minimum-interval}? | | +--rw required-min-rx-interval? uint32
| +--rw min-interval? uint32 | +--:(single-interval) {single-minimum-interval}?
+--rw demand-enabled? boolean {demand-mode}? | +--rw min-interval? uint32
+--rw admin-down? boolean +--rw demand-enabled? boolean {demand-mode}?
+--rw authentication! {authentication}? +--rw admin-down? boolean
| +--rw key-chain? kc:key-chain-ref +--rw authentication! {authentication}?
| +--rw meticulous? boolean | +--rw key-chain? kc:key-chain-ref
+--ro sessions* | +--rw meticulous? boolean
+--ro path-type? identityref +--ro sessions*
+--ro ip-encapsulation? boolean +--ro path-type? identityref
+--ro local-discriminator? discriminator +--ro ip-encapsulation? boolean
+--ro remote-discriminator? discriminator +--ro local-discriminator? discriminator
+--ro remote-multiplier? multiplier +--ro remote-discriminator? discriminator
+--ro demand-capability? boolean {demand-mode}? +--ro remote-multiplier? multiplier
+--ro source-port? inet:port-number +--ro demand-capability? boolean {demand-mode}?
+--ro dest-port? inet:port-number +--ro source-port? inet:port-number
+--ro session-running +--ro dest-port? inet:port-number
| +--ro session-index? uint32 +--ro session-running
| +--ro local-state? state | +--ro session-index? uint32
| +--ro remote-state? state | +--ro local-state? state
| +--ro local-diagnostic? | +--ro remote-state? state
| | iana-bfd-types:diagnostic | +--ro local-diagnostic?
| +--ro remote-diagnostic? | | iana-bfd-types:diagnostic
| | iana-bfd-types:diagnostic | +--ro remote-diagnostic?
| +--ro remote-authenticated? boolean | | iana-bfd-types:diagnostic
| +--ro remote-authentication-type? | +--ro remote-authenticated? boolean
| | iana-bfd-types:auth-type {authentication}? | +--ro remote-authentication-type?
| +--ro detection-mode? enumeration | | iana-bfd-types:auth-type {authentication}?
| +--ro negotiated-tx-interval? uint32 | +--ro detection-mode? enumeration
| +--ro negotiated-rx-interval? uint32 | +--ro negotiated-tx-interval? uint32
| +--ro detection-time? uint32 | +--ro negotiated-rx-interval? uint32
| +--ro echo-tx-interval-in-use? uint32 | +--ro detection-time? uint32
| {echo-mode}? | +--ro echo-tx-interval-in-use? uint32
+--ro session-statistics | {echo-mode}?
| +--ro create-time? yang:date-and-tim +--ro session-statistics
e | +--ro create-time?
| +--ro last-down-time? yang:date-and-tim | | yang:date-and-time
e | +--ro last-down-time?
| +--ro last-up-time? yang:date-and-tim | | yang:date-and-time
e | +--ro last-up-time?
| +--ro down-count? yang:counter32 | | yang:date-and-time
| +--ro admin-down-count? yang:counter32 | +--ro down-count? yang:counter32
| +--ro receive-packet-count? yang:counter64 | +--ro admin-down-count? yang:counter32
| +--ro send-packet-count? yang:counter64 | +--ro receive-packet-count? yang:counter64
| +--ro receive-invalid-packet-count? yang:counter64 | +--ro send-packet-count? yang:counter64
| +--ro send-failed-packet-count? yang:counter64 | +--ro receive-invalid-packet-count? yang:counter64
+--ro mpls-dest-address? inet:ip-address | +--ro send-failed-packet-count? yang:counter64
+--ro mpls-dest-address? inet:ip-address
notifications: notifications:
+---n mpls-notification +---n mpls-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 19, line 25 skipping to change at page 19, line 47
+--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/rt:control-plane-proto augment /rt:routing/rt:control-plane-protocols
col/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
skipping to change at page 22, line 26 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-01.yang" <CODE BEGINS> file "iana-bfd-types@2018-03-03.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";
contact contact
" Internet Assigned Numbers Authority " Internet Assigned Numbers Authority
Postal: ICANN Postal: ICANN
skipping to change at page 23, line 24 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-01 { revision 2018-03-03 {
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 25 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] and the "control- This YANG module imports typedefs from [RFC6991] and the "control-
plane-protocol" identity from [I-D.ietf-netmod-rfc8022bis]. plane-protocol" identity from [I-D.ietf-netmod-rfc8022bis].
<CODE BEGINS> file "ietf-bfd-types@2018-03-01.yang" <CODE BEGINS> file "ietf-bfd-types@2018-03-03.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";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
reference "RFC 6991: Common YANG Data Types"; reference "RFC 6991: Common YANG Data Types";
} }
skipping to change at page 26, line 47 skipping to change at page 27, line 18
(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-01 { revision 2018-03-03 {
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
of one minimum interval value which is used for both transmit and of one minimum interval value which is used for both transmit and
receive minimum intervals."; receive minimum intervals.";
} }
skipping to change at page 37, line 32 skipping to change at page 38, line 4
leaf path-type { leaf path-type {
type identityref { type identityref {
base path-type; base path-type;
} }
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
This YANG module imports and augments "/routing/control-plane- This YANG module imports and augments "/routing/control-plane-
protocols/control-plane-protocol" from [I-D.ietf-netmod-rfc8022bis]. protocols/control-plane-protocol" from [I-D.ietf-netmod-rfc8022bis].
<CODE BEGINS> file "ietf-bfd@2018-03-01.yang" <CODE BEGINS> file "ietf-bfd@2018-03-03.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 38, line 47 skipping to change at page 39, line 18
(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-01 { revision 2018-03-03 {
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').";
} }
description "BFD augmentation."; description "BFD augmentation.";
container bfd { container bfd {
skipping to change at page 39, line 28 skipping to change at page 39, line 47
} }
} }
<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 This YANG module imports "interface-ref" from
[I-D.ietf-netmod-rfc7223bis]. [I-D.ietf-netmod-rfc7223bis].
<CODE BEGINS> file "ietf-bfd-ip-sh@2018-03-01.yang" <CODE BEGINS> file "ietf-bfd-ip-sh@2018-03-03.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 {
prefix "bfd-types"; prefix "bfd-types";
} }
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
skipping to change at page 40, line 52 skipping to change at page 41, line 21
(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-01 { revision 2018-03-03 {
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";
container ip-sh { container ip-sh {
description "BFD IP single-hop top level container"; description "BFD IP single-hop top level container";
uses bfd-types:session-statistics-summary; uses bfd-types:session-statistics-summary;
list sessions { container sessions {
key "interface dest-addr"; description
description "List of IP single-hop sessions"; "BFD IP single-hop sessions.";
leaf interface { list session {
type if:interface-ref; key "interface dest-addr";
description description "List of IP single-hop sessions.";
"Interface on which the BFD session is running."; leaf interface {
} type if:interface-ref;
leaf dest-addr { description
type inet:ip-address; "Interface on which the BFD session is running.";
description "IP address of the peer."; }
} leaf dest-addr {
leaf source-addr { type inet:ip-address;
type inet:ip-address; description "IP address of the peer.";
description "Local IP address."; }
} leaf source-addr {
type inet:ip-address;
description "Local IP 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 { list interfaces {
key "interface"; key "interface";
description "List of interfaces."; description "List of interfaces.";
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"BFD information for this interface."; "BFD information for this interface.";
} }
skipping to change at page 42, line 30 skipping to change at page 43, line 4
description "Interface to which this BFD session belongs to."; description "Interface to which this BFD session belongs to.";
} }
leaf echo-enabled { leaf echo-enabled {
type boolean; type boolean;
description "Was echo enabled for BFD."; description "Was echo enabled for BFD.";
} }
} }
} }
<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]. This YANG module imports typedefs from [RFC6991].
<CODE BEGINS> file "ietf-bfd-ip-mh@2018-03-01.yang" <CODE BEGINS> file "ietf-bfd-ip-mh@2018-03-03.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 {
prefix "bfd-types"; prefix "bfd-types";
} }
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
}
} import ietf-inet-types {
prefix "inet";
reference "RFC 6991: Common YANG Data Types";
}
import ietf-inet-types { import ietf-routing {
prefix "inet"; prefix "rt";
reference "RFC 6991: Common YANG Data Types"; // RFC Ed.: replace XXXX with actual RFC number of
} // draft-ietf-netmod-rfc8022bis and remove this note.
reference
"RFC XXXX: A YANG Data Model for Routing Management";
}
import ietf-routing { organization "IETF BFD Working Group";
prefix "rt";
// RFC Ed.: replace XXXX with actual RFC number of
// draft-ietf-netmod-rfc8022bis and remove this note.
reference
"RFC XXXX: A YANG Data Model for Routing Management";
}
organization "IETF BFD Working Group"; contact
"WG Web: <http://tools.ietf.org/wg/bfd>
WG List: <rtg-bfd@ietf.org>
contact Editors: Reshad Rahman (rrahman@cisco.com),
"WG Web: <http://tools.ietf.org/wg/bfd> Lianshu Zheng (vero.zheng@huawei.com),
WG List: <rtg-bfd@ietf.org> Mahesh Jethanandani (mjethanandani@gmail.com)";
Editors: Reshad Rahman (rrahman@cisco.com), description
Lianshu Zheng (vero.zheng@huawei.com), "This module contains the YANG definition for BFD IP multi-hop
Mahesh Jethanandani (mjethanandani@gmail.com)"; as per RFC 5883.
description Copyright (c) 2018 IETF Trust and the persons
"This module contains the YANG definition for BFD IP multi-hop identified as authors of the code. All rights reserved.
as per RFC 5883.
Copyright (c) 2018 IETF Trust and the persons Redistribution and use in source and binary forms, with or
identified as authors of the code. All rights reserved. without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
Redistribution and use in source and binary forms, with or This version of this YANG module is part of RFC XXXX; see
without modification, is permitted pursuant to, and subject the RFC itself for full legal notices.";
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see // RFC Ed.: replace XXXX with actual RFC number and remove this
the RFC itself for full legal notices."; // note
// RFC Ed.: replace XXXX with actual RFC number and remove this reference "RFC XXXX";
// note
reference "RFC XXXX"; revision 2018-03-03 {
description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD IP multihop.";
}
revision 2018-03-01 { /*
description "Initial revision."; * Augments
reference "RFC XXXX: A YANG data model for BFD IP multihop."; */
} augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for IP multihop.";
container ip-mh {
description "BFD IP multihop top level container.";
/* uses bfd-types:session-statistics-summary;
* Augments
*/
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for IP multihop.";
container ip-mh {
description "BFD IP multihop top level container.";
uses bfd-types:session-statistics-summary; container session-groups {
description
"BFD IP multi-hop session groups.";
list session-group {
key "source-addr dest-addr";
description
"Group of BFD IP multi-hop sessions (for ECMP). A " +
"group of sessions is between 1 source and 1 " +
"destination, each session has a different field " +
"in UDP/IP hdr for ECMP.";
list session-group { leaf source-addr {
key "source-addr dest-addr"; type inet:ip-address;
description description
"Group of BFD IP multi-hop sessions (for ECMP). A " + "Local IP address.";
"group of sessions is between 1 source and 1 " + }
"destination, each session has a different field " + leaf dest-addr {
"in UDP/IP hdr for ECMP."; type inet:ip-address;
description
"IP address of the peer.";
}
uses bfd-types:common-cfg-parms;
leaf source-addr { leaf tx-ttl {
type inet:ip-address; type bfd-types:hops;
description default 255;
"Local IP address."; description "Hop count of outgoing BFD control packets.";
} }
leaf dest-addr { leaf rx-ttl {
type inet:ip-address; type bfd-types:hops;
description mandatory true;
"IP address of the peer."; description
} "Minimum allowed hop count value for incoming BFD control
uses bfd-types:common-cfg-parms; packets. Control packets whose hop count is lower than
this value are dropped.";
}
list sessions {
config false;
description
"The multiple BFD sessions between a source and a " +
"destination.";
uses bfd-types:all-session;
}
}
}
}
}
leaf tx-ttl { /*
type bfd-types:hops; * Notifications
default 255; */
description "Hop count of outgoing BFD control packets."; notification multihop-notification {
} description
leaf rx-ttl { "Notification for BFD multi-hop session state change. An " +
type bfd-types:hops; "implementation may rate-limit notifications, e.g. when a" +
mandatory true; "session is continuously changing state.";
description
"Minimum allowed hop count value for incoming BFD control
packets. Control packets whose hop count is lower than this
value are dropped.";
}
list sessions {
config false;
description
"The multiple BFD sessions between a source and a " +
"destination.";
uses bfd-types:all-session;
}
}
}
}
/* uses bfd-types:notification-parms;
* Notifications }
*/
notification multihop-notification {
description
"Notification for BFD multi-hop session state change. An " +
"implementation may rate-limit notifications, e.g. when a" +
"session is continuously changing state.";
uses bfd-types:notification-parms; }
}
}
<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 This YANG module imports "interface-ref" from
[I-D.ietf-netmod-rfc7223bis]. [I-D.ietf-netmod-rfc7223bis].
<CODE BEGINS> file "ietf-bfd-lag@2018-03-01.yang" <CODE BEGINS> file "ietf-bfd-lag@2018-03-03.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 47, line 10 skipping to change at page 47, line 36
(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-01 { revision 2018-03-03 {
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 47, line 33 skipping to change at page 48, line 11
container micro-bfd-ipv4-session-statistics { container micro-bfd-ipv4-session-statistics {
description "Micro-BFD IPv4 session counters."; description "Micro-BFD IPv4 session counters.";
uses bfd-types:session-statistics-summary; uses bfd-types:session-statistics-summary;
} }
container micro-bfd-ipv6-session-statistics { container micro-bfd-ipv6-session-statistics {
description "Micro-BFD IPv6 session counters."; description "Micro-BFD IPv6 session counters.";
uses bfd-types:session-statistics-summary; uses bfd-types:session-statistics-summary;
} }
list sessions { container sessions {
key "lag-name"; description
description "A LAG interface on which BFD is running."; "BFD over LAG sessions";
leaf lag-name { list session {
type if:interface-ref ; key "lag-name";
description "Name of the LAG"; description "List of BFD over LAG sessions.";
} leaf lag-name {
leaf ipv4-dest-addr { type if:interface-ref ;
type inet:ipv4-address; description "Name of the LAG";
description }
"IPv4 address of the peer, for IPv4 micro-BFD."; leaf ipv4-dest-addr {
} type inet:ipv4-address;
leaf ipv6-dest-addr {
type inet:ipv6-address;
description
"IPv6 address of the peer, for IPv6 micro-BFD.";
}
uses bfd-types:common-cfg-parms;
leaf use-ipv4 {
type boolean;
description "Using IPv4 micro-BFD.";
}
leaf use-ipv6 {
type boolean;
description "Using IPv6 micro-BFD.";
}
list member-links {
key "member-link";
config false;
description
"Micro-BFD over LAG. This represents one member link.";
leaf member-link {
type if:interface-ref;
description description
"Member link on which micro-BFD is running."; "IPv4 address of the peer, for IPv4 micro-BFD.";
} }
container micro-bfd-ipv4 { leaf ipv6-dest-addr {
when "../../use-ipv4 = 'true'" { type inet:ipv6-address;
description "Needed only if IPv4 is used.";
}
description description
"Micro-BFD IPv4 session state on member link."; "IPv6 address of the peer, for IPv6 micro-BFD.";
uses bfd-types:all-session;
} }
container micro-bfd-ipv6 { uses bfd-types:common-cfg-parms;
when "../../use-ipv6 = 'true'" {
description "Needed only if IPv6 is used."; leaf use-ipv4 {
} type boolean;
description "Using IPv4 micro-BFD.";
}
leaf use-ipv6 {
type boolean;
description "Using IPv6 micro-BFD.";
}
list member-links {
key "member-link";
config false;
description description
"Micro-BFD IPv6 session state on member link."; "Micro-BFD over LAG. This represents one member link.";
uses bfd-types:all-session;
leaf member-link {
type if:interface-ref;
description
"Member link on which micro-BFD is running.";
}
container micro-bfd-ipv4 {
when "../../use-ipv4 = 'true'" {
description "Needed only if IPv4 is used.";
}
description
"Micro-BFD IPv4 session state on member link.";
uses bfd-types:all-session;
}
container micro-bfd-ipv6 {
when "../../use-ipv6 = 'true'" {
description "Needed only if IPv6 is used.";
}
description
"Micro-BFD IPv6 session state on member link.";
uses bfd-types:all-session;
}
} }
} }
} }
} }
} }
/* /*
* Notifications * Notifications
*/ */
notification lag-notification { notification lag-notification {
skipping to change at page 49, line 25 skipping to change at page 50, line 9
} }
} }
} }
<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]. This YANG module imports typedefs from [RFC6991].
<CODE BEGINS> file "ietf-bfd-mpls@2018-03-01.yang" <CODE BEGINS> file "ietf-bfd-mpls@2018-03-03.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 50, line 39 skipping to change at page 51, line 23
(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-01 { revision 2018-03-03 {
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 52, line 4 skipping to change at page 52, line 36
description "BFD augmentation for MPLS."; description "BFD augmentation for MPLS.";
container mpls { container mpls {
description "BFD MPLS top level container."; description "BFD MPLS top level container.";
uses bfd-types:session-statistics-summary; uses bfd-types:session-statistics-summary;
container egress { container egress {
description "Egress configuration."; description "Egress configuration.";
uses bfd-types:client-cfg-parms; uses bfd-types:client-cfg-parms;
uses bfd-types:auth-parms; uses bfd-types:auth-parms;
} }
list session-group { container session-groups {
key "mpls-fec";
description description
"Group of BFD MPLS sessions (for ECMP). A group of " + "BFD over MPLS session groups.";
"sessions is for 1 FEC, each session has a different " + list session-group {
"field in UDP/IP hdr for ECMP."; key "mpls-fec";
leaf mpls-fec { description
type inet:ip-prefix; "Group of BFD MPLS sessions (for ECMP). A group of " +
description "MPLS FEC."; "sessions is for 1 FEC, each session has a different " +
} "field in UDP/IP hdr for ECMP.";
leaf mpls-fec {
type inet:ip-prefix;
description "MPLS FEC.";
uses bfd-types:common-cfg-parms; }
list sessions { uses bfd-types:common-cfg-parms;
config false;
description
"The BFD sessions for an MPLS FEC. Local " +
"discriminator is unique for each session in the " +
"group.";
uses bfd-types:all-session;
uses bfd-mpls:mpls-dest-address; list sessions {
config false;
description
"The BFD sessions for an MPLS FEC. Local " +
"discriminator is unique for each session in the " +
"group.";
uses bfd-types:all-session;
uses bfd-mpls:mpls-dest-address;
}
} }
} }
} }
} }
/* /*
* Notifications * Notifications
*/ */
notification mpls-notification { notification mpls-notification {
description description
skipping to change at page 53, line 4 skipping to change at page 53, line 42
uses bfd-types:notification-parms; uses bfd-types:notification-parms;
leaf mpls-dest-address { leaf mpls-dest-address {
type inet:ip-address; type inet:ip-address;
description description
"Destination address as per RFC 5884. "Destination address as per RFC 5884.
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
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-01.yang" <CODE BEGINS> file "ietf-bfd-mpls-te@2018-03-03.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 {
prefix "bfd-types"; prefix "bfd-types";
skipping to change at page 54, line 30 skipping to change at page 55, line 20
(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-01 { revision 2018-03-03 {
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 56, line 21 skipping to change at page 57, line 10
The following is an example configuration for a BFD IP single-hop The following is an example configuration for a BFD IP single-hop
session. The desired transmit interval and the required receive session. The desired transmit interval and the required receive
interval are both set to 10ms. interval are both set to 10ms.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface> <interface>
<name>eth0</name> <name>eth0</name>
<type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type> <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
ianaift:ethernetCsmacd
</type>
</interface> </interface>
</interfaces> </interfaces>
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<control-plane-protocols> <control-plane-protocols>
<control-plane-protocol> <control-plane-protocol>
<type xmlns:bfd-types="urn:ietf:params:xml:ns:yang:ietf-bfd-types">bfd-types:bfdv1</type> <type xmlns:bfd-types=
"urn:ietf:params:xml:ns:yang:ietf-bfd-types">
bfd-types:bfdv1
</type>
<name>name:BFD</name> <name>name:BFD</name>
<bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd"> <bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd">
<ip-sh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> <ip-sh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh">
<sessions> <sessions>
<interface>eth0</interface> <session>
<dest-addr>2001:db8:0:113::101</dest-addr> <interface>eth0</interface>
<desired-min-tx-interval>10000</desired-min-tx-interval> <dest-addr>2001:db8:0:113::101</dest-addr>
<required-min-rx-interval>10000</required-min-rx-interval> <desired-min-tx-interval>10000</desired-min-tx-interval>
<required-min-rx-interval>
10000
</required-min-rx-interval>
</session>
</sessions> </sessions>
</ip-sh> </ip-sh>
</bfd> </bfd>
</control-plane-protocol> </control-plane-protocol>
</control-plane-protocols> </control-plane-protocols>
</routing> </routing>
</config> </config>
3.2. IP multihop 3.2. IP multihop
The following is an example configuration for a BFD IP multihop The following is an example configuration for a BFD IP multihop
session group. The desired transmit interval and the required session group. The desired transmit interval and the required
receive interval are both set to 150ms. receive interval are both set to 150ms.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<control-plane-protocols> <control-plane-protocols>
<control-plane-protocol> <control-plane-protocol>
<type xmlns:bfd-types="urn:ietf:params:xml:ns:yang:ietf-bfd-types">bfd-types:bfdv1</type> <type xmlns:bfd-types=
<name>name:BFD</name> "urn:ietf:params:xml:ns:yang:ietf-bfd-types">
<bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd"> bfd-types:bfdv1
<ip-mh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> </type>
<session-group> <name>name:BFD</name>
<source-addr>2001:db8:0:113::103</source-addr> <bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd">
<dest-addr>2001:db8:0:114::100</dest-addr> <ip-mh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh">
<desired-min-tx-interval>150000</desired-min-tx-interval> <session-groups>
<required-min-rx-interval>150000</required-min-rx-interval> <session-group>
<rx-ttl>240</rx-ttl> <source-addr>2001:db8:0:113::103</source-addr>
</session-group> <dest-addr>2001:db8:0:114::100</dest-addr>
</ip-mh> <desired-min-tx-interval>
</bfd> 150000
</control-plane-protocol> </desired-min-tx-interval>
</control-plane-protocols> <required-min-rx-interval>
</routing> 150000
</config> </required-min-rx-interval>
<rx-ttl>240</rx-ttl>
</session-group>
</session-groups>
</ip-mh>
</bfd>
</control-plane-protocol>
</control-plane-protocols>
</routing>
</config>
3.3. LAG
The following is an example of BFD configuration for a LAG session.
In this case, an interface named "Bundle-Ether1" of interface type
"ieee802eadLag" has a desired transmit and required receive interval
set to 10ms.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>Bundle-Ether1</name>
<type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
ianaift:ieee8023adLag
</type>
</interface>
</interfaces>
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<control-plane-protocols>
<control-plane-protocol>
<type xmlns:bfd-types=
"urn:ietf:params:xml:ns:yang:ietf-bfd-types">
bfd-types:bfdv1
</type>
<name>name:BFD</name>
<bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd">
<lag xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-lag">
<sessions>
<session>
<lag-name>Bundle-Ether1</lag-name>
<ipv6-dest-addr>2001:db8:112::16</ipv6-dest-addr>
<desired-min-tx-interval>
100000
</desired-min-tx-interval>
<required-min-rx-interval>
100000
</required-min-rx-interval>
<use-ipv6>true</use-ipv6>
</session>
</sessions>
</lag>
</bfd>
</control-plane-protocol>
</control-plane-protocols>
</routing>
</config>
3.4. MPLS
The following is an example of BFD configured for an MPLS LSP. In
this case, the desired transmit and required receive interval set to
250ms.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<control-plane-protocols>
<control-plane-protocol>
<type xmlns:bfd-types=
"urn:ietf:params:xml:ns:yang:ietf-bfd-types">
bfd-types:bfdv1
</type>
<name>name:BFD</name>
<bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd">
<mpls xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-mpls">
<session-groups>
<session-group>
<mpls-fec>2001:db8:114::/116</mpls-fec>
<desired-min-tx-interval>
250000
</desired-min-tx-interval>
<required-min-rx-interval>
250000
</required-min-rx-interval>
</session-group>
</session-groups>
</mpls>
</bfd>
</control-plane-protocol>
</control-plane-protocols>
</routing>
</config>
4. Security Considerations 4. Security Considerations
The YANG module specified in this document defines a schema for data The YANG module specified in this document defines a schema for data
that is designed to be accessed via network management protocols such that is designed to be accessed via network management protocols such
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS is HTTPS, and the mandatory-to-implement secure transport is TLS
[RFC5246]. [RFC5246].
skipping to change at page 62, line 28 skipping to change at page 65, line 37
rfc8022bis-11 (work in progress), January 2018. rfc8022bis-11 (work in progress), January 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-12 (work Tunnels and Interfaces", draft-ietf-teas-yang-te-12 (work
in progress), February 2018. in progress), February 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, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc2119>. 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, DOI 10.17487/RFC3688, January 2004, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc3688>. 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, DOI 10.17487/RFC5246, August 2008, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc5246>. 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, DOI 10.17487/RFC5586, June 2009, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc5586>. 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, DOI 10.17487/RFC5881, June 2010, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc5881>. 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, DOI 10.17487/RFC5882, June 2010, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc5882>. 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, DOI 10.17487/RFC5885, June 2010, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc5885>. 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, DOI 10.17487/RFC6536, March 2012, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc6536>. 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 64, line 11 skipping to change at page 67, line 21
[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, DOI 10.17487/RFC8177, June 2017, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc8177>. editor.org/info/rfc8177>.
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.
skipping to change at page 65, line 6 skipping to change at page 68, line 13
ni-model-10 (work in progress), February 2018. ni-model-10 (work in progress), February 2018.
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/rt:control-plane-proto augment /rt:routing/rt:control-plane-protocols
col/bfd:bfd/bfd-ip-sh:ip-sh/bfd-ip-sh:sessions: /rt:control-plane-protocol/bfd:bfd
/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";
skipping to change at page 66, line 15 skipping to change at page 69, 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-01 { revision 2018-03-03 {
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 67, line 21 skipping to change at page 70, 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 -09 and -10 B.1. Changes between versions -10 and -11
o Addressed comments from YANG DOctor review. o Added 2 examples.
o Added a container around some lists.
o Fixed some indentation nits.
B.2. Changes between versions -09 and -10
o Addressed comments from YANG Doctor review.
o Addressed comments from WGLC. o Addressed comments from WGLC.
B.2. Changes between versions -08 and -09 B.3. 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.3. Changes between versions -07 and -08 B.4. 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.4. Changes between versions -06 and -07 B.5. 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.5. Changes between versions -05 and -06 B.6. 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.6. Changes between versions -04 and -05 B.7. 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.7. Changes between versions -03 and -04 B.8. 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.8. Changes between versions -02 and -03 B.9. 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.9. Changes between versions -01 and -02 B.10. 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.10. Changes between versions -00 and -01 B.11. 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. 111 change blocks. 
578 lines changed or deleted 725 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/