idnits 2.17.1 draft-ietf-bfd-yang-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 2750 has weird spacing: '...terface if:...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (January 11, 2018) is 2297 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC6241' is mentioned on line 2403, but not defined == Missing Reference: 'RFC6242' is mentioned on line 2405, but not defined == Missing Reference: 'RFC6536' is mentioned on line 2406, but not defined ** Obsolete undefined reference: RFC 6536 (Obsoleted by RFC 8341) ** Obsolete normative reference: RFC 7223 (Obsoleted by RFC 8343) ** Obsolete normative reference: RFC 7277 (Obsoleted by RFC 8344) ** Obsolete normative reference: RFC 8022 (Obsoleted by RFC 8349) == Outdated reference: A later version (-17) exists of draft-ietf-mpls-base-yang-05 == Outdated reference: A later version (-12) exists of draft-ietf-netmod-schema-mount-08 == Outdated reference: A later version (-10) exists of draft-ietf-rtgwg-lne-model-05 == Outdated reference: A later version (-12) exists of draft-ietf-rtgwg-ni-model-05 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-10 Summary: 4 errors (**), 0 flaws (~~), 11 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group R. Rahman, Ed. 3 Internet-Draft Cisco Systems 4 Intended status: Standards Track L. Zheng, Ed. 5 Expires: July 15, 2018 Huawei Technologies 6 M. Jethanandani, Ed. 7 Cisco Systems 8 S. Pallagatti 10 G. Mirsky 11 ZTE Corporation 12 January 11, 2018 14 YANG Data Model for Bidirectional Forwarding Detection (BFD) 15 draft-ietf-bfd-yang-08.txt 17 Abstract 19 This document defines a YANG data model that can be used to configure 20 and manage Bidirectional Forwarding Detection (BFD). 22 Requirements Language 24 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 25 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 26 document are to be interpreted as described in RFC 2119 [RFC2119]. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at http://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on July 15, 2018. 45 Copyright Notice 47 Copyright (c) 2018 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 63 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 64 2.1. Design of Configuration Model . . . . . . . . . . . . . . 5 65 2.1.1. Common BFD configuration parameters . . . . . . . . . 5 66 2.1.2. Single-hop IP . . . . . . . . . . . . . . . . . . . . 6 67 2.1.3. Multi-hop IP . . . . . . . . . . . . . . . . . . . . 7 68 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 7 69 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 8 70 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 8 71 2.2. Design of Operational Model . . . . . . . . . . . . . . . 8 72 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 9 73 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 9 74 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 9 75 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 10 76 2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11 77 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13 78 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 16 79 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 18 80 2.11. Interaction with other YANG modules . . . . . . . . . . . 20 81 2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 20 82 2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 20 83 2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 21 84 2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 21 85 2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 21 86 2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 24 87 2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 35 88 2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 36 89 2.16. BFD IP multi-hop YANG Module . . . . . . . . . . . . . . 39 90 2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 42 91 2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 45 92 2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 48 93 2.20. Security Considerations . . . . . . . . . . . . . . . . . 51 94 2.21. IANA Considerations . . . . . . . . . . . . . . . . . . . 51 95 2.21.1. IANA-Maintained iana-bfd-types module . . . . . . . 53 96 2.22. Acknowledgements . . . . . . . . . . . . . . . . . . . . 53 97 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 98 3.1. Normative References . . . . . . . . . . . . . . . . . . 53 99 3.2. Informative References . . . . . . . . . . . . . . . . . 54 100 Appendix A. Echo function configuration example . . . . . . . . 55 101 A.1. Example YANG module for BFD echo function . . . . . . . . 56 102 Appendix B. BFD client configuration example . . . . . . . . . . 58 103 B.1. Example YANG module for BFD client . . . . . . . . . . . 58 104 Appendix C. Change log . . . . . . . . . . . . . . . . . . . . . 60 105 C.1. Changes between versions -07 and -08 . . . . . . . . . . 60 106 C.2. Changes between versions -06 and -07 . . . . . . . . . . 61 107 C.3. Changes between versions -05 and -06 . . . . . . . . . . 61 108 C.4. Changes between versions -04 and -05 . . . . . . . . . . 61 109 C.5. Changes between versions -03 and -04 . . . . . . . . . . 61 110 C.6. Changes between versions -02 and -03 . . . . . . . . . . 61 111 C.7. Changes between versions -01 and -02 . . . . . . . . . . 61 112 C.8. Changes between versions -00 and -01 . . . . . . . . . . 62 113 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62 115 1. Introduction 117 This document defines a YANG data model that can be used to configure 118 and manage Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD 119 is a network protocol which is used for liveness detection of 120 arbitrary paths between systems. Some examples of different types of 121 paths over which we have BFD: 123 1) Two systems directly connected via IP. This is known as BFD over 124 single-hop IP, a.k.a. BFD for IPv4 and IPv6 [RFC5881] 126 2) Two systems connected via multiple hops as described in BFD for 127 Multiple Hops. [RFC5883] 129 3) Two systems connected via MPLS Label Switched Paths (LSPs) as 130 described in BFD for MPLS LSP [RFC5884] 132 4) Two systems connected via a Link Aggregation Group (LAG) interface 133 as described in BFD on LAG Interfaces [RFC7130] 135 5) Two systems connected via pseudowires (PWs), this is known as 136 Virtual Circuit Connectivity Verification (VCCV) as described in BFD 137 for PW VCCV [RFC5885]. This is not addressed in this document. 139 BFD typically does not operate on its own. Various control 140 protocols, also known as BFD clients, use the services provided by 141 BFD for their own operation as described in Generic Application of 142 BFD [RFC5882]. The obvious candidates which use BFD are those which 143 do not have "hellos" to detect failures, e.g. static routes, and 144 routing protocols whose "hellos" do not support sub-second failure 145 detection, e.g. OSPF and IS-IS. 147 2. Design of the Data Model 149 Since BFD is used for liveliness detection of various forwarding 150 paths, there is no uniform key to identify a BFD session. So the BFD 151 data model is split in multiple YANG modules where each module 152 corresponds to one type of forwarding path. For example, BFD for IP 153 single-hop is in one YANG module and BFD for MPLS-TE is in another 154 YANG module. The main difference between these modules is how a BFD 155 session is uniquely identified, i.e the key for the list containing 156 the BFD sessions for that forwarding path. To avoid duplication of 157 BFD definitions, we have common types and groupings which are used by 158 all the modules. 160 A new control-plane protocol "bfdv1" is defined and a "bfd" container 161 is created under control-plane-protocol as specified in A YANG Data 162 Model for Routing Management [RFC8022]. This new "bfd" node is 163 augmented by all the YANG modules for their respective specific 164 information. 166 BFD can operate in the following contexts: 168 1. Network devices as described in Network Device YANG 169 Organizational Models [I-D.ietf-rtgwg-device-model] 171 2. Logical Network Elements as described in YANG Logical Network 172 Element [I-D.ietf-rtgwg-lne-model] 174 3. Network instances as described in YANG Logical Network Element 175 [I-D.ietf-rtgwg-ni-model] 177 The approach taken is to do a schema-mount (see Schema Mount 178 [I-D.ietf-netmod-schema-mount]) of the BFD model in the appropriate 179 locations. For example, if an implementation supports BFD IP multi- 180 hop in network instances, the implementation would do schema-mount of 181 the BFD IP multi-hop model in a mount-point which resides in a 182 network instance. 184 The data models in this document strive to follow the "Network 185 Management Datastore Architecture" (NMDA) guidelines described in 186 [I-D.dsdt-nmda-guidelines]. This means that the data models do NOT 187 have separate top-level or sibling containers for configuration and 188 operational data. 190 2.1. Design of Configuration Model 192 The configuration model consists mainly of the parameters specified 193 in BFD [RFC5880]. Some examples are desired minimum transmit 194 interval, required minimum receive interval, detection multiplier, 195 etc 197 BFD clients are applications that use BFD for fast detection of 198 failures. Some implementations have BFD session configuration under 199 the BFD clients. For example, BFD session configuration under 200 routing applications such as OSPF, IS-IS, BGP etc. Other 201 implementations have BFD session configuration centralized under BFD, 202 i.e. outside the multiple BFD clients. 204 The BFD parameters of interest to a BFD client are mainly the 205 multiplier and interval(s) since those parameters impact the 206 convergence time of the BFD clients when a failure occurs. Other 207 parameters such as BFD authentication are not specific to the 208 requirements of the BFD client. Ideally all configuration should be 209 centralized under BFD. However, this is a problem for clients of BFD 210 which auto-discover their peers. For example, IGPs do not have the 211 peer address configured, instead the IGP is enabled on an interface 212 and the IGP peers are auto-discovered. So for an operator to 213 configure BFD to an IGP peer, the operator would first have to 214 determine the peer addresses. And when a new peer is discovered, BFD 215 configuration would need to be added. To avoid this issue, we define 216 grouping client-cfg-parms in Section 2.13 for BFD clients to 217 configure BFD: this allows BFD clients such as the IGPs to have 218 configuration (multiplier and intervals) for the BFD sessions they 219 need. The mechanism how the BFD sessions are created by the BFD 220 clients is outside the scope of this document. For BFD clients which 221 create BFD sessions via their own configuration, authentication 222 parameters (if required) are still specified in BFD. 224 2.1.1. Common BFD configuration parameters 226 The basic BFD configuration parameters are: 228 local-multiplier 229 This is the detection time multiplier as defined in BFD 230 [RFC5880]. 232 desired-min-tx-interval 233 This is the Desired Min TX Interval as defined in BFD 234 [RFC5880]. 236 required-min-rx-interval 237 This is the Required Min RX Interval as defined in BFD 238 [RFC5880]. 240 Although BFD [RFC5880] allows for different values for transmit and 241 receive intervals, some implementations allow users to specify just 242 one interval which is used for both transmit and receive intervals or 243 separate values for transmit and receive intervals. The BFD YANG 244 model supports this: there is a choice between "min-interval", used 245 for both transmit and receive intervals, and "desired-min-tx- 246 interval" and "required-min-rx-interval". This is supported via a 247 grouping which is used by the YANG modules for the various forwarding 248 paths. 250 For BFD authentication we have: 252 key-chain 253 This is a reference to key-chain defined in YANG Data Model 254 for Key Chains [RFC8177]. The keys, cryptographic 255 algorithms, key lifetime etc are all defined in the key-chain 256 model. 258 meticulous 259 This enables meticulous mode as per BFD [RFC5880]. 261 2.1.2. Single-hop IP 263 For single-hop IP, there is an augment of the "bfd" data node in 264 Section 2. The "ip-sh" node contains a list of IP single-hop 265 sessions where each session is uniquely identified by the interface 266 and destination address pair. For the configuration parameters we 267 use what is defined in Section 2.1.1. The "ip-sh" node also contains 268 a list of interfaces, this is used to specify authentication 269 parameters for BFD sessions which are created by BFD clients, see 270 Section 2.1. 272 [RFC5880] and [RFC5881] do not specify whether echo function is 273 continuous or on demand. Therefore the mechanism used to start and 274 stop echo function is implementation specific and should be done by 275 augmentation: 277 1) Configuration. This is suitable for continuous echo function. 278 An example is provided in Appendix A. 280 2) RPC. This is suitable for on-demand echo function. 282 2.1.3. Multi-hop IP 284 For multi-hop IP, there is an augment of the "bfd" data node in 285 Section 2. 287 Because of multiple paths, there could be multiple multi-hop IP 288 sessions between a source and a destination address. We identify 289 this as a "session-group". The key for each "session-group" consists 290 of: 292 source address 293 Address belonging to the local system as per BFD for Multiple 294 Hops [RFC5883] 296 destination address 297 Address belonging to the remote system as per BFD for 298 Multiple Hops [RFC5883] 300 For the configuration parameters we use what is defined in 301 Section 2.1.1 303 Here are some extra parameters: 305 tx-ttl 306 TTL of outgoing BFD control packets. 308 rx-ttl 309 Minimum TTL of incoming BFD control packets. 311 2.1.4. MPLS Traffic Engineering Tunnels 313 For MPLS-TE tunnels, BFD is configured under the MPLS-TE tunnel since 314 the desired failure detection parameters is a property of the MPLS-TE 315 tunnel. This is achieved by augmenting the MPLS-TE data model in 316 YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te]. For BFD 317 parameters which are specific to the TE application, e.g. whether to 318 tear down the tunnel in the event of a BFD session failure, these 319 parameters will be defined in the YANG model of the MPLS-TE 320 application. 322 On top of the usual BFD parameters, we have the following per MPLS-TE 323 tunnel: 325 encap 326 Encapsulation for the BFD packets: choice between IP, G-ACh 327 and IP with G-ACh as per MPLS Generic Associated Channel 328 [RFC5586] 330 For general MPLS-TE data, "mpls-te" data node is added under the 331 "bfd" node in Section 2. Since some MPLS-TE tunnels are uni- 332 directional there is no MPLS-TE configuration for these tunnels on 333 the egress node (note that this does not apply to bi-directional 334 MPLS-TP tunnels). The BFD parameters for the egress node are added 335 under "mpls-te". 337 2.1.5. MPLS Label Switched Paths 339 Here we address MPLS LSPs whose FEC is an IP address. The "bfd" node 340 in Section 2 is augmented with "mpls" which contains a list of 341 sessions uniquely identified by an IP prefix. Because of multiple 342 paths, there could be multiple MPLS sessions to an MPLS FEC. We 343 identify this as a "session-group". 345 Since these LSPs are uni-directional there is no LSP configuration on 346 the egress node. 348 The BFD parameters for the egress node are added under "mpls". 350 2.1.6. Link Aggregation Groups 352 Per BFD on LAG Interfaces [RFC7130], configuring BFD on LAG consists 353 of having micro-BFD sessions on each LAG member link. Since the BFD 354 parameters are an attribute of the LAG, they should be under the LAG. 355 However there is no LAG YANG model which we can augment. So a "lag" 356 data node is added to the "bfd" node in Section 2, the configuration 357 is per-LAG: we have a list of LAGs. The destination IP address of 358 the micro-BFD sessions is configured per-LAG and per address-family 359 (IPv4 and IPv6) 361 2.2. Design of Operational Model 363 The operational model contains both the overall statistics of BFD 364 sessions running on the device and the per session operational 365 information. 367 The overall statistics of BFD sessions consist of number of BFD 368 sessions, number of BFD sessions up etc. This information is 369 available globally (i.e. for all BFD sessions) under the "bfd" node 370 in Section 2 and also per type of forwarding path. 372 For each BFD session, mainly three categories of operational items 373 are shown. The fundamental information of a BFD session such as the 374 local discriminator, remote discriminator and the capability of 375 supporting demand detect mode are shown in the first category. The 376 second category includes a BFD session running information, e.g. the 377 remote BFD state and the diagnostic code received. Another example 378 is the actual transmit interval between the control packets, which 379 may be different from the desired minimum transmit interval 380 configured, is shown in this category. Similar examples are actual 381 received interval between the control packets and the actual transmit 382 interval between the echo packets. The third category contains the 383 detailed statistics of the session, e.g. when the session 384 transitioned up/down and how long it has been in that state. 386 For some path types, there may be more than 1 session on the virtual 387 path to the destination. For example, with IP multi-hop and MPLS 388 LSPs, there could be multiple BFD sessions from the source to the 389 same destination to test the various paths (ECMP) to the destination. 390 This is represented by having multiple "sessions" under each 391 "session-group". 393 2.3. Notifications 395 This YANG model defines notifications to inform clients of BFD of 396 important events detected during the protocol operation. Pair of 397 local and remote discriminator identifies a BFD session on local 398 system. Notifications also give more important details about BFD 399 sessions; e.g. new state, time in previous state, network-instance 400 and the reason that the BFD session state changed. The notifications 401 are defined for each type of forwarding path but use groupings for 402 common information. 404 2.4. RPC Operations 406 None. 408 2.5. BFD top level hierarchy 410 At the "bfd" node under control-plane-protocol, there is no 411 configuration data, only operational data. The operational data 412 consist of overall BFD session statistics, i.e. for BFD on all types 413 of forwarding paths. The "bfd" node under control-plane-protocol can 414 be used in a network device (top-level), or mounted in an LNE or in a 415 network instance. 417 module: ietf-bfd 418 augment /rt:routing/rt:control-plane-protocols 419 /rt:control-plane-protocol: 420 +--rw bfd 421 +--ro session-statistics 422 +--ro session-count? uint32 423 +--ro session-up-count? uint32 424 +--ro session-down-count? uint32 425 +--ro session-admin-down-count? uint32 427 2.6. BFD IP single-hop hierarchy 429 An "ip-sh" node is added under "bfd" node in control-plane-protocol. 430 The configuration and operational data for each BFD IP single-hop 431 session is under this "ip-sh" node. The "ip-sh" node can be used in 432 a network device (top-level), or mounted in an LNE or in a network 433 instance. 435 module: ietf-bfd-ip-sh 436 augment /rt:routing/rt:control-plane-protocols 437 /rt:control-plane-protocol/bfd:bfd: 438 +--rw ip-sh 439 +--ro session-statistics 440 | +--ro session-count? uint32 441 | +--ro session-up-count? uint32 442 | +--ro session-down-count? uint32 443 | +--ro session-admin-down-count? uint32 444 +--rw sessions* [interface dest-addr] 445 | +--rw interface if:interface-ref 446 | +--rw dest-addr inet:ip-address 447 | +--rw source-addr? inet:ip-address 448 | +--rw local-multiplier? multiplier 449 | +--rw (interval-config-type)? 450 | | +--:(tx-rx-intervals) 451 | | | +--rw desired-min-tx-interval? uint32 452 | | | +--rw required-min-rx-interval? uint32 453 | | +--:(single-interval) 454 | | +--rw min-interval? uint32 455 | +--rw demand-enabled? boolean {demand-mode}? 456 | +--rw admin-down? boolean 457 | +--rw authentication-parms! {authentication}? 458 | | +--rw key-chain? kc:key-chain-ref 459 | | +--rw meticulous? boolean 460 | +--ro path-type? identityref 461 | +--ro ip-encapsulation? boolean 462 | +--ro local-discriminator? discriminator 463 | +--ro remote-discriminator? discriminator 464 | +--ro remote-multiplier? multiplier 465 | +--ro demand-capability? boolean {demand-mode}? 466 | +--ro source-port? inet:port-number 467 | +--ro dest-port? inet:port-number 468 | +--ro session-running 469 | | +--ro session-index? uint32 470 | | +--ro local-state? state 471 | | +--ro remote-state? state 472 | | +--ro local-diagnostic? 473 | | | iana-bfd-types:diagnostic 474 | | +--ro remote-diagnostic? 475 | | | iana-bfd-types:diagnostic 476 | | +--ro remote-authenticated? boolean 477 | | +--ro remote-authentication-type? iana-bfd-types:auth-ty 478 pe 479 | | | {authentication}? 480 | | +--ro detection-mode? enumeration 481 | | +--ro negotiated-tx-interval? uint32 482 | | +--ro negotiated-rx-interval? uint32 483 | | +--ro detection-time? uint32 484 | | +--ro echo-tx-interval-in-use? uint32 {echo-mode}? 485 | +--ro sesssion-statistics 486 | +--ro create-time? yang:date-and-time 487 | +--ro last-down-time? yang:date-and-time 488 | +--ro last-up-time? yang:date-and-time 489 | +--ro down-count? uint32 490 | +--ro admin-down-count? uint32 491 | +--ro receive-packet-count? uint64 492 | +--ro send-packet-count? uint64 493 | +--ro receive-bad-packet? uint64 494 | +--ro send-failed-packet? uint64 495 +--rw interfaces* [interface] 496 +--rw interface if:interface-ref 497 +--rw authentication-parms! {authentication}? 498 +--rw key-chain? kc:key-chain-ref 499 +--rw meticulous? boolean 501 notifications: 502 +---n singlehop-notification 503 +--ro local-discr? discriminator 504 +--ro remote-discr? discriminator 505 +--ro new-state? state 506 +--ro state-change-reason? iana-bfd-types:diagnostic 507 +--ro time-of-last-state-change? yang:date-and-time 508 +--ro dest-addr? inet:ip-address 509 +--ro source-addr? inet:ip-address 510 +--ro session-index? uint32 511 +--ro path-type? identityref 512 +--ro interface? if:interface-ref 513 +--ro echo-enabled? boolean 515 2.7. BFD IP multi-hop hierarchy 517 An "ip-mh" node is added under the "bfd" node in cntrol-plane- 518 protocol. The configuration and operational data for each BFD IP 519 multi-hop session is under this "ip-mh" node. In the operational 520 model we support multiple BFD multi-hop sessions per remote address 521 (ECMP), the local discriminator is used as key. The "ip-mh" node can 522 be used in a network device (top-level), or mounted in an LNE or in a 523 network instance. 525 module: ietf-bfd-ip-mh 526 augment /rt:routing/rt:control-plane-protocols 527 /rt:control-plane-protocol/bfd:bfd: 528 +--rw ip-mh 529 +--ro session-statistics 530 | +--ro session-count? uint32 531 | +--ro session-up-count? uint32 532 | +--ro session-down-count? uint32 533 | +--ro session-admin-down-count? uint32 534 +--rw session-group* [source-addr dest-addr] 535 +--rw source-addr inet:ip-address 536 +--rw dest-addr inet:ip-address 537 +--rw local-multiplier? multiplier 538 +--rw (interval-config-type)? 539 | +--:(tx-rx-intervals) 540 | | +--rw desired-min-tx-interval? uint32 541 | | +--rw required-min-rx-interval? uint32 542 | +--:(single-interval) 543 | +--rw min-interval? uint32 544 +--rw demand-enabled? boolean {demand-mode}? 545 +--rw admin-down? boolean 546 +--rw authentication-parms! {authentication}? 547 | +--rw key-chain? kc:key-chain-ref 548 | +--rw meticulous? boolean 549 +--rw tx-ttl? bfd-types:hops 550 +--rw rx-ttl bfd-types:hops 551 +--ro sessions* 552 +--ro path-type? identityref 553 +--ro ip-encapsulation? boolean 554 +--ro local-discriminator? discriminator 555 +--ro remote-discriminator? discriminator 556 +--ro remote-multiplier? multiplier 557 +--ro demand-capability? boolean {demand-mode}? 558 +--ro source-port? inet:port-number 559 +--ro dest-port? inet:port-number 560 +--ro session-running 561 | +--ro session-index? uint32 562 | +--ro local-state? state 563 | +--ro remote-state? state 564 | +--ro local-diagnostic? 565 | | iana-bfd-types:diagnostic 566 | +--ro remote-diagnostic? 567 | | iana-bfd-types:diagnostic 568 | +--ro remote-authenticated? boolean 569 | +--ro remote-authentication-type? 570 | | iana-bfd-types:auth-type {authentication}? 571 | +--ro detection-mode? enumeration 572 | +--ro negotiated-tx-interval? uint32 573 | +--ro negotiated-rx-interval? uint32 574 | +--ro detection-time? uint32 575 | +--ro echo-tx-interval-in-use? uint32 576 | {echo-mode}? 577 +--ro sesssion-statistics 578 +--ro create-time? yang:date-and-time 579 +--ro last-down-time? yang:date-and-time 580 +--ro last-up-time? yang:date-and-time 581 +--ro down-count? uint32 582 +--ro admin-down-count? uint32 583 +--ro receive-packet-count? uint64 584 +--ro send-packet-count? uint64 585 +--ro receive-bad-packet? uint64 586 +--ro send-failed-packet? uint64 588 notifications: 589 +---n multihop-notification 590 +--ro local-discr? discriminator 591 +--ro remote-discr? discriminator 592 +--ro new-state? state 593 +--ro state-change-reason? iana-bfd-types:diagnostic 594 +--ro time-of-last-state-change? yang:date-and-time 595 +--ro dest-addr? inet:ip-address 596 +--ro source-addr? inet:ip-address 597 +--ro session-index? uint32 598 +--ro path-type? identityref 600 2.8. BFD over LAG hierarchy 602 A "lag" node is added under the "bfd" node in control-plane-protocol. 603 The configuration and operational data for each BFD LAG session is 604 under this "lag" node. The "lag" node can be used in a network 605 device (top-level), or mounted in an LNE or in a network instance. 607 module: ietf-bfd-lag 608 augment /rt:routing/rt:control-plane-protocols 609 /rt:control-plane-protocol/bfd:bfd: 610 +--rw lag 611 +--rw micro-bfd-ipv4-session-statistics 612 | +--ro session-statistics 613 | +--ro session-count? uint32 614 | +--ro session-up-count? uint32 615 | +--ro session-down-count? uint32 616 | +--ro session-admin-down-count? uint32 617 +--rw micro-bfd-ipv6-session-statistics 618 | +--ro session-statistics 619 | +--ro session-count? uint32 620 | +--ro session-up-count? uint32 621 | +--ro session-down-count? uint32 622 | +--ro session-admin-down-count? uint32 623 +--rw sessions* [lag-name] 624 +--rw lag-name if:interface-ref 625 +--rw ipv4-dest-addr? inet:ipv4-address 626 +--rw ipv6-dest-addr? inet:ipv6-address 627 +--rw local-multiplier? multiplier 628 +--rw (interval-config-type)? 629 | +--:(tx-rx-intervals) 630 | | +--rw desired-min-tx-interval? uint32 631 | | +--rw required-min-rx-interval? uint32 632 | +--:(single-interval) 633 | +--rw min-interval? uint32 634 +--rw demand-enabled? boolean {demand-mode}? 635 +--rw admin-down? boolean 636 +--rw authentication-parms! {authentication}? 637 | +--rw key-chain? kc:key-chain-ref 638 | +--rw meticulous? boolean 639 +--rw use-ipv4? boolean 640 +--rw use-ipv6? boolean 641 +--ro member-links* [member-link] 642 +--ro member-link if:interface-ref 643 +--ro micro-bfd-ipv4 644 | +--ro path-type? identityref 645 | +--ro ip-encapsulation? boolean 646 | +--ro local-discriminator? discriminator 647 | +--ro remote-discriminator? discriminator 648 | +--ro remote-multiplier? multiplier 649 | +--ro demand-capability? boolean {demand-mode}? 650 | +--ro source-port? inet:port-number 651 | +--ro dest-port? inet:port-number 652 | +--ro session-running 653 | | +--ro session-index? uint32 654 | | +--ro local-state? state 655 | | +--ro remote-state? state 656 | | +--ro local-diagnostic? 657 | | | iana-bfd-types:diagnostic 658 | | +--ro remote-diagnostic? 659 | | | iana-bfd-types:diagnostic 660 | | +--ro remote-authenticated? boolean 661 | | +--ro remote-authentication-type? 662 | | | iana-bfd-types:auth-type {authentication}? 663 | | +--ro detection-mode? enumeration 664 | | +--ro negotiated-tx-interval? uint32 665 | | +--ro negotiated-rx-interval? uint32 666 | | +--ro detection-time? uint32 667 | | +--ro echo-tx-interval-in-use? uint32 668 | | {echo-mode}? 669 | +--ro sesssion-statistics 670 | +--ro create-time? yang:date-and-time 671 | +--ro last-down-time? yang:date-and-time 672 | +--ro last-up-time? yang:date-and-time 673 | +--ro down-count? uint32 674 | +--ro admin-down-count? uint32 675 | +--ro receive-packet-count? uint64 676 | +--ro send-packet-count? uint64 677 | +--ro receive-bad-packet? uint64 678 | +--ro send-failed-packet? uint64 679 +--ro micro-bfd-ipv6 680 +--ro path-type? identityref 681 +--ro ip-encapsulation? boolean 682 +--ro local-discriminator? discriminator 683 +--ro remote-discriminator? discriminator 684 +--ro remote-multiplier? multiplier 685 +--ro demand-capability? boolean {demand-mode}? 686 +--ro source-port? inet:port-number 687 +--ro dest-port? inet:port-number 688 +--ro session-running 689 | +--ro session-index? uint32 690 | +--ro local-state? state 691 | +--ro remote-state? state 692 | +--ro local-diagnostic? 693 | | iana-bfd-types:diagnostic 694 | +--ro remote-diagnostic? 695 | | iana-bfd-types:diagnostic 696 | +--ro remote-authenticated? boolean 697 | +--ro remote-authentication-type? 698 | | iana-bfd-types:auth-type {authentication}? 699 | +--ro detection-mode? enumeration 700 | +--ro negotiated-tx-interval? uint32 701 | +--ro negotiated-rx-interval? uint32 702 | +--ro detection-time? uint32 703 | +--ro echo-tx-interval-in-use? uint32 704 | {echo-mode}? 705 +--ro sesssion-statistics 706 +--ro create-time? yang:date-and-time 707 +--ro last-down-time? yang:date-and-time 708 +--ro last-up-time? yang:date-and-time 709 +--ro down-count? uint32 710 +--ro admin-down-count? uint32 711 +--ro receive-packet-count? uint64 712 +--ro send-packet-count? uint64 713 +--ro receive-bad-packet? uint64 714 +--ro send-failed-packet? uint64 716 notifications: 717 +---n lag-notification 718 +--ro local-discr? discriminator 719 +--ro remote-discr? discriminator 720 +--ro new-state? state 721 +--ro state-change-reason? iana-bfd-types:diagnostic 722 +--ro time-of-last-state-change? yang:date-and-time 723 +--ro dest-addr? inet:ip-address 724 +--ro source-addr? inet:ip-address 725 +--ro session-index? uint32 726 +--ro path-type? identityref 727 +--ro lag-name? if:interface-ref 728 +--ro member-link? if:interface-ref 730 2.9. BFD over MPLS LSPs hierarchy 732 An "mpls" node is added under the "bfd" node in control-plane- 733 protocol. The configuration is per MPLS FEC under this "mpls" node. 734 In the operational model we support multiple BFD sessions per MPLS 735 FEC (ECMP), the local discriminator is used as key. The "mpls" node 736 can be used in a network device (top-level), or mounted in an LNE or 737 in a network instance. 739 module: ietf-bfd-mpls 740 augment /rt:routing/rt:control-plane-protocols 741 /rt:control-plane-protocol/bfd:bfd: 742 +--rw mpls 743 +--ro session-statistics 744 | +--ro session-count? uint32 745 | +--ro session-up-count? uint32 746 | +--ro session-down-count? uint32 747 | +--ro session-admin-down-count? uint32 748 +--rw egress 749 | +--rw enable? boolean 750 | +--rw local-multiplier? multiplier 751 | +--rw (interval-config-type)? 752 | | +--:(tx-rx-intervals) 753 | | | +--rw desired-min-tx-interval? uint32 754 | | | +--rw required-min-rx-interval? uint32 755 | | +--:(single-interval) 756 | | +--rw min-interval? uint32 757 | +--rw authentication-parms! {authentication}? 758 | +--rw key-chain? kc:key-chain-ref 759 | +--rw meticulous? boolean 760 +--rw session-group* [mpls-fec] 761 +--rw mpls-fec inet:ip-prefix 762 +--rw local-multiplier? multiplier 763 +--rw (interval-config-type)? 764 | +--:(tx-rx-intervals) 765 | | +--rw desired-min-tx-interval? uint32 766 | | +--rw required-min-rx-interval? uint32 767 | +--:(single-interval) 768 | +--rw min-interval? uint32 769 +--rw demand-enabled? boolean {demand-mode}? 770 +--rw admin-down? boolean 771 +--rw authentication-parms! {authentication}? 772 | +--rw key-chain? kc:key-chain-ref 773 | +--rw meticulous? boolean 774 +--ro sessions* 775 +--ro path-type? identityref 776 +--ro ip-encapsulation? boolean 777 +--ro local-discriminator? discriminator 778 +--ro remote-discriminator? discriminator 779 +--ro remote-multiplier? multiplier 780 +--ro demand-capability? boolean {demand-mode}? 781 +--ro source-port? inet:port-number 782 +--ro dest-port? inet:port-number 783 +--ro session-running 784 | +--ro session-index? uint32 785 | +--ro local-state? state 786 | +--ro remote-state? state 787 | +--ro local-diagnostic? 788 | | iana-bfd-types:diagnostic 789 | +--ro remote-diagnostic? 790 | | iana-bfd-types:diagnostic 791 | +--ro remote-authenticated? boolean 792 | +--ro remote-authentication-type? 793 | | iana-bfd-types:auth-type {authentication}? 794 | +--ro detection-mode? enumeration 795 | +--ro negotiated-tx-interval? uint32 796 | +--ro negotiated-rx-interval? uint32 797 | +--ro detection-time? uint32 798 | +--ro echo-tx-interval-in-use? uint32 799 | {echo-mode}? 800 +--ro sesssion-statistics 801 | +--ro create-time? yang:date-and-time 802 | +--ro last-down-time? yang:date-and-time 803 | +--ro last-up-time? yang:date-and-time 804 | +--ro down-count? uint32 805 | +--ro admin-down-count? uint32 806 | +--ro receive-packet-count? uint64 807 | +--ro send-packet-count? uint64 808 | +--ro receive-bad-packet? uint64 809 | +--ro send-failed-packet? uint64 810 +--ro mpls-dest-address? inet:ip-address 812 notifications: 813 +---n mpls-notification 814 +--ro local-discr? discriminator 815 +--ro remote-discr? discriminator 816 +--ro new-state? state 817 +--ro state-change-reason? iana-bfd-types:diagnostic 818 +--ro time-of-last-state-change? yang:date-and-time 819 +--ro dest-addr? inet:ip-address 820 +--ro source-addr? inet:ip-address 821 +--ro session-index? uint32 822 +--ro path-type? identityref 823 +--ro mpls-dest-address? inet:ip-address 825 2.10. BFD over MPLS-TE hierarchy 827 YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te] is 828 augmented. BFD is configured per MPLS-TE tunnel, and BFD session 829 operational data is provided per MPLS-TE LSP. 831 module: ietf-bfd-mpls-te 832 augment /rt:routing/rt:control-plane-protocols 833 /rt:control-plane-protocol/bfd:bfd: 834 +--rw mpls-te 835 +--rw egress 836 | +--rw enable? boolean 837 | +--rw local-multiplier? multiplier 838 | +--rw (interval-config-type)? 839 | | +--:(tx-rx-intervals) 840 | | | +--rw desired-min-tx-interval? uint32 841 | | | +--rw required-min-rx-interval? uint32 842 | | +--:(single-interval) 843 | | +--rw min-interval? uint32 844 | +--rw authentication-parms! {authentication}? 845 | +--rw key-chain? kc:key-chain-ref 846 | +--rw meticulous? boolean 847 +--ro session-statistics 848 +--ro session-count? uint32 849 +--ro session-up-count? uint32 850 +--ro session-down-count? uint32 851 +--ro session-admin-down-count? uint32 852 augment /te:te/te:tunnels/te:tunnel: 853 +--rw local-multiplier? multiplier 854 +--rw (interval-config-type)? 855 | +--:(tx-rx-intervals) 856 | | +--rw desired-min-tx-interval? uint32 857 | | +--rw required-min-rx-interval? uint32 858 | +--:(single-interval) 859 | +--rw min-interval? uint32 860 +--rw demand-enabled? boolean {demand-mode}? 861 +--rw admin-down? boolean 862 +--rw authentication-parms! {authentication}? 863 | +--rw key-chain? kc:key-chain-ref 864 | +--rw meticulous? boolean 865 +--rw encap? identityref 866 augment /te:te/te:lsps-state/te:lsp: 867 +--ro path-type? identityref 868 +--ro ip-encapsulation? boolean 869 +--ro local-discriminator? discriminator 870 +--ro remote-discriminator? discriminator 871 +--ro remote-multiplier? multiplier 872 +--ro demand-capability? boolean {demand-mode}? 873 +--ro source-port? inet:port-number 874 +--ro dest-port? inet:port-number 875 +--ro session-running 876 | +--ro session-index? uint32 877 | +--ro local-state? state 878 | +--ro remote-state? state 879 | +--ro local-diagnostic? iana-bfd-types:diagnostic 880 | +--ro remote-diagnostic? iana-bfd-types:diagnostic 881 | +--ro remote-authenticated? boolean 882 | +--ro remote-authentication-type? iana-bfd-types:auth-type 883 | | {authentication}? 884 | +--ro detection-mode? enumeration 885 | +--ro negotiated-tx-interval? uint32 886 | +--ro negotiated-rx-interval? uint32 887 | +--ro detection-time? uint32 888 | +--ro echo-tx-interval-in-use? uint32 {echo-mode}? 889 +--ro sesssion-statistics 890 | +--ro create-time? yang:date-and-time 891 | +--ro last-down-time? yang:date-and-time 892 | +--ro last-up-time? yang:date-and-time 893 | +--ro down-count? uint32 894 | +--ro admin-down-count? uint32 895 | +--ro receive-packet-count? uint64 896 | +--ro send-packet-count? uint64 897 | +--ro receive-bad-packet? uint64 898 | +--ro send-failed-packet? uint64 899 +--ro mpls-dest-address? inet:ip-address 901 notifications: 902 +---n mpls-te-notification 903 +--ro local-discr? discriminator 904 +--ro remote-discr? discriminator 905 +--ro new-state? state 906 +--ro state-change-reason? iana-bfd-types:diagnostic 907 +--ro time-of-last-state-change? yang:date-and-time 908 +--ro dest-addr? inet:ip-address 909 +--ro source-addr? inet:ip-address 910 +--ro session-index? uint32 911 +--ro path-type? identityref 912 +--ro mpls-dest-address? inet:ip-address 913 +--ro tunnel-name? string 915 2.11. Interaction with other YANG modules 917 Generic YANG Data Model for Connectionless OAM protocols 918 [I-D.ietf-lime-yang-connectionless-oam] describes how the LIME 919 connectionless OAM model could be extended to support BFD. 921 Also, the operation of the BFD data model depends on configuration 922 parameters that are defined in other YANG modules. 924 2.11.1. Module ietf-interfaces 926 The following boolean configuration is defined in A YANG Data Model 927 for Interface Management [RFC7223]: 929 /if:interfaces/if:interface/if:enabled 930 If this configuration is set to "false", no BFD packets can 931 be transmitted or received on that interface. 933 2.11.2. Module ietf-ip 935 The following boolean configuration is defined in A YANG Data Model 936 for IP Management [RFC7277]: 938 /if:interfaces/if:interface/ip:ipv4/ip:enabled 939 If this configuration is set to "false", no BFD IPv4 packets 940 can be transmitted or received on that interface. 942 /if:interfaces/if:interface/ip:ipv4/ip:forwarding 943 If this configuration is set to "false", no BFD IPv4 packets 944 can be transmitted or received on that interface. 946 /if:interfaces/if:interface/ip:ipv6/ip:enabled 947 If this configuration is set to "false", no BFD IPv6 packets 948 can be transmitted or received on that interface. 950 /if:interfaces/if:interface/ip:ipv6/ip:forwarding 951 If this configuration is set to "false", no BFD IPv6 packets 952 can be transmitted or received on that interface. 954 2.11.3. Module ietf-mpls 956 The following boolean configuration is defined in A YANG Data Model 957 for MPLS Base [I-D.ietf-mpls-base-yang]: 959 /rt:routing/mpls:mpls/mpls:interface/mpls:config/mpls:enabled 960 If this configuration is set to "false", no BFD MPLS packets 961 can be transmitted or received on that interface. 963 2.11.4. Module ietf-te 965 The following configuration is defined in the "ietf-te" YANG module 966 YANG Data Model for TE Topology [I-D.ietf-teas-yang-te]: 968 /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel/ietf-te:config/ietf- 969 te:admin-status 970 If this configuration is not set to "state-up", no BFD MPLS 971 packets can be transmitted or received on that tunnel. 973 2.12. IANA BFD YANG Module 975 file "iana-bfd-types@2018-01-11.yang" 977 module iana-bfd-types { 978 namespace "urn:ietf:params:xml:ns:yang:iana-bfd-types"; 980 prefix "iana-bfd-types"; 982 organization "IANA"; 984 contact 985 " Internet Assigned Numbers Authority 987 Postal: ICANN 988 4676 Admiralty Way, Suite 330 989 Marina del Rey, CA 90292 991 Tel: +1 310 823 9358 992 "; 994 description 995 "This module contains a collection of YANG data types 996 considered defined by IANA and used for BFD. 998 Copyright (c) 2017 IETF Trust and the persons 999 identified as authors of the code. All rights reserved. 1001 Redistribution and use in source and binary forms, with or 1002 without modification, is permitted pursuant to, and subject 1003 to the license terms contained in, the Simplified BSD License 1004 set forth in Section 4.c of the IETF Trust's Legal Provisions 1005 Relating to IETF Documents 1006 (http://trustee.ietf.org/license-info). 1008 This version of this YANG module is part of RFC XXXX; see 1009 the RFC itself for full legal notices."; 1011 revision 2018-01-11 { 1012 description "Initial revision."; 1013 reference "RFC XXXX: IANA BFD YANG Data Types."; 1014 } 1016 // RFC Ed.: replace XXXX with actual RFC number and remove this 1017 // note 1019 typedef diagnostic { 1020 type enumeration { 1021 enum none { 1022 value 0; 1023 description "None"; 1024 } 1025 enum control-expiry { 1026 value 1; 1027 description "Control timer expiry"; 1028 } 1029 enum echo-failed { 1030 value 2; 1031 description "Echo failure"; 1032 } 1033 enum neighbor-down { 1034 value 3; 1035 description "Neighbor down"; 1036 } 1037 enum forwarding-reset { 1038 value 4; 1039 description "Forwarding reset"; 1040 } 1041 enum path-down { 1042 value 5; 1043 description "Path down"; 1044 } 1045 enum concatenated-path-down { 1046 value 6; 1047 description "Concatenated path down"; 1048 } 1049 enum admin-down { 1050 value 7; 1051 description "Admin down"; 1052 } 1053 enum reverse-concatenated-path-down { 1054 value 8; 1055 description "Reverse concatenated path down"; 1056 } 1057 enum mis-connectivity-defect { 1058 value 9; 1059 description "Mis-connectivity defect as specified in RFC6428"; 1060 } 1061 } 1062 description 1063 "BFD diagnostic as defined in RFC5880. Range is 0 to 31."; 1064 } 1066 typedef auth-type { 1067 type enumeration { 1068 enum reserved { 1069 value 0; 1070 description "Reserved"; 1071 } 1072 enum simple-password { 1073 value 1; 1074 description "Simple password"; 1075 } 1076 enum keyed-md5 { 1077 value 2; 1078 description "Keyed MD5"; 1079 } 1080 enum meticulous-keyed-md5 { 1081 value 3; 1082 description "Meticulous keyed MD5"; 1083 } 1084 enum keyed-sha1 { 1085 value 4; 1086 description "Keyed SHA1"; 1087 } 1088 enum meticulous-keyed-sha1 { 1089 value 5; 1090 description "Meticulous keyed SHA1"; 1091 } 1092 } 1093 description 1094 "BFD authentication type as defined in RFC5880. Range is 0 to 1095 255."; 1096 } 1098 } 1100 1102 2.13. BFD types YANG Module 1104 file "ietf-bfd-types@2018-01-11.yang" 1106 module ietf-bfd-types { 1107 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-types"; 1109 prefix "bfd-types"; 1111 import iana-bfd-types { 1112 prefix "iana-bfd-types"; 1113 } 1115 import ietf-inet-types { 1116 prefix "inet"; 1117 } 1119 import ietf-yang-types { 1120 prefix "yang"; 1121 } 1123 import ietf-routing { 1124 prefix "rt"; 1125 } 1127 import ietf-key-chain { 1128 prefix "kc"; 1129 } 1131 organization "IETF BFD Working Group"; 1133 contact 1134 "WG Web: 1135 WG List: 1137 Editors: Reshad Rahman (rrahman@cisco.com), 1138 Lianshu Zheng (vero.zheng@huawei.com), 1139 Mahesh Jethanandani (mjethanandani@gmail.com)"; 1141 description 1142 "This module contains a collection of BFD specific YANG data type 1143 definitions, as per RFC5880. 1145 Copyright (c) 2017 IETF Trust and the persons 1146 identified as authors of the code. All rights reserved. 1148 Redistribution and use in source and binary forms, with or 1149 without modification, is permitted pursuant to, and subject 1150 to the license terms contained in, the Simplified BSD License 1151 set forth in Section 4.c of the IETF Trust's Legal Provisions 1152 Relating to IETF Documents 1153 (http://trustee.ietf.org/license-info). 1155 This version of this YANG module is part of RFC XXXX; see 1156 the RFC itself for full legal notices."; 1158 revision 2018-01-11 { 1159 description "Initial revision."; 1160 reference "RFC XXXX: A YANG data model for BFD"; 1161 } 1163 // RFC Ed.: replace XXXX with actual RFC number and remove this 1164 // note 1166 identity bfdv1 { 1167 base "rt:control-plane-protocol"; 1168 description "BFD protocol version 1 as per RFC5880."; 1169 } 1171 typedef discriminator { 1172 type uint32 { 1173 range 1..4294967295; 1174 } 1175 description "BFD discriminator"; 1176 } 1178 typedef state { 1179 type enumeration { 1180 enum adminDown { 1181 value 0; 1182 description "admindown"; 1183 } 1184 enum down { 1185 value 1; 1186 description "down"; 1187 } 1188 enum init { 1189 value 2; 1190 description "init"; 1191 } 1192 enum up { 1193 value 3; 1194 description "up"; 1195 } 1196 } 1197 description "BFD state as defined in RFC5880"; 1198 } 1200 typedef multiplier { 1201 type uint8 { 1202 range 1..255; 1203 } 1204 description "Multiplier"; 1205 } 1207 typedef hops { 1208 type uint8 { 1209 range 1..255; 1210 } 1211 description 1212 "This corresponds to Time To Live for IPv4 and corresponds to hop 1213 limit for IPv6"; 1214 } 1216 /* 1217 * Identity definitions 1218 */ 1219 identity path-type { 1220 description 1221 "Base identity for BFD path type. The path type indicates 1222 the type of path on which BFD is running"; 1223 } 1224 identity path-ip-sh { 1225 base path-type; 1226 description "BFD on IP single hop"; 1227 } 1228 identity path-ip-mh { 1229 base path-type; 1230 description "BFD on IP multi hop"; 1231 } 1232 identity path-mpls-te { 1233 base path-type; 1234 description "BFD on MPLS Traffic Engineering"; 1235 } 1236 identity path-mpls-lsp { 1237 base path-type; 1238 description "BFD on MPLS Label Switched Path"; 1239 } 1240 identity path-lag { 1241 base path-type; 1242 description "Micro-BFD on LAG member links"; 1243 } 1245 identity encap-type { 1246 description 1247 "Base identity for BFD encapsulation type."; 1248 } 1249 identity encap-ip { 1250 base encap-type; 1251 description "BFD with IP encapsulation."; 1252 } 1254 /* 1255 * Feature definitions. 1256 */ 1257 feature authentication { 1258 description "BFD authentication supported"; 1259 } 1261 feature demand-mode { 1262 description "BFD demand mode supported"; 1263 } 1265 feature echo-mode { 1266 description "BFD echo mode supported"; 1267 } 1269 /* 1270 * Groupings 1271 */ 1272 grouping auth-parms { 1273 description 1274 "Grouping for BFD authentication parameters 1275 (see section 6.7 of RFC5880)."; 1276 container authentication-parms { 1277 if-feature authentication; 1278 presence 1279 "Enables BFD authentication (see section 6.7 of RFC5880)."; 1280 description "Parameters for BFD authentication"; 1282 leaf key-chain { 1283 type kc:key-chain-ref; 1284 description "Name of key-chain"; 1285 } 1287 leaf meticulous { 1288 type boolean; 1289 description 1290 "Enables meticulous mode as described in section 6.7 " + 1291 "of RFC5880"; 1292 } 1293 } 1294 } 1296 grouping base-cfg-parms { 1297 description "BFD grouping for base config parameters"; 1298 leaf local-multiplier { 1299 type multiplier; 1300 default 3; 1301 description "Multiplier transmitted by local system"; 1302 } 1304 choice interval-config-type { 1305 description 1306 "Two interval values or 1 value used for both tx and rx"; 1307 case tx-rx-intervals { 1308 leaf desired-min-tx-interval { 1309 type uint32; 1310 units microseconds; 1311 default 1000000; 1312 description 1313 "Desired minimum transmit interval of control packets"; 1314 } 1316 leaf required-min-rx-interval { 1317 type uint32; 1318 units microseconds; 1319 default 1000000; 1320 description 1321 "Required minimum receive interval of control packets"; 1322 } 1323 } 1324 case single-interval { 1325 leaf min-interval { 1326 type uint32; 1327 units microseconds; 1328 default 1000000; 1329 description 1330 "Desired minimum transmit interval and required " + 1331 "minimum receive interval of control packets"; 1332 } 1333 } 1334 } 1335 } 1337 grouping client-cfg-parms { 1338 description 1339 "BFD grouping for config parameters 1340 used by clients of BFD, e.g. IGP or MPLS"; 1342 leaf enable { 1343 type boolean; 1344 default false; 1345 description 1346 "Indicates whether the BFD is enabled."; 1347 } 1348 uses base-cfg-parms; 1349 } 1351 grouping common-cfg-parms { 1352 description 1353 "BFD grouping for common config parameters"; 1355 uses base-cfg-parms; 1357 leaf demand-enabled { 1358 if-feature demand-mode; 1359 type boolean; 1360 default false; 1361 description 1362 "To enable demand mode"; 1363 } 1365 leaf admin-down { 1366 type boolean; 1367 default false; 1368 description 1369 "Is the BFD session administratively down"; 1370 } 1371 uses auth-parms; 1372 } 1374 grouping all-session { 1375 description "BFD session operational information"; 1376 leaf path-type { 1377 type identityref { 1378 base path-type; 1379 } 1380 config "false"; 1381 description 1382 "BFD path type, this indicates the path type that BFD is 1383 running on"; 1384 } 1385 leaf ip-encapsulation { 1386 type boolean; 1387 config "false"; 1388 description "Whether BFD encapsulation uses IP"; 1389 } 1390 leaf local-discriminator { 1391 type discriminator; 1392 config "false"; 1393 description "Local discriminator"; 1394 } 1395 leaf remote-discriminator { 1396 type discriminator; 1397 config "false"; 1398 description "Remote discriminator"; 1399 } 1400 leaf remote-multiplier { 1401 type multiplier; 1402 config "false"; 1403 description "Remote multiplier"; 1404 } 1405 leaf demand-capability { 1406 if-feature demand-mode; 1407 type boolean; 1408 config "false"; 1409 description "Local demand mode capability"; 1410 } 1411 leaf source-port { 1412 when "../ip-encapsulation = 'true'" { 1413 description 1414 "Source port valid only when IP encapsulation is used"; 1415 } 1416 type inet:port-number; 1417 config "false"; 1418 description "Source UDP port"; 1419 } 1420 leaf dest-port { 1421 when "../ip-encapsulation = 'true'" { 1422 description 1423 "Destination port valid only when IP encapsulation is used"; 1424 } 1425 type inet:port-number; 1426 config "false"; 1427 description "Destination UDP port"; 1428 } 1430 container session-running { 1431 config "false"; 1432 description "BFD session running information"; 1433 leaf session-index { 1434 type uint32; 1435 description 1436 "An index used to uniquely identify BFD sessions"; 1437 } 1438 leaf local-state { 1439 type state; 1440 description "Local state"; 1441 } 1442 leaf remote-state { 1443 type state; 1444 description "Remote state"; 1445 } 1446 leaf local-diagnostic { 1447 type iana-bfd-types:diagnostic; 1448 description "Local diagnostic"; 1449 } 1450 leaf remote-diagnostic { 1451 type iana-bfd-types:diagnostic; 1452 description "Remote diagnostic"; 1453 } 1454 leaf remote-authenticated { 1455 type boolean; 1456 description 1457 "Indicates whether incoming BFD control packets are 1458 authenticated"; 1459 } 1460 leaf remote-authentication-type { 1461 when "../remote-authenticated = 'true'" { 1462 description 1463 "Only valid when incoming BFD control packets are 1464 authenticated"; 1465 } 1466 if-feature authentication; 1467 type iana-bfd-types:auth-type; 1468 description 1469 "Authentication type of incoming BFD control packets"; 1470 } 1471 leaf detection-mode { 1472 type enumeration { 1473 enum async-with-echo { 1474 value "1"; 1475 description "Async with echo"; 1476 } 1477 enum async-without-echo { 1478 value "2"; 1479 description "Async without echo"; 1480 } 1481 enum demand-with-echo { 1482 value "3"; 1483 description "Demand with echo"; 1484 } 1485 enum demand-without-echo { 1486 value "4"; 1487 description "Demand without echo"; 1488 } 1489 } 1490 description "Detection mode"; 1491 } 1492 leaf negotiated-tx-interval { 1493 type uint32; 1494 units microseconds; 1495 description "Negotiated transmit interval"; 1496 } 1497 leaf negotiated-rx-interval { 1498 type uint32; 1499 units microseconds; 1500 description "Negotiated receive interval"; 1501 } 1502 leaf detection-time { 1503 type uint32; 1504 units microseconds; 1505 description "Detection time"; 1506 } 1507 leaf echo-tx-interval-in-use { 1508 when "../../path-type = 'bfd-types:path-ip-sh'" { 1509 description 1510 "Echo is supported for IP single-hop only."; 1511 } 1512 if-feature echo-mode; 1513 type uint32; 1514 units microseconds; 1515 description "Echo transmit interval in use"; 1516 } 1517 } 1519 container sesssion-statistics { 1520 config "false"; 1521 description "BFD per-session statistics"; 1523 leaf create-time { 1524 type yang:date-and-time; 1525 description 1526 "Time and date when session was created"; 1527 } 1528 leaf last-down-time { 1529 type yang:date-and-time; 1530 description 1531 "Time and date of last time the session went down"; 1532 } 1533 leaf last-up-time { 1534 type yang:date-and-time; 1535 description 1536 "Time and date of last time the session went up"; 1537 } 1538 leaf down-count { 1539 type uint32; 1540 description "Session Down Count"; 1541 } 1542 leaf admin-down-count { 1543 type uint32; 1544 description "Session Admin-Down Count"; 1545 } 1546 leaf receive-packet-count { 1547 type uint64; 1548 description "Received Packet Count"; 1549 } 1550 leaf send-packet-count { 1551 type uint64; 1552 description "Sent Packet Count"; 1553 } 1554 leaf receive-bad-packet { 1555 type uint64; 1556 description "Received bad packet count"; 1557 } 1558 leaf send-failed-packet { 1559 type uint64; 1560 description "Packet Failed to Send Count"; 1561 } 1562 } 1563 } 1565 grouping session-statistics { 1566 description "Grouping for session counters"; 1567 container session-statistics { 1568 config false; 1569 description "BFD session counters"; 1570 leaf session-count { 1571 type uint32; 1572 description "Number of sessions"; 1573 } 1574 leaf session-up-count { 1575 type uint32; 1576 description "Count of sessions which are up"; 1577 } 1578 leaf session-down-count { 1579 type uint32; 1580 description "Count of sessions which are down"; 1581 } 1582 leaf session-admin-down-count { 1583 type uint32; 1584 description "Count of sessions which are admin-down"; 1585 } 1586 } 1587 } 1589 grouping notification-parms { 1590 description 1591 "This group describes common parameters that will be sent " + 1592 "as part of BFD notification"; 1594 leaf local-discr { 1595 type discriminator; 1596 description "BFD local discriminator"; 1597 } 1599 leaf remote-discr { 1600 type discriminator; 1601 description "BFD remote discriminator"; 1602 } 1604 leaf new-state { 1605 type state; 1606 description "Current BFD state"; 1607 } 1609 leaf state-change-reason { 1610 type iana-bfd-types:diagnostic; 1611 description "BFD state change reason"; 1612 } 1614 leaf time-of-last-state-change { 1615 type yang:date-and-time; 1616 description 1617 "Calendar time of previous state change"; 1618 } 1620 leaf dest-addr { 1621 type inet:ip-address; 1622 description "BFD peer address"; 1623 } 1625 leaf source-addr { 1626 type inet:ip-address; 1627 description "BFD local address"; 1628 } 1630 leaf session-index { 1631 type uint32; 1632 description "An index used to uniquely identify BFD sessions"; 1633 } 1635 leaf path-type { 1636 type identityref { 1637 base path-type; 1638 } 1639 description "BFD path type"; 1640 } 1641 } 1642 } 1644 1646 2.14. BFD top-level YANG Module 1648 file "ietf-bfd@2018-01-11.yang" 1650 module ietf-bfd { 1651 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; 1653 prefix "bfd"; 1655 import ietf-bfd-types { 1656 prefix "bfd-types"; 1657 } 1659 import ietf-routing { 1660 prefix "rt"; 1661 } 1663 organization "IETF BFD Working Group"; 1665 contact 1666 "WG Web: 1667 WG List: 1669 Editors: Reshad Rahman (rrahman@cisco.com), 1670 Lianshu Zheng (vero.zheng@huawei.com), 1671 Mahesh Jethanandani (mjethanandani@gmail.com)"; 1673 description 1674 "This module contains the YANG definition for BFD parameters as 1675 per RFC5880. 1677 Copyright (c) 2017 IETF Trust and the persons 1678 identified as authors of the code. All rights reserved. 1680 Redistribution and use in source and binary forms, with or 1681 without modification, is permitted pursuant to, and subject 1682 to the license terms contained in, the Simplified BSD License 1683 set forth in Section 4.c of the IETF Trust's Legal Provisions 1684 Relating to IETF Documents 1685 (http://trustee.ietf.org/license-info). 1687 This version of this YANG module is part of RFC XXXX; see 1688 the RFC itself for full legal notices."; 1690 revision 2018-01-11 { 1691 description "Initial revision."; 1692 reference "RFC XXXX: A YANG data model for BFD"; 1693 } 1695 // RFC Ed.: replace XXXX with actual RFC number and remove this 1696 // note 1698 augment "/rt:routing/rt:control-plane-protocols/" 1699 + "rt:control-plane-protocol" { 1700 when "rt:type = 'bfd-types:bfdv1'" { 1701 description 1702 "This augmentation is only valid for a control-plane protocol 1703 instance of BFD (type 'bfdv1')."; 1704 } 1705 description "BFD augmentation."; 1707 container bfd { 1708 description "BFD top level container"; 1710 uses bfd-types:session-statistics; 1711 } 1712 } 1713 } 1715 1717 2.15. BFD IP single-hop YANG Module 1719 file "ietf-bfd-ip-sh@2018-01-11.yang" 1721 module ietf-bfd-ip-sh { 1722 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; 1724 prefix "bfd-ip-sh"; 1726 import ietf-bfd-types { 1727 prefix "bfd-types"; 1728 } 1730 import ietf-bfd { 1731 prefix "bfd"; 1732 } 1734 import ietf-interfaces { 1735 prefix "if"; 1736 } 1738 import ietf-inet-types { 1739 prefix "inet"; 1740 } 1742 import ietf-routing { 1743 prefix "rt"; 1744 } 1746 organization "IETF BFD Working Group"; 1748 contact 1749 "WG Web: 1750 WG List: 1752 Editors: Reshad Rahman (rrahman@cisco.com), 1753 Lianshu Zheng (vero.zheng@huawei.com), 1754 Mahesh Jethanandani (mjethanandani@gmail.com)"; 1756 description 1757 "This module contains the YANG definition for BFD IP single-hop 1758 as per RFC5881. 1760 Copyright (c) 2017 IETF Trust and the persons 1761 identified as authors of the code. All rights reserved. 1763 Redistribution and use in source and binary forms, with or 1764 without modification, is permitted pursuant to, and subject 1765 to the license terms contained in, the Simplified BSD License 1766 set forth in Section 4.c of the IETF Trust's Legal Provisions 1767 Relating to IETF Documents 1768 (http://trustee.ietf.org/license-info). 1769 This version of this YANG module is part of RFC XXXX; see 1770 the RFC itself for full legal notices."; 1772 revision 2018-01-11 { 1773 description "Initial revision."; 1774 reference "RFC XXXX: A YANG data model for BFD IP single-hop"; 1775 } 1777 // RFC Ed.: replace XXXX with actual RFC number and remove this 1778 // note 1780 augment "/rt:routing/rt:control-plane-protocols/" 1781 + "rt:control-plane-protocol/bfd:bfd" { 1782 description "BFD augmentation for IP single-hop"; 1783 container ip-sh { 1784 description "BFD IP single-hop top level container"; 1786 uses bfd-types:session-statistics; 1788 list sessions { 1789 key "interface dest-addr"; 1790 description "List of IP single-hop sessions"; 1791 leaf interface { 1792 type if:interface-ref; 1793 description 1794 "Interface on which the BFD session is running."; 1795 } 1796 leaf dest-addr { 1797 type inet:ip-address; 1798 description "IP address of the peer"; 1799 } 1800 leaf source-addr { 1801 type inet:ip-address; 1802 description "Local address"; 1803 } 1805 uses bfd-types:common-cfg-parms; 1807 uses bfd-types:all-session; 1808 } 1809 list interfaces { 1810 key "interface"; 1811 description "List of interfaces"; 1812 leaf interface { 1813 type if:interface-ref; 1814 description 1815 "BFD information for this interface."; 1816 } 1817 uses bfd-types:auth-parms; 1818 } 1819 } 1820 } 1822 notification singlehop-notification { 1823 description 1824 "Notification for BFD single-hop session state change. An " + 1825 "implementation may rate-limit notifications, e.g. when a" + 1826 "session is continuously changing state."; 1828 uses bfd-types:notification-parms; 1830 leaf interface { 1831 type if:interface-ref; 1832 description "Interface to which this BFD session belongs to"; 1833 } 1835 leaf echo-enabled { 1836 type boolean; 1837 description "Was echo enabled for BFD"; 1838 } 1839 } 1841 } 1843 1845 2.16. BFD IP multi-hop YANG Module 1847 file "ietf-bfd-ip-mh@2018-01-11.yang" 1849 module ietf-bfd-ip-mh { 1850 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; 1851 // replace with IANA namespace when assigned 1852 prefix "bfd-ip-mh"; 1854 import ietf-bfd-types { 1855 prefix "bfd-types"; 1856 } 1858 import ietf-bfd { 1859 prefix "bfd"; 1860 } 1862 import ietf-inet-types { 1863 prefix "inet"; 1864 } 1865 import ietf-routing { 1866 prefix "rt"; 1867 } 1869 organization "IETF BFD Working Group"; 1871 contact 1872 "WG Web: 1873 WG List: 1875 Editors: Reshad Rahman (rrahman@cisco.com), 1876 Lianshu Zheng (vero.zheng@huawei.com), 1877 Mahesh Jethanandani (mjethanandani@gmail.com)"; 1879 description 1880 "This module contains the YANG definition for BFD IP multi-hop 1881 as per RFC5883. 1883 Copyright (c) 2017 IETF Trust and the persons 1884 identified as authors of the code. All rights reserved. 1886 Redistribution and use in source and binary forms, with or 1887 without modification, is permitted pursuant to, and subject 1888 to the license terms contained in, the Simplified BSD License 1889 set forth in Section 4.c of the IETF Trust's Legal Provisions 1890 Relating to IETF Documents 1891 (http://trustee.ietf.org/license-info). 1893 This version of this YANG module is part of RFC XXXX; see 1894 the RFC itself for full legal notices."; 1896 revision 2018-01-11 { 1897 description "Initial revision."; 1898 reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; 1899 } 1901 // RFC Ed.: replace XXXX with actual RFC number and remove this 1902 // note 1904 augment "/rt:routing/rt:control-plane-protocols/" 1905 + "rt:control-plane-protocol/bfd:bfd" { 1906 description "BFD augmentation for IP multi-hop"; 1907 container ip-mh { 1908 description "BFD IP multi-hop top level container"; 1910 uses bfd-types:session-statistics; 1912 list session-group { 1913 key "source-addr dest-addr"; 1914 description 1915 "Group of BFD IP multi-hop sessions (for ECMP). A " + 1916 "group of sessions is between 1 source and 1 " + 1917 "destination, each session has a different field " + 1918 "in UDP/IP hdr for ECMP."; 1920 leaf source-addr { 1921 type inet:ip-address; 1922 description 1923 "Local IP address"; 1924 } 1925 leaf dest-addr { 1926 type inet:ip-address; 1927 description 1928 "IP address of the peer"; 1929 } 1930 uses bfd-types:common-cfg-parms; 1932 leaf tx-ttl { 1933 type bfd-types:hops; 1934 default 255; 1935 description "Hop count of outgoing BFD control packets"; 1936 } 1937 leaf rx-ttl { 1938 type bfd-types:hops; 1939 mandatory true; 1940 description 1941 "Minimum allowed hop count value for incoming BFD control 1942 packets. Control packets whose hop count is lower than this 1943 value are dropped."; 1944 } 1945 list sessions { 1946 config false; 1947 description 1948 "The multiple BFD sessions between a source and a " + 1949 "destination."; 1950 uses bfd-types:all-session; 1951 } 1952 } 1953 } 1954 } 1956 notification multihop-notification { 1957 description 1958 "Notification for BFD multi-hop session state change. An " + 1959 "implementation may rate-limit notifications, e.g. when a" + 1960 "session is continuously changing state."; 1962 uses bfd-types:notification-parms; 1963 } 1964 } 1966 1968 2.17. BFD over LAG YANG Module 1970 file "ietf-bfd-lag@2018-01-11.yang" 1972 module ietf-bfd-lag { 1973 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; 1974 // replace with IANA namespace when assigned 1975 prefix "bfd-lag"; 1977 import ietf-bfd-types { 1978 prefix "bfd-types"; 1979 } 1981 import ietf-bfd { 1982 prefix "bfd"; 1983 } 1985 import ietf-interfaces { 1986 prefix "if"; 1987 } 1989 import ietf-inet-types { 1990 prefix "inet"; 1991 } 1993 import ietf-routing { 1994 prefix "rt"; 1995 } 1997 organization "IETF BFD Working Group"; 1999 contact 2000 "WG Web: 2001 WG List: 2003 Editors: Reshad Rahman (rrahman@cisco.com), 2004 Lianshu Zheng vero.zheng@huawei.com), 2005 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2007 description 2008 "This module contains the YANG definition for BFD over LAG 2009 interfaces as per RFC7130. 2011 Copyright (c) 2017 IETF Trust and the persons 2012 identified as authors of the code. All rights reserved. 2014 Redistribution and use in source and binary forms, with or 2015 without modification, is permitted pursuant to, and subject 2016 to the license terms contained in, the Simplified BSD License 2017 set forth in Section 4.c of the IETF Trust's Legal Provisions 2018 Relating to IETF Documents 2019 (http://trustee.ietf.org/license-info). 2021 This version of this YANG module is part of RFC XXXX; see 2022 the RFC itself for full legal notices."; 2024 revision 2018-01-11 { 2025 description "Initial revision."; 2026 reference "RFC XXXX: A YANG data model for BFD over LAG"; 2027 } 2029 // RFC Ed.: replace XXXX with actual RFC number and remove this 2030 // note 2032 augment "/rt:routing/rt:control-plane-protocols/" 2033 + "rt:control-plane-protocol/bfd:bfd" { 2034 description "BFD augmentation for LAG"; 2035 container lag { 2036 description "BFD over LAG top level container"; 2038 container micro-bfd-ipv4-session-statistics { 2039 description "Micro-BFD IPv4 session counters"; 2040 uses bfd-types:session-statistics; 2041 } 2042 container micro-bfd-ipv6-session-statistics { 2043 description "Micro-BFD IPv6 session counters"; 2044 uses bfd-types:session-statistics; 2045 } 2047 list sessions { 2048 key "lag-name"; 2049 description "A LAG interface on which BFD is running"; 2050 leaf lag-name { 2051 type if:interface-ref ; 2052 description "Name of the LAG"; 2053 } 2054 leaf ipv4-dest-addr { 2055 type inet:ipv4-address; 2056 description 2057 "IPv4 address of the peer, for IPv4 micro-BFD."; 2058 } 2059 leaf ipv6-dest-addr { 2060 type inet:ipv6-address; 2061 description 2062 "IPv6 address of the peer, for IPv6 micro-BFD."; 2063 } 2064 uses bfd-types:common-cfg-parms; 2066 leaf use-ipv4 { 2067 type boolean; 2068 description "Using IPv4 micro-BFD."; 2069 } 2070 leaf use-ipv6 { 2071 type boolean; 2072 description "Using IPv6 micro-BFD."; 2073 } 2075 list member-links { 2076 key "member-link"; 2077 config false; 2078 description 2079 "Micro-BFD over LAG. This represents one member link"; 2081 leaf member-link { 2082 type if:interface-ref; 2083 description 2084 "Member link on which micro-BFD is running"; 2085 } 2086 container micro-bfd-ipv4 { 2087 when "../../use-ipv4 = 'true'" { 2088 description "Needed only if IPv4 is used."; 2089 } 2090 description 2091 "Micro-BFD IPv4 session state on member link"; 2092 uses bfd-types:all-session; 2093 } 2094 container micro-bfd-ipv6 { 2095 when "../../use-ipv6 = 'true'" { 2096 description "Needed only if IPv6 is used."; 2097 } 2098 description 2099 "Micro-BFD IPv6 session state on member link"; 2100 uses bfd-types:all-session; 2101 } 2102 } 2103 } 2104 } 2105 } 2106 notification lag-notification { 2107 description 2108 "Notification for BFD over LAG session state change. " + 2109 "An implementation may rate-limit notifications, e.g. when a" + 2110 "session is continuously changing state."; 2112 uses bfd-types:notification-parms; 2114 leaf lag-name { 2115 type if:interface-ref; 2116 description "LAG interface name"; 2117 } 2119 leaf member-link { 2120 type if:interface-ref; 2121 description "Member link on which BFD is running"; 2122 } 2123 } 2124 } 2126 2128 2.18. BFD over MPLS YANG Module 2130 file "ietf-bfd-mpls@2018-01-11.yang" 2132 module ietf-bfd-mpls { 2133 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; 2134 // replace with IANA namespace when assigned 2135 prefix "bfd-mpls"; 2137 import ietf-bfd-types { 2138 prefix "bfd-types"; 2139 } 2141 import ietf-bfd { 2142 prefix "bfd"; 2143 } 2145 import ietf-inet-types { 2146 prefix "inet"; 2147 } 2149 import ietf-routing { 2150 prefix "rt"; 2151 } 2153 organization "IETF BFD Working Group"; 2154 contact 2155 "WG Web: 2156 WG List: 2158 Editors: Reshad Rahman (rrahman@cisco.com), 2159 Lianshu Zheng (vero.zheng@huawei.com), 2160 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2162 description 2163 "This module contains the YANG definition for BFD parameters for 2164 MPLS LSPs as per RFC5884. 2166 Copyright (c) 2017 IETF Trust and the persons 2167 identified as authors of the code. All rights reserved. 2169 Redistribution and use in source and binary forms, with or 2170 without modification, is permitted pursuant to, and subject 2171 to the license terms contained in, the Simplified BSD License 2172 set forth in Section 4.c of the IETF Trust's Legal Provisions 2173 Relating to IETF Documents 2174 (http://trustee.ietf.org/license-info). 2176 This version of this YANG module is part of RFC XXXX; see 2177 the RFC itself for full legal notices."; 2179 revision 2018-01-11 { 2180 description "Initial revision."; 2181 reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; 2182 } 2184 // RFC Ed.: replace XXXX with actual RFC number and remove this 2185 // note 2187 identity encap-gach { 2188 base bfd-types:encap-type; 2189 description 2190 "BFD with G-ACh encapsulation as per RFC5586."; 2191 } 2193 identity encap-ip-gach { 2194 base bfd-types:encap-type; 2195 description 2196 "BFD with IP and G-ACh encapsulation as per RFC5586."; 2197 } 2199 grouping encap-cfg { 2200 description "Configuration for BFD encapsulation"; 2201 leaf encap { 2202 type identityref { 2203 base bfd-types:encap-type; 2204 } 2205 default bfd-types:encap-ip; 2206 description "BFD encapsulation"; 2207 } 2208 } 2210 grouping mpls-dest-address { 2211 description "Destination address as per RFC5884"; 2213 leaf mpls-dest-address { 2214 type inet:ip-address; 2215 config "false"; 2216 description 2217 "Destination address as per RFC5884. 2218 Needed if IP encapsulation is used"; 2219 } 2220 } 2222 augment "/rt:routing/rt:control-plane-protocols/" 2223 + "rt:control-plane-protocol/bfd:bfd" { 2224 description "BFD augmentation for MPLS"; 2225 container mpls { 2226 description "BFD MPLS top level container"; 2228 uses bfd-types:session-statistics; 2230 container egress { 2231 description "Egress configuration"; 2233 uses bfd-types:client-cfg-parms; 2235 uses bfd-types:auth-parms; 2236 } 2238 list session-group { 2239 key "mpls-fec"; 2240 description 2241 "Group of BFD MPLS sessions (for ECMP). A group of " + 2242 "sessions is for 1 FEC, each session has a different " + 2243 "field in UDP/IP hdr for ECMP."; 2244 leaf mpls-fec { 2245 type inet:ip-prefix; 2246 description "MPLS FEC"; 2247 } 2248 uses bfd-types:common-cfg-parms; 2250 list sessions { 2251 config false; 2252 description 2253 "The BFD sessions for an MPLS FEC. Local " + 2254 "discriminator is unique for each session in the " + 2255 "group."; 2256 uses bfd-types:all-session; 2258 uses bfd-mpls:mpls-dest-address; 2259 } 2260 } 2261 } 2262 } 2264 notification mpls-notification { 2265 description 2266 "Notification for BFD over MPLS FEC session state change. " + 2267 "An implementation may rate-limit notifications, e.g. when a" + 2268 "session is continuously changing state."; 2270 uses bfd-types:notification-parms; 2272 leaf mpls-dest-address { 2273 type inet:ip-address; 2274 description 2275 "Destination address as per RFC5884. 2276 Needed if IP encapsulation is used"; 2277 } 2278 } 2279 } 2281 2283 2.19. BFD over MPLS-TE YANG Module 2285 file "ietf-bfd-mpls-te@2018-01-11.yang" 2287 module ietf-bfd-mpls-te { 2288 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; 2289 // replace with IANA namespace when assigned 2290 prefix "bfd-mpls-te"; 2292 import ietf-bfd-types { 2293 prefix "bfd-types"; 2294 } 2295 import ietf-bfd { 2296 prefix "bfd"; 2297 } 2299 import ietf-bfd-mpls { 2300 prefix "bfd-mpls"; 2301 } 2303 import ietf-te { 2304 prefix "te"; 2305 } 2307 import ietf-routing { 2308 prefix "rt"; 2309 } 2311 organization "IETF BFD Working Group"; 2313 contact 2314 "WG Web: 2315 WG List: 2317 Editors: Reshad Rahman (rrahman@cisco.com), 2318 Lianshu Zheng (vero.zheng@huawei.com), 2319 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2321 description 2322 "This module contains the YANG definition for BFD parameters for 2323 MPLS Traffic Engineering as per RFC5884. 2325 Copyright (c) 2017 IETF Trust and the persons 2326 identified as authors of the code. All rights reserved. 2328 Redistribution and use in source and binary forms, with or 2329 without modification, is permitted pursuant to, and subject 2330 to the license terms contained in, the Simplified BSD License 2331 set forth in Section 4.c of the IETF Trust's Legal Provisions 2332 Relating to IETF Documents 2333 (http://trustee.ietf.org/license-info). 2335 This version of this YANG module is part of RFC XXXX; see 2336 the RFC itself for full legal notices."; 2338 revision 2018-01-11 { 2339 description "Initial revision."; 2340 reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; 2341 } 2342 // RFC Ed.: replace XXXX with actual RFC number and remove this 2343 // note 2345 augment "/rt:routing/rt:control-plane-protocols/" 2346 + "rt:control-plane-protocol/bfd:bfd" { 2347 description "BFD augmentation for MPLS-TE"; 2348 container mpls-te { 2349 description "BFD MPLS-TE top level container"; 2351 container egress { 2352 description "Egress configuration"; 2354 uses bfd-types:client-cfg-parms; 2356 uses bfd-types:auth-parms; 2357 } 2359 uses bfd-types:session-statistics; 2360 } 2361 } 2363 augment "/te:te/te:tunnels/te:tunnel" { 2364 description "BFD configuration on MPLS-TE tunnel."; 2366 uses bfd-types:common-cfg-parms; 2368 uses bfd-mpls:encap-cfg; 2369 } 2371 augment "/te:te/te:lsps-state/te:lsp" { 2372 when "/te:te/te:lsps-state/te:lsp/te:origin-type != 'transit'" { 2373 description "BFD information not needed at transit points"; 2374 } 2375 description "BFD state information on MPLS-TE LSP."; 2377 uses bfd-types:all-session; 2379 uses bfd-mpls:mpls-dest-address; 2380 } 2382 notification mpls-te-notification { 2383 description 2384 "Notification for BFD over MPLS-TE session state change. " + 2385 "An implementation may rate-limit notifications, e.g. when a" + 2386 "session is continuously changing state."; 2388 uses bfd-types:notification-parms; 2389 uses bfd-mpls:mpls-dest-address; 2391 leaf tunnel-name { 2392 type string; 2393 description "MPLS-TE tunnel on which BFD was running."; 2394 } 2395 } 2396 } 2398 2400 2.20. Security Considerations 2402 The YANG module defined in this memo is designed to be accessed via 2403 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2404 secure transport layer and the mandatory to implement secure 2405 transport is SSH [RFC6242]. The NETCONF access control model 2406 [RFC6536] provides the means to restrict access for particular 2407 NETCONF users to a pre-configured subset of all available NETCONF 2408 protocol operations and content. 2410 The YANG module has writeable data nodes which can be used for 2411 creation of BFD sessions and modification of BFD session parameters. 2412 The system should "police" creation of BFD sessions to prevent new 2413 sessions from causing existing BFD sessions to fail. For BFD session 2414 modification, the BFD protocol has mechanisms in place which allow 2415 for in service modification. 2417 2.21. IANA Considerations 2419 The IANA is requested to as assign a new namespace URI from the IETF 2420 XML registry. 2422 This document registers the following namesace URIs in the IETF XML 2423 registry [RFC3688]: 2425 -------------------------------------------------------------------- 2427 URI: urn:ietf:params:xml:ns:yang:ietf-bfd 2429 Registrant Contact: The IESG. 2431 XML: N/A, the requested URI is an XML namespace. 2433 -------------------------------------------------------------------- 2435 -------------------------------------------------------------------- 2436 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh 2438 Registrant Contact: The IESG. 2440 XML: N/A, the requested URI is an XML namespace. 2442 -------------------------------------------------------------------- 2444 -------------------------------------------------------------------- 2446 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-mh 2448 Registrant Contact: The IESG. 2450 XML: N/A, the requested URI is an XML namespace. 2452 -------------------------------------------------------------------- 2454 -------------------------------------------------------------------- 2456 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-lag 2458 Registrant Contact: The IESG. 2460 XML: N/A, the requested URI is an XML namespace. 2462 -------------------------------------------------------------------- 2464 -------------------------------------------------------------------- 2466 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-mpls 2468 Registrant Contact: The IESG. 2470 XML: N/A, the requested URI is an XML namespace. 2472 -------------------------------------------------------------------- 2474 -------------------------------------------------------------------- 2476 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te 2478 Registrant Contact: The IESG. 2480 XML: N/A, the requested URI is an XML namespace. 2482 -------------------------------------------------------------------- 2484 2.21.1. IANA-Maintained iana-bfd-types module 2486 This document defines the initial version of the IANA-maintained 2487 iana-bfd-types YANG module. 2489 The iana-bfd-types YANG module is intended to reflect the "BFD 2490 Diagnostic Codes" registry and "BFD Authentication Types" registry at 2491 https://www.iana.org/assignments/bfd-parameters/bfd-parameters.xhtml 2493 2.22. Acknowledgements 2495 We would also like to thank Nobo Akiya and Jeff Haas for their 2496 encouragement on this work. We would also like to thank Rakesh 2497 Gandhi and Tarek Saad for their help on the MPLS-TE model. We would 2498 also like to thank Acee Lindem for his guidance. 2500 3. References 2502 3.1. Normative References 2504 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2505 Requirement Levels", BCP 14, RFC 2119, 2506 DOI 10.17487/RFC2119, March 1997, . 2509 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 2510 DOI 10.17487/RFC3688, January 2004, . 2513 [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., 2514 "MPLS Generic Associated Channel", RFC 5586, 2515 DOI 10.17487/RFC5586, June 2009, . 2518 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2519 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 2520 . 2522 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2523 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, 2524 DOI 10.17487/RFC5881, June 2010, . 2527 [RFC5882] Katz, D. and D. Ward, "Generic Application of 2528 Bidirectional Forwarding Detection (BFD)", RFC 5882, 2529 DOI 10.17487/RFC5882, June 2010, . 2532 [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2533 (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, 2534 June 2010, . 2536 [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, 2537 "Bidirectional Forwarding Detection (BFD) for MPLS Label 2538 Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, 2539 June 2010, . 2541 [RFC5885] Nadeau, T., Ed. and C. Pignataro, Ed., "Bidirectional 2542 Forwarding Detection (BFD) for the Pseudowire Virtual 2543 Circuit Connectivity Verification (VCCV)", RFC 5885, 2544 DOI 10.17487/RFC5885, June 2010, . 2547 [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., 2548 Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional 2549 Forwarding Detection (BFD) on Link Aggregation Group (LAG) 2550 Interfaces", RFC 7130, DOI 10.17487/RFC7130, February 2551 2014, . 2553 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 2554 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 2555 . 2557 [RFC7277] Bjorklund, M., "A YANG Data Model for IP Management", 2558 RFC 7277, DOI 10.17487/RFC7277, June 2014, 2559 . 2561 [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 2562 Management", RFC 8022, DOI 10.17487/RFC8022, November 2563 2016, . 2565 3.2. Informative References 2567 [I-D.dsdt-nmda-guidelines] 2568 Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 2569 and R. Wilton, "Guidelines for YANG Module Authors 2570 (NMDA)", draft-dsdt-nmda-guidelines-01 (work in progress), 2571 May 2017. 2573 [I-D.ietf-lime-yang-connectionless-oam] 2574 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 2575 "Generic YANG Data Model for the Management of Operations, 2576 Administration, and Maintenance (OAM) Protocols that use 2577 Connectionless Communications", draft-ietf-lime-yang- 2578 connectionless-oam-18 (work in progress), November 2017. 2580 [I-D.ietf-mpls-base-yang] 2581 Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., 2582 Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data 2583 Model for MPLS Base", draft-ietf-mpls-base-yang-05 (work 2584 in progress), July 2017. 2586 [I-D.ietf-netmod-schema-mount] 2587 Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- 2588 ietf-netmod-schema-mount-08 (work in progress), October 2589 2017. 2591 [I-D.ietf-rtgwg-device-model] 2592 Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, 2593 "Network Device YANG Logical Organization", draft-ietf- 2594 rtgwg-device-model-02 (work in progress), March 2017. 2596 [I-D.ietf-rtgwg-lne-model] 2597 Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. 2598 Liu, "YANG Logical Network Elements", draft-ietf-rtgwg- 2599 lne-model-05 (work in progress), December 2017. 2601 [I-D.ietf-rtgwg-ni-model] 2602 Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. 2603 Liu, "YANG Network Instances", draft-ietf-rtgwg-ni- 2604 model-05 (work in progress), December 2017. 2606 [I-D.ietf-teas-yang-te] 2607 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 2608 I. Bryskin, "A YANG Data Model for Traffic Engineering 2609 Tunnels and Interfaces", draft-ietf-teas-yang-te-10 (work 2610 in progress), December 2017. 2612 [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. 2613 Zhang, "YANG Data Model for Key Chains", RFC 8177, 2614 DOI 10.17487/RFC8177, June 2017, . 2617 Appendix A. Echo function configuration example 2619 The following intervals are added for the echo function (if 2620 supported): 2622 desired-min-echo-tx-interval 2623 This is the minimum interval that the local system would like 2624 to use when transmitting BFD echo packets. If 0, the echo 2625 function as defined in BFD [RFC5880] is disabled. 2627 required-min-echo-rx-interval 2628 This is the Required Min Echo RX Interval as defined in BFD 2629 [RFC5880]. 2631 module: example-bfd-echo 2632 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-proto 2633 col/bfd:bfd/bfd-ip-sh:ip-sh/bfd-ip-sh:sessions: 2634 +--rw echo {bfd-types:echo-mode}? 2635 +--rw desired-min-echo-tx-interval? uint32 2636 +--rw required-min-echo-rx-interval? uint32 2638 A.1. Example YANG module for BFD echo function 2640 module example-bfd-echo { 2641 namespace "tag:example.com,2017:example-bfd-echo"; 2643 prefix "example-bfd-echo"; 2645 import ietf-bfd-types { 2646 prefix "bfd-types"; 2647 } 2649 import ietf-bfd { 2650 prefix "bfd"; 2651 } 2653 import ietf-bfd-ip-sh { 2654 prefix "bfd-ip-sh"; 2655 } 2657 import ietf-routing { 2658 prefix "rt"; 2659 } 2661 organization "IETF BFD Working Group"; 2663 contact 2664 "WG Web: 2665 WG List: 2667 Editors: Reshad Rahman (rrahman@cisco.com), 2668 Lianshu Zheng (vero.zheng@huawei.com), 2669 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2671 description 2672 "This module contains an example YANG augmentation for configuration 2673 of BFD echo function. 2675 Copyright (c) 2017 IETF Trust and the persons 2676 identified as authors of the code. All rights reserved. 2678 Redistribution and use in source and binary forms, with or 2679 without modification, is permitted pursuant to, and subject 2680 to the license terms contained in, the Simplified BSD License 2681 set forth in Section 4.c of the IETF Trust's Legal Provisions 2682 Relating to IETF Documents 2683 (http://trustee.ietf.org/license-info). 2685 This version of this YANG module is part of RFC XXXX; see 2686 the RFC itself for full legal notices."; 2688 revision 2018-01-11 { 2689 description "Initial revision."; 2690 reference 2691 "RFC XXXX: A YANG data model example augmentation for BFD echo 2692 function"; 2693 } 2695 // RFC Ed.: replace XXXX with actual RFC number and remove this 2696 // note 2698 /* 2699 * Groupings 2700 */ 2701 grouping echo-cfg-parms { 2702 description "BFD grouping for echo config parameters"; 2703 leaf desired-min-echo-tx-interval { 2704 type uint32; 2705 units microseconds; 2706 default 0; 2707 description "Desired minumum transmit interval for echo"; 2708 } 2710 leaf required-min-echo-rx-interval { 2711 type uint32; 2712 units microseconds; 2713 default 0; 2714 description "Required minimum receive interval for echo"; 2715 } 2716 } 2718 augment "/rt:routing/rt:control-plane-protocols/" 2719 + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" 2720 + "bfd-ip-sh:sessions" { 2721 description "Augmentation for BFD echo fucntion."; 2722 container echo { 2723 if-feature bfd-types:echo-mode; 2725 description "BFD echo function container"; 2727 uses echo-cfg-parms; 2728 } 2729 } 2730 } 2732 Appendix B. BFD client configuration example 2734 The following is an example of how a BFD client could use the 2735 grouping client-cfg-parms. 2737 module: example-bfd-client 2738 +--rw area* [area-id] 2739 +--rw area-id uint32 2740 +--rw bfd 2741 | +--rw enable? boolean 2742 | +--rw local-multiplier? multiplier 2743 | +--rw (interval-config-type)? 2744 | +--:(tx-rx-intervals) 2745 | | +--rw desired-min-tx-interval? uint32 2746 | | +--rw required-min-rx-interval? uint32 2747 | +--:(single-interval) 2748 | +--rw min-interval? uint32 2749 +--rw interface* [interface] 2750 +--rw interface if:interface-ref 2751 +--rw bfd 2752 +--rw enable? boolean 2753 +--rw local-multiplier? multiplier 2754 +--rw (interval-config-type)? 2755 +--:(tx-rx-intervals) 2756 | +--rw desired-min-tx-interval? uint32 2757 | +--rw required-min-rx-interval? uint32 2758 +--:(single-interval) 2759 +--rw min-interval? uint32 2761 B.1. Example YANG module for BFD client 2763 module example-bfd-client { 2764 namespace "tag:example.com,2017:example-bfd-client"; 2766 prefix "example-bfd-client"; 2768 import ietf-bfd-types { 2769 prefix "bfd-types"; 2770 } 2772 import ietf-interfaces { 2773 prefix "if"; 2774 } 2776 organization "IETF BFD Working Group"; 2778 contact 2779 "WG Web: 2780 WG List: 2782 Editors: Reshad Rahman (rrahman@cisco.com), 2783 Lianshu Zheng (vero.zheng@huawei.com), 2784 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2786 description 2787 "This module contains an example of how a protocol which is a 2788 client of BFD would use BFD parameters. 2790 Copyright (c) 2017 IETF Trust and the persons 2791 identified as authors of the code. All rights reserved. 2793 Redistribution and use in source and binary forms, with or 2794 without modification, is permitted pursuant to, and subject 2795 to the license terms contained in, the Simplified BSD License 2796 set forth in Section 4.c of the IETF Trust's Legal Provisions 2797 Relating to IETF Documents 2798 (http://trustee.ietf.org/license-info). 2800 This version of this YANG module is part of RFC XXXX; see 2801 the RFC itself for full legal notices."; 2803 revision 2018-01-11 { 2804 description "Initial revision."; 2805 reference 2806 "RFC XXXX: A YANG data model example for BFD client."; 2807 } 2809 // RFC Ed.: replace XXXX with actual RFC number and remove this 2810 // note 2812 feature routing-app-bfd { 2813 description "BFD configuration under routing-app"; 2814 } 2816 list area { 2817 key "area-id"; 2819 description "Specify a routing area."; 2821 leaf area-id { 2822 type uint32; 2823 description "Area"; 2824 } 2826 container bfd { 2827 description "BFD configuration for the area."; 2828 uses bfd-types:client-cfg-parms { 2829 if-feature routing-app-bfd; 2830 } 2831 } 2833 list interface { 2834 key "interface"; 2835 description "List of interfaces"; 2836 leaf interface { 2837 type if:interface-ref; 2838 description "Interface"; 2839 } 2840 container bfd { 2841 description "BFD configuration for the interface."; 2842 uses bfd-types:client-cfg-parms { 2843 if-feature routing-app-bfd; 2844 } 2845 } 2846 } 2847 } 2849 } 2851 Appendix C. Change log 2853 RFC Editor: Remove this section upon publication as an RFC. 2855 C.1. Changes between versions -07 and -08 2857 o Timer intervals in client-cfg-parms are not mandatory anymore. 2859 o Added list of interfaces under "ip-sh" node for authentication 2860 parameters. 2862 o Renamed replay-protection to meticulous. 2864 C.2. Changes between versions -06 and -07 2866 o New ietf-bfd-types module. 2868 o Grouping for BFD clients to have BFD multiplier and interval 2869 values. 2871 o Change in ietf-bfd-mpls-te since MPLS-TE model changed. 2873 o Removed bfd- prefix from many names. 2875 C.3. Changes between versions -05 and -06 2877 o Adhere to NMDA-guidelines. 2879 o Echo function config moved to appendix as example. 2881 o Added IANA YANG modules. 2883 o Addressed various comments. 2885 C.4. Changes between versions -04 and -05 2887 o "bfd" node in augment of control-plane-protocol as per A YANG Data 2888 Model for Routing Management [RFC8022]. 2890 o Removed augment of network-instance. Replaced by schema-mount. 2892 o Added information on interaction with other YANG modules. 2894 C.5. Changes between versions -03 and -04 2896 o Updated author information. 2898 o Fixed YANG compile error in ietf-bfd-lag.yang which was due to 2899 incorrect when statement. 2901 C.6. Changes between versions -02 and -03 2903 o Fixed YANG compilation warning due to incorrect revision date in 2904 ietf-bfd-ip-sh module. 2906 C.7. Changes between versions -01 and -02 2908 o Replace routing-instance, which has been removed from A YANG Data 2909 Model for Routing Management [RFC8022], with network-instance from 2910 YANG Network Instances [I-D.ietf-rtgwg-ni-model] 2912 C.8. Changes between versions -00 and -01 2914 o Remove BFD configuration parameters from BFD clients, all BFD 2915 configuration parameters in BFD 2917 o YANG module split in multiple YANG modules (one per type of 2918 forwarding path) 2920 o For BFD over MPLS-TE we augment MPLS-TE model 2922 o For BFD authentication we now use YANG Data Model for Key Chains 2923 [RFC8177] 2925 Authors' Addresses 2927 Reshad Rahman (editor) 2928 Cisco Systems 2929 Canada 2931 Email: rrahman@cisco.com 2933 Lianshu Zheng (editor) 2934 Huawei Technologies 2935 China 2937 Email: vero.zheng@huawei.com 2939 Mahesh Jethanandani (editor) 2940 Cisco Systems 2942 Email: mjethanandani@gmail.com 2944 Santosh Pallagatti 2945 India 2947 Email: santosh.pallagatti@gmail.com 2949 Greg Mirsky 2950 ZTE Corporation 2952 Email: gregimirsky@gmail.com