draft-ietf-bfd-yang-13.txt   draft-ietf-bfd-yang-14.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 22, 2018 Huawei Technologies Expires: December 3, 2018 Huawei Technologies
M. Jethanandani, Ed. M. Jethanandani, Ed.
S. Pallagatti S. Pallagatti
G. Mirsky G. Mirsky
ZTE Corporation ZTE Corporation
March 21, 2018 June 1, 2018
YANG Data Model for Bidirectional Forwarding Detection (BFD) YANG Data Model for Bidirectional Forwarding Detection (BFD)
draft-ietf-bfd-yang-13 draft-ietf-bfd-yang-14
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
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 22, 2018. This Internet-Draft will expire on December 3, 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 (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 32 skipping to change at page 2, line 32
2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 8 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 8
2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 9 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 9
2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 9 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 9
2.2. Design of Operational State Model . . . . . . . . . . . . 9 2.2. Design of Operational State Model . . . . . . . . . . . . 9
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 . . . . . . . . . . . . . . 18
2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 19 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 20
2.11. Interaction with other YANG modules . . . . . . . . . . . 21 2.11. Interaction with other YANG modules . . . . . . . . . . . 22
2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 21 2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 22
2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 22 2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 22
2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 22 2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 23
2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 22 2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 23
2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 22 2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 23
2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 25 2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 26
2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 38 2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 39
2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 40 2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 40
2.16. BFD IP multihop YANG Module . . . . . . . . . . . . . . . 43 2.16. BFD IP multihop YANG Module . . . . . . . . . . . . . . . 44
2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 46 2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 47
2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 50 2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 51
2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 54 2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 55
3. Data Model examples . . . . . . . . . . . . . . . . . . . . . 57 3. Data Model examples . . . . . . . . . . . . . . . . . . . . . 58
3.1. IP single-hop . . . . . . . . . . . . . . . . . . . . . . 57 3.1. IP single-hop . . . . . . . . . . . . . . . . . . . . . . 58
3.2. IP multihop . . . . . . . . . . . . . . . . . . . . . . . 58 3.2. IP multihop . . . . . . . . . . . . . . . . . . . . . . . 59
3.3. LAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.3. LAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4. MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.4. MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4. Security Considerations . . . . . . . . . . . . . . . . . . . 61 4. Security Considerations . . . . . . . . . . . . . . . . . . . 61
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 64 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 64
5.1. IANA-Maintained iana-bfd-types module . . . . . . . . . . 65 5.1. IANA-Maintained iana-bfd-types module . . . . . . . . . . 65
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 65
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 66 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.1. Normative References . . . . . . . . . . . . . . . . . . 66 7.1. Normative References . . . . . . . . . . . . . . . . . . 66
7.2. Informative References . . . . . . . . . . . . . . . . . 68 7.2. Informative References . . . . . . . . . . . . . . . . . 68
Appendix A. Echo function configuration example . . . . . . . . 69 Appendix A. Echo function configuration example . . . . . . . . 69
A.1. Example YANG module for BFD echo function configuration . 69 A.1. Example YANG module for BFD echo function configuration . 69
Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 71 Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 71
B.1. Changes between versions -12 and -13 . . . . . . . . . . 71 B.1. Changes between versions -13 and -14 . . . . . . . . . . 71
B.2. Changes between versions -11 and -12 . . . . . . . . . . 71 B.2. Changes between versions -12 and -13 . . . . . . . . . . 71
B.3. Changes between versions -10 and -11 . . . . . . . . . . 71 B.3. Changes between versions -11 and -12 . . . . . . . . . . 71
B.4. Changes between versions -09 and -10 . . . . . . . . . . 71 B.4. Changes between versions -10 and -11 . . . . . . . . . . 71
B.5. Changes between versions -08 and -09 . . . . . . . . . . 72 B.5. Changes between versions -09 and -10 . . . . . . . . . . 72
B.6. Changes between versions -07 and -08 . . . . . . . . . . 72 B.6. Changes between versions -08 and -09 . . . . . . . . . . 72
B.7. Changes between versions -06 and -07 . . . . . . . . . . 72 B.7. Changes between versions -07 and -08 . . . . . . . . . . 72
B.8. Changes between versions -05 and -06 . . . . . . . . . . 72 B.8. Changes between versions -06 and -07 . . . . . . . . . . 72
B.9. Changes between versions -04 and -05 . . . . . . . . . . 72 B.9. Changes between versions -05 and -06 . . . . . . . . . . 72
B.10. Changes between versions -03 and -04 . . . . . . . . . . 73 B.10. Changes between versions -04 and -05 . . . . . . . . . . 73
B.11. Changes between versions -02 and -03 . . . . . . . . . . 73 B.11. Changes between versions -03 and -04 . . . . . . . . . . 73
B.12. Changes between versions -01 and -02 . . . . . . . . . . 73 B.12. Changes between versions -02 and -03 . . . . . . . . . . 73
B.13. Changes between versions -00 and -01 . . . . . . . . . . 73 B.13. Changes between versions -01 and -02 . . . . . . . . . . 73
B.14. Changes between versions -00 and -01 . . . . . . . . . . 73
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 73
1. Introduction 1. Introduction
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD and manage Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD
is a network protocol which is used for liveness detection of is a network protocol which is used for liveness detection of
arbitrary paths between systems. Some examples of different types of arbitrary paths between systems. Some examples of different types of
paths over which we have BFD: paths over which we have BFD:
skipping to change at page 10, line 36 skipping to change at page 10, line 36
2.5. BFD top level hierarchy 2.5. BFD top level hierarchy
At the "bfd" node under control-plane-protocol, there is no At the "bfd" node under control-plane-protocol, there is no
configuration data, only operational state data. The operational configuration data, only operational state data. The operational
state data consist of overall BFD session statistics, i.e. for BFD on state data consist of overall BFD session statistics, i.e. for BFD on
all types of forwarding paths. all types of forwarding paths.
module: ietf-bfd module: ietf-bfd
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw bfd +--rw bfd
+--ro summary +--ro summary
+--ro number-of-sessions? yang:gauge32 +--ro number-of-sessions? yang:gauge32
+--ro number-of-sessions-up? yang:gauge32 +--ro number-of-sessions-up? yang:gauge32
+--ro number-of-sessions-down? yang:gauge32 +--ro number-of-sessions-down? yang:gauge32
+--ro number-of-sessions-admin-down? yang:gauge32 +--ro number-of-sessions-admin-down? yang:gauge32
2.6. BFD IP single-hop hierarchy 2.6. BFD IP single-hop hierarchy
An "ip-sh" node is added under "bfd" node in control-plane-protocol. An "ip-sh" node is added under "bfd" node in control-plane-protocol.
The configuration and operational state data for each BFD IP single- The configuration and operational state data for each BFD IP single-
hop session is under this "ip-sh" node. hop session is under this "ip-sh" node.
module: ietf-bfd-ip-sh module: ietf-bfd-ip-sh
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--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
+--rw sessions | +--rw session* [interface dest-addr]
| +--rw session* [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-minimum-interval}?
| | +--:(single-interval) {single-minimum-interval}? | | +--rw min-interval? uint32
| | +--rw min-interval? uint32 | +--rw demand-enabled? boolean
| +--rw demand-enabled? boolean {demand-mode}? | | {demand-mode}?
| +--rw admin-down? boolean | +--rw admin-down? boolean
| +--rw authentication! {authentication}? | +--rw authentication! {authentication}?
| | +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref
| | +--rw meticulous? boolean | | +--rw meticulous? boolean
| +--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
| +--ro source-port? inet:port-number | | {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-time | +--ro session-statistics
| +--ro last-down-time? yang:date-and-time | +--ro create-time?
| +--ro last-up-time? yang:date-and-time | | yang:date-and-time
| +--ro down-count? yang:counter32 | +--ro last-down-time?
| +--ro admin-down-count? yang:counter32 | | yang:date-and-time
| +--ro receive-packet-count? yang:counter64 | +--ro last-up-time?
| +--ro send-packet-count? yang:counter64 | | yang:date-and-time
| +--ro receive-invalid-packet-count? yang:counter64 | +--ro down-count? yang:counter32
| +--ro send-failed-packet-count? yang:counter64 | +--ro admin-down-count? yang:counter32
+--rw interfaces* [interface] | +--ro receive-packet-count? yang:counter64
+--rw interface if:interface-ref | +--ro send-packet-count? yang:counter64
+--rw authentication! {authentication}? | +--ro receive-invalid-packet-count? yang:counter64
+--rw key-chain? kc:key-chain-ref | +--ro send-failed-packet-count? yang:counter64
+--rw meticulous? boolean +--rw interfaces* [interface]
+--rw interface if:interface-ref
+--rw authentication! {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
+--ro session-index? uint32 +--ro session-index? uint32
+--ro path-type? identityref +--ro path-type? identityref
+--ro interface? if:interface-ref +--ro interface? if:interface-ref
+--ro echo-enabled? boolean +--ro echo-enabled? boolean
2.7. BFD IP multihop hierarchy 2.7. BFD IP multihop hierarchy
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. address (ECMP), the local discriminator is used as key.
module: ietf-bfd-ip-mh module: ietf-bfd-ip-mh
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-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-groups +--rw session-groups
+--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-minimum-interval}? | +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32 | +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}? +--rw demand-enabled? boolean
+--rw admin-down? 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 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? +--ro session-statistics
| yang:date-and-time +--ro create-time?
+--ro last-down-time? | yang:date-and-time
| yang:date-and-time +--ro last-down-time?
+--ro last-up-time? | yang:date-and-time
| yang:date-and-time +--ro last-up-time?
+--ro down-count? yang:counter32 | yang:date-and-time
+--ro admin-down-count? yang:counter32 +--ro down-count?
+--ro receive-packet-count? yang:counter64 | yang:counter32
+--ro send-packet-count? yang:counter64 +--ro admin-down-count?
+--ro receive-invalid-packet-count? yang:counter64 | yang:counter32
+--ro send-failed-packet-count? yang:counter64 +--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: notifications:
+---n multihop-notification +---n multihop-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
2.8. BFD over LAG hierarchy 2.8. BFD over LAG hierarchy
A "lag" node is added under the "bfd" node in control-plane-protocol. A "lag" node is added under the "bfd" node in control-plane-protocol.
The configuration and operational state data for each BFD LAG session The configuration and operational state data for each BFD LAG session
is under this "lag" node. is under this "lag" node.
module: ietf-bfd-lag module: ietf-bfd-lag
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--rw lag +--rw lag
+--rw micro-bfd-ipv4-session-statistics +--rw micro-bfd-ipv4-session-statistics
| +--ro summary | +--ro summary
| +--ro number-of-sessions? yang:gauge32 | +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32 | +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32 | +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32 | +--ro number-of-sessions-admin-down? yang:gauge32
+--rw micro-bfd-ipv6-session-statistics +--rw micro-bfd-ipv6-session-statistics
| +--ro summary | +--ro summary
| +--ro number-of-sessions? yang:gauge32 | +--ro number-of-sessions? yang:gauge32
| +--ro number-of-sessions-up? yang:gauge32 | +--ro number-of-sessions-up? yang:gauge32
| +--ro number-of-sessions-down? yang:gauge32 | +--ro number-of-sessions-down? yang:gauge32
| +--ro number-of-sessions-admin-down? yang:gauge32 | +--ro number-of-sessions-admin-down? yang:gauge32
+--rw sessions +--rw sessions
+--rw session* [lag-name] +--rw session* [lag-name]
+--rw lag-name if:interface-ref +--rw lag-name if:interface-ref
+--rw ipv4-dest-addr? inet:ipv4-address +--rw ipv4-dest-addr?
+--rw ipv6-dest-addr? inet:ipv6-address | inet:ipv4-address
+--rw local-multiplier? multiplier +--rw ipv6-dest-addr?
| inet:ipv6-address
+--rw local-multiplier? multiplier
+--rw (interval-config-type)? +--rw (interval-config-type)?
| +--:(tx-rx-intervals) | +--:(tx-rx-intervals)
| | +--rw desired-min-tx-interval? uint32 | | +--rw desired-min-tx-interval? uint32
| | +--rw required-min-rx-interval? uint32 | | +--rw required-min-rx-interval? uint32
| +--:(single-interval) {single-minimum-interval}? | +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32 | +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}? +--rw demand-enabled? boolean
+--rw admin-down? boolean | {demand-mode}?
+--rw admin-down? boolean
+--rw authentication! {authentication}? +--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean | +--rw meticulous? boolean
+--rw use-ipv4? boolean +--rw use-ipv4? boolean
+--rw use-ipv6? boolean +--rw use-ipv6? boolean
+--ro member-links* [member-link] +--ro member-links* [member-link]
+--ro member-link if:interface-ref +--ro member-link if:interface-ref
+--ro micro-bfd-ipv4 +--ro micro-bfd-ipv4
| +--ro path-type? identityref | +--ro path-type? identityref
| +--ro ip-encapsulation? boolean | +--ro ip-encapsulation? boolean
| +--ro local-discriminator? discriminator | +--ro local-discriminator? discriminator
| +--ro remote-discriminator? discriminator | +--ro remote-discriminator? discriminator
| +--ro remote-multiplier? multiplier | +--ro remote-multiplier? multiplier
| +--ro demand-capability? boolean | +--ro demand-capability? boolean
| | {demand-mode}? | | {demand-mode}?
skipping to change at page 17, line 43 skipping to change at page 18, line 14
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 augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/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-groups +--rw session-groups
+--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-minimum-interval}? | +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32 | +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}? +--rw demand-enabled? boolean
+--rw admin-down? 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? +--ro session-statistics
| | yang:date-and-time | +--ro create-time?
| +--ro last-down-time? | | yang:date-and-time
| | yang:date-and-time | +--ro last-down-time?
| +--ro last-up-time? | | yang:date-and-time
| | yang:date-and-time | +--ro last-up-time?
| +--ro down-count? yang:counter32 | | yang:date-and-time
| +--ro admin-down-count? yang:counter32 | +--ro down-count?
| +--ro receive-packet-count? yang:counter64 | | yang:counter32
| +--ro send-packet-count? yang:counter64 | +--ro admin-down-count?
| +--ro receive-invalid-packet-count? yang:counter64 | | yang:counter32
| +--ro send-failed-packet-count? yang:counter64 | +--ro receive-packet-count?
+--ro mpls-dest-address? inet:ip-address | | yang:counter64
| +--ro send-packet-count?
| | yang:counter64
| +--ro receive-invalid-packet-count?
| | yang:counter64
| +--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
+--ro session-index? uint32 +--ro session-index? uint32
+--ro path-type? identityref +--ro path-type? identityref
+--ro mpls-dest-address? inet:ip-address +--ro mpls-dest-address? inet:ip-address
2.10. BFD over MPLS-TE hierarchy 2.10. BFD over MPLS-TE hierarchy
YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te] is YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te] is
augmented. BFD is configured per MPLS-TE tunnel, and BFD session augmented. BFD is configured per MPLS-TE tunnel, and BFD session
operational state data is provided per MPLS-TE LSP. operational state data is provided per MPLS-TE LSP.
module: ietf-bfd-mpls-te module: ietf-bfd-mpls-te
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd: /rt:control-plane-protocol/bfd:bfd:
+--rw mpls-te +--rw mpls-te
+--rw egress +--rw egress
| +--rw enable? boolean | +--rw enable? boolean
| +--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier
| +--rw (interval-config-type)? | +--rw (interval-config-type)?
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals)
| | | +--rw desired-min-tx-interval? uint32 | | | +--rw desired-min-tx-interval? uint32
| | | +--rw required-min-rx-interval? uint32 | | | +--rw required-min-rx-interval? uint32
| | +--:(single-interval) {single-minimum-interval}? | | +--:(single-interval) {single-minimum-interval}?
| | +--rw min-interval? uint32 | | +--rw min-interval? uint32
| +--rw authentication! {authentication}? | +--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean | +--rw meticulous? boolean
+--ro summary +--ro summary
+--ro number-of-sessions? yang:gauge32 +--ro number-of-sessions? yang:gauge32
+--ro number-of-sessions-up? yang:gauge32 +--ro number-of-sessions-up? yang:gauge32
+--ro number-of-sessions-down? yang:gauge32 +--ro number-of-sessions-down? yang:gauge32
+--ro number-of-sessions-admin-down? yang:gauge32 +--ro number-of-sessions-admin-down? yang:gauge32
augment /te:te/te:tunnels/te:tunnel: augment /te:te/te:tunnels/te:tunnel:
+--rw local-multiplier? multiplier +--rw local-multiplier? multiplier
+--rw (interval-config-type)? +--rw (interval-config-type)?
| +--:(tx-rx-intervals) | +--:(tx-rx-intervals)
| | +--rw desired-min-tx-interval? uint32 | | +--rw desired-min-tx-interval? uint32
| | +--rw required-min-rx-interval? uint32 | | +--rw required-min-rx-interval? uint32
| +--:(single-interval) {single-minimum-interval}? | +--:(single-interval) {single-minimum-interval}?
| +--rw min-interval? uint32 | +--rw min-interval? uint32
+--rw demand-enabled? boolean {demand-mode}? +--rw demand-enabled? boolean {demand-mode}?
+--rw admin-down? boolean +--rw admin-down? boolean
+--rw authentication! {authentication}? +--rw authentication! {authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw meticulous? boolean | +--rw meticulous? boolean
+--rw encap? identityref +--rw encap? identityref
augment /te:te/te:lsps-state/te:lsp: augment /te:te/te:lsps-state/te:lsp:
+--ro path-type? identityref +--ro path-type? identityref
+--ro ip-encapsulation? boolean +--ro ip-encapsulation? boolean
+--ro local-discriminator? discriminator +--ro local-discriminator? discriminator
+--ro remote-discriminator? discriminator +--ro remote-discriminator? discriminator
+--ro remote-multiplier? multiplier +--ro remote-multiplier? multiplier
+--ro demand-capability? boolean {demand-mode}? +--ro demand-capability? boolean {demand-mode}?
+--ro source-port? inet:port-number +--ro source-port? inet:port-number
+--ro dest-port? inet:port-number +--ro dest-port? inet:port-number
+--ro session-running +--ro session-running
skipping to change at page 22, line 47 skipping to change at page 23, 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@2018-03-21.yang" <CODE BEGINS> file "iana-bfd-types@2018-06-01.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 45 skipping to change at page 24, line 24
(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-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: IANA BFD YANG Data Types."; reference "RFC XXXX: IANA BFD YANG Data Types.";
} }
/* /*
* Type Definitions * Type Definitions
*/ */
typedef diagnostic { typedef diagnostic {
type enumeration { type enumeration {
enum none { enum none {
skipping to change at page 25, line 45 skipping to change at page 26, line 25
} }
} }
<CODE ENDS> <CODE ENDS>
2.13. BFD types YANG Module 2.13. BFD types YANG Module
This YANG module imports typedefs from [RFC6991], [RFC8177] and the This YANG module imports typedefs from [RFC6991], [RFC8177] and the
"control-plane-protocol" identity from [RFC8349]. "control-plane-protocol" identity from [RFC8349].
<CODE BEGINS> file "ietf-bfd-types@2018-03-21.yang" <CODE BEGINS> file "ietf-bfd-types@2018-06-01.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";
// RFC Ed.: replace occurences of XXXX with actual RFC number and
// remove this note
import iana-bfd-types { import iana-bfd-types {
prefix "iana-bfd-types"; prefix "iana-bfd-types";
reference "RFC XXXX: YANG Data Model for BFD";
} }
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";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
reference "RFC 6991: Common YANG Data Types"; reference "RFC 6991: Common YANG Data Types";
skipping to change at page 27, line 12 skipping to change at page 27, line 44
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.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: YANG Data Model for BFD"; reference "RFC XXXX: YANG Data Model for BFD";
} }
/* /*
* Feature definitions * Feature definitions
*/ */
feature single-minimum-interval { feature single-minimum-interval {
description description
"This feature indicates that the server supports configuration "This feature indicates that the server supports configuration
skipping to change at page 38, line 25 skipping to change at page 39, line 4
description "An index used to uniquely identify BFD sessions."; description "An index used to uniquely identify BFD sessions.";
} }
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 [RFC8349]. protocols/control-plane-protocol" from [RFC8349].
<CODE BEGINS> file "ietf-bfd@2018-03-21.yang" <CODE BEGINS> file "ietf-bfd@2018-06-01.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";
// RFC Ed.: replace occurences of XXXX with actual RFC number and
// remove this note
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note
reference "RFC XXXX: YANG Data Model for BFD"; reference "RFC XXXX: YANG Data Model for BFD";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
reference reference
"RFC 8349: A YANG Data Model for Routing Management "RFC 8349: A YANG Data Model for Routing Management
(NMDA version)"; (NMDA version)";
} }
skipping to change at page 39, line 37 skipping to change at page 40, 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.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: YANG Data Model for BFD"; reference "RFC XXXX: YANG Data Model for BFD";
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "derived-from-or-self(rt:type, 'bfd-types:bfdv1')" { when "derived-from-or-self(rt:type, 'bfd-types:bfdv1')" {
description description
"This augmentation is only valid for a control-plane protocol "This augmentation is only valid for a control-plane protocol
instance of BFD (type 'bfdv1')."; instance of BFD (type 'bfdv1').";
skipping to change at page 40, line 24 skipping to change at page 40, line 50
} }
<CODE ENDS> <CODE ENDS>
2.15. BFD IP single-hop YANG Module 2.15. BFD IP single-hop YANG Module
This YANG module imports "interface-ref" from [RFC8343], typedefs This YANG module imports "interface-ref" from [RFC8343], typedefs
from [RFC6991] and augments "/routing/control-plane-protocols/ from [RFC6991] and augments "/routing/control-plane-protocols/
control-plane-protocol" from [RFC8349]. control-plane-protocol" from [RFC8349].
<CODE BEGINS> file "ietf-bfd-ip-sh@2018-03-21.yang" <CODE BEGINS> file "ietf-bfd-ip-sh@2018-06-01.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";
// RFC Ed.: replace occurences of XXXX with actual RFC number and
// remove this note
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
reference "RFC XXXX: YANG Data Model for BFD";
} }
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
reference "RFC XXXX: YANG Data Model for BFD";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
skipping to change at page 41, line 38 skipping to change at page 42, 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.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD IP single-hop"; reference "RFC XXXX: A YANG data model for BFD IP single-hop";
} }
/* /*
* Augments * Augments
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" { + "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for IP single-hop"; description "BFD augmentation for IP single-hop";
skipping to change at page 43, line 25 skipping to change at page 44, 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] and augments This YANG module imports typedefs from [RFC6991] and augments
"/routing/control-plane-protocols/control-plane-protocol" from "/routing/control-plane-protocols/control-plane-protocol" from
[RFC8349]. [RFC8349].
<CODE BEGINS> file "ietf-bfd-ip-mh@2018-03-21.yang" <CODE BEGINS> file "ietf-bfd-ip-mh@2018-06-01.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";
// RFC Ed.: replace occurences of XXXX with actual RFC number and
// remove this note
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
reference "RFC XXXX: YANG Data Model for BFD";
} }
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
reference "RFC XXXX: YANG Data Model for BFD";
} }
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";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
reference reference
"RFC 8349: A YANG Data Model for Routing Management "RFC 8349: A YANG Data Model for Routing Management
(NMDA version)"; (NMDA version)";
skipping to change at page 44, line 43 skipping to change at page 45, line 25
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.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD IP multihop."; reference "RFC XXXX: A YANG data model for BFD IP multihop.";
} }
/* /*
* Augments * Augments
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" { + "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for IP multihop."; description "BFD augmentation for IP multihop.";
container ip-mh { container ip-mh {
description "BFD IP multihop top level container."; description "BFD IP multihop top level container.";
uses bfd-types:session-statistics-summary; uses bfd-types:session-statistics-summary;
skipping to change at page 46, line 36 skipping to change at page 47, line 17
} }
<CODE ENDS> <CODE ENDS>
2.17. BFD over LAG YANG Module 2.17. BFD over LAG YANG Module
This YANG module imports "interface-ref" from [RFC8343], typedefs This YANG module imports "interface-ref" from [RFC8343], typedefs
from [RFC6991] and augments "/routing/control-plane-protocols/ from [RFC6991] and augments "/routing/control-plane-protocols/
control-plane-protocol" from [RFC8349]. control-plane-protocol" from [RFC8349].
<CODE BEGINS> file "ietf-bfd-lag@2018-03-21.yang" <CODE BEGINS> file "ietf-bfd-lag@2018-06-01.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";
// RFC Ed.: replace occurences of XXXX with actual RFC number and
// remove this note
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
reference "RFC XXXX: YANG Data Model for BFD";
} }
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
reference "RFC XXXX: YANG Data Model for BFD";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
reference reference
"RFC 8349: A YANG Data Model for Routing Management "RFC 8343: A YANG Data Model for Interface Management";
(NMDA version)";
} }
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";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
// RFC Ed.: replace XXXX with actual RFC number of
// draft-ietf-netmod-rfc8022bis and remove this note.
reference reference
"RFC XXXX: A YANG Data Model for Routing Management"; "RFC 8349: A YANG Data Model for Routing Management
(NMDA version)";
} }
organization "IETF BFD Working Group"; organization "IETF BFD Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/bfd> "WG Web: <http://tools.ietf.org/wg/bfd>
WG List: <rtg-bfd@ietf.org> WG List: <rtg-bfd@ietf.org>
Editors: Reshad Rahman (rrahman@cisco.com), Editors: Reshad Rahman (rrahman@cisco.com),
Lianshu Zheng vero.zheng@huawei.com), Lianshu Zheng vero.zheng@huawei.com),
skipping to change at page 48, line 5 skipping to change at page 48, line 36
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.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD over LAG"; reference "RFC XXXX: A YANG data model for BFD over LAG";
} }
/* /*
* Augments * Augments
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" { + "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for LAG"; description "BFD augmentation for LAG";
skipping to change at page 50, line 22 skipping to change at page 51, line 4
type if:interface-ref; type if:interface-ref;
description "LAG interface name."; description "LAG interface name.";
} }
leaf member-link { leaf member-link {
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
This YANG module imports typedefs from [RFC6991] and augments This YANG module imports typedefs from [RFC6991] and augments
"/routing/control-plane-protocols/control-plane-protocol" from "/routing/control-plane-protocols/control-plane-protocol" from
[RFC8349]. [RFC8349].
<CODE BEGINS> file "ietf-bfd-mpls@2018-03-21.yang" <CODE BEGINS> file "ietf-bfd-mpls@2018-06-01.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";
// RFC Ed.: replace occurences of XXXX with actual RFC number and
// remove this note
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
reference "RFC XXXX: YANG Data Model for BFD";
} }
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
reference "RFC XXXX: YANG Data Model for BFD";
} }
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";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
reference reference
"RFC 8349: A YANG Data Model for Routing Management "RFC 8349: A YANG Data Model for Routing Management
(NMDA version)"; (NMDA version)";
} }
organization "IETF BFD Working Group"; organization "IETF BFD Working Group";
skipping to change at page 51, line 41 skipping to change at page 52, line 25
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.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note
reference "RFC XXXX"; reference "RFC XXXX";
revision 2018-03-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs";
} }
/* /*
* Identity definitions * Identity definitions
*/ */
identity encap-gach { identity encap-gach {
base bfd-types:encap-type; base bfd-types:encap-type;
description description
skipping to change at page 54, line 24 skipping to change at page 55, line 10
} }
} }
<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-21.yang" <CODE BEGINS> file "ietf-bfd-mpls-te@2018-06-01.yang"
module ietf-bfd-mpls-te {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; module ietf-bfd-mpls-te {
prefix "bfd-mpls-te"; yang-version 1.1;
import ietf-bfd-types { namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te";
prefix "bfd-types";
}
import ietf-bfd { prefix "bfd-mpls-te";
prefix "bfd";
}
import ietf-bfd-mpls { // RFC Ed.: replace occurences of XXXX with actual RFC number and
prefix "bfd-mpls"; // remove this note
}
import ietf-te { import ietf-bfd-types {
prefix "te"; prefix "bfd-types";
} reference "RFC XXXX: YANG Data Model for BFD";
}
import ietf-routing { import ietf-bfd {
prefix "rt"; prefix "bfd";
reference reference "RFC XXXX: YANG Data Model for BFD";
"RFC 8349: A YANG Data Model for Routing Management }
(NMDA version)";
}
organization "IETF BFD Working Group"; import ietf-bfd-mpls {
prefix "bfd-mpls";
reference "RFC XXXX: YANG Data Model for BFD";
}
contact import ietf-te {
"WG Web: <http://tools.ietf.org/wg/bfd> prefix "te";
WG List: <rtg-bfd@ietf.org> // RFC Ed.: replace YYYY with actual RFC number of
// draft-ietf-teas-yang-te and remove this note.
reference
"RFC YYYY: A YANG Data Model for Traffic Engineering Tunnels and
Interfaces";
}
Editors: Reshad Rahman (rrahman@cisco.com), import ietf-routing {
Lianshu Zheng (vero.zheng@huawei.com), prefix "rt";
Mahesh Jethanandani (mjethanandani@gmail.com)"; reference
"RFC 8349: A YANG Data Model for Routing Management
(NMDA version)";
}
organization "IETF BFD Working Group";
description contact
"This module contains the YANG definition for BFD parameters for "WG Web: <http://tools.ietf.org/wg/bfd>
MPLS Traffic Engineering as per RFC 5884. WG List: <rtg-bfd@ietf.org>
Copyright (c) 2018 IETF Trust and the persons Editors: Reshad Rahman (rrahman@cisco.com),
identified as authors of the code. All rights reserved. Lianshu Zheng (vero.zheng@huawei.com),
Mahesh Jethanandani (mjethanandani@gmail.com)";
Redistribution and use in source and binary forms, with or description
without modification, is permitted pursuant to, and subject "This module contains the YANG definition for BFD parameters for
to the license terms contained in, the Simplified BSD License MPLS Traffic Engineering as per RFC 5884.
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 Copyright (c) 2018 IETF Trust and the persons
the RFC itself for full legal notices."; identified as authors of the code. All rights reserved.
// RFC Ed.: replace XXXX with actual RFC number and remove this Redistribution and use in source and binary forms, with or
// note 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).
reference "RFC XXXX"; This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices.";
revision 2018-03-21 { reference "RFC XXXX";
description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD over MPLS-TE";
}
/* revision 2018-06-01 {
* Augments description "Initial revision.";
*/ reference "RFC XXXX: A YANG data model for BFD over MPLS-TE";
augment "/rt:routing/rt:control-plane-protocols/" }
+ "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for MPLS-TE.";
container mpls-te {
description "BFD MPLS-TE top level container.";
container egress { /*
description "Egress configuration."; * Augments
*/
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" {
description "BFD augmentation for MPLS-TE.";
container mpls-te {
description "BFD MPLS-TE top level container.";
uses bfd-types:client-cfg-parms; container egress {
description "Egress configuration.";
uses bfd-types:auth-parms; uses bfd-types:client-cfg-parms;
} uses bfd-types:auth-parms;
}
uses bfd-types:session-statistics-summary; uses bfd-types:session-statistics-summary;
} }
} }
augment "/te:te/te:tunnels/te:tunnel" { augment "/te:te/te:tunnels/te:tunnel" {
description "BFD configuration on MPLS-TE tunnel."; description "BFD configuration on MPLS-TE tunnel.";
uses bfd-types:common-cfg-parms; uses bfd-types:common-cfg-parms;
uses bfd-mpls:encap-cfg; uses bfd-mpls:encap-cfg;
} }
augment "/te:te/te:lsps-state/te:lsp" { augment "/te:te/te:lsps-state/te:lsp" {
when "/te:te/te:lsps-state/te:lsp/te:origin-type != 'transit'" { when "/te:te/te:lsps-state/te:lsp/te:origin-type != 'transit'" {
description "BFD information not needed at transit points."; description "BFD information not needed at transit points.";
} }
description "BFD state information on MPLS-TE LSP."; description "BFD state information on MPLS-TE LSP.";
uses bfd-types:all-session; uses bfd-types:all-session;
uses bfd-mpls:mpls-dest-address; uses bfd-mpls:mpls-dest-address;
} }
/* /*
* Notifications * Notifications
*/ */
notification mpls-te-notification { notification mpls-te-notification {
description description
"Notification for BFD over MPLS-TE session state change. " + "Notification for BFD over MPLS-TE session state change. " +
"An implementation may rate-limit notifications, e.g. when a" + "An 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;
uses bfd-mpls:mpls-dest-address; uses bfd-mpls:mpls-dest-address;
leaf tunnel-name { leaf tunnel-name {
type string; type string;
description "MPLS-TE tunnel on which BFD was running."; description "MPLS-TE tunnel on which BFD was running.";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
3. Data Model examples 3. Data Model examples
This section presents some simple and illustrative examples on how to This section presents some simple and illustrative examples on how to
configure BFD. configure BFD.
3.1. IP single-hop 3.1. IP single-hop
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
skipping to change at page 68, line 39 skipping to change at page 68, line 39
[I-D.ietf-lime-yang-connectionless-oam] [I-D.ietf-lime-yang-connectionless-oam]
Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan,
"Generic YANG Data Model for the Management of Operations, "Generic YANG Data Model for the Management of Operations,
Administration, and Maintenance (OAM) Protocols that use Administration, and Maintenance (OAM) Protocols that use
Connectionless Communications", draft-ietf-lime-yang- Connectionless Communications", draft-ietf-lime-yang-
connectionless-oam-18 (work in progress), November 2017. connectionless-oam-18 (work in progress), November 2017.
[I-D.ietf-rtgwg-lne-model] [I-D.ietf-rtgwg-lne-model]
Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X.
Liu, "YANG Model for Logical Network Elements", draft- Liu, "YANG Model for Logical Network Elements", draft-
ietf-rtgwg-lne-model-09 (work in progress), March 2018. ietf-rtgwg-lne-model-10 (work in progress), March 2018.
[I-D.ietf-rtgwg-ni-model] [I-D.ietf-rtgwg-ni-model]
Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X.
Liu, "YANG Model for Network Instances", draft-ietf-rtgwg- Liu, "YANG Model for Network Instances", draft-ietf-rtgwg-
ni-model-11 (work in progress), March 2018. ni-model-12 (work in progress), March 2018.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
Appendix A. Echo function configuration example Appendix A. Echo function configuration example
As mentioned in Section 2.1.2, the mechanism to start and stop the As mentioned in Section 2.1.2, the mechanism to start and stop the
echo function, as defined in [RFC5880] and [RFC5881], is echo function, as defined in [RFC5880] and [RFC5881], is
implementation specific. In this section we provide an example of implementation specific. In this section we provide an example of
how the echo function can be implemented via configuration. how the echo function can be implemented via configuration.
module: example-bfd-echo module: example-bfd-echo
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd /rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh
/bfd-ip-sh: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 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 70, line 22 skipping to change at page 70, line 23
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-21 { revision 2018-06-01 {
description "Initial revision."; description "Initial revision.";
reference reference
"RFC XXXX: A YANG data model example augmentation for BFD echo "RFC XXXX: A YANG data model example augmentation for BFD echo
function"; function";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note // note
/* /*
skipping to change at page 71, line 28 skipping to change at page 71, line 29
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 -12 and -13 B.1. Changes between versions -13 and -14
o Addressed missing/incorrect references in import statements.
B.2. Changes between versions -12 and -13
o Updated references for drafts which became RFCs recently. o Updated references for drafts which became RFCs recently.
B.2. Changes between versions -11 and -12 B.3. Changes between versions -11 and -12
o Addressed comments from YANG Doctor review of rev11. o Addressed comments from YANG Doctor review of rev11.
B.3. Changes between versions -10 and -11 B.4. Changes between versions -10 and -11
o Added 2 examples. o Added 2 examples.
o Added a container around some lists. o Added a container around some lists.
o Fixed some indentation nits. o Fixed some indentation nits.
B.4. Changes between versions -09 and -10 B.5. Changes between versions -09 and -10
o Addressed comments from YANG Doctor review. o Addressed comments from YANG Doctor review.
o Addressed comments from WGLC. o Addressed comments from WGLC.
B.5. Changes between versions -08 and -09 B.6. 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.6. Changes between versions -07 and -08 B.7. 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.7. Changes between versions -06 and -07 B.8. 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.8. Changes between versions -05 and -06 B.9. 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.9. Changes between versions -04 and -05 B.10. 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.10. Changes between versions -03 and -04 B.11. 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.11. Changes between versions -02 and -03 B.12. 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.12. Changes between versions -01 and -02 B.13. 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.13. Changes between versions -00 and -01 B.14. Changes between versions -00 and -01
o Remove BFD configuration parameters from BFD clients, all BFD o Remove BFD configuration parameters from BFD clients, all BFD
configuration parameters in BFD configuration parameters in BFD
o YANG module split in multiple YANG modules (one per type of o YANG module split in multiple YANG modules (one per type of
forwarding path) forwarding path)
o For BFD over MPLS-TE we augment MPLS-TE model o For BFD over MPLS-TE we augment MPLS-TE model
o For BFD authentication we now use YANG Data Model for Key Chains o For BFD authentication we now use YANG Data Model for Key Chains
 End of changes. 123 change blocks. 
455 lines changed or deleted 492 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/