draft-ietf-bfd-yang-01.txt   draft-ietf-bfd-yang-02.txt 
Network Working Group L. Zheng, Ed. Network Working Group L. Zheng, Ed.
Internet-Draft Huawei Technologies Internet-Draft Huawei Technologies
Intended status: Standards Track R. Rahman, Ed. Intended status: Standards Track R. Rahman, Ed.
Expires: August 20, 2016 Cisco Systems Expires: January 8, 2017 Cisco Systems
S. Pallagatti S. Pallagatti
M. Jethanandani M. Jethanandani
Cisco Systems Cisco Systems
G. Mirsky G. Mirsky
Ericsson Ericsson
February 17, 2016 July 7, 2016
Yang Data Model for Bidirectional Forwarding Detection (BFD) Yang Data Model for Bidirectional Forwarding Detection (BFD)
draft-ietf-bfd-yang-01.txt draft-ietf-bfd-yang-02.txt
Abstract Abstract
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage Bidirectional Forwarding Detection (BFD). and manage Bidirectional Forwarding Detection (BFD).
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
skipping to change at page 1, line 44 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 20, 2016. This Internet-Draft will expire on January 8, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 44 skipping to change at page 2, line 44
2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 8 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 8
2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 8 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 8
2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 9 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 9
2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11 2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11
2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13
2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 15 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 15
2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 17 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 17
2.11. Examples . . . . . . . . . . . . . . . . . . . . . . . . 19 2.11. Examples . . . . . . . . . . . . . . . . . . . . . . . . 19
2.12. Interaction with other YANG modules . . . . . . . . . . . 19 2.12. Interaction with other YANG modules . . . . . . . . . . . 19
2.13. BFD top-level Yang Module . . . . . . . . . . . . . . . . 19 2.13. BFD top-level Yang Module . . . . . . . . . . . . . . . . 19
2.14. BFD IP single-hop Yang Module . . . . . . . . . . . . . . 32 2.14. BFD IP single-hop Yang Module . . . . . . . . . . . . . . 31
2.15. BFD IP multi-hop Yang Module . . . . . . . . . . . . . . 35 2.15. BFD IP multi-hop Yang Module . . . . . . . . . . . . . . 34
2.16. BFD over LAG Yang Module . . . . . . . . . . . . . . . . 38 2.16. BFD over LAG Yang Module . . . . . . . . . . . . . . . . 37
2.17. BFD over MPLS Yang Module . . . . . . . . . . . . . . . . 41 2.17. BFD over MPLS Yang Module . . . . . . . . . . . . . . . . 41
2.18. BFD over MPLS-TEYang Module . . . . . . . . . . . . . . . 45 2.18. BFD over MPLS-TE Yang Module . . . . . . . . . . . . . . 44
2.19. Security Considerations . . . . . . . . . . . . . . . . . 47 2.19. Security Considerations . . . . . . . . . . . . . . . . . 46
2.20. IANA Considerations . . . . . . . . . . . . . . . . . . . 47 2.20. IANA Considerations . . . . . . . . . . . . . . . . . . . 47
2.21. Acknowledgements . . . . . . . . . . . . . . . . . . . . 47 2.21. Acknowledgements . . . . . . . . . . . . . . . . . . . . 47
3. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1. Normative References . . . . . . . . . . . . . . . . . . 47 3.1. Normative References . . . . . . . . . . . . . . . . . . 47
3.2. Informative References . . . . . . . . . . . . . . . . . 49 3.2. Informative References . . . . . . . . . . . . . . . . . 48
Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 49 Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 49
A.1. Changes between versions -00 and -01 . . . . . . . . . . 49 A.1. Changes between versions -01 and -02 . . . . . . . . . . 49
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 A.2. Changes between versions -00 and -01 . . . . . . . . . . 49
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49
1. Introduction 1. Introduction
YANG [RFC6020] is a data definition language that was introduced to YANG [RFC6020] is a data definition language that was introduced to
define the contents of a conceptual data store that allows networked define the contents of a conceptual data store that allows networked
devices to be managed using NETCONF [RFC6241]. YANG is proving devices to be managed using NETCONF [RFC6241]. YANG is proving
relevant beyond its initial confines, as bindings to other interfaces relevant beyond its initial confines, as bindings to other interfaces
(e.g RESTCONF [I-D.ietf-netconf-restconf]) and encodings other than (e.g RESTCONF [I-D.ietf-netconf-restconf]) and encodings other than
XML (e.g JSON) are being defined. Furthermore, YANG data models can XML (e.g JSON) are being defined. Furthermore, YANG data models can
be used as the basis of implementation for other interfaces, such as be used as the basis of implementation for other interfaces, such as
skipping to change at page 4, line 23 skipping to change at page 4, line 23
single-hop is in one YANG module and BFD for MPLS-TE is in another single-hop is in one YANG module and BFD for MPLS-TE is in another
YANG module. The main difference between these modules is how a BFD YANG module. The main difference between these modules is how a BFD
session is uniquely identified, i.e the key for the list containing session is uniquely identified, i.e the key for the list containing
the BFD sessions for that forwarding path. To avoid duplication of the BFD sessions for that forwarding path. To avoid duplication of
BFD definitions, we have common types and groupings which are used by BFD definitions, we have common types and groupings which are used by
all the modules. all the modules.
The new top-level container "bfd" is augmented by all the YANG The new top-level container "bfd" is augmented by all the YANG
modules for their respective specific information. modules for their respective specific information.
The "routing-protocol" data node in [I-D.ietf-netmod-routing-cfg] has The "network-instance" data node in [I-D.ietf-rtgwg-ni-model] has
been augmented with the "bfd" data node. Where appropriate for been augmented with the "bfd" data node. Where appropriate for
specific types of forwarding path, the respective BFD YANG modules specific types of forwarding path, the respective BFD YANG modules
follow a VRF-centric model by augmenting that new "bfd" node under follow a VRF-centric model by augmenting that new "bfd" node under
"routing-protocol". "network-instance".
Each node in every "bfd" sub-tree has a "config" node and an "oper" Each node in every "bfd" sub-tree has a "config" node and an "oper"
node. node.
2.1. Design of Configuration Model 2.1. Design of Configuration Model
The configuration model consists mainly of the parameters specified The configuration model consists mainly of the parameters specified
in [RFC5880]. Some examples are desired minimum transmit interval, in [RFC5880]. Some examples are desired minimum transmit interval,
required minimum receive interval, detection multiplier, etc required minimum receive interval, detection multiplier, etc
skipping to change at page 6, line 8 skipping to change at page 6, line 8
algotihms, key lifetime etc are all defined in the key-chain algotihms, key lifetime etc are all defined in the key-chain
model. model.
replay-protection replay-protection
This specifies meticulous v/s non-meticulous mode as per This specifies meticulous v/s non-meticulous mode as per
[RFC5880]. [RFC5880].
2.1.2. Single-hop IP 2.1.2. Single-hop IP
For single-hop IP, there is an augment of the "bfd" data node under For single-hop IP, there is an augment of the "bfd" data node under
"routing-protocol" in Section 2. We have a list of IP single-hop "network-instance" in Section 2. We have a list of IP single-hop
sessions where each session is uniquely identified by the interface sessions where each session is uniquely identified by the interface
and destination address pair. For the configuration parameters we and destination address pair. For the configuration parameters we
use what is defined in Section 2.1.1 use what is defined in Section 2.1.1
2.1.3. Multi-hop IP 2.1.3. Multi-hop IP
For multi-hop IP, there is an augment of the "bfd" data node under For multi-hop IP, there is an augment of the "bfd" data node under
"routing-protocol" in Section 2. "network-instance" in Section 2.
We have a list for BFD sessions over multi-hop IP. The key consists We have a list for BFD sessions over multi-hop IP. The key consists
of: of:
source address source address
Address belonging to the local system as per [RFC5883] Address belonging to the local system as per [RFC5883]
destination address destination address
Address belonging to the remote system as per [RFC5883] Address belonging to the remote system as per [RFC5883]
skipping to change at page 8, line 26 skipping to change at page 8, line 26
destination to test the various paths (ECMP) to the destination. destination to test the various paths (ECMP) to the destination.
Each of the BFD sessions on the same virtual path is uniquely Each of the BFD sessions on the same virtual path is uniquely
identified by the local discriminator. identified by the local discriminator.
2.3. Notifications 2.3. Notifications
This YANG model defines notifications to inform clients of BFD of This YANG model defines notifications to inform clients of BFD of
important events detected during the protocol operation. Pair of important events detected during the protocol operation. Pair of
local and remote discriminator identifies a BFD session on local local and remote discriminator identifies a BFD session on local
system. Notifications also give more important details about BFD system. Notifications also give more important details about BFD
sessions; e.g. new state, time in previous state, routing-instance sessions; e.g. new state, time in previous state, network-instance
and the reason that the BFD session state changed. The notifications and the reason that the BFD session state changed. The notifications
are defined for each type of forwarding path but use groupings for are defined for each type of forwarding path but use groupings for
common information. common information.
2.4. RPC Operations 2.4. RPC Operations
TBD TBD
2.5. BFD top level hierarchy 2.5. BFD top level hierarchy
At the top level there is no configuration data, only operational At the top level there is no configuration data, only operational
data. The operational data consist of overall BFD session statistics data. The operational data consist of overall BFD session statistics
globally and per routing-instance globally and per network-instance
module: ietf-bfd module: ietf-bfd
+--rw bfd! +--rw bfd!
+--rw config +--rw config
+--ro oper +--ro oper
+--ro bfd-session-statistics +--ro bfd-session-statistics
+--ro session-count? uint32 +--ro session-count? uint32
+--ro session-up-count? uint32 +--ro session-up-count? uint32
+--ro session-down-count? uint32 +--ro session-down-count? uint32
+--ro session-admin-down-count? uint32 +--ro session-admin-down-count? uint32
augment /rt:routing/rt:routing-instance augment /ni:network-instances/ni:network-instance:
/rt:routing-protocols/rt:routing-protocol:
+--rw bfd! +--rw bfd!
+--rw config +--rw config
+--ro oper +--ro oper
+--ro bfd-session-statistics +--ro bfd-session-statistics
+--ro session-count? uint32 +--ro session-count? uint32
+--ro session-up-count? uint32 +--ro session-up-count? uint32
+--ro session-down-count? uint32 +--ro session-down-count? uint32
+--ro session-admin-down-count? uint32 +--ro session-admin-down-count? uint32
2.6. BFD IP single-hop hierarchy 2.6. BFD IP single-hop hierarchy
The configuration and operational data for each BFD IP single-hop The configuration and operational data for each BFD IP single-hop
session is under "ip-sh" node under routing-instance. Overall BFD IP session is under "ip-sh" node under network-instance. Overall BFD IP
single-hop session statistics are available per routing-instance and single-hop session statistics are available per network-instance and
globally (for all routing instances). globally (for all network instances).
module: ietf-bfd-ip-sh module: ietf-bfd-ip-sh
augment /bfd:bfd: augment /bfd:bfd:
+--rw ip-sh +--rw ip-sh
+--rw config +--rw config
+--ro oper +--ro oper
+--ro bfd-session-statistics +--ro bfd-session-statistics
+--ro session-count? uint32 +--ro session-count? uint32
+--ro session-up-count? uint32 +--ro session-up-count? uint32
+--ro session-down-count? uint32 +--ro session-down-count? uint32
+--ro session-admin-down-count? uint32 +--ro session-admin-down-count? uint32
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /ni:network-instances/ni:network-instance/bfd:bfd:
/rt:routing-protocol/bfd:bfd:
+--rw ip-sh +--rw ip-sh
+--rw config +--rw config
| +--rw session-cfg | +--rw session-cfg
| +--rw sessions* [interface dest-addr] | +--rw sessions* [interface dest-addr]
| +--rw interface if:interface-ref | +--rw interface if:interface-ref
| +--rw dest-addr inet:ip-address | +--rw dest-addr inet:ip-address
| +--rw source-addr? inet:ip-address | +--rw source-addr? inet:ip-address
| +--rw local-multiplier? bfd-multiplier | +--rw local-multiplier? bfd-multiplier
| +--rw (interval-config-type)? | +--rw (interval-config-type)?
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals)
skipping to change at page 11, line 24 skipping to change at page 11, line 22
+--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 multi-hop hierarchy 2.7. BFD IP multi-hop hierarchy
The configuration and operational data for each BFD IP multi-hop The configuration and operational data for each BFD IP multi-hop
session is under "ip-mh" node under routing-instance. In the session is under "ip-mh" node under network-instance. In the
operational model we support multiple BFD multi-hop sessions per operational model we support multiple BFD multi-hop sessions per
remote address (ECMP), the local discriminator is used as key. remote address (ECMP), the local discriminator is used as key.
Overall BFD IP multi-hop session statistics are available per Overall BFD IP multi-hop session statistics are available per
routing-instance and globally (for all routing instances). network-instance and globally (for all network instances).
module: ietf-bfd-ip-mh module: ietf-bfd-ip-mh
augment /bfd:bfd: augment /bfd:bfd:
+--rw ip-mh +--rw ip-mh
+--rw config +--rw config
+--ro oper +--ro oper
+--ro bfd-session-statistics +--ro bfd-session-statistics
+--ro session-count? uint32 +--ro session-count? uint32
+--ro session-up-count? uint32 +--ro session-up-count? uint32
+--ro session-down-count? uint32 +--ro session-down-count? uint32
+--ro session-admin-down-count? uint32 +--ro session-admin-down-count? uint32
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /ni:network-instances/ni:network-instance/bfd:bfd:
/rt:routing-protocol/bfd:bfd:
+--rw ip-mh +--rw ip-mh
+--rw config +--rw config
| +--rw session-cfg | +--rw session-cfg
| +--rw sessions* [source-addr dest-addr] | +--rw sessions* [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? bfd-multiplier | +--rw local-multiplier? bfd-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
skipping to change at page 13, line 18 skipping to change at page 13, line 16
+---n bfd-multihop-notification +---n bfd-multihop-notification
+--ro local-discr? bfd-discriminator +--ro local-discr? bfd-discriminator
+--ro remote-discr? bfd-discriminator +--ro remote-discr? bfd-discriminator
+--ro new-state? bfd-state +--ro new-state? bfd-state
+--ro state-change-reason? string +--ro state-change-reason? string
+--ro time-in-previous-state? string +--ro time-in-previous-state? string
+--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 routing-instance? rt:routing-instance-ref +--ro network-instance? string
2.8. BFD over LAG hierarchy 2.8. BFD over LAG hierarchy
The configuration and operational data for each BFD LAG session is The configuration and operational data for each BFD LAG session is
under "lag" node. Overall BFD LAG session statistics are available under "lag" node. Overall BFD LAG session statistics are available
globally. globally.
module: ietf-bfd-lag module: ietf-bfd-lag
augment /bfd:bfd: augment /bfd:bfd:
+--rw lag +--rw lag
skipping to change at page 15, line 51 skipping to change at page 15, line 48
+--ro lag-name? if:interface-ref +--ro lag-name? if:interface-ref
+--ro member-link? if:interface-ref +--ro member-link? if:interface-ref
2.9. BFD over MPLS LSPs hierarchy 2.9. BFD over MPLS LSPs hierarchy
The configuration is per MPLS FEC under "mpls". In the operational The configuration is per MPLS FEC under "mpls". In the operational
model we support multiple BFD sessions per MPLS FEC (ECMP), the local model we support multiple BFD sessions per MPLS FEC (ECMP), the local
discriminator is used as key. discriminator is used as key.
module: ietf-bfd-mpls module: ietf-bfd-mpls
module: ietf-bfd-mpls
augment /bfd:bfd: augment /bfd:bfd:
+--rw mpls +--rw mpls
+--rw config +--rw config
| +--rw egress | +--rw egress
| +--rw local-multiplier? bfd-multiplier | +--rw local-multiplier? bfd-multiplier
| +--rw (interval-config-type)? | +--rw (interval-config-type)?
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals)
| | | +--rw desired-min-tx-interval uint32 | | | +--rw desired-min-tx-interval uint32
| | | +--rw required-min-rx-interval uint32 | | | +--rw required-min-rx-interval uint32
| | +--:(single-interval) | | +--:(single-interval)
| | +--rw min-interval uint32 | | +--rw min-interval uint32
skipping to change at page 16, line 24 skipping to change at page 16, line 21
| | +--rw min-interval uint32 | | +--rw min-interval uint32
| +--rw authentication-parms! {bfd-authentication}? | +--rw authentication-parms! {bfd-authentication}?
| +--rw key-chain? kc:key-chain-ref | +--rw key-chain? kc:key-chain-ref
| +--rw replay-protection? identityref | +--rw replay-protection? identityref
+--ro oper +--ro oper
+--ro bfd-session-statistics +--ro bfd-session-statistics
+--ro session-count? uint32 +--ro session-count? uint32
+--ro session-up-count? uint32 +--ro session-up-count? uint32
+--ro session-down-count? uint32 +--ro session-down-count? uint32
+--ro session-admin-down-count? uint32 +--ro session-admin-down-count? uint32
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /ni:network-instances/ni:network-instance/bfd:bfd:
/rt:routing-protocol/bfd:bfd:
+--rw mpls +--rw mpls
+--rw config +--rw config
| +--rw session-cfg | +--rw session-cfg
| +--rw sessions* [mpls-fec] | +--rw sessions* [mpls-fec]
| +--rw mpls-fec inet:ip-address | +--rw mpls-fec inet:ip-address
| +--rw local-multiplier? bfd-multiplier | +--rw local-multiplier? bfd-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
skipping to change at page 17, line 44 skipping to change at page 17, line 41
+---n bfd-mpls-notification +---n bfd-mpls-notification
+--ro local-discr? bfd-discriminator +--ro local-discr? bfd-discriminator
+--ro remote-discr? bfd-discriminator +--ro remote-discr? bfd-discriminator
+--ro new-state? bfd-state +--ro new-state? bfd-state
+--ro state-change-reason? string +--ro state-change-reason? string
+--ro time-in-previous-state? string +--ro time-in-previous-state? string
+--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 routing-instance? rt:routing-instance-ref +--ro network-instance? string
+--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
The MPLS-TE YANG model [I-D.ietf-teas-yang-te] is augmented. BFD is The MPLS-TE YANG model [I-D.ietf-teas-yang-te] is augmented. BFD is
configured per MPLS-TE tunnel, and BFD session operational data is configured per MPLS-TE tunnel, and BFD session operational data is
provided per MPLS-TE LSP. provided per MPLS-TE LSP.
module: ietf-bfd-mpls-te module: ietf-bfd-mpls-te
augment /bfd:bfd: augment /bfd:bfd:
+--rw mpls-te +--rw mpls-te
+--rw config +--rw config
| +--rw egress | +--rw egress
| +--rw local-multiplier? bfd-multiplier | +--rw local-multiplier? bfd-multiplier
| +--rw (interval-config-type)? | +--rw (interval-config-type)?
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals)
| | | +--rw desired-min-tx-interval uint32 | | | +--rw desired-min-tx-interval uint32
| | | +--rw required-min-rx-interval uint32 | | | +--rw required-min-rx-interval uint32
| | +--:(single-interval) | | +--:(single-interval)
| | +--rw min-interval uint32 | | +--rw min-interval uint32
skipping to change at page 19, line 44 skipping to change at page 19, line 42
+--ro tunnel-name? string +--ro tunnel-name? string
2.11. Examples 2.11. Examples
2.12. Interaction with other YANG modules 2.12. Interaction with other YANG modules
TBD. TBD.
2.13. BFD top-level Yang Module 2.13. BFD top-level Yang Module
<CODE BEGINS> file "ietf-bfd@2016-02-17.yang" <CODE BEGINS> file "ietf-bfd@2016-07-04.yang"
module ietf-bfd { module ietf-bfd {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd"; prefix "bfd";
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
skipping to change at page 20, line 19 skipping to change at page 20, line 16
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
import ietf-network-instance {
prefix "ni";
}
import ietf-key-chain { import ietf-key-chain {
prefix "kc"; prefix "kc";
} }
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>
WG Chair: Jeff Haas WG Chair: Jeff Haas
WG Chair: Reshad Rahman WG Chair: Reshad Rahman
Editor: Lianshu Zheng and Reshad Rahman"; Editor: Lianshu Zheng and Reshad Rahman";
description description
"This module contains the YANG definition for BFD parameters as "This module contains the YANG definition for BFD parameters as
per RFC5880."; per RFC5880.";
revision 2016-02-17 { revision 2016-07-04 {
description
"* Split in several modules
* This module contains common definitions and
summary information.";
reference "RFC XXXX: A YANG data model for BFD";
}
revision 2015-07-01 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD"; reference "RFC XXXX: A YANG data model for BFD";
} }
identity bfd { identity bfd {
base "rt:routing-protocol"; base "rt:routing-protocol";
description "BFD protocol"; description "BFD protocol";
} }
typedef bfd-discriminator { typedef bfd-discriminator {
type uint32 { type uint32 {
range 1..4294967295; range 1..4294967295;
} }
description "BFD discriminator"; description "BFD discriminator";
} }
typedef bfd-diagnostic { typedef bfd-diagnostic {
type enumeration { type enumeration {
enum none { enum none {
value 0; value 0;
description "None"; description "None";
} }
enum controlExpiry { enum controlExpiry {
value 1; value 1;
skipping to change at page 31, line 9 skipping to change at page 31, 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 bfd-path-type; base bfd-path-type;
} }
description "BFD path type"; description "BFD path type";
} }
} }
augment "/ni:network-instances/ni:network-instance" {
augment "/rt:routing/rt:routing-instance/rt:routing-protocols/"
+ "rt:routing-protocol" {
when "rt:type = 'bfd:bfd'" {
description
"This augment is only valid for a protocol instance
of BFD.";
}
description "BFD augmentation."; description "BFD augmentation.";
container bfd { container bfd {
presence "BFD"; presence "BFD";
description "BFD top level container"; description "BFD top level container";
container config { container config {
description "BFD configuration container"; description "BFD configuration container";
} }
container oper { container oper {
skipping to change at page 32, line 7 skipping to change at page 31, line 41
config "false"; config "false";
description "BFD operational container."; description "BFD operational container.";
uses bfd-session-statistics; uses bfd-session-statistics;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.14. BFD IP single-hop Yang Module 2.14. BFD IP single-hop Yang Module
<CODE BEGINS> file "ietf-bfd-ip-sh@2016-02-17.yang" <CODE BEGINS> file "ietf-bfd-ip-sh@2016-07-04.yang"
module ietf-bfd-ip-sh { module ietf-bfd-ip-sh {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-ip-sh"; prefix "bfd-ip-sh";
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-routing { import ietf-network-instance {
prefix "rt"; prefix "ni";
} }
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>
WG Chair: Jeff Haas WG Chair: Jeff Haas
WG Chair: Reshad Rahman WG Chair: Reshad Rahman
Editor: Lianshu Zheng and Reshad Rahman"; Editor: Lianshu Zheng and Reshad Rahman";
description description
"This module contains the YANG definition for BFD IP single-hop "This module contains the YANG definition for BFD IP single-hop
as per RFC5881."; as per RFC5881.";
revision 2016-02-17 { revision 2016-01-04 {
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";
} }
augment "/bfd:bfd" { augment "/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";
container config { container config {
description "BFD IP single-hop configuration container"; description "BFD IP single-hop configuration container";
} }
container oper { container oper {
config "false"; config "false";
description "BFD IP single-hop operational container"; description "BFD IP single-hop operational container";
uses bfd:bfd-session-statistics; uses bfd:bfd-session-statistics;
} }
} }
} }
augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" augment "/ni:network-instances/ni:network-instance/bfd:bfd" {
+ "rt:routing-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 container"; description "BFD IP single-hop container";
container config { container config {
description "BFD configuration"; description "BFD configuration";
container session-cfg { container session-cfg {
description "BFD IP single-hop session configuration"; description "BFD IP single-hop session configuration";
list sessions { list sessions {
key "interface dest-addr"; key "interface dest-addr";
description "List of IP single-hop sessions"; description "List of IP single-hop sessions";
skipping to change at page 35, line 7 skipping to change at page 34, line 41
type boolean; type boolean;
description "Was echo enabled for BFD"; description "Was echo enabled for BFD";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.15. BFD IP multi-hop Yang Module 2.15. BFD IP multi-hop Yang Module
<CODE BEGINS> file "ietf-bfd-ip-mh@2016-02-17.yang" <CODE BEGINS> file "ietf-bfd-ip-mh@2016-07-04.yang"
module ietf-bfd-ip-mh { module ietf-bfd-ip-mh {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-ip-mh"; prefix "bfd-ip-mh";
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
skipping to change at page 35, line 19 skipping to change at page 35, line 4
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-ip-mh"; prefix "bfd-ip-mh";
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-routing { import ietf-network-instance {
prefix "rt"; prefix "ni";
} }
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>
WG Chair: Jeff Haas WG Chair: Jeff Haas
WG Chair: Reshad Rahman WG Chair: Reshad Rahman
Editor: Lianshu Zheng and Reshad Rahman"; Editor: Lianshu Zheng and Reshad Rahman";
description description
"This module contains the YANG definition for BFD IP multi-hop "This module contains the YANG definition for BFD IP multi-hop
asper RFC5883."; asper RFC5883.";
revision 2016-02-17 { revision 2016-07-04 {
description "Initial revision."; description "Initial revision.";
reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; reference "RFC XXXX: A YANG data model for BFD IP multi-hop";
} }
augment "/bfd:bfd" { augment "/bfd:bfd" {
description "BFD augmentation for IP multi-hop"; description "BFD augmentation for IP multi-hop";
container ip-mh { container ip-mh {
description "BFD IP multi-hop top level container"; description "BFD IP multi-hop top level container";
container config { container config {
description "BFD IP multi-hop configuration container"; description "BFD IP multi-hop configuration container";
} }
container oper { container oper {
config "false"; config "false";
description "BFD IP multi-hop operational container"; description "BFD IP multi-hop operational container";
uses bfd:bfd-session-statistics; uses bfd:bfd-session-statistics;
} }
} }
} }
augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" augment "/ni:network-instances/ni:network-instance/bfd:bfd" {
+ "rt:routing-protocol/bfd:bfd" {
when "rt:type = 'bfd:bfd'" {
description
"This augment is only valid for a protocol instance
of BFD.";
}
description "BFD augmentation for IP multi-hop."; description "BFD augmentation for IP multi-hop.";
container ip-mh { container ip-mh {
description "BFD IP multi-hop container"; description "BFD IP multi-hop container";
container config { container config {
description "BFD configuration"; description "BFD configuration";
container session-cfg { container session-cfg {
description "BFD IP multi-hop session configuration"; description "BFD IP multi-hop session configuration";
list sessions { list sessions {
skipping to change at page 38, line 11 skipping to change at page 37, line 39
} }
notification bfd-multihop-notification { notification bfd-multihop-notification {
description description
"Notification for BFD multi-hop session state change. An " + "Notification for BFD multi-hop session state change. An " +
"implementation may rate-limit notifications, e.g. when a" + "implementation may rate-limit notifications, e.g. when a" +
"session is continuously changing state."; "session is continuously changing state.";
uses bfd:bfd-notification-parms; uses bfd:bfd-notification-parms;
leaf routing-instance { leaf network-instance {
type rt:routing-instance-ref; type string;
description "Routing instance"; description "Network instance";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.16. BFD over LAG Yang Module 2.16. BFD over LAG Yang Module
<CODE BEGINS> file "ietf-bfd-lag@2016-02-17.yang" <CODE BEGINS> file "ietf-bfd-lag@2016-02-17.yang"
module ietf-bfd-lag { module ietf-bfd-lag {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-lag"; prefix "bfd-lag";
skipping to change at page 41, line 22 skipping to change at page 41, line 4
leaf lag-name { leaf lag-name {
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.17. BFD over MPLS Yang Module 2.17. BFD over MPLS Yang Module
<CODE BEGINS> file "ietf-bfd-mpls@2016-02-17.yang" <CODE BEGINS> file "ietf-bfd-mpls@2016-07-04.yang"
module ietf-bfd-mpls { module ietf-bfd-mpls {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-mpls"; prefix "bfd-mpls";
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-routing { import ietf-network-instance {
prefix "rt"; prefix "ni";
} }
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>
WG Chair: Jeff Haas WG Chair: Jeff Haas
WG Chair: Reshad Rahman WG Chair: Reshad Rahman
Editor: Lianshu Zheng and Reshad Rahman"; Editor: Lianshu Zheng and Reshad Rahman";
description description
skipping to change at page 42, line 9 skipping to change at page 41, line 41
"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>
WG Chair: Jeff Haas WG Chair: Jeff Haas
WG Chair: Reshad Rahman WG Chair: Reshad Rahman
Editor: Lianshu Zheng and Reshad Rahman"; Editor: Lianshu Zheng and Reshad Rahman";
description description
"This module contains the YANG definition for BFD parameters for "This module contains the YANG definition for BFD parameters for
MPLS LSPs as per RFC5884."; MPLS LSPs as per RFC5884.";
revision 2016-02-17 { revision 2016-07-04 {
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 bfd-encap-gach { identity bfd-encap-gach {
base bfd:bfd-encap-type; base bfd:bfd-encap-type;
description description
"BFD with G-ACh encapsulation as per RFC5586."; "BFD with G-ACh encapsulation as per RFC5586.";
} }
skipping to change at page 43, line 27 skipping to change at page 43, line 11
} }
container oper { container oper {
config "false"; config "false";
description "BFD MPLS operational container"; description "BFD MPLS operational container";
uses bfd:bfd-session-statistics; uses bfd:bfd-session-statistics;
} }
} }
} }
augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" augment "/ni:network-instances/ni:network-instance/bfd:bfd" {
+ "rt:routing-protocol/bfd:bfd" {
description "BFD augmentation for MPLS."; description "BFD augmentation for MPLS.";
container mpls { container mpls {
description "BFD MPLS container"; description "BFD MPLS container";
container config { container config {
description "BFD MPLS configuration container"; description "BFD MPLS configuration container";
container session-cfg { container session-cfg {
description "BFD MPLS session configuration"; description "BFD MPLS session configuration";
skipping to change at page 44, line 42 skipping to change at page 44, line 25
} }
notification bfd-mpls-notification { notification bfd-mpls-notification {
description description
"Notification for BFD over MPLS FEC session state change. " + "Notification for BFD over MPLS FEC 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:bfd-notification-parms; uses bfd:bfd-notification-parms;
leaf routing-instance { leaf network-instance {
type rt:routing-instance-ref; type string;
description "Routing instance"; description "Network instance";
} }
leaf mpls-dest-address { leaf mpls-dest-address {
type inet:ip-address; type inet:ip-address;
description description
"Destination address as per RFC5884. "Destination address as per RFC5884.
Needed if IP encapsulation is used"; Needed if IP encapsulation is used";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.18. BFD over MPLS-TEYang Module 2.18. BFD over MPLS-TE Yang Module
<CODE BEGINS> file "ietf-bfd-mpls-te@2016-02-17.yang" <CODE BEGINS> file "ietf-bfd-mpls-te@2016-02-04.yang"
module ietf-bfd-mpls-te { module ietf-bfd-mpls-te {
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te";
// replace with IANA namespace when assigned // replace with IANA namespace when assigned
prefix "bfd-mpls-te"; prefix "bfd-mpls-te";
import ietf-bfd { import ietf-bfd {
prefix "bfd"; prefix "bfd";
} }
import ietf-bfd-mpls { import ietf-bfd-mpls {
prefix "bfd-mpls"; prefix "bfd-mpls";
} }
import ietf-te { import ietf-te {
prefix "te"; prefix "te";
} }
organization "IETF BFD Working Group"; organization "IETF BFD Working Group";
skipping to change at page 49, line 15 skipping to change at page 48, line 45
[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, <http://www.rfc-editor.org/info/rfc7130>. 2014, <http://www.rfc-editor.org/info/rfc7130>.
3.2. Informative References 3.2. Informative References
[I-D.ietf-netconf-restconf] [I-D.ietf-netconf-restconf]
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", draft-ietf-netconf-restconf-09 (work in Protocol", draft-ietf-netconf-restconf-14 (work in
progress), December 2015. progress), June 2016.
[I-D.ietf-netmod-routing-cfg] [I-D.ietf-netmod-routing-cfg]
Lhotka, L. and A. Lindem, "A YANG Data Model for Routing Lhotka, L. and A. Lindem, "A YANG Data Model for Routing
Management", draft-ietf-netmod-routing-cfg-20 (work in Management", draft-ietf-netmod-routing-cfg-22 (work in
progress), October 2015. progress), July 2016.
[I-D.ietf-rtgwg-ni-model]
Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic,
"Network Instance Model", draft-ietf-rtgwg-ni-model-00
(work in progress), June 2016.
[I-D.ietf-rtgwg-yang-key-chain] [I-D.ietf-rtgwg-yang-key-chain]
Lindem, A., Qu, Y., Yeung, D., Chen, H., Zhang, J., and Y. Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y.
Yang, "Key Chain YANG Data Model", draft-ietf-rtgwg-yang- Yang, "Routing Key Chain YANG Data Model", draft-ietf-
key-chain-01 (work in progress), February 2016. rtgwg-yang-key-chain-06 (work in progress), June 2016.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen,
X., Jones, R., and B. Wen, "A YANG Data Model for Traffic X., Jones, R., and B. Wen, "A YANG Data Model for Traffic
Engineering Tunnels and Interfaces", draft-ietf-teas-yang- Engineering Tunnels and Interfaces", draft-ietf-teas-yang-
te-02 (work in progress), October 2015. te-03 (work in progress), March 2016.
Appendix A. Change log Appendix A. Change log
RFC Editor: Remove this section upon publication as an RFC. RFC Editor: Remove this section upon publication as an RFC.
A.1. Changes between versions -00 and -01 A.1. Changes between versions -01 and -02
o Replace routing-instance, which has been removed from
[I-D.ietf-netmod-routing-cfg], with network-instance from
[I-D.ietf-rtgwg-ni-model]
A.2. 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 key-chain in o For BFD authentication we now use key-chain in
 End of changes. 63 change blocks. 
101 lines changed or deleted 90 lines changed or added

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