idnits 2.17.1 draft-ietf-bfd-yang-17.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 == The document doesn't use any RFC 2119 keywords, yet has text resembling RFC 2119 boilerplate text. -- The document date (August 1, 2018) is 2094 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) == Outdated reference: A later version (-17) exists of draft-ietf-mpls-base-yang-06 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-16 ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 2 errors (**), 0 flaws (~~), 4 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: February 2, 2019 Huawei Technologies 6 M. Jethanandani, Ed. 7 Xoriant Corporation 8 S. Pallagatti 9 Rtbrick 10 G. Mirsky 11 ZTE Corporation 12 August 1, 2018 14 YANG Data Model for Bidirectional Forwarding Detection (BFD) 15 draft-ietf-bfd-yang-17 17 Abstract 19 This document defines a YANG data model that can be used to configure 20 and manage Bidirectional Forwarding Detection (BFD). 22 The YANG modules in this document conform to the Network Management 23 Datastore Architecture (NMDA). 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on February 2, 2019. 42 Copyright Notice 44 Copyright (c) 2018 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 60 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 61 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 62 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 63 2.1. Design of Configuration Model . . . . . . . . . . . . . . 5 64 2.1.1. Common BFD configuration parameters . . . . . . . . . 6 65 2.1.2. Single-hop IP . . . . . . . . . . . . . . . . . . . . 7 66 2.1.3. Multihop IP . . . . . . . . . . . . . . . . . . . . . 7 67 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 8 68 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 9 69 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 9 70 2.2. Design of Operational State Model . . . . . . . . . . . . 9 71 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 10 72 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 10 73 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 10 74 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 10 75 2.7. BFD IP multihop hierarchy . . . . . . . . . . . . . . . . 12 76 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 14 77 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 18 78 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 20 79 2.11. Interaction with other YANG modules . . . . . . . . . . . 22 80 2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 22 81 2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 22 82 2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 23 83 2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 23 84 2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 23 85 2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 26 86 2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 39 87 2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 41 88 2.16. BFD IP multihop YANG Module . . . . . . . . . . . . . . . 44 89 2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 47 90 2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 51 91 2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 55 92 3. Data Model examples . . . . . . . . . . . . . . . . . . . . . 58 93 3.1. IP single-hop . . . . . . . . . . . . . . . . . . . . . . 58 94 3.2. IP multihop . . . . . . . . . . . . . . . . . . . . . . . 59 95 3.3. LAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 96 3.4. MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . 61 98 4. Security Considerations . . . . . . . . . . . . . . . . . . . 62 99 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 66 100 5.1. IANA-Maintained iana-bfd-types module . . . . . . . . . . 70 101 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 70 102 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 70 103 7.1. Normative References . . . . . . . . . . . . . . . . . . 70 104 7.2. Informative References . . . . . . . . . . . . . . . . . 73 105 Appendix A. Echo function configuration example . . . . . . . . 73 106 A.1. Example YANG module for BFD echo function configuration . 74 107 Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 76 108 B.1. Changes between versions -16 and -17 . . . . . . . . . . 76 109 B.2. Changes between versions -15 and -16 . . . . . . . . . . 76 110 B.3. Changes between versions -14 and -15 . . . . . . . . . . 76 111 B.4. Changes between versions -13 and -14 . . . . . . . . . . 76 112 B.5. Changes between versions -12 and -13 . . . . . . . . . . 76 113 B.6. Changes between versions -11 and -12 . . . . . . . . . . 76 114 B.7. Changes between versions -10 and -11 . . . . . . . . . . 76 115 B.8. Changes between versions -09 and -10 . . . . . . . . . . 77 116 B.9. Changes between versions -08 and -09 . . . . . . . . . . 77 117 B.10. Changes between versions -07 and -08 . . . . . . . . . . 77 118 B.11. Changes between versions -06 and -07 . . . . . . . . . . 77 119 B.12. Changes between versions -05 and -06 . . . . . . . . . . 77 120 B.13. Changes between versions -04 and -05 . . . . . . . . . . 78 121 B.14. Changes between versions -03 and -04 . . . . . . . . . . 78 122 B.15. Changes between versions -02 and -03 . . . . . . . . . . 78 123 B.16. Changes between versions -01 and -02 . . . . . . . . . . 78 124 B.17. Changes between versions -00 and -01 . . . . . . . . . . 78 125 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 78 127 1. Introduction 129 This document defines a YANG data model that can be used to configure 130 and manage Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD 131 is a network protocol which is used for liveness detection of 132 arbitrary paths between systems. Some examples of different types of 133 paths over which we have BFD: 135 1) Two systems directly connected via IP. This is known as BFD over 136 single-hop IP, a.k.a. BFD for IPv4 and IPv6 [RFC5881] 138 2) Two systems connected via multiple hops as described in BFD for 139 Multiple Hops. [RFC5883] 141 3) Two systems connected via MPLS Label Switched Paths (LSPs) as 142 described in BFD for MPLS LSP [RFC5884] 144 4) Two systems connected via a Link Aggregation Group (LAG) interface 145 as described in BFD on LAG Interfaces [RFC7130] 146 5) Two systems connected via pseudowires (PWs), this is known as 147 Virtual Circuit Connectivity Verification (VCCV) as described in BFD 148 for PW VCCV [RFC5885]. This is not addressed in this document. 150 BFD typically does not operate on its own. Various control 151 protocols, also known as BFD clients, use the services provided by 152 BFD for their own operation as described in Generic Application of 153 BFD [RFC5882]. The obvious candidates which use BFD are those which 154 do not have "hellos" to detect failures, e.g. static routes, and 155 routing protocols whose "hellos" do not support sub-second failure 156 detection, e.g. OSPF and IS-IS. 158 The YANG modules in this document conform to the Network Management 159 Datastore Architecture (NMDA) [RFC8342]. This means that the data 160 models do not have separate top-level or sibling containers for 161 configuration and operational state data. 163 1.1. Requirements Language 165 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 166 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 167 document are to be interpreted as described in BCP 14 [RFC2119] 168 [RFC8174] when, and only when, they appear in all capitals, as shown 169 here. 171 1.2. Tree Diagrams 173 This document uses the graphical representation of data models 174 defined in [RFC8340]. 176 2. Design of the Data Model 178 Since BFD is used for liveliness detection of various forwarding 179 paths, there is no uniform key to identify a BFD session, and so the 180 BFD data model is split in multiple YANG modules where each module 181 corresponds to one type of forwarding path. For example, BFD for IP 182 single-hop is in one YANG module and BFD for MPLS-TE is in another 183 YANG module. The main difference between these modules is how a BFD 184 session is uniquely identified, i.e the key for the list containing 185 the BFD sessions for that forwarding path. To avoid duplication of 186 BFD definitions, we have common types and groupings which are used by 187 all the modules. 189 A new control-plane protocol "bfdv1" is defined and a "bfd" container 190 is created under control-plane-protocol as specified in "A YANG Data 191 Model for Routing Management (NMDA Version)" [RFC8349]. This new 192 "bfd" container is augmented by all the YANG modules for their 193 respective specific information: 195 1. ietf-bfd-ip-sh.yang augments "/routing/control-plane-protocols/ 196 control-plane-protocol/bfd/" with the "ip-sh" container for BFD 197 sessions over IP single-hop. 199 2. ietf-bfd-ip-mh.yang augments "/routing/control-plane-protocols/ 200 control-plane-protocol/bfd/" with the "ip-mh" container for BFD 201 sessions over IP multi-hop. 203 3. ietf-bfd-lag.yang augments "/routing/control-plane-protocols/ 204 control-plane-protocol/bfd/" with the "lag" container for BFD 205 sessions over LAG. 207 4. ietf-bfd-mpls.yang augments "/routing/control-plane-protocols/ 208 control-plane-protocol/bfd/" with the "mpls" container for BFD 209 over MPLS LSPs. 211 5. ietf-bfd-mpls-te.yang augments "/routing/control-plane-protocols/ 212 control-plane-protocol/bfd/" with the "mpls-te" container for BFD 213 over MPLS-TE. 215 BFD can operate in the following contexts: 217 1. At the network device level 219 2. In Logical Network Elements as described in YANG Logical Network 220 Element [I-D.ietf-rtgwg-lne-model] 222 3. In Network Instances as described in YANG Logical Network Element 223 [I-D.ietf-rtgwg-ni-model] 225 When used at the network device level, the BFD YANG model is used 226 "as-is". When the BFD YANG model is used in a Logical Network 227 Element or in a Network Instance, then the BFD YANG model augments 228 the mounted routing model for the Logical Network Element or the 229 Network Instance. 231 2.1. Design of Configuration Model 233 The configuration model consists mainly of the parameters specified 234 in BFD [RFC5880]. Some examples are desired minimum transmit 235 interval, required minimum receive interval, detection multiplier, 236 etc 238 BFD clients are applications that use BFD for fast detection of 239 failures. Some implementations have BFD session configuration under 240 the BFD clients. For example, BFD session configuration under 241 routing applications such as OSPF, IS-IS, BGP etc. Other 242 implementations have BFD session configuration centralized under BFD, 243 i.e. outside the multiple BFD clients. 245 The BFD parameters of interest to a BFD client are mainly the 246 multiplier and interval(s) since those parameters impact the 247 convergence time of the BFD clients when a failure occurs. Other 248 parameters such as BFD authentication are not specific to the 249 requirements of the BFD client. Ideally all configuration should be 250 centralized under BFD. However, this is a problem for clients of BFD 251 which auto-discover their peers. For example, IGPs do not have the 252 peer address configured, instead the IGP is enabled on an interface 253 and the IGP peers are auto-discovered. So for an operator to 254 configure BFD to an IGP peer, the operator would first have to 255 determine the peer addresses. And when a new peer is discovered, BFD 256 configuration would need to be added. To avoid this issue, we define 257 grouping client-cfg-parms in Section 2.13 for BFD clients to 258 configure BFD: this allows BFD clients such as the IGPs to have 259 configuration (multiplier and intervals) for the BFD sessions they 260 need. For example, when a new IGP peer is discovered, the IGP would 261 create a BFD session to the newly discovered peer and similarly when 262 an IGP peer goes away, the IGP would remove the BFD session to that 263 peer. The mechanism how the BFD sessions are created and removed by 264 the BFD clients is outside the scope of this document, but typically 265 this would be done by use of an API implemented by the BFD module on 266 the system. For BFD clients which create BFD sessions via their own 267 configuration, authentication parameters (if required) are still 268 specified in BFD. 270 2.1.1. Common BFD configuration parameters 272 The basic BFD configuration parameters are: 274 local-multiplier 275 This is the detection time multiplier as defined in BFD 276 [RFC5880]. 278 desired-min-tx-interval 279 This is the Desired Min TX Interval as defined in BFD 280 [RFC5880]. 282 required-min-rx-interval 283 This is the Required Min RX Interval as defined in BFD 284 [RFC5880]. 286 Although BFD [RFC5880] allows for different values for transmit and 287 receive intervals, some implementations allow users to specify just 288 one interval which is used for both transmit and receive intervals or 289 separate values for transmit and receive intervals. The BFD YANG 290 model supports this: there is a choice between "min-interval", used 291 for both transmit and receive intervals, and "desired-min-tx- 292 interval" and "required-min-rx-interval". This is supported via a 293 grouping which is used by the YANG modules for the various forwarding 294 paths. 296 For BFD authentication we have: 298 key-chain 299 This is a reference to key-chain defined in YANG Data Model 300 for Key Chains [RFC8177]. The keys, cryptographic 301 algorithms, key lifetime etc are all defined in the key-chain 302 model. 304 meticulous 305 This enables meticulous mode as per BFD [RFC5880]. 307 2.1.2. Single-hop IP 309 For single-hop IP, there is an augment of the "bfd" data node in 310 Section 2. The "ip-sh" node contains a list of IP single-hop 311 sessions where each session is uniquely identified by the interface 312 and destination address pair. For the configuration parameters we 313 use what is defined in Section 2.1.1. The "ip-sh" node also contains 314 a list of interfaces, this is used to specify authentication 315 parameters for BFD sessions which are created by BFD clients, see 316 Section 2.1. 318 [RFC5880] and [RFC5881] do not specify whether echo function is 319 continuous or on demand. Therefore the mechanism used to start and 320 stop echo function is implementation specific and should be done by 321 augmentation: 323 1) Configuration. This is suitable for continuous echo function. 324 An example is provided in Appendix A. 326 2) RPC. This is suitable for on-demand echo function. 328 2.1.3. Multihop IP 330 For multihop IP, there is an augment of the "bfd" data node in 331 Section 2. 333 Because of multiple paths, there could be multiple multihop IP 334 sessions between a source and a destination address. We identify 335 this as a "session-group". The key for each "session-group" consists 336 of: 338 source address 339 Address belonging to the local system as per BFD for Multiple 340 Hops [RFC5883] 342 destination address 343 Address belonging to the remote system as per BFD for 344 Multiple Hops [RFC5883] 346 For the configuration parameters we use what is defined in 347 Section 2.1.1 349 Here are some extra parameters: 351 tx-ttl 352 TTL of outgoing BFD control packets. 354 rx-ttl 355 Minimum TTL of incoming BFD control packets. 357 2.1.4. MPLS Traffic Engineering Tunnels 359 For MPLS-TE tunnels, BFD is configured under the MPLS-TE tunnel since 360 the desired failure detection parameters are a property of the MPLS- 361 TE tunnel. This is achieved by augmenting the MPLS-TE data model in 362 YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te]. For BFD 363 parameters which are specific to the TE application, e.g. whether to 364 tear down the tunnel in the event of a BFD session failure, these 365 parameters will be defined in the YANG model of the MPLS-TE 366 application. 368 On top of the usual BFD parameters, we have the following per MPLS-TE 369 tunnel: 371 encap 372 Encapsulation for the BFD packets: choice between IP, G-ACh 373 and IP with G-ACh as per MPLS Generic Associated Channel 374 [RFC5586] 376 For general MPLS-TE data, "mpls-te" data node is added under the 377 "bfd" node in Section 2. Since some MPLS-TE tunnels are uni- 378 directional there is no MPLS-TE configuration for these tunnels on 379 the egress node (note that this does not apply to bi-directional 380 MPLS-TP tunnels). The BFD parameters for the egress node are added 381 under "mpls-te". 383 2.1.5. MPLS Label Switched Paths 385 Here we address MPLS LSPs whose FEC is an IP address. The "bfd" node 386 in Section 2 is augmented with "mpls" which contains a list of 387 sessions uniquely identified by an IP prefix. Because of multiple 388 paths, there could be multiple MPLS sessions to an MPLS FEC. We 389 identify this as a "session-group". 391 Since these LSPs are uni-directional there is no LSP configuration on 392 the egress node. 394 The BFD parameters for the egress node are added under "mpls". 396 2.1.6. Link Aggregation Groups 398 Per BFD on LAG Interfaces [RFC7130], configuring BFD on LAG consists 399 of having micro-BFD sessions on each LAG member link. Since the BFD 400 parameters are an attribute of the LAG, they should be under the LAG. 401 However there is no LAG YANG model which we can augment. So a "lag" 402 data node is added to the "bfd" node in Section 2, the configuration 403 is per-LAG: we have a list of LAGs. The destination IP address of 404 the micro-BFD sessions is configured per-LAG and per address-family 405 (IPv4 and IPv6) 407 2.2. Design of Operational State Model 409 The operational state model contains both the overall statistics of 410 BFD sessions running on the device and the per session operational 411 information. 413 The overall statistics of BFD sessions consist of number of BFD 414 sessions, number of BFD sessions up etc. This information is 415 available globally (i.e. for all BFD sessions) under the "bfd" node 416 in Section 2 and also per type of forwarding path. 418 For each BFD session, mainly three categories of operational state 419 data are shown. The fundamental information of a BFD session such as 420 the local discriminator, remote discriminator and the capability of 421 supporting demand detect mode are shown in the first category. The 422 second category includes a BFD session running information, e.g. the 423 remote BFD state and the diagnostic code received. Another example 424 is the actual transmit interval between the control packets, which 425 may be different from the desired minimum transmit interval 426 configured, is shown in this category. Similar examples are actual 427 received interval between the control packets and the actual transmit 428 interval between the echo packets. The third category contains the 429 detailed statistics of the session, e.g. when the session 430 transitioned up/down and how long it has been in that state. 432 For some path types, there may be more than 1 session on the virtual 433 path to the destination. For example, with IP multihop and MPLS 434 LSPs, there could be multiple BFD sessions from the source to the 435 same destination to test the various paths (ECMP) to the destination. 436 This is represented by having multiple "sessions" under each 437 "session-group". 439 2.3. Notifications 441 This YANG model defines notifications to inform end-users of 442 important events detected during the protocol operation. Pair of 443 local and remote discriminator identifies a BFD session on local 444 system. Notifications also give more important details about BFD 445 sessions; e.g. new state, time in previous state, network-instance 446 and the reason that the BFD session state changed. The notifications 447 are defined for each type of forwarding path but use groupings for 448 common information. 450 2.4. RPC Operations 452 None. 454 2.5. BFD top level hierarchy 456 At the "bfd" node under control-plane-protocol, there is no 457 configuration data, only operational state data. The operational 458 state data consist of overall BFD session statistics, i.e. for BFD on 459 all types of forwarding paths. 461 module: ietf-bfd 462 augment /rt:routing/rt:control-plane-protocols 463 /rt:control-plane-protocol: 464 +--rw bfd 465 +--ro summary 466 +--ro number-of-sessions? yang:gauge32 467 +--ro number-of-sessions-up? yang:gauge32 468 +--ro number-of-sessions-down? yang:gauge32 469 +--ro number-of-sessions-admin-down? yang:gauge32 471 2.6. BFD IP single-hop hierarchy 473 An "ip-sh" node is added under "bfd" node in control-plane-protocol. 474 The configuration and operational state data for each BFD IP single- 475 hop session is under this "ip-sh" node. 477 module: ietf-bfd-ip-sh 478 augment /rt:routing/rt:control-plane-protocols 479 /rt:control-plane-protocol/bfd:bfd: 480 +--rw ip-sh 481 +--ro summary 482 | +--ro number-of-sessions? yang:gauge32 483 | +--ro number-of-sessions-up? yang:gauge32 484 | +--ro number-of-sessions-down? yang:gauge32 485 | +--ro number-of-sessions-admin-down? yang:gauge32 486 +--rw sessions 487 | +--rw session* [interface dest-addr] 488 | +--rw interface if:interface-ref 489 | +--rw dest-addr inet:ip-address 490 | +--rw source-addr? inet:ip-address 491 | +--rw local-multiplier? multiplier 492 | +--rw (interval-config-type)? 493 | | +--:(tx-rx-intervals) 494 | | | +--rw desired-min-tx-interval? uint32 495 | | | +--rw required-min-rx-interval? uint32 496 | | +--:(single-interval) {single-minimum-interval}? 497 | | +--rw min-interval? uint32 498 | +--rw demand-enabled? boolean 499 | | {demand-mode}? 500 | +--rw admin-down? boolean 501 | +--rw authentication! {authentication}? 502 | | +--rw key-chain? kc:key-chain-ref 503 | | +--rw meticulous? boolean 504 | +--ro path-type? identityref 505 | +--ro ip-encapsulation? boolean 506 | +--ro local-discriminator? discriminator 507 | +--ro remote-discriminator? discriminator 508 | +--ro remote-multiplier? multiplier 509 | +--ro demand-capability? boolean 510 | | {demand-mode}? 511 | +--ro source-port? inet:port-number 512 | +--ro dest-port? inet:port-number 513 | +--ro session-running 514 | | +--ro session-index? uint32 515 | | +--ro local-state? state 516 | | +--ro remote-state? state 517 | | +--ro local-diagnostic? 518 | | | iana-bfd-types:diagnostic 519 | | +--ro remote-diagnostic? 520 | | | iana-bfd-types:diagnostic 521 | | +--ro remote-authenticated? boolean 522 | | +--ro remote-authentication-type? 523 | | | iana-bfd-types:auth-type {authentication}? 524 | | +--ro detection-mode? enumeration 525 | | +--ro negotiated-tx-interval? uint32 526 | | +--ro negotiated-rx-interval? uint32 527 | | +--ro detection-time? uint32 528 | | +--ro echo-tx-interval-in-use? uint32 529 | | {echo-mode}? 530 | +--ro session-statistics 531 | +--ro create-time? 532 | | yang:date-and-time 533 | +--ro last-down-time? 534 | | yang:date-and-time 535 | +--ro last-up-time? 536 | | yang:date-and-time 537 | +--ro down-count? yang:counter32 538 | +--ro admin-down-count? yang:counter32 539 | +--ro receive-packet-count? yang:counter64 540 | +--ro send-packet-count? yang:counter64 541 | +--ro receive-invalid-packet-count? yang:counter64 542 | +--ro send-failed-packet-count? yang:counter64 543 +--rw interfaces* [interface] 544 +--rw interface if:interface-ref 545 +--rw authentication! {authentication}? 546 +--rw key-chain? kc:key-chain-ref 547 +--rw meticulous? boolean 549 notifications: 550 +---n singlehop-notification 551 +--ro local-discr? discriminator 552 +--ro remote-discr? discriminator 553 +--ro new-state? state 554 +--ro state-change-reason? iana-bfd-types:diagnostic 555 +--ro time-of-last-state-change? yang:date-and-time 556 +--ro dest-addr? inet:ip-address 557 +--ro source-addr? inet:ip-address 558 +--ro session-index? uint32 559 +--ro path-type? identityref 560 +--ro interface? if:interface-ref 561 +--ro echo-enabled? boolean 563 2.7. BFD IP multihop hierarchy 565 An "ip-mh" node is added under the "bfd" node in cntrol-plane- 566 protocol. The configuration and operational state data for each BFD 567 IP multihop session is under this "ip-mh" node. In the operational 568 state model we support multiple BFD multihop sessions per remote 569 address (ECMP), the local discriminator is used as key. 571 module: ietf-bfd-ip-mh 572 augment /rt:routing/rt:control-plane-protocols 573 /rt:control-plane-protocol/bfd:bfd: 574 +--rw ip-mh 575 +--ro summary 576 | +--ro number-of-sessions? yang:gauge32 577 | +--ro number-of-sessions-up? yang:gauge32 578 | +--ro number-of-sessions-down? yang:gauge32 579 | +--ro number-of-sessions-admin-down? yang:gauge32 580 +--rw session-groups 581 +--rw session-group* [source-addr dest-addr] 582 +--rw source-addr inet:ip-address 583 +--rw dest-addr inet:ip-address 584 +--rw local-multiplier? multiplier 585 +--rw (interval-config-type)? 586 | +--:(tx-rx-intervals) 587 | | +--rw desired-min-tx-interval? uint32 588 | | +--rw required-min-rx-interval? uint32 589 | +--:(single-interval) {single-minimum-interval}? 590 | +--rw min-interval? uint32 591 +--rw demand-enabled? boolean 592 | {demand-mode}? 593 +--rw admin-down? boolean 594 +--rw authentication! {authentication}? 595 | +--rw key-chain? kc:key-chain-ref 596 | +--rw meticulous? boolean 597 +--rw tx-ttl? bfd-types:hops 598 +--rw rx-ttl bfd-types:hops 599 +--ro sessions* [] 600 +--ro path-type? identityref 601 +--ro ip-encapsulation? boolean 602 +--ro local-discriminator? discriminator 603 +--ro remote-discriminator? discriminator 604 +--ro remote-multiplier? multiplier 605 +--ro demand-capability? boolean {demand-mode}? 606 +--ro source-port? inet:port-number 607 +--ro dest-port? inet:port-number 608 +--ro session-running 609 | +--ro session-index? uint32 610 | +--ro local-state? state 611 | +--ro remote-state? state 612 | +--ro local-diagnostic? 613 | | iana-bfd-types:diagnostic 614 | +--ro remote-diagnostic? 615 | | iana-bfd-types:diagnostic 616 | +--ro remote-authenticated? boolean 617 | +--ro remote-authentication-type? 618 | | iana-bfd-types:auth-type {authentication}? 619 | +--ro detection-mode? enumeration 620 | +--ro negotiated-tx-interval? uint32 621 | +--ro negotiated-rx-interval? uint32 622 | +--ro detection-time? uint32 623 | +--ro echo-tx-interval-in-use? uint32 624 | {echo-mode}? 625 +--ro session-statistics 626 +--ro create-time? 627 | yang:date-and-time 628 +--ro last-down-time? 629 | yang:date-and-time 630 +--ro last-up-time? 631 | yang:date-and-time 632 +--ro down-count? 633 | yang:counter32 634 +--ro admin-down-count? 635 | yang:counter32 636 +--ro receive-packet-count? 637 | yang:counter64 638 +--ro send-packet-count? 639 | yang:counter64 640 +--ro receive-invalid-packet-count? 641 | yang:counter64 642 +--ro send-failed-packet-count? 643 yang:counter64 645 notifications: 646 +---n multihop-notification 647 +--ro local-discr? discriminator 648 +--ro remote-discr? discriminator 649 +--ro new-state? state 650 +--ro state-change-reason? iana-bfd-types:diagnostic 651 +--ro time-of-last-state-change? yang:date-and-time 652 +--ro dest-addr? inet:ip-address 653 +--ro source-addr? inet:ip-address 654 +--ro session-index? uint32 655 +--ro path-type? identityref 657 2.8. BFD over LAG hierarchy 659 A "lag" node is added under the "bfd" node in control-plane-protocol. 660 The configuration and operational state data for each BFD LAG session 661 is under this "lag" node. 663 module: ietf-bfd-lag 664 augment /rt:routing/rt:control-plane-protocols 665 /rt:control-plane-protocol/bfd:bfd: 666 +--rw lag 667 +--rw micro-bfd-ipv4-session-statistics 668 | +--ro summary 669 | +--ro number-of-sessions? yang:gauge32 670 | +--ro number-of-sessions-up? yang:gauge32 671 | +--ro number-of-sessions-down? yang:gauge32 672 | +--ro number-of-sessions-admin-down? yang:gauge32 673 +--rw micro-bfd-ipv6-session-statistics 674 | +--ro summary 675 | +--ro number-of-sessions? yang:gauge32 676 | +--ro number-of-sessions-up? yang:gauge32 677 | +--ro number-of-sessions-down? yang:gauge32 678 | +--ro number-of-sessions-admin-down? yang:gauge32 679 +--rw sessions 680 +--rw session* [lag-name] 681 +--rw lag-name if:interface-ref 682 +--rw ipv4-dest-addr? 683 | inet:ipv4-address 684 +--rw ipv6-dest-addr? 685 | inet:ipv6-address 686 +--rw local-multiplier? multiplier 687 +--rw (interval-config-type)? 688 | +--:(tx-rx-intervals) 689 | | +--rw desired-min-tx-interval? uint32 690 | | +--rw required-min-rx-interval? uint32 691 | +--:(single-interval) {single-minimum-interval}? 692 | +--rw min-interval? uint32 693 +--rw demand-enabled? boolean 694 | {demand-mode}? 695 +--rw admin-down? boolean 696 +--rw authentication! {authentication}? 697 | +--rw key-chain? kc:key-chain-ref 698 | +--rw meticulous? boolean 699 +--rw use-ipv4? boolean 700 +--rw use-ipv6? boolean 701 +--ro member-links* [member-link] 702 +--ro member-link if:interface-ref 703 +--ro micro-bfd-ipv4 704 | +--ro path-type? identityref 705 | +--ro ip-encapsulation? boolean 706 | +--ro local-discriminator? discriminator 707 | +--ro remote-discriminator? discriminator 708 | +--ro remote-multiplier? multiplier 709 | +--ro demand-capability? boolean 710 | | {demand-mode}? 711 | +--ro source-port? inet:port-number 712 | +--ro dest-port? inet:port-number 713 | +--ro session-running 714 | | +--ro session-index? uint32 715 | | +--ro local-state? state 716 | | +--ro remote-state? state 717 | | +--ro local-diagnostic? 718 | | | iana-bfd-types:diagnostic 719 | | +--ro remote-diagnostic? 720 | | | iana-bfd-types:diagnostic 721 | | +--ro remote-authenticated? boolean 722 | | +--ro remote-authentication-type? 723 | | | iana-bfd-types:auth-type 724 | | | {authentication}? 725 | | +--ro detection-mode? enumeration 726 | | +--ro negotiated-tx-interval? uint32 727 | | +--ro negotiated-rx-interval? uint32 728 | | +--ro detection-time? uint32 729 | | +--ro echo-tx-interval-in-use? uint32 730 | | {echo-mode}? 731 | +--ro session-statistics 732 | +--ro create-time? 733 | | yang:date-and-time 734 | +--ro last-down-time? 735 | | yang:date-and-time 736 | +--ro last-up-time? 737 | | yang:date-and-time 738 | +--ro down-count? 739 | | yang:counter32 740 | +--ro admin-down-count? 741 | | yang:counter32 742 | +--ro receive-packet-count? 743 | | yang:counter64 744 | +--ro send-packet-count? 745 | | yang:counter64 746 | +--ro receive-invalid-packet-count? 747 | | yang:counter64 748 | +--ro send-failed-packet-count? 749 | yang:counter64 750 +--ro micro-bfd-ipv6 751 +--ro path-type? identityref 752 +--ro ip-encapsulation? boolean 753 +--ro local-discriminator? discriminator 754 +--ro remote-discriminator? discriminator 755 +--ro remote-multiplier? multiplier 756 +--ro demand-capability? boolean 757 | {demand-mode}? 758 +--ro source-port? inet:port-number 759 +--ro dest-port? inet:port-number 760 +--ro session-running 761 | +--ro session-index? uint32 762 | +--ro local-state? state 763 | +--ro remote-state? state 764 | +--ro local-diagnostic? 765 | | iana-bfd-types:diagnostic 766 | +--ro remote-diagnostic? 767 | | iana-bfd-types:diagnostic 768 | +--ro remote-authenticated? boolean 769 | +--ro remote-authentication-type? 770 | | iana-bfd-types:auth-type 771 | | {authentication}? 772 | +--ro detection-mode? enumeration 773 | +--ro negotiated-tx-interval? uint32 774 | +--ro negotiated-rx-interval? uint32 775 | +--ro detection-time? uint32 776 | +--ro echo-tx-interval-in-use? uint32 777 | {echo-mode}? 778 +--ro session-statistics 779 +--ro create-time? 780 | yang:date-and-time 781 +--ro last-down-time? 782 | yang:date-and-time 783 +--ro last-up-time? 784 | yang:date-and-time 785 +--ro down-count? 786 | yang:counter32 787 +--ro admin-down-count? 788 | yang:counter32 789 +--ro receive-packet-count? 790 | yang:counter64 791 +--ro send-packet-count? 792 | yang:counter64 793 +--ro receive-invalid-packet-count? 794 | yang:counter64 795 +--ro send-failed-packet-count? 796 yang:counter64 798 notifications: 799 +---n lag-notification 800 +--ro local-discr? discriminator 801 +--ro remote-discr? discriminator 802 +--ro new-state? state 803 +--ro state-change-reason? iana-bfd-types:diagnostic 804 +--ro time-of-last-state-change? yang:date-and-time 805 +--ro dest-addr? inet:ip-address 806 +--ro source-addr? inet:ip-address 807 +--ro session-index? uint32 808 +--ro path-type? identityref 809 +--ro lag-name? if:interface-ref 810 +--ro member-link? if:interface-ref 812 2.9. BFD over MPLS LSPs hierarchy 814 An "mpls" node is added under the "bfd" node in control-plane- 815 protocol. The configuration is per MPLS FEC under this "mpls" node. 816 In the operational state model we support multiple BFD sessions per 817 MPLS FEC (ECMP), the local discriminator is used as key. The "mpls" 818 node can be used in a network device (top-level), or mounted in an 819 LNE or in a network instance. 821 module: ietf-bfd-mpls 822 augment /rt:routing/rt:control-plane-protocols 823 /rt:control-plane-protocol/bfd:bfd: 824 +--rw mpls 825 +--ro summary 826 | +--ro number-of-sessions? yang:gauge32 827 | +--ro number-of-sessions-up? yang:gauge32 828 | +--ro number-of-sessions-down? yang:gauge32 829 | +--ro number-of-sessions-admin-down? yang:gauge32 830 +--rw egress 831 | +--rw enable? boolean 832 | +--rw local-multiplier? multiplier 833 | +--rw (interval-config-type)? 834 | | +--:(tx-rx-intervals) 835 | | | +--rw desired-min-tx-interval? uint32 836 | | | +--rw required-min-rx-interval? uint32 837 | | +--:(single-interval) {single-minimum-interval}? 838 | | +--rw min-interval? uint32 839 | +--rw authentication! {authentication}? 840 | +--rw key-chain? kc:key-chain-ref 841 | +--rw meticulous? boolean 842 +--rw session-groups 843 +--rw session-group* [mpls-fec] 844 +--rw mpls-fec inet:ip-prefix 845 +--rw local-multiplier? multiplier 846 +--rw (interval-config-type)? 847 | +--:(tx-rx-intervals) 848 | | +--rw desired-min-tx-interval? uint32 849 | | +--rw required-min-rx-interval? uint32 850 | +--:(single-interval) {single-minimum-interval}? 851 | +--rw min-interval? uint32 852 +--rw demand-enabled? boolean 853 | {demand-mode}? 854 +--rw admin-down? boolean 855 +--rw authentication! {authentication}? 856 | +--rw key-chain? kc:key-chain-ref 857 | +--rw meticulous? boolean 858 +--ro sessions* [] 859 +--ro path-type? identityref 860 +--ro ip-encapsulation? boolean 861 +--ro local-discriminator? discriminator 862 +--ro remote-discriminator? discriminator 863 +--ro remote-multiplier? multiplier 864 +--ro demand-capability? boolean {demand-mode}? 865 +--ro source-port? inet:port-number 866 +--ro dest-port? inet:port-number 867 +--ro session-running 868 | +--ro session-index? uint32 869 | +--ro local-state? state 870 | +--ro remote-state? state 871 | +--ro local-diagnostic? 872 | | iana-bfd-types:diagnostic 873 | +--ro remote-diagnostic? 874 | | iana-bfd-types:diagnostic 875 | +--ro remote-authenticated? boolean 876 | +--ro remote-authentication-type? 877 | | iana-bfd-types:auth-type {authentication}? 878 | +--ro detection-mode? enumeration 879 | +--ro negotiated-tx-interval? uint32 880 | +--ro negotiated-rx-interval? uint32 881 | +--ro detection-time? uint32 882 | +--ro echo-tx-interval-in-use? uint32 883 | {echo-mode}? 884 +--ro session-statistics 885 | +--ro create-time? 886 | | yang:date-and-time 887 | +--ro last-down-time? 888 | | yang:date-and-time 889 | +--ro last-up-time? 890 | | yang:date-and-time 891 | +--ro down-count? 892 | | yang:counter32 893 | +--ro admin-down-count? 894 | | yang:counter32 895 | +--ro receive-packet-count? 896 | | yang:counter64 897 | +--ro send-packet-count? 898 | | yang:counter64 899 | +--ro receive-invalid-packet-count? 900 | | yang:counter64 901 | +--ro send-failed-packet-count? 902 | yang:counter64 903 +--ro mpls-dest-address? inet:ip-address 905 notifications: 906 +---n mpls-notification 907 +--ro local-discr? discriminator 908 +--ro remote-discr? discriminator 909 +--ro new-state? state 910 +--ro state-change-reason? iana-bfd-types:diagnostic 911 +--ro time-of-last-state-change? yang:date-and-time 912 +--ro dest-addr? inet:ip-address 913 +--ro source-addr? inet:ip-address 914 +--ro session-index? uint32 915 +--ro path-type? identityref 916 +--ro mpls-dest-address? inet:ip-address 918 2.10. BFD over MPLS-TE hierarchy 920 YANG Data Model for TE Topologies [I-D.ietf-teas-yang-te] is 921 augmented. BFD is configured per MPLS-TE tunnel, and BFD session 922 operational state data is provided per MPLS-TE LSP. 924 module: ietf-bfd-mpls-te 925 augment /rt:routing/rt:control-plane-protocols 926 /rt:control-plane-protocol/bfd:bfd: 927 +--rw mpls-te 928 +--rw egress 929 | +--rw enable? boolean 930 | +--rw local-multiplier? multiplier 931 | +--rw (interval-config-type)? 932 | | +--:(tx-rx-intervals) 933 | | | +--rw desired-min-tx-interval? uint32 934 | | | +--rw required-min-rx-interval? uint32 935 | | +--:(single-interval) {single-minimum-interval}? 936 | | +--rw min-interval? uint32 937 | +--rw authentication! {authentication}? 938 | +--rw key-chain? kc:key-chain-ref 939 | +--rw meticulous? boolean 940 +--ro summary 941 +--ro number-of-sessions? yang:gauge32 942 +--ro number-of-sessions-up? yang:gauge32 943 +--ro number-of-sessions-down? yang:gauge32 944 +--ro number-of-sessions-admin-down? yang:gauge32 945 augment /te:te/te:tunnels/te:tunnel: 946 +--rw local-multiplier? multiplier 947 +--rw (interval-config-type)? 948 | +--:(tx-rx-intervals) 949 | | +--rw desired-min-tx-interval? uint32 950 | | +--rw required-min-rx-interval? uint32 951 | +--:(single-interval) {single-minimum-interval}? 952 | +--rw min-interval? uint32 953 +--rw demand-enabled? boolean {demand-mode}? 954 +--rw admin-down? boolean 955 +--rw authentication! {authentication}? 956 | +--rw key-chain? kc:key-chain-ref 957 | +--rw meticulous? boolean 958 +--rw encap? identityref 959 augment /te:te/te:lsps-state/te:lsp: 960 +--ro path-type? identityref 961 +--ro ip-encapsulation? boolean 962 +--ro local-discriminator? discriminator 963 +--ro remote-discriminator? discriminator 964 +--ro remote-multiplier? multiplier 965 +--ro demand-capability? boolean {demand-mode}? 966 +--ro source-port? inet:port-number 967 +--ro dest-port? inet:port-number 968 +--ro session-running 969 | +--ro session-index? uint32 970 | +--ro local-state? state 971 | +--ro remote-state? state 972 | +--ro local-diagnostic? iana-bfd-types:diagnostic 973 | +--ro remote-diagnostic? iana-bfd-types:diagnostic 974 | +--ro remote-authenticated? boolean 975 | +--ro remote-authentication-type? iana-bfd-types:auth-type 976 | | {authentication}? 977 | +--ro detection-mode? enumeration 978 | +--ro negotiated-tx-interval? uint32 979 | +--ro negotiated-rx-interval? uint32 980 | +--ro detection-time? uint32 981 | +--ro echo-tx-interval-in-use? uint32 {echo-mode}? 982 +--ro session-statistics 983 | +--ro create-time? yang:date-and-time 984 | +--ro last-down-time? yang:date-and-time 985 | +--ro last-up-time? yang:date-and-time 986 | +--ro down-count? yang:counter32 987 | +--ro admin-down-count? yang:counter32 988 | +--ro receive-packet-count? yang:counter64 989 | +--ro send-packet-count? yang:counter64 990 | +--ro receive-invalid-packet-count? yang:counter64 991 | +--ro send-failed-packet-count? yang:counter64 992 +--ro mpls-dest-address? inet:ip-address 994 notifications: 995 +---n mpls-te-notification 996 +--ro local-discr? discriminator 997 +--ro remote-discr? discriminator 998 +--ro new-state? state 999 +--ro state-change-reason? iana-bfd-types:diagnostic 1000 +--ro time-of-last-state-change? yang:date-and-time 1001 +--ro dest-addr? inet:ip-address 1002 +--ro source-addr? inet:ip-address 1003 +--ro session-index? uint32 1004 +--ro path-type? identityref 1005 +--ro mpls-dest-address? inet:ip-address 1006 +--ro tunnel-name? string 1008 2.11. Interaction with other YANG modules 1010 Generic YANG Data Model for Connectionless OAM protocols 1011 [I-D.ietf-lime-yang-connectionless-oam] describes how the LIME 1012 connectionless OAM model could be extended to support BFD. 1014 Also, the operation of the BFD data model depends on configuration 1015 parameters that are defined in other YANG modules. 1017 2.11.1. Module ietf-interfaces 1019 The following boolean configuration is defined in A YANG Data Model 1020 for Interface Management [RFC8343]: 1022 /if:interfaces/if:interface/if:enabled 1023 If this configuration is set to "false", no BFD packets can 1024 be transmitted or received on that interface. 1026 2.11.2. Module ietf-ip 1028 The following boolean configuration is defined in A YANG Data Model 1029 for IP Management [RFC8344]: 1031 /if:interfaces/if:interface/ip:ipv4/ip:enabled 1032 If this configuration is set to "false", no BFD IPv4 packets 1033 can be transmitted or received on that interface. 1035 /if:interfaces/if:interface/ip:ipv4/ip:forwarding 1036 If this configuration is set to "false", no BFD IPv4 packets 1037 can be transmitted or received on that interface. 1039 /if:interfaces/if:interface/ip:ipv6/ip:enabled 1040 If this configuration is set to "false", no BFD IPv6 packets 1041 can be transmitted or received on that interface. 1043 /if:interfaces/if:interface/ip:ipv6/ip:forwarding 1044 If this configuration is set to "false", no BFD IPv6 packets 1045 can be transmitted or received on that interface. 1047 2.11.3. Module ietf-mpls 1049 The following boolean configuration is defined in A YANG Data Model 1050 for MPLS Base [I-D.ietf-mpls-base-yang]: 1052 /rt:routing/mpls:mpls/mpls:interface/mpls:config/mpls:enabled 1053 If this configuration is set to "false", no BFD MPLS packets 1054 can be transmitted or received on that interface. 1056 2.11.4. Module ietf-te 1058 The following configuration is defined in the "ietf-te" YANG module 1059 YANG Data Model for TE Topology [I-D.ietf-teas-yang-te]: 1061 /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel/ietf-te:config/ietf- 1062 te:admin-status 1063 If this configuration is not set to "state-up", no BFD MPLS 1064 packets can be transmitted or received on that tunnel. 1066 2.12. IANA BFD YANG Module 1068 file "iana-bfd-types@2018-08-01.yang" 1070 module iana-bfd-types { 1072 yang-version 1.1; 1074 namespace "urn:ietf:params:xml:ns:yang:iana-bfd-types"; 1076 prefix "iana-bfd-types"; 1078 organization "IANA"; 1080 contact 1081 " Internet Assigned Numbers Authority 1083 Postal: ICANN 1084 12025 Waterfront Drive, Suite 300 1085 Los Angeles, CA 90094-2536 1086 United States of America 1088 Tel: +1 310 823 9358 1089 "; 1091 description 1092 "This module defines YANG data types for IANA-registered 1093 BFD parameters. 1095 This YANG module is maintained by IANA and reflects the 1096 'BFD Diagnostic Codes' and 'BFD Authentication Types' registries. 1098 Copyright (c) 2018 IETF Trust and the persons 1099 identified as authors of the code. All rights reserved. 1101 Redistribution and use in source and binary forms, with or 1102 without modification, is permitted pursuant to, and subject 1103 to the license terms contained in, the Simplified BSD License 1104 set forth in Section 4.c of the IETF Trust's Legal Provisions 1105 Relating to IETF Documents 1106 (http://trustee.ietf.org/license-info). 1108 This version of this YANG module is part of RFC XXXX; see 1109 the RFC itself for full legal notices."; 1111 // RFC Ed.: replace XXXX with actual RFC number and remove 1112 // this note 1114 reference "RFC XXXX"; 1116 revision 2018-08-01 { 1117 description "Initial revision."; 1118 reference "RFC XXXX: IANA BFD YANG Data Types."; 1119 } 1121 /* 1122 * Type Definitions 1123 */ 1124 typedef diagnostic { 1125 type enumeration { 1126 enum none { 1127 value 0; 1128 description "None"; 1129 } 1130 enum control-expiry { 1131 value 1; 1132 description "Control timer expiry"; 1133 } 1134 enum echo-failed { 1135 value 2; 1136 description "Echo failure"; 1137 } 1138 enum neighbor-down { 1139 value 3; 1140 description "Neighbor down"; 1141 } 1142 enum forwarding-reset { 1143 value 4; 1144 description "Forwarding reset"; 1145 } 1146 enum path-down { 1147 value 5; 1148 description "Path down"; 1149 } 1150 enum concatenated-path-down { 1151 value 6; 1152 description "Concatenated path down"; 1153 } 1154 enum admin-down { 1155 value 7; 1156 description "Admin down"; 1157 } 1158 enum reverse-concatenated-path-down { 1159 value 8; 1160 description "Reverse concatenated path down"; 1161 } 1162 enum mis-connectivity-defect { 1163 value 9; 1164 description "Mis-connectivity defect as specified in RFC6428"; 1165 } 1166 } 1167 description 1168 "BFD diagnostic as defined in RFC 5880, values are maintained in 1169 the 'BFD Diagnostic Codes' IANA registry. Range is 0 to 31."; 1170 } 1172 typedef auth-type { 1173 type enumeration { 1174 enum reserved { 1175 value 0; 1176 description "Reserved"; 1177 } 1178 enum simple-password { 1179 value 1; 1180 description "Simple password"; 1181 } 1182 enum keyed-md5 { 1183 value 2; 1184 description "Keyed MD5"; 1185 } 1186 enum meticulous-keyed-md5 { 1187 value 3; 1188 description "Meticulous keyed MD5"; 1189 } 1190 enum keyed-sha1 { 1191 value 4; 1192 description "Keyed SHA1"; 1193 } 1194 enum meticulous-keyed-sha1 { 1195 value 5; 1196 description "Meticulous keyed SHA1"; 1197 } 1198 } 1199 description 1200 "BFD authentication type as defined in RFC 5880, values are 1201 maintained in the 'BFD Authentication Types' IANA registry. 1202 Range is 0 to 255."; 1203 } 1204 } 1206 1208 2.13. BFD types YANG Module 1210 This YANG module imports typedefs from [RFC6991], [RFC8177] and the 1211 "control-plane-protocol" identity from [RFC8349]. 1213 file "ietf-bfd-types@2018-08-01.yang" 1215 module ietf-bfd-types { 1217 yang-version 1.1; 1219 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-types"; 1221 prefix "bfd-types"; 1223 // RFC Ed.: replace occurences of XXXX with actual RFC number and 1224 // remove this note 1226 import iana-bfd-types { 1227 prefix "iana-bfd-types"; 1228 reference "RFC XXXX: YANG Data Model for BFD"; 1229 } 1231 import ietf-inet-types { 1232 prefix "inet"; 1233 reference "RFC 6991: Common YANG Data Types"; 1234 } 1236 import ietf-yang-types { 1237 prefix "yang"; 1238 reference "RFC 6991: Common YANG Data Types"; 1240 } 1242 import ietf-routing { 1243 prefix "rt"; 1244 reference 1245 "RFC 8349: A YANG Data Model for Routing Management 1246 (NMDA version)"; 1247 } 1249 import ietf-key-chain { 1250 prefix "kc"; 1251 reference "RFC 8177: YANG Data Model for Key Chains"; 1252 } 1254 organization "IETF BFD Working Group"; 1256 contact 1257 "WG Web: 1258 WG List: 1260 Editors: Reshad Rahman (rrahman@cisco.com), 1261 Lianshu Zheng (vero.zheng@huawei.com), 1262 Mahesh Jethanandani (mjethanandani@gmail.com)"; 1264 description 1265 "This module contains a collection of BFD specific YANG data type 1266 definitions, as per RFC 5880, and also groupings which are common 1267 to other BFD YANG modules. 1269 Copyright (c) 2018 IETF Trust and the persons 1270 identified as authors of the code. All rights reserved. 1272 Redistribution and use in source and binary forms, with or 1273 without modification, is permitted pursuant to, and subject 1274 to the license terms contained in, the Simplified BSD License 1275 set forth in Section 4.c of the IETF Trust's Legal Provisions 1276 Relating to IETF Documents 1277 (http://trustee.ietf.org/license-info). 1279 This version of this YANG module is part of RFC XXXX; see 1280 the RFC itself for full legal notices."; 1282 reference "RFC XXXX"; 1284 revision 2018-08-01 { 1285 description "Initial revision."; 1286 reference "RFC XXXX: YANG Data Model for BFD"; 1287 } 1288 /* 1289 * Feature definitions 1290 */ 1291 feature single-minimum-interval { 1292 description 1293 "This feature indicates that the server supports configuration 1294 of one minimum interval value which is used for both transmit and 1295 receive minimum intervals."; 1296 } 1298 feature authentication { 1299 description 1300 "This feature indicates that the server supports BFD 1301 authentication."; 1302 reference 1303 "RFC 5880: Bidirectional Forwarding Detection (BFD), 1304 section 6.7."; 1305 } 1307 feature demand-mode { 1308 description 1309 "This feature indicates that the server supports BFD demand 1310 mode."; 1311 reference 1312 "RFC 5880: Bidirectional Forwarding Detection (BFD), 1313 section 6.6."; 1314 } 1316 feature echo-mode { 1317 description 1318 "This feature indicates that the server supports BFD echo 1319 mode."; 1320 reference 1321 "RFC 5880: Bidirectional Forwarding Detection (BFD), 1322 section 6.4."; 1323 } 1325 /* 1326 * Identity definitions 1327 */ 1328 identity bfdv1 { 1329 base "rt:control-plane-protocol"; 1330 description "BFD protocol version 1."; 1331 reference 1332 "RFC 5880: Bidirectional Forwarding Detection (BFD)."; 1333 } 1335 identity path-type { 1336 description 1337 "Base identity for BFD path type. The path type indicates 1338 the type of path on which BFD is running."; 1339 } 1340 identity path-ip-sh { 1341 base path-type; 1342 description "BFD on IP single hop."; 1343 reference 1344 "RFC 5881: Bidirectional Forwarding Detection (BFD) 1345 for IPv4 and IPv6 (Single Hop)."; 1346 } 1347 identity path-ip-mh { 1348 base path-type; 1349 description "BFD on IP multihop paths."; 1350 reference 1351 "RFC 5883: Bidirectional Forwarding Detection (BFD) for 1352 Multihop Paths."; 1353 } 1354 identity path-mpls-te { 1355 base path-type; 1356 description 1357 "BFD on MPLS Traffic Engineering."; 1358 reference 1359 "RFC 5884: Bidirectional Forwarding Detection (BFD) 1360 for MPLS Label Switched Paths (LSPs)."; 1361 } 1362 identity path-mpls-lsp { 1363 base path-type; 1364 description 1365 "BFD on MPLS Label Switched Path."; 1366 reference 1367 "RFC 5884: Bidirectional Forwarding Detection (BFD) 1368 for MPLS Label Switched Paths (LSPs)."; 1369 } 1370 identity path-lag { 1371 base path-type; 1372 description 1373 "Micro-BFD on LAG member links."; 1374 reference 1375 "RFC 7130: Bidirectional Forwarding Detection (BFD) on 1376 Link Aggregation Group (LAG) Interfaces."; 1377 } 1379 identity encap-type { 1380 description 1381 "Base identity for BFD encapsulation type."; 1382 } 1383 identity encap-ip { 1384 base encap-type; 1385 description "BFD with IP encapsulation."; 1386 } 1388 /* 1389 * Type Definitions 1390 */ 1391 typedef discriminator { 1392 type uint32; 1393 description "BFD discriminator as described in RFC 5880."; 1394 } 1396 typedef state { 1397 type enumeration { 1398 enum adminDown { 1399 value 0; 1400 description "admindown"; 1401 } 1402 enum down { 1403 value 1; 1404 description "down"; 1405 } 1406 enum init { 1407 value 2; 1408 description "init"; 1409 } 1410 enum up { 1411 value 3; 1412 description "up"; 1413 } 1414 } 1415 description "BFD state as defined in RFC 5880."; 1416 } 1418 typedef multiplier { 1419 type uint8 { 1420 range 1..255; 1421 } 1422 description "BFD multiplier as described in RFC 5880."; 1423 } 1425 typedef hops { 1426 type uint8 { 1427 range 1..255; 1428 } 1429 description 1430 "This corresponds to Time To Live for IPv4 and corresponds to hop 1431 limit for IPv6."; 1433 } 1435 /* 1436 * Groupings 1437 */ 1438 grouping auth-parms { 1439 description 1440 "Grouping for BFD authentication parameters 1441 (see section 6.7 of RFC 5880)."; 1442 container authentication { 1443 if-feature authentication; 1444 presence 1445 "Enables BFD authentication (see section 6.7 of RFC 5880)."; 1446 description "Parameters for BFD authentication."; 1448 leaf key-chain { 1449 type kc:key-chain-ref; 1450 description "Name of the key-chain as per RFC 8177."; 1451 } 1453 leaf meticulous { 1454 type boolean; 1455 description 1456 "Enables meticulous mode as described in section 6.7 " + 1457 "of RFC 5880."; 1458 } 1459 } 1460 } 1462 grouping base-cfg-parms { 1463 description "BFD grouping for base config parameters."; 1464 leaf local-multiplier { 1465 type multiplier; 1466 default 3; 1467 description "Multiplier transmitted by local system."; 1468 } 1470 choice interval-config-type { 1471 description 1472 "Two interval values or one value used for both transmit and 1473 receive."; 1474 case tx-rx-intervals { 1475 leaf desired-min-tx-interval { 1476 type uint32; 1477 units microseconds; 1478 default 1000000; 1479 description 1480 "Desired minimum transmit interval of control packets."; 1482 } 1484 leaf required-min-rx-interval { 1485 type uint32; 1486 units microseconds; 1487 default 1000000; 1488 description 1489 "Required minimum receive interval of control packets."; 1490 } 1491 } 1492 case single-interval { 1493 if-feature single-minimum-interval; 1495 leaf min-interval { 1496 type uint32; 1497 units microseconds; 1498 default 1000000; 1499 description 1500 "Desired minimum transmit interval and required " + 1501 "minimum receive interval of control packets."; 1502 } 1503 } 1504 } 1505 } 1507 grouping client-cfg-parms { 1508 description 1509 "BFD grouping for configuration parameters 1510 used by clients of BFD, e.g. IGP or MPLS."; 1512 leaf enable { 1513 type boolean; 1514 default false; 1515 description 1516 "Indicates whether the BFD is enabled."; 1517 } 1518 uses base-cfg-parms; 1519 } 1521 grouping common-cfg-parms { 1522 description 1523 "BFD grouping for common configuration parameters."; 1525 uses base-cfg-parms; 1527 leaf demand-enabled { 1528 if-feature demand-mode; 1529 type boolean; 1530 default false; 1531 description 1532 "To enable demand mode."; 1533 } 1535 leaf admin-down { 1536 type boolean; 1537 default false; 1538 description 1539 "Is the BFD session administratively down."; 1540 } 1541 uses auth-parms; 1542 } 1544 grouping all-session { 1545 description "BFD session operational information"; 1546 leaf path-type { 1547 type identityref { 1548 base path-type; 1549 } 1550 config "false"; 1551 description 1552 "BFD path type, this indicates the path type that BFD is 1553 running on."; 1554 } 1555 leaf ip-encapsulation { 1556 type boolean; 1557 config "false"; 1558 description "Whether BFD encapsulation uses IP."; 1559 } 1560 leaf local-discriminator { 1561 type discriminator; 1562 config "false"; 1563 description "Local discriminator."; 1564 } 1565 leaf remote-discriminator { 1566 type discriminator; 1567 config "false"; 1568 description "Remote discriminator."; 1569 } 1570 leaf remote-multiplier { 1571 type multiplier; 1572 config "false"; 1573 description "Remote multiplier."; 1574 } 1575 leaf demand-capability { 1576 if-feature demand-mode; 1577 type boolean; 1578 config "false"; 1579 description "Local demand mode capability."; 1580 } 1581 leaf source-port { 1582 when "../ip-encapsulation = 'true'" { 1583 description 1584 "Source port valid only when IP encapsulation is used."; 1585 } 1586 type inet:port-number; 1587 config "false"; 1588 description "Source UDP port"; 1589 } 1590 leaf dest-port { 1591 when "../ip-encapsulation = 'true'" { 1592 description 1593 "Destination port valid only when IP encapsulation is used."; 1594 } 1595 type inet:port-number; 1596 config "false"; 1597 description "Destination UDP port."; 1598 } 1600 container session-running { 1601 config "false"; 1602 description "BFD session running information."; 1603 leaf session-index { 1604 type uint32; 1605 description 1606 "An index used to uniquely identify BFD sessions."; 1607 } 1608 leaf local-state { 1609 type state; 1610 description "Local state."; 1611 } 1612 leaf remote-state { 1613 type state; 1614 description "Remote state."; 1615 } 1616 leaf local-diagnostic { 1617 type iana-bfd-types:diagnostic; 1618 description "Local diagnostic."; 1619 } 1620 leaf remote-diagnostic { 1621 type iana-bfd-types:diagnostic; 1622 description "Remote diagnostic."; 1623 } 1624 leaf remote-authenticated { 1625 type boolean; 1626 description 1627 "Indicates whether incoming BFD control packets are 1628 authenticated."; 1629 } 1630 leaf remote-authentication-type { 1631 when "../remote-authenticated = 'true'" { 1632 description 1633 "Only valid when incoming BFD control packets are 1634 authenticated."; 1635 } 1636 if-feature authentication; 1637 type iana-bfd-types:auth-type; 1638 description 1639 "Authentication type of incoming BFD control packets."; 1640 } 1641 leaf detection-mode { 1642 type enumeration { 1643 enum async-with-echo { 1644 value "1"; 1645 description "Async with echo."; 1646 } 1647 enum async-without-echo { 1648 value "2"; 1649 description "Async without echo."; 1650 } 1651 enum demand-with-echo { 1652 value "3"; 1653 description "Demand with echo."; 1654 } 1655 enum demand-without-echo { 1656 value "4"; 1657 description "Demand without echo."; 1658 } 1659 } 1660 description "Detection mode."; 1661 } 1662 leaf negotiated-tx-interval { 1663 type uint32; 1664 units microseconds; 1665 description "Negotiated transmit interval."; 1666 } 1667 leaf negotiated-rx-interval { 1668 type uint32; 1669 units microseconds; 1670 description "Negotiated receive interval."; 1671 } 1672 leaf detection-time { 1673 type uint32; 1674 units microseconds; 1675 description "Detection time."; 1676 } 1677 leaf echo-tx-interval-in-use { 1678 when "../../path-type = 'bfd-types:path-ip-sh'" { 1679 description 1680 "Echo is supported for IP single-hop only."; 1681 } 1682 if-feature echo-mode; 1683 type uint32; 1684 units microseconds; 1685 description "Echo transmit interval in use."; 1686 } 1687 } 1689 container session-statistics { 1690 config "false"; 1691 description "BFD per-session statistics."; 1693 leaf create-time { 1694 type yang:date-and-time; 1695 description 1696 "Time and date when this session was created."; 1697 } 1698 leaf last-down-time { 1699 type yang:date-and-time; 1700 description 1701 "Time and date of last time this session went down."; 1702 } 1703 leaf last-up-time { 1704 type yang:date-and-time; 1705 description 1706 "Time and date of last time this session went up."; 1707 } 1708 leaf down-count { 1709 type yang:counter32; 1710 description 1711 "The number of times this session has transitioned in the 1712 down state."; 1713 } 1714 leaf admin-down-count { 1715 type yang:counter32; 1716 description 1717 "The number of times this session has transitioned in the 1718 admin-down state."; 1719 } 1720 leaf receive-packet-count { 1721 type yang:counter64; 1722 description 1723 "Count of received packets in this session. This includes 1724 valid and invalid received packets."; 1725 } 1726 leaf send-packet-count { 1727 type yang:counter64; 1728 description "Count of sent packets in this session."; 1729 } 1730 leaf receive-invalid-packet-count { 1731 type yang:counter64; 1732 description 1733 "Count of invalid received packets in this session."; 1734 } 1735 leaf send-failed-packet-count { 1736 type yang:counter64; 1737 description 1738 "Count of packets which failed to be sent in this session."; 1739 } 1740 } 1741 } 1743 grouping session-statistics-summary { 1744 description "Grouping for session statistics summary."; 1745 container summary { 1746 config false; 1747 description "BFD session statistics summary."; 1748 leaf number-of-sessions { 1749 type yang:gauge32; 1750 description "Number of BFD sessions."; 1751 } 1752 leaf number-of-sessions-up { 1753 type yang:gauge32; 1754 description 1755 "Number of BFD sessions currently in up state (as defined 1756 in RFC 5880)."; 1757 } 1758 leaf number-of-sessions-down { 1759 type yang:gauge32; 1760 description 1761 "Number of BFD sessions currently in down or init state 1762 but not admin-down (as defined in RFC 5880)."; 1763 } 1764 leaf number-of-sessions-admin-down { 1765 type yang:gauge32; 1766 description 1767 "Number of BFD sessions currently in admin-down state (as 1768 defined in RFC 5880)."; 1769 } 1771 } 1772 } 1774 grouping notification-parms { 1775 description 1776 "This group describes common parameters that will be sent " + 1777 "as part of BFD notification."; 1779 leaf local-discr { 1780 type discriminator; 1781 description "BFD local discriminator."; 1782 } 1784 leaf remote-discr { 1785 type discriminator; 1786 description "BFD remote discriminator."; 1787 } 1789 leaf new-state { 1790 type state; 1791 description "Current BFD state."; 1792 } 1794 leaf state-change-reason { 1795 type iana-bfd-types:diagnostic; 1796 description "BFD state change reason."; 1797 } 1799 leaf time-of-last-state-change { 1800 type yang:date-and-time; 1801 description 1802 "Calendar time of previous state change."; 1803 } 1805 leaf dest-addr { 1806 type inet:ip-address; 1807 description "BFD peer address."; 1808 } 1810 leaf source-addr { 1811 type inet:ip-address; 1812 description "BFD local address."; 1813 } 1815 leaf session-index { 1816 type uint32; 1817 description "An index used to uniquely identify BFD sessions."; 1818 } 1819 leaf path-type { 1820 type identityref { 1821 base path-type; 1822 } 1823 description "BFD path type."; 1824 } 1825 } 1826 } 1828 1830 2.14. BFD top-level YANG Module 1832 This YANG module imports and augments "/routing/control-plane- 1833 protocols/control-plane-protocol" from [RFC8349]. 1835 file "ietf-bfd@2018-08-01.yang" 1837 module ietf-bfd { 1839 yang-version 1.1; 1841 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; 1843 prefix "bfd"; 1845 // RFC Ed.: replace occurences of XXXX with actual RFC number and 1846 // remove this note 1848 import ietf-bfd-types { 1849 prefix "bfd-types"; 1850 reference "RFC XXXX: YANG Data Model for BFD"; 1851 } 1853 import ietf-routing { 1854 prefix "rt"; 1855 reference 1856 "RFC 8349: A YANG Data Model for Routing Management 1857 (NMDA version)"; 1858 } 1860 organization "IETF BFD Working Group"; 1862 contact 1863 "WG Web: 1864 WG List: 1866 Editors: Reshad Rahman (rrahman@cisco.com), 1867 Lianshu Zheng (vero.zheng@huawei.com), 1868 Mahesh Jethanandani (mjethanandani@gmail.com)"; 1870 description 1871 "This module contains the YANG definition for BFD parameters as 1872 per RFC 5880. 1874 Copyright (c) 2018 IETF Trust and the persons 1875 identified as authors of the code. All rights reserved. 1877 Redistribution and use in source and binary forms, with or 1878 without modification, is permitted pursuant to, and subject 1879 to the license terms contained in, the Simplified BSD License 1880 set forth in Section 4.c of the IETF Trust's Legal Provisions 1881 Relating to IETF Documents 1882 (http://trustee.ietf.org/license-info). 1884 This version of this YANG module is part of RFC XXXX; see 1885 the RFC itself for full legal notices."; 1887 reference "RFC XXXX"; 1889 revision 2018-08-01 { 1890 description "Initial revision."; 1891 reference "RFC XXXX: YANG Data Model for BFD"; 1892 } 1894 augment "/rt:routing/rt:control-plane-protocols/" 1895 + "rt:control-plane-protocol" { 1896 when "derived-from-or-self(rt:type, 'bfd-types:bfdv1')" { 1897 description 1898 "This augmentation is only valid for a control-plane protocol 1899 instance of BFD (type 'bfdv1')."; 1900 } 1901 description "BFD augmentation."; 1903 container bfd { 1904 description "BFD top level container."; 1906 uses bfd-types:session-statistics-summary; 1907 } 1908 } 1909 } 1911 1913 2.15. BFD IP single-hop YANG Module 1915 This YANG module imports "interface-ref" from [RFC8343], typedefs 1916 from [RFC6991] and augments "/routing/control-plane-protocols/ 1917 control-plane-protocol" from [RFC8349]. 1919 file "ietf-bfd-ip-sh@2018-08-01.yang" 1921 module ietf-bfd-ip-sh { 1923 yang-version 1.1; 1925 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; 1927 prefix "bfd-ip-sh"; 1929 // RFC Ed.: replace occurences of XXXX with actual RFC number and 1930 // remove this note 1932 import ietf-bfd-types { 1933 prefix "bfd-types"; 1934 reference "RFC XXXX: YANG Data Model for BFD"; 1935 } 1937 import ietf-bfd { 1938 prefix "bfd"; 1939 reference "RFC XXXX: YANG Data Model for BFD"; 1940 } 1942 import ietf-interfaces { 1943 prefix "if"; 1944 reference 1945 "RFC 8343: A YANG Data Model for Interface Management"; 1946 } 1948 import ietf-inet-types { 1949 prefix "inet"; 1950 reference "RFC 6991: Common YANG Data Types"; 1951 } 1953 import ietf-routing { 1954 prefix "rt"; 1955 reference 1956 "RFC 8349: A YANG Data Model for Routing Management 1957 (NMDA version)"; 1958 } 1960 organization "IETF BFD Working Group"; 1961 contact 1962 "WG Web: 1963 WG List: 1965 Editors: Reshad Rahman (rrahman@cisco.com), 1966 Lianshu Zheng (vero.zheng@huawei.com), 1967 Mahesh Jethanandani (mjethanandani@gmail.com)"; 1969 description 1970 "This module contains the YANG definition for BFD IP single-hop 1971 as per RFC 5881. 1973 Copyright (c) 2018 IETF Trust and the persons 1974 identified as authors of the code. All rights reserved. 1976 Redistribution and use in source and binary forms, with or 1977 without modification, is permitted pursuant to, and subject 1978 to the license terms contained in, the Simplified BSD License 1979 set forth in Section 4.c of the IETF Trust's Legal Provisions 1980 Relating to IETF Documents 1981 (http://trustee.ietf.org/license-info). 1983 This version of this YANG module is part of RFC XXXX; see 1984 the RFC itself for full legal notices."; 1986 reference "RFC XXXX"; 1988 revision 2018-08-01 { 1989 description "Initial revision."; 1990 reference "RFC XXXX: A YANG data model for BFD IP single-hop"; 1991 } 1993 /* 1994 * Augments 1995 */ 1996 augment "/rt:routing/rt:control-plane-protocols/" 1997 + "rt:control-plane-protocol/bfd:bfd" { 1998 description "BFD augmentation for IP single-hop"; 1999 container ip-sh { 2000 description "BFD IP single-hop top level container"; 2002 uses bfd-types:session-statistics-summary; 2004 container sessions { 2005 description 2006 "BFD IP single-hop sessions."; 2007 list session { 2008 key "interface dest-addr"; 2009 description "List of IP single-hop sessions."; 2010 leaf interface { 2011 type if:interface-ref; 2012 description 2013 "Interface on which the BFD session is running."; 2014 } 2015 leaf dest-addr { 2016 type inet:ip-address; 2017 description "IP address of the peer."; 2018 } 2019 leaf source-addr { 2020 type inet:ip-address; 2021 description "Local IP address."; 2022 } 2024 uses bfd-types:common-cfg-parms; 2026 uses bfd-types:all-session; 2027 } 2028 } 2029 list interfaces { 2030 key "interface"; 2031 description "List of interfaces."; 2032 leaf interface { 2033 type if:interface-ref; 2034 description 2035 "BFD information for this interface."; 2036 } 2038 uses bfd-types:auth-parms; 2039 } 2040 } 2041 } 2043 /* 2044 * Notifications 2045 */ 2046 notification singlehop-notification { 2047 description 2048 "Notification for BFD single-hop session state change. An " + 2049 "implementation may rate-limit notifications, e.g. when a " + 2050 "session is continuously changing state."; 2052 uses bfd-types:notification-parms; 2054 leaf interface { 2055 type if:interface-ref; 2056 description "Interface to which this BFD session belongs to."; 2058 } 2060 leaf echo-enabled { 2061 type boolean; 2062 description "Was echo enabled for BFD."; 2063 } 2064 } 2066 } 2068 2070 2.16. BFD IP multihop YANG Module 2072 This YANG module imports typedefs from [RFC6991] and augments 2073 "/routing/control-plane-protocols/control-plane-protocol" from 2074 [RFC8349]. 2076 file "ietf-bfd-ip-mh@2018-08-01.yang" 2078 module ietf-bfd-ip-mh { 2080 yang-version 1.1; 2082 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; 2084 prefix "bfd-ip-mh"; 2086 // RFC Ed.: replace occurences of XXXX with actual RFC number and 2087 // remove this note 2089 import ietf-bfd-types { 2090 prefix "bfd-types"; 2091 reference "RFC XXXX: YANG Data Model for BFD"; 2092 } 2094 import ietf-bfd { 2095 prefix "bfd"; 2096 reference "RFC XXXX: YANG Data Model for BFD"; 2097 } 2099 import ietf-inet-types { 2100 prefix "inet"; 2101 reference "RFC 6991: Common YANG Data Types"; 2102 } 2104 import ietf-routing { 2105 prefix "rt"; 2106 reference 2107 "RFC 8349: A YANG Data Model for Routing Management 2108 (NMDA version)"; 2109 } 2111 organization "IETF BFD Working Group"; 2113 contact 2114 "WG Web: 2115 WG List: 2117 Editors: Reshad Rahman (rrahman@cisco.com), 2118 Lianshu Zheng (vero.zheng@huawei.com), 2119 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2121 description 2122 "This module contains the YANG definition for BFD IP multi-hop 2123 as per RFC 5883. 2125 Copyright (c) 2018 IETF Trust and the persons 2126 identified as authors of the code. All rights reserved. 2128 Redistribution and use in source and binary forms, with or 2129 without modification, is permitted pursuant to, and subject 2130 to the license terms contained in, the Simplified BSD License 2131 set forth in Section 4.c of the IETF Trust's Legal Provisions 2132 Relating to IETF Documents 2133 (http://trustee.ietf.org/license-info). 2135 This version of this YANG module is part of RFC XXXX; see 2136 the RFC itself for full legal notices."; 2138 reference "RFC XXXX"; 2140 revision 2018-08-01 { 2141 description "Initial revision."; 2142 reference "RFC XXXX: A YANG data model for BFD IP multihop."; 2143 } 2145 /* 2146 * Augments 2147 */ 2148 augment "/rt:routing/rt:control-plane-protocols/" 2149 + "rt:control-plane-protocol/bfd:bfd" { 2150 description "BFD augmentation for IP multihop."; 2151 container ip-mh { 2152 description "BFD IP multihop top level container."; 2153 uses bfd-types:session-statistics-summary; 2155 container session-groups { 2156 description 2157 "BFD IP multi-hop session groups."; 2158 list session-group { 2159 key "source-addr dest-addr"; 2160 description 2161 "Group of BFD IP multi-hop sessions (for ECMP). A " + 2162 "group of sessions is between 1 source and 1 " + 2163 "destination, each session has a different field " + 2164 "in UDP/IP hdr for ECMP."; 2166 leaf source-addr { 2167 type inet:ip-address; 2168 description 2169 "Local IP address."; 2170 } 2171 leaf dest-addr { 2172 type inet:ip-address; 2173 description 2174 "IP address of the peer."; 2175 } 2176 uses bfd-types:common-cfg-parms; 2178 leaf tx-ttl { 2179 type bfd-types:hops; 2180 default 255; 2181 description "Hop count of outgoing BFD control packets."; 2182 } 2183 leaf rx-ttl { 2184 type bfd-types:hops; 2185 mandatory true; 2186 description 2187 "Minimum allowed hop count value for incoming BFD control 2188 packets. Control packets whose hop count is lower than 2189 this value are dropped."; 2190 } 2191 list sessions { 2192 config false; 2193 description 2194 "The multiple BFD sessions between a source and a " + 2195 "destination."; 2196 uses bfd-types:all-session; 2197 } 2198 } 2199 } 2200 } 2202 } 2204 /* 2205 * Notifications 2206 */ 2207 notification multihop-notification { 2208 description 2209 "Notification for BFD multi-hop session state change. An " + 2210 "implementation may rate-limit notifications, e.g. when a " + 2211 "session is continuously changing state."; 2213 uses bfd-types:notification-parms; 2214 } 2215 } 2217 2219 2.17. BFD over LAG YANG Module 2221 This YANG module imports "interface-ref" from [RFC8343], typedefs 2222 from [RFC6991] and augments "/routing/control-plane-protocols/ 2223 control-plane-protocol" from [RFC8349]. 2225 file "ietf-bfd-lag@2018-08-01.yang" 2227 module ietf-bfd-lag { 2229 yang-version 1.1; 2231 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; 2233 prefix "bfd-lag"; 2235 // RFC Ed.: replace occurences of XXXX with actual RFC number and 2236 // remove this note 2238 import ietf-bfd-types { 2239 prefix "bfd-types"; 2240 reference "RFC XXXX: YANG Data Model for BFD"; 2241 } 2243 import ietf-bfd { 2244 prefix "bfd"; 2245 reference "RFC XXXX: YANG Data Model for BFD"; 2246 } 2248 import ietf-interfaces { 2249 prefix "if"; 2250 reference 2251 "RFC 8343: A YANG Data Model for Interface Management"; 2252 } 2254 import ietf-inet-types { 2255 prefix "inet"; 2256 reference "RFC 6991: Common YANG Data Types"; 2257 } 2259 import ietf-routing { 2260 prefix "rt"; 2261 reference 2262 "RFC 8349: A YANG Data Model for Routing Management 2263 (NMDA version)"; 2264 } 2266 organization "IETF BFD Working Group"; 2268 contact 2269 "WG Web: 2270 WG List: 2272 Editors: Reshad Rahman (rrahman@cisco.com), 2273 Lianshu Zheng vero.zheng@huawei.com), 2274 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2276 description 2277 "This module contains the YANG definition for BFD over LAG 2278 interfaces as per RFC7130. 2280 Copyright (c) 2018 IETF Trust and the persons 2281 identified as authors of the code. All rights reserved. 2283 Redistribution and use in source and binary forms, with or 2284 without modification, is permitted pursuant to, and subject 2285 to the license terms contained in, the Simplified BSD License 2286 set forth in Section 4.c of the IETF Trust's Legal Provisions 2287 Relating to IETF Documents 2288 (http://trustee.ietf.org/license-info). 2290 This version of this YANG module is part of RFC XXXX; see 2291 the RFC itself for full legal notices."; 2293 reference "RFC XXXX"; 2295 revision 2018-08-01 { 2296 description "Initial revision."; 2297 reference "RFC XXXX: A YANG data model for BFD over LAG"; 2299 } 2301 /* 2302 * Augments 2303 */ 2304 augment "/rt:routing/rt:control-plane-protocols/" 2305 + "rt:control-plane-protocol/bfd:bfd" { 2306 description "BFD augmentation for LAG"; 2307 container lag { 2308 description "BFD over LAG top level container"; 2310 container micro-bfd-ipv4-session-statistics { 2311 description "Micro-BFD IPv4 session counters."; 2312 uses bfd-types:session-statistics-summary; 2313 } 2314 container micro-bfd-ipv6-session-statistics { 2315 description "Micro-BFD IPv6 session counters."; 2316 uses bfd-types:session-statistics-summary; 2317 } 2319 container sessions { 2320 description 2321 "BFD over LAG sessions"; 2322 list session { 2323 key "lag-name"; 2324 description "List of BFD over LAG sessions."; 2325 leaf lag-name { 2326 type if:interface-ref ; 2327 description "Name of the LAG"; 2328 } 2329 leaf ipv4-dest-addr { 2330 type inet:ipv4-address; 2331 description 2332 "IPv4 address of the peer, for IPv4 micro-BFD."; 2333 } 2334 leaf ipv6-dest-addr { 2335 type inet:ipv6-address; 2336 description 2337 "IPv6 address of the peer, for IPv6 micro-BFD."; 2338 } 2339 uses bfd-types:common-cfg-parms; 2341 leaf use-ipv4 { 2342 type boolean; 2343 description "Using IPv4 micro-BFD."; 2344 } 2345 leaf use-ipv6 { 2346 type boolean; 2347 description "Using IPv6 micro-BFD."; 2348 } 2350 list member-links { 2351 key "member-link"; 2352 config false; 2353 description 2354 "Micro-BFD over LAG. This represents one member link."; 2356 leaf member-link { 2357 type if:interface-ref; 2358 description 2359 "Member link on which micro-BFD is running."; 2360 } 2361 container micro-bfd-ipv4 { 2362 when "../../use-ipv4 = 'true'" { 2363 description "Needed only if IPv4 is used."; 2364 } 2365 description 2366 "Micro-BFD IPv4 session state on member link."; 2367 uses bfd-types:all-session; 2368 } 2369 container micro-bfd-ipv6 { 2370 when "../../use-ipv6 = 'true'" { 2371 description "Needed only if IPv6 is used."; 2372 } 2373 description 2374 "Micro-BFD IPv6 session state on member link."; 2375 uses bfd-types:all-session; 2376 } 2377 } 2378 } 2379 } 2380 } 2381 } 2383 /* 2384 * Notifications 2385 */ 2386 notification lag-notification { 2387 description 2388 "Notification for BFD over LAG session state change. " + 2389 "An implementation may rate-limit notifications, e.g. when a " + 2390 "session is continuously changing state."; 2392 uses bfd-types:notification-parms; 2394 leaf lag-name { 2395 type if:interface-ref; 2396 description "LAG interface name."; 2397 } 2399 leaf member-link { 2400 type if:interface-ref; 2401 description "Member link on which BFD is running."; 2402 } 2403 } 2404 } 2406 2408 2.18. BFD over MPLS YANG Module 2410 This YANG module imports typedefs from [RFC6991] and augments 2411 "/routing/control-plane-protocols/control-plane-protocol" from 2412 [RFC8349]. 2414 file "ietf-bfd-mpls@2018-08-01.yang" 2416 module ietf-bfd-mpls { 2418 yang-version 1.1; 2420 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; 2422 prefix "bfd-mpls"; 2424 // RFC Ed.: replace occurences of XXXX with actual RFC number and 2425 // remove this note 2427 import ietf-bfd-types { 2428 prefix "bfd-types"; 2429 reference "RFC XXXX: YANG Data Model for BFD"; 2430 } 2432 import ietf-bfd { 2433 prefix "bfd"; 2434 reference "RFC XXXX: YANG Data Model for BFD"; 2435 } 2437 import ietf-inet-types { 2438 prefix "inet"; 2439 reference "RFC 6991: Common YANG Data Types"; 2440 } 2442 import ietf-routing { 2443 prefix "rt"; 2444 reference 2445 "RFC 8349: A YANG Data Model for Routing Management 2446 (NMDA version)"; 2447 } 2449 organization "IETF BFD Working Group"; 2451 contact 2452 "WG Web: 2453 WG List: 2455 Editors: Reshad Rahman (rrahman@cisco.com), 2456 Lianshu Zheng (vero.zheng@huawei.com), 2457 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2459 description 2460 "This module contains the YANG definition for BFD parameters for 2461 MPLS LSPs as per RFC 5884. 2463 Copyright (c) 2018 IETF Trust and the persons 2464 identified as authors of the code. All rights reserved. 2466 Redistribution and use in source and binary forms, with or 2467 without modification, is permitted pursuant to, and subject 2468 to the license terms contained in, the Simplified BSD License 2469 set forth in Section 4.c of the IETF Trust's Legal Provisions 2470 Relating to IETF Documents 2471 (http://trustee.ietf.org/license-info). 2473 This version of this YANG module is part of RFC XXXX; see 2474 the RFC itself for full legal notices."; 2476 reference "RFC XXXX"; 2478 revision 2018-08-01 { 2479 description "Initial revision."; 2480 reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; 2481 } 2483 /* 2484 * Identity definitions 2485 */ 2486 identity encap-gach { 2487 base bfd-types:encap-type; 2488 description 2489 "BFD with G-ACh encapsulation as per RFC 5586."; 2490 } 2491 identity encap-ip-gach { 2492 base bfd-types:encap-type; 2493 description 2494 "BFD with IP and G-ACh encapsulation as per RFC 5586."; 2495 } 2497 /* 2498 * Groupings 2499 */ 2500 grouping encap-cfg { 2501 description "Configuration for BFD encapsulation"; 2503 leaf encap { 2504 type identityref { 2505 base bfd-types:encap-type; 2506 } 2507 default bfd-types:encap-ip; 2508 description "BFD encapsulation"; 2509 } 2510 } 2512 grouping mpls-dest-address { 2513 description "Destination address as per RFC 5884."; 2515 leaf mpls-dest-address { 2516 type inet:ip-address; 2517 config "false"; 2518 description 2519 "Destination address as per RFC 5884. 2520 Needed if IP encapsulation is used."; 2521 } 2522 } 2524 /* 2525 * Augments 2526 */ 2527 augment "/rt:routing/rt:control-plane-protocols/" 2528 + "rt:control-plane-protocol/bfd:bfd" { 2529 description "BFD augmentation for MPLS."; 2530 container mpls { 2531 description "BFD MPLS top level container."; 2533 uses bfd-types:session-statistics-summary; 2535 container egress { 2536 description "Egress configuration."; 2538 uses bfd-types:client-cfg-parms; 2539 uses bfd-types:auth-parms; 2540 } 2542 container session-groups { 2543 description 2544 "BFD over MPLS session groups."; 2545 list session-group { 2546 key "mpls-fec"; 2547 description 2548 "Group of BFD MPLS sessions (for ECMP). A group of " + 2549 "sessions is for 1 FEC, each session has a different " + 2550 "field in UDP/IP hdr for ECMP."; 2551 leaf mpls-fec { 2552 type inet:ip-prefix; 2553 description "MPLS FEC."; 2554 } 2556 uses bfd-types:common-cfg-parms; 2558 list sessions { 2559 config false; 2560 description 2561 "The BFD sessions for an MPLS FEC. Local " + 2562 "discriminator is unique for each session in the " + 2563 "group."; 2564 uses bfd-types:all-session; 2566 uses bfd-mpls:mpls-dest-address; 2567 } 2568 } 2569 } 2570 } 2571 } 2573 /* 2574 * Notifications 2575 */ 2576 notification mpls-notification { 2577 description 2578 "Notification for BFD over MPLS FEC session state change. " + 2579 "An implementation may rate-limit notifications, e.g. when a " + 2580 "session is continuously changing state."; 2582 uses bfd-types:notification-parms; 2584 leaf mpls-dest-address { 2585 type inet:ip-address; 2586 description 2587 "Destination address as per RFC 5884. 2588 Needed if IP encapsulation is used."; 2589 } 2590 } 2591 } 2593 2595 2.19. BFD over MPLS-TE YANG Module 2597 This YANG module imports and augments "/te/tunnels/tunnel" from 2598 [I-D.ietf-teas-yang-te]. 2600 file "ietf-bfd-mpls-te@2018-08-01.yang" 2602 module ietf-bfd-mpls-te { 2604 yang-version 1.1; 2606 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; 2608 prefix "bfd-mpls-te"; 2610 // RFC Ed.: replace occurences of XXXX with actual RFC number and 2611 // remove this note 2613 import ietf-bfd-types { 2614 prefix "bfd-types"; 2615 reference "RFC XXXX: YANG Data Model for BFD"; 2616 } 2618 import ietf-bfd { 2619 prefix "bfd"; 2620 reference "RFC XXXX: YANG Data Model for BFD"; 2621 } 2623 import ietf-bfd-mpls { 2624 prefix "bfd-mpls"; 2625 reference "RFC XXXX: YANG Data Model for BFD"; 2626 } 2628 import ietf-te { 2629 prefix "te"; 2630 // RFC Ed.: replace YYYY with actual RFC number of 2631 // draft-ietf-teas-yang-te and remove this note. 2632 reference 2633 "RFC YYYY: A YANG Data Model for Traffic Engineering Tunnels and 2634 Interfaces"; 2636 } 2638 import ietf-routing { 2639 prefix "rt"; 2640 reference 2641 "RFC 8349: A YANG Data Model for Routing Management 2642 (NMDA version)"; 2643 } 2645 organization "IETF BFD Working Group"; 2647 contact 2648 "WG Web: 2649 WG List: 2651 Editors: Reshad Rahman (rrahman@cisco.com), 2652 Lianshu Zheng (vero.zheng@huawei.com), 2653 Mahesh Jethanandani (mjethanandani@gmail.com)"; 2655 description 2656 "This module contains the YANG definition for BFD parameters for 2657 MPLS Traffic Engineering as per RFC 5884. 2659 Copyright (c) 2018 IETF Trust and the persons 2660 identified as authors of the code. All rights reserved. 2662 Redistribution and use in source and binary forms, with or 2663 without modification, is permitted pursuant to, and subject 2664 to the license terms contained in, the Simplified BSD License 2665 set forth in Section 4.c of the IETF Trust's Legal Provisions 2666 Relating to IETF Documents 2667 (http://trustee.ietf.org/license-info). 2669 This version of this YANG module is part of RFC XXXX; see 2670 the RFC itself for full legal notices."; 2672 reference "RFC XXXX"; 2674 revision 2018-08-01 { 2675 description "Initial revision."; 2676 reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; 2677 } 2679 /* 2680 * Augments 2681 */ 2682 augment "/rt:routing/rt:control-plane-protocols/" 2683 + "rt:control-plane-protocol/bfd:bfd" { 2685 description "BFD augmentation for MPLS-TE."; 2686 container mpls-te { 2687 description "BFD MPLS-TE top level container."; 2689 container egress { 2690 description "Egress configuration."; 2692 uses bfd-types:client-cfg-parms; 2694 uses bfd-types:auth-parms; 2695 } 2697 uses bfd-types:session-statistics-summary; 2698 } 2699 } 2701 augment "/te:te/te:tunnels/te:tunnel" { 2702 description "BFD configuration on MPLS-TE tunnel."; 2704 uses bfd-types:common-cfg-parms; 2706 uses bfd-mpls:encap-cfg; 2707 } 2709 augment "/te:te/te:lsps-state/te:lsp" { 2710 when "/te:te/te:lsps-state/te:lsp/te:origin-type != 'transit'" { 2711 description "BFD information not needed at transit points."; 2712 } 2713 description "BFD state information on MPLS-TE LSP."; 2715 uses bfd-types:all-session; 2717 uses bfd-mpls:mpls-dest-address; 2718 } 2720 /* 2721 * Notifications 2722 */ 2723 notification mpls-te-notification { 2724 description 2725 "Notification for BFD over MPLS-TE session state change. " + 2726 "An implementation may rate-limit notifications, e.g. when a " + 2727 "session is continuously changing state."; 2729 uses bfd-types:notification-parms; 2731 uses bfd-mpls:mpls-dest-address; 2732 leaf tunnel-name { 2733 type string; 2734 description "MPLS-TE tunnel on which BFD was running."; 2735 } 2736 } 2737 } 2739 2741 3. Data Model examples 2743 This section presents some simple and illustrative examples on how to 2744 configure BFD. 2746 3.1. IP single-hop 2748 The following is an example configuration for a BFD IP single-hop 2749 session. The desired transmit interval and the required receive 2750 interval are both set to 10ms. 2752 2753 2754 2755 2756 eth0 2757 2758 ianaift:ethernetCsmacd 2759 2760 2761 2762 2763 2764 2765 2767 bfd-types:bfdv1 2768 2769 name:BFD 2770 2771 2772 2773 2774 eth0 2775 2001:db8:0:113::101 2776 10000 2777 2778 10000 2779 2780 2781 2782 2783 2784 2785 2786 2787 2789 3.2. IP multihop 2791 The following is an example configuration for a BFD IP multihop 2792 session group. The desired transmit interval and the required 2793 receive interval are both set to 150ms. 2795 2796 2797 2798 2799 2800 2802 bfd-types:bfdv1 2803 2804 name:BFD 2805 2806 2807 2808 2809 2001:db8:0:113::103 2810 2001:db8:0:114::100 2811 2812 150000 2813 2814 2815 150000 2816 2817 240 2818 2819 2820 2821 2822 2823 2824 2825 2827 3.3. LAG 2829 The following is an example of BFD configuration for a LAG session. 2830 In this case, an interface named "Bundle-Ether1" of interface type 2831 "ieee802eadLag" has a desired transmit and required receive interval 2832 set to 10ms. 2834 2835 2836 2837 2838 Bundle-Ether1 2839 2840 ianaift:ieee8023adLag 2841 2842 2843 2844 2845 2846 2847 2849 bfd-types:bfdv1 2850 2851 name:BFD 2852 2853 2854 2855 2856 Bundle-Ether1 2857 2001:db8:112::16 2858 2859 100000 2860 2861 2862 100000 2863 2864 true 2865 2866 2867 2868 2869 2870 2871 2872 2874 3.4. MPLS 2876 The following is an example of BFD configured for an MPLS LSP. In 2877 this case, the desired transmit and required receive interval set to 2878 250ms. 2880 2881 2882 2883 2884 2885 2887 bfd-types:bfdv1 2888 2889 name:BFD 2890 2891 2892 2893 2894 2001:db8:114::/116 2895 2896 250000 2897 2898 2899 250000 2900 2901 2902 2903 2904 2905 2906 2907 2908 2910 4. Security Considerations 2912 The YANG module specified in this document defines a schema for data 2913 that is designed to be accessed via network management protocols such 2914 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 2915 is the secure transport layer, and the mandatory-to-implement secure 2916 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 2917 is HTTPS, and the mandatory-to-implement secure transport is TLS 2918 [RFC5246]. 2920 The NETCONF access control model [RFC6536] provides the means to 2921 restrict access for particular NETCONF or RESTCONF users to a 2922 preconfigured subset of all available NETCONF or RESTCONF protocol 2923 operations and content. 2925 There are a number of data nodes defined in this YANG module that are 2926 writable/creatable/deletable (i.e., config true, which is the 2927 default). These data nodes may be considered sensitive or vulnerable 2928 in some network environments. Write operations (e.g., edit-config) 2929 to these data nodes without proper protection can have a negative 2930 effect on network operations. These are the subtrees and data nodes 2931 and their sensitivity/vulnerability: 2933 /routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh/ 2934 sessions: the list specifies the IP single-hop BFD sessions. 2936 /routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh/ 2937 sessions: data nodes local-multiplier, desired-min-tx-interval, 2938 required-min-rx-interval and min-interval all impact the BFD IP 2939 single-hop session. The source-addr and dest-addr data nodes can be 2940 used to send BFD packets to unwitting recipients, [RFC5880] describes 2941 how BFD mitigates against such threats. Authentication data nodes 2942 key-chain and meticulous impact the security of the BFD IP single-hop 2943 session. 2945 /routing/control-plane-protocols/control-plane-protocol/bfd/ip-mh/ 2946 session-group: the list specifies the IP multi-hop BFD session 2947 groups. 2949 /routing/control-plane-protocols/control-plane-protocol/bfd/ip-mh/ 2950 session-group: data nodes local-multiplier, desired-min-tx-interval, 2951 required-min-rx-interval and min-interval all impact the BFD IP 2952 multi-hop session. The source-addr and dest-addr data nodes can be 2953 used to send BFD packets to unwitting recipients, [RFC5880] describes 2954 how BFD mitigates against such threats. Authentication data nodes 2955 key-chain and meticulous impact the security of the BFD IP multi-hop 2956 session. 2958 /routing/control-plane-protocols/control-plane-protocol/bfd/lag/ 2959 sessions: the list specifies the BFD sessions over LAG. 2961 /routing/control-plane-protocols/control-plane-protocol/bfd/lag/ 2962 sessions: data nodes local-multiplier, desired-min-tx-interval, 2963 required-min-rx-interval and min-interval all impact the BFD over LAG 2964 session. The ipv4-dest-addr and ipv6-dest-addr data nodes can be 2965 used to send BFD packets to unwitting recipients, [RFC5880] describes 2966 how BFD mitigates against such threats. Authentication data nodes 2967 key-chain and meticulous impact the security of the BFD over LAG 2968 session. 2970 /routing/control-plane-protocols/control-plane-protocol/bfd/mpls/ 2971 session-group: the list specifies the session groups for BFD over 2972 MPLS. 2974 /routing/control-plane-protocols/control-plane-protocol/bfd/mpls/ 2975 session-group: data nodes local-multiplier, desired-min-tx-interval, 2976 required-min-rx-interval, and min-interval all impact the BFD over 2977 MPLS LSPs session. Authentication data nodes key-chain and 2978 meticulous impact the security of the BFD over MPLS LSPs session. 2980 /routing/control-plane-protocols/control-plane-protocol/bfd/mpls/ 2981 egress: data nodes local-multiplier, desired-min-tx-interval, 2982 required-min-rx-interval and min-interval all impact the BFD over 2983 MPLS LSPs sessions for which this device is an MPLS LSP egress node. 2984 Authentication data nodes key-chain and meticulous impact the 2985 security of the BFD over MPLS LSPs sessions for which this device is 2986 an MPLS LSP egress node 2988 /te/tunnels/tunnel: data nodes local-multiplier, desired-min-tx- 2989 interval, required-min-rx-interval and min-interval all impact the 2990 BFD session over the MPLS-TE tunnel. Authentication data nodes key- 2991 chain and meticulous impact the security of the BFD session over the 2992 MPLS-TE tunnel. 2994 /routing/control-plane-protocols/control-plane-protocol/bfd/mpls-te/ 2995 egress: data nodes local-multiplier, desired-min-tx-interval, 2996 required-min-rx-interval and min-interval all impact the BFD over 2997 MPLS-TE sessions for which this device is an MPLS-TE egress node. 2998 Authentication data nodes key-chain and meticulous impact the 2999 security of the BFD over MPLS-TE sessions for which this device is an 3000 MPLS-TE egress node. 3002 The YANG module has writeable data nodes which can be used for 3003 creation of BFD sessions and modification of BFD session parameters. 3004 The system should "police" creation of BFD sessions to prevent new 3005 sessions from causing existing BFD sessions to fail. For BFD session 3006 modification, the BFD protocol has mechanisms in place which allow 3007 for in service modification. 3009 When BFD clients are used to modify BFD configuration (as described 3010 in Section 2.1), the BFD clients need to be included in an analysis 3011 of the security properties of the BFD-using system (e.g., when 3012 considering the authentication and authorization of control actions). 3013 In many cases, BFD is not the most vulnerable portion of such a 3014 composite system, since BFD is limited to generating well-defined 3015 traffic at a fixed rate on a given path; in the case of an IGP as BFD 3016 client, attacking the IGP could cause more broad-scale disruption 3017 than (de)configuring a BFD session could cause. 3019 Some of the readable data nodes in this YANG module may be considered 3020 sensitive or vulnerable in some network environments. It is thus 3021 important to control read access (e.g., via get, get-config, or 3022 notification) to these data nodes. These are the subtrees and data 3023 nodes and their sensitivity/vulnerability: 3025 /routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh/ 3026 summary: access to this information discloses the number of BFD IP 3027 single-hop sessions which are up, down and admin-down. The counters 3028 include BFD sessions for which the user does not have read-access. 3030 /routing/control-plane-protocols/control-plane-protocol/bfd/ip- 3031 sh/sessions/session/: access to data nodes local-discriminator and 3032 remote-discriminator (combined with the data nodes in the 3033 authentication container) provides the ability to spoof BFD IP 3034 single-hop packets. 3036 /routing/control-plane-protocols/control-plane-protocol/bfd/ip-mh/ 3037 summary: access to this information discloses the number of BFD IP 3038 multi-hop sessions which are up, down and admin-down. The counters 3039 include BFD sessions for which the user does not have read-access. 3041 /routing/control-plane-protocols/control-plane-protocol/bfd/ip-mh/ 3042 session-groups/session-group/sessions: access to data nodes local- 3043 discriminator and remote-discriminator (combined with the data nodes 3044 in the session-group's authentication container) provides the ability 3045 to spoof BFD IP multi-hop packets. 3047 /routing/control-plane-protocols/control-plane-protocol/bfd/lag/ 3048 micro-bfd-ipv4-session-statistics/summary: access to this information 3049 discloses the number of micro BFD IPv4 LAG sessions which are up, 3050 down and admin-down. The counters include BFD sessions for which the 3051 user does not have read-access. 3053 /routing/control-plane-protocols/control-plane- 3054 protocol/bfd/lag/sessions/session/member-links/member-link/micro-bfd- 3055 ipv4: access to data nodes local-discriminator and remote- 3056 discriminator (combined with the data nodes in the session's 3057 authentication container) provides the ability to spoof BFD IPv4 LAG 3058 packets. 3060 /routing/control-plane-protocols/control-plane-protocol/bfd/lag/ 3061 micro-bfd-ipv6-session-statistics/summary: access to this information 3062 discloses the number of micro BFD IPv6 LAG sessions which are up, 3063 down and admin-down. The counters include BFD sessions for which the 3064 user does not have read-access. 3066 /routing/control-plane-protocols/control-plane- 3067 protocol/bfd/lag/sessions/session/member-links/member-link/micro-bfd- 3068 ipv6: access to data nodes local-discriminator and remote- 3069 discriminator (combined with the data nodes in the session's 3070 authentication container) provides the ability to spoof BFD IPv6 LAG 3071 packets. 3073 /routing/control-plane-protocols/control-plane-protocol/bfd/mpls/ 3074 summary: access to this information discloses the number of BFD 3075 sessions over MPLS LSPs which are up, down and admin-down. The 3076 counters include BFD sessions for which the user does not have read- 3077 access. 3079 /routing/control-plane-protocols/control-plane-protocol/bfd/mpls/ 3080 session-groups/session-group/sessions: access to data nodes local- 3081 discriminator and remote-discriminator (combined with the data nodes 3082 in the session-group's authentication container) provides the ability 3083 to spoof BFD over MPLS LSPs packets. 3085 /routing/control-plane-protocols/control-plane-protocol/bfd/mpls-te/ 3086 summary: access to this information discloses the number of BFD 3087 sessions over MPLS-TE which are up, down and admin-down. The 3088 counters include BFD sessions for which the user does not have read- 3089 access. 3091 /te/lsps-state/lsp: access to data nodes local-discriminator and 3092 remote-discriminator (combined with the data nodes in the tunnel's 3093 authentication container) provides the ability to spoof BFD over 3094 MPLS-TE packets. 3096 5. IANA Considerations 3098 This document registers the following namespace URIs in the IETF XML 3099 registry [RFC3688]: 3101 -------------------------------------------------------------------- 3103 URI: urn:ietf:params:xml:ns:yang:iana-bfd-types 3105 Registrant Contact: The IESG. 3107 XML: N/A, the requested URI is an XML namespace. 3109 -------------------------------------------------------------------- 3111 -------------------------------------------------------------------- 3113 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-types 3115 Registrant Contact: The IESG. 3117 XML: N/A, the requested URI is an XML namespace. 3119 -------------------------------------------------------------------- 3121 -------------------------------------------------------------------- 3123 URI: urn:ietf:params:xml:ns:yang:ietf-bfd 3125 Registrant Contact: The IESG. 3127 XML: N/A, the requested URI is an XML namespace. 3129 -------------------------------------------------------------------- 3131 -------------------------------------------------------------------- 3133 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh 3135 Registrant Contact: The IESG. 3137 XML: N/A, the requested URI is an XML namespace. 3139 -------------------------------------------------------------------- 3141 -------------------------------------------------------------------- 3143 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-mh 3145 Registrant Contact: The IESG. 3147 XML: N/A, the requested URI is an XML namespace. 3149 -------------------------------------------------------------------- 3151 -------------------------------------------------------------------- 3153 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-lag 3155 Registrant Contact: The IESG. 3157 XML: N/A, the requested URI is an XML namespace. 3159 -------------------------------------------------------------------- 3161 -------------------------------------------------------------------- 3163 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-mpls 3165 Registrant Contact: The IESG. 3167 XML: N/A, the requested URI is an XML namespace. 3169 -------------------------------------------------------------------- 3171 -------------------------------------------------------------------- 3173 URI: urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te 3175 Registrant Contact: The IESG. 3177 XML: N/A, the requested URI is an XML namespace. 3179 -------------------------------------------------------------------- 3181 This document registers the following YANG modules in the YANG Module 3182 Names registry [RFC6020]: 3184 RFC Editor: Replace RFC XXXX with actual RFC number and remove this 3185 note. 3187 -------------------------------------------------------------------- 3189 Name: iana-bfd-types 3191 Namespace: urn:ietf:params:xml:ns:yang:iana-bfd-types 3193 Prefix: iana-bfd-types 3195 Reference: RFC XXXX 3197 -------------------------------------------------------------------- 3199 -------------------------------------------------------------------- 3201 Name: ietf-bfd-types 3203 Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-types 3205 Prefix: bfd-types 3207 Reference: RFC XXXX 3209 -------------------------------------------------------------------- 3211 -------------------------------------------------------------------- 3213 Name: ietf-bfd 3214 Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd 3216 Prefix: bfd 3218 Reference: RFC XXXX 3220 -------------------------------------------------------------------- 3222 -------------------------------------------------------------------- 3224 Name: ietf-bfd-ip-sh 3226 Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh 3228 Prefix: bfd-ip-sh 3230 Reference: RFC XXXX 3232 -------------------------------------------------------------------- 3234 -------------------------------------------------------------------- 3236 Name: ietf-bfd-ip-mh 3238 Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh 3240 Prefix: bfd-ip-mh 3242 Reference: RFC XXXX 3244 -------------------------------------------------------------------- 3246 -------------------------------------------------------------------- 3248 Name: ietf-bfd-lag 3250 Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-lag 3252 Prefix: bfd-lag 3254 Reference: RFC XXXX 3256 -------------------------------------------------------------------- 3258 -------------------------------------------------------------------- 3260 Name: ietf-bfd-mpls 3261 Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-mpls 3263 Prefix: bfd-mpls 3265 Reference: RFC XXXX 3267 -------------------------------------------------------------------- 3269 -------------------------------------------------------------------- 3271 Name: ietf-bfd-mpls-te 3273 Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te 3275 Prefix: bfd-mpls-te 3277 Reference: RFC XXXX 3279 -------------------------------------------------------------------- 3281 5.1. IANA-Maintained iana-bfd-types module 3283 This document defines the initial version of the IANA-maintained 3284 iana-bfd-types YANG module. 3286 The iana-bfd-types YANG module mirrors the "BFD Diagnostic Codes" 3287 registry and "BFD Authentication Types" registry at 3288 https://www.iana.org/assignments/bfd-parameters/bfd-parameters.xhtml. 3289 Whenever that registry changes, IANA must update the iana-bfd-types 3290 YANG module. 3292 6. Acknowledgements 3294 We would also like to thank Nobo Akiya and Jeff Haas for their 3295 encouragement on this work. We would also like to thank Rakesh 3296 Gandhi and Tarek Saad for their help on the MPLS-TE model. We would 3297 also like to thank Acee Lindem for his guidance. 3299 7. References 3301 7.1. Normative References 3303 [I-D.ietf-mpls-base-yang] 3304 Saad, T., Raza, K., Gandhi, R., Liu, X., and V. Beeram, "A 3305 YANG Data Model for MPLS Base", draft-ietf-mpls-base- 3306 yang-06 (work in progress), February 2018. 3308 [I-D.ietf-teas-yang-te] 3309 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 3310 I. Bryskin, "A YANG Data Model for Traffic Engineering 3311 Tunnels and Interfaces", draft-ietf-teas-yang-te-16 (work 3312 in progress), July 2018. 3314 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3315 Requirement Levels", BCP 14, RFC 2119, 3316 DOI 10.17487/RFC2119, March 1997, 3317 . 3319 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 3320 DOI 10.17487/RFC3688, January 2004, 3321 . 3323 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 3324 (TLS) Protocol Version 1.2", RFC 5246, 3325 DOI 10.17487/RFC5246, August 2008, 3326 . 3328 [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., 3329 "MPLS Generic Associated Channel", RFC 5586, 3330 DOI 10.17487/RFC5586, June 2009, 3331 . 3333 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 3334 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 3335 . 3337 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 3338 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, 3339 DOI 10.17487/RFC5881, June 2010, 3340 . 3342 [RFC5882] Katz, D. and D. Ward, "Generic Application of 3343 Bidirectional Forwarding Detection (BFD)", RFC 5882, 3344 DOI 10.17487/RFC5882, June 2010, 3345 . 3347 [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 3348 (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, 3349 June 2010, . 3351 [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, 3352 "Bidirectional Forwarding Detection (BFD) for MPLS Label 3353 Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, 3354 June 2010, . 3356 [RFC5885] Nadeau, T., Ed. and C. Pignataro, Ed., "Bidirectional 3357 Forwarding Detection (BFD) for the Pseudowire Virtual 3358 Circuit Connectivity Verification (VCCV)", RFC 5885, 3359 DOI 10.17487/RFC5885, June 2010, 3360 . 3362 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 3363 the Network Configuration Protocol (NETCONF)", RFC 6020, 3364 DOI 10.17487/RFC6020, October 2010, 3365 . 3367 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 3368 and A. Bierman, Ed., "Network Configuration Protocol 3369 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 3370 . 3372 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 3373 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 3374 . 3376 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 3377 Protocol (NETCONF) Access Control Model", RFC 6536, 3378 DOI 10.17487/RFC6536, March 2012, 3379 . 3381 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 3382 RFC 6991, DOI 10.17487/RFC6991, July 2013, 3383 . 3385 [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., 3386 Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional 3387 Forwarding Detection (BFD) on Link Aggregation Group (LAG) 3388 Interfaces", RFC 7130, DOI 10.17487/RFC7130, February 3389 2014, . 3391 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 3392 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 3393 . 3395 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 3396 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 3397 May 2017, . 3399 [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. 3400 Zhang, "YANG Data Model for Key Chains", RFC 8177, 3401 DOI 10.17487/RFC8177, June 2017, 3402 . 3404 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 3405 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 3406 . 3408 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 3409 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, 3410 . 3412 [RFC8344] Bjorklund, M., "A YANG Data Model for IP Management", 3413 RFC 8344, DOI 10.17487/RFC8344, March 2018, 3414 . 3416 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 3417 Routing Management (NMDA Version)", RFC 8349, 3418 DOI 10.17487/RFC8349, March 2018, 3419 . 3421 7.2. Informative References 3423 [I-D.ietf-lime-yang-connectionless-oam] 3424 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 3425 "Generic YANG Data Model for the Management of Operations, 3426 Administration, and Maintenance (OAM) Protocols that use 3427 Connectionless Communications", draft-ietf-lime-yang- 3428 connectionless-oam-18 (work in progress), November 2017. 3430 [I-D.ietf-rtgwg-lne-model] 3431 Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. 3432 Liu, "YANG Model for Logical Network Elements", draft- 3433 ietf-rtgwg-lne-model-10 (work in progress), March 2018. 3435 [I-D.ietf-rtgwg-ni-model] 3436 Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. 3437 Liu, "YANG Model for Network Instances", draft-ietf-rtgwg- 3438 ni-model-12 (work in progress), March 2018. 3440 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 3441 and R. Wilton, "Network Management Datastore Architecture 3442 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 3443 . 3445 Appendix A. Echo function configuration example 3447 As mentioned in Section 2.1.2, the mechanism to start and stop the 3448 echo function, as defined in [RFC5880] and [RFC5881], is 3449 implementation specific. In this section we provide an example of 3450 how the echo function can be implemented via configuration. 3452 module: example-bfd-echo 3453 augment /rt:routing/rt:control-plane-protocols 3454 /rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh 3455 /bfd-ip-sh:sessions: 3456 +--rw echo {bfd-types:echo-mode}? 3457 +--rw desired-min-echo-tx-interval? uint32 3458 +--rw required-min-echo-rx-interval? uint32 3460 A.1. Example YANG module for BFD echo function configuration 3462 module example-bfd-echo { 3463 namespace "tag:example.com,2018:example-bfd-echo"; 3465 prefix "example-bfd-echo"; 3467 import ietf-bfd-types { 3468 prefix "bfd-types"; 3469 } 3471 import ietf-bfd { 3472 prefix "bfd"; 3473 } 3475 import ietf-bfd-ip-sh { 3476 prefix "bfd-ip-sh"; 3477 } 3479 import ietf-routing { 3480 prefix "rt"; 3481 } 3483 organization "IETF BFD Working Group"; 3485 contact 3486 "WG Web: 3487 WG List: 3489 Editors: Reshad Rahman (rrahman@cisco.com), 3490 Lianshu Zheng (vero.zheng@huawei.com), 3491 Mahesh Jethanandani (mjethanandani@gmail.com)"; 3493 description 3494 "This module contains an example YANG augmentation for configuration 3495 of BFD echo function. 3497 Copyright (c) 2018 IETF Trust and the persons 3498 identified as authors of the code. All rights reserved. 3500 Redistribution and use in source and binary forms, with or 3501 without modification, is permitted pursuant to, and subject 3502 to the license terms contained in, the Simplified BSD License 3503 set forth in Section 4.c of the IETF Trust's Legal Provisions 3504 Relating to IETF Documents 3505 (http://trustee.ietf.org/license-info). 3507 This version of this YANG module is part of RFC XXXX; see 3508 the RFC itself for full legal notices."; 3510 revision 2018-08-01 { 3511 description "Initial revision."; 3512 reference 3513 "RFC XXXX: A YANG data model example augmentation for BFD echo 3514 function"; 3515 } 3517 // RFC Ed.: replace XXXX with actual RFC number and remove this 3518 // note 3520 /* 3521 * Groupings 3522 */ 3523 grouping echo-cfg-parms { 3524 description "BFD grouping for echo config parameters"; 3525 leaf desired-min-echo-tx-interval { 3526 type uint32; 3527 units microseconds; 3528 default 0; 3529 description 3530 "This is the minimum interval that the local system would like 3531 to use when transmitting BFD echo packets. If 0, the echo 3532 function as defined in BFD [RFC5880] is disabled."; 3533 } 3535 leaf required-min-echo-rx-interval { 3536 type uint32; 3537 units microseconds; 3538 default 0; 3539 description 3540 "This is the Required Min Echo RX Interval as defined in BFD 3541 [RFC5880]."; 3542 } 3543 } 3545 augment "/rt:routing/rt:control-plane-protocols/" 3546 + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" 3547 + "bfd-ip-sh:sessions" { 3549 description "Augmentation for BFD echo function."; 3551 container echo { 3552 if-feature bfd-types:echo-mode; 3554 description "BFD echo function container"; 3556 uses echo-cfg-parms; 3557 } 3558 } 3559 } 3561 Appendix B. Change log 3563 RFC Editor: Remove this section upon publication as an RFC. 3565 B.1. Changes between versions -16 and -17 3567 o Addressed IESG comments. 3569 B.2. Changes between versions -15 and -16 3571 o Added list of modules for YANG module registry. 3573 B.3. Changes between versions -14 and -15 3575 o Added missing ietf-bfd-types in XML registry. 3577 B.4. Changes between versions -13 and -14 3579 o Addressed missing/incorrect references in import statements. 3581 B.5. Changes between versions -12 and -13 3583 o Updated references for drafts which became RFCs recently. 3585 B.6. Changes between versions -11 and -12 3587 o Addressed comments from YANG Doctor review of rev11. 3589 B.7. Changes between versions -10 and -11 3591 o Added 2 examples. 3593 o Added a container around some lists. 3595 o Fixed some indentation nits. 3597 B.8. Changes between versions -09 and -10 3599 o Addressed comments from YANG Doctor review. 3601 o Addressed comments from WGLC. 3603 B.9. Changes between versions -08 and -09 3605 o Mostly cosmetic changes to abide by draft-ietf-netmod-rfc6087bis. 3607 o Specified yang-version 1.1. 3609 o Added data model examples. 3611 o Some minor changes. 3613 B.10. Changes between versions -07 and -08 3615 o Timer intervals in client-cfg-parms are not mandatory anymore. 3617 o Added list of interfaces under "ip-sh" node for authentication 3618 parameters. 3620 o Renamed replay-protection to meticulous. 3622 B.11. Changes between versions -06 and -07 3624 o New ietf-bfd-types module. 3626 o Grouping for BFD clients to have BFD multiplier and interval 3627 values. 3629 o Change in ietf-bfd-mpls-te since MPLS-TE model changed. 3631 o Removed bfd- prefix from many names. 3633 B.12. Changes between versions -05 and -06 3635 o Adhere to NMDA-guidelines. 3637 o Echo function config moved to appendix as example. 3639 o Added IANA YANG modules. 3641 o Addressed various comments. 3643 B.13. Changes between versions -04 and -05 3645 o "bfd" node in augment of control-plane-protocol. 3647 o Removed augment of network-instance. Replaced by schema-mount. 3649 o Added information on interaction with other YANG modules. 3651 B.14. Changes between versions -03 and -04 3653 o Updated author information. 3655 o Fixed YANG compile error in ietf-bfd-lag.yang which was due to 3656 incorrect when statement. 3658 B.15. Changes between versions -02 and -03 3660 o Fixed YANG compilation warning due to incorrect revision date in 3661 ietf-bfd-ip-sh module. 3663 B.16. Changes between versions -01 and -02 3665 o Replace routing-instance with network-instance from YANG Network 3666 Instances [I-D.ietf-rtgwg-ni-model] 3668 B.17. Changes between versions -00 and -01 3670 o Remove BFD configuration parameters from BFD clients, all BFD 3671 configuration parameters in BFD 3673 o YANG module split in multiple YANG modules (one per type of 3674 forwarding path) 3676 o For BFD over MPLS-TE we augment MPLS-TE model 3678 o For BFD authentication we now use YANG Data Model for Key Chains 3679 [RFC8177] 3681 Authors' Addresses 3683 Reshad Rahman (editor) 3684 Cisco Systems 3685 Canada 3687 Email: rrahman@cisco.com 3688 Lianshu Zheng (editor) 3689 Huawei Technologies 3690 China 3692 Email: vero.zheng@huawei.com 3694 Mahesh Jethanandani (editor) 3695 Xoriant Corporation 3696 1248 Reamwood Ave 3697 Sunnyvale, California 94089 3698 USA 3700 Email: mjethanandani@gmail.com 3702 Santosh Pallagatti 3703 Rtbrick 3704 India 3706 Email: santosh.pallagatti@gmail.com 3708 Greg Mirsky 3709 ZTE Corporation 3711 Email: gregimirsky@gmail.com