idnits 2.17.1 draft-ietf-bfd-yang-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 508 has weird spacing: '...nterval uin...' == Line 526 has weird spacing: '...ce-addr ine...' == Line 592 has weird spacing: '...nterval uin...' == Line 709 has weird spacing: '...nterval uin...' == Line 731 has weird spacing: '...nterval uin...' == (3 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (July 8, 2016) is 2842 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC6242' is mentioned on line 2193, but not defined == Missing Reference: 'RFC6536' is mentioned on line 2194, but not defined ** Obsolete undefined reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: A later version (-18) exists of draft-ietf-netconf-restconf-15 == Outdated reference: A later version (-25) exists of draft-ietf-netmod-routing-cfg-22 == Outdated reference: A later version (-12) exists of draft-ietf-rtgwg-ni-model-00 == Outdated reference: A later version (-24) exists of draft-ietf-rtgwg-yang-key-chain-06 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-03 Summary: 1 error (**), 0 flaws (~~), 15 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group L. Zheng, Ed. 3 Internet-Draft Huawei Technologies 4 Intended status: Standards Track R. Rahman, Ed. 5 Expires: January 9, 2017 Cisco Systems 6 S. Pallagatti 8 M. Jethanandani 9 Cisco Systems 10 G. Mirsky 11 Ericsson 12 July 8, 2016 14 Yang Data Model for Bidirectional Forwarding Detection (BFD) 15 draft-ietf-bfd-yang-03.txt 17 Abstract 19 This document defines a YANG data model that can be used to configure 20 and manage Bidirectional Forwarding Detection (BFD). 22 Requirements Language 24 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 25 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 26 document are to be interpreted as described in RFC 2119 [RFC2119]. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at http://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on January 9, 2017. 45 Copyright Notice 47 Copyright (c) 2016 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 63 1.1. Contributors . . . . . . . . . . . . . . . . . . . . . . 4 64 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 65 2.1. Design of Configuration Model . . . . . . . . . . . . . . 4 66 2.1.1. Common BFD configuration parameters . . . . . . . . . 5 67 2.1.2. Single-hop IP . . . . . . . . . . . . . . . . . . . . 6 68 2.1.3. Multi-hop IP . . . . . . . . . . . . . . . . . . . . 6 69 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 6 70 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 7 71 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 7 72 2.2. Design of Operational Model . . . . . . . . . . . . . . . 7 73 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 8 74 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 8 75 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 8 76 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 9 77 2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11 78 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13 79 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 15 80 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 17 81 2.11. Examples . . . . . . . . . . . . . . . . . . . . . . . . 19 82 2.12. Interaction with other YANG modules . . . . . . . . . . . 19 83 2.13. BFD top-level Yang Module . . . . . . . . . . . . . . . . 19 84 2.14. BFD IP single-hop Yang Module . . . . . . . . . . . . . . 31 85 2.15. BFD IP multi-hop Yang Module . . . . . . . . . . . . . . 34 86 2.16. BFD over LAG Yang Module . . . . . . . . . . . . . . . . 37 87 2.17. BFD over MPLS Yang Module . . . . . . . . . . . . . . . . 41 88 2.18. BFD over MPLS-TE Yang Module . . . . . . . . . . . . . . 44 89 2.19. Security Considerations . . . . . . . . . . . . . . . . . 46 90 2.20. IANA Considerations . . . . . . . . . . . . . . . . . . . 47 91 2.21. Acknowledgements . . . . . . . . . . . . . . . . . . . . 47 92 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 93 3.1. Normative References . . . . . . . . . . . . . . . . . . 47 94 3.2. Informative References . . . . . . . . . . . . . . . . . 48 95 Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 49 96 A.1. Changes between versions -02 and -03 . . . . . . . . . . 49 97 A.2. Changes between versions -01 and -02 . . . . . . . . . . 49 98 A.3. Changes between versions -00 and -01 . . . . . . . . . . 49 99 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 101 1. Introduction 103 YANG [RFC6020] is a data definition language that was introduced to 104 define the contents of a conceptual data store that allows networked 105 devices to be managed using NETCONF [RFC6241]. YANG is proving 106 relevant beyond its initial confines, as bindings to other interfaces 107 (e.g RESTCONF [I-D.ietf-netconf-restconf]) and encodings other than 108 XML (e.g JSON) are being defined. Furthermore, YANG data models can 109 be used as the basis of implementation for other interfaces, such as 110 CLI and programmatic APIs. 112 This document defines a YANG data model that can be used to configure 113 and manage Bidirectional Forwarding Detection (BFD)[RFC5880]. BFD is 114 a network protocol which is used for liveness detection of arbitrary 115 paths between systems. Some examples of different types of paths 116 over which we have BFD: 118 1) Two systems directly connected via IP. This is known as BFD over 119 single-hop IP [RFC5881] 121 2) Two systems connected via multiple hops [RFC5883] 123 3) Two systems connected via MPLS Label Switched Paths (LSPs) 124 [RFC5884] 126 4) Two systems connected via pseudowires (PWs), this is known as 127 Virtual Circuit Connectivity Verification (VCCV) [RFC5885] 129 5) Two systems connected via a Link Aggregation Group (LAG) interface 130 [RFC7130] 132 BFD typically does not operate on its own. Various control 133 protocols, also known as BFD clients, use the services provided by 134 BFD for their own operation [RFC5882]. The obvious candidates which 135 use BFD are those which do not have Hellos to detect failures, e.g. 136 static routes, and routing protocols whose Hellos do not support sub- 137 second failure detection, e.g. OSPF and IS-IS. 139 1.1. Contributors 141 2. Design of the Data Model 143 Since BFD is used for liveliness detection of various forwarding 144 paths, there is no uniform key to identify a BFD session. So the BFD 145 data model is split in multiple YANG modules where each module 146 corresponds to one type of forwarding path. For example, BFD for IP 147 single-hop is in one YANG module and BFD for MPLS-TE is in another 148 YANG module. The main difference between these modules is how a BFD 149 session is uniquely identified, i.e the key for the list containing 150 the BFD sessions for that forwarding path. To avoid duplication of 151 BFD definitions, we have common types and groupings which are used by 152 all the modules. 154 The new top-level container "bfd" is augmented by all the YANG 155 modules for their respective specific information. 157 The "network-instance" data node in [I-D.ietf-rtgwg-ni-model] has 158 been augmented with the "bfd" data node. Where appropriate for 159 specific types of forwarding path, the respective BFD YANG modules 160 follow a VRF-centric model by augmenting that new "bfd" node under 161 "network-instance". 163 Each node in every "bfd" sub-tree has a "config" node and an "oper" 164 node. 166 2.1. Design of Configuration Model 168 The configuration model consists mainly of the parameters specified 169 in [RFC5880]. Some examples are desired minimum transmit interval, 170 required minimum receive interval, detection multiplier, etc 172 Some implementations have BFD session configuration under the BFD 173 clients. For example, BFD session configuration is under routing 174 applications such as OSPF, IS-IS, BGP etc. Other implementations 175 have BFD session configuration centralized under BFD, i.e. outside 176 the multiple BFD clients. 178 The BFD parameters of interest to a BFD client are mainly the 179 multiplier and interval(s) since those parameters impact the 180 convergence time of the BFD clients when a failure occurs. Other 181 parameters such as BFD authentication are not specific to the 182 requirements of the BFD client. To avoid splitting the BFD 183 configuration between BFD clients and BFD, all the configuration is 184 under BFD. The only BFD configuration under BFD clients should be an 185 "enable" knob which makes those clients react to BFD liveliness 186 detection events. 188 2.1.1. Common BFD configuration parameters 190 The basic BFD configuration parameters are: 192 local-multiplier 193 This is the detection time multiplier as defined in 194 [RFC5880]. 196 desired-min-tx-interval 197 This is the Desired Min TX Interval as defined in [RFC5880]. 199 required-min-rx-interval 200 This is the Required Min RX Interval as defined in [RFC5880]. 202 Although [RFC5880] allows for different values for transmit and 203 receive intervals, some implementations allow users to specify just 204 one interval which is used for both transmit and receive intervals or 205 separate values for transmit and receive intervals. The BFD YANG 206 model supports this: there is a choice between "min-interval", used 207 for both transmit and receive intervals, and "desired-min-tx- 208 interval" and "required-min-rx-interval". This is supported via a 209 grouping which is used by the YANG modules for the various forwarding 210 paths. There are also intervals for the echo function (if 211 supported): 213 desired-min-echo-tx-interval 214 This is the minimum interval that the local system would like 215 to use when transmitting BFD echo packets. If 0, the echo 216 function as defined in [RFC5880] is disabled. 218 required-min-echo-rx-interval 219 This is the Required Min Echo RX Interval as defined in 220 [RFC5880]. 222 For BFD authentication we have: 224 key-chain 225 This is a reference to key-chain defined in 226 [I-D.ietf-rtgwg-yang-key-chain]. The keys, cryptographic 227 algotihms, key lifetime etc are all defined in the key-chain 228 model. 230 replay-protection 231 This specifies meticulous v/s non-meticulous mode as per 232 [RFC5880]. 234 2.1.2. Single-hop IP 236 For single-hop IP, there is an augment of the "bfd" data node under 237 "network-instance" in Section 2. We have a list of IP single-hop 238 sessions where each session is uniquely identified by the interface 239 and destination address pair. For the configuration parameters we 240 use what is defined in Section 2.1.1 242 2.1.3. Multi-hop IP 244 For multi-hop IP, there is an augment of the "bfd" data node under 245 "network-instance" in Section 2. 247 We have a list for BFD sessions over multi-hop IP. The key consists 248 of: 250 source address 251 Address belonging to the local system as per [RFC5883] 253 destination address 254 Address belonging to the remote system as per [RFC5883] 256 Since we are following a VRF-centric model we do not need a VRF field 257 in the key. 259 For the configuration parameters we use what is defined in 260 Section 2.1.1 262 Here are some extra parameters: 264 tx-ttl 265 TTL of outgoing BFD control packets. 267 rx-ttl 268 Minimum TTL of incoming BFD control packets. 270 2.1.4. MPLS Traffic Engineering Tunnels 272 For MPLS-TE tunnels, BFD is configured under the MPLS-TE tunnel since 273 the desired failure detection parameters is a property of the MPLS-TE 274 tunnel. This is achieved by augmenting the MPLS-TE data model in 275 [I-D.ietf-teas-yang-te]. For BFD parameters which are specific to 276 the TE application, e.g. whether to tear down the tunnel in the event 277 of a BFD session failure, these parameters will be defined in the 278 YANG model of the MPLS-TE application. 280 On top of the usual BFD parameters, we have the following per MPLS-TE 281 tunnel: 283 encap 284 Encapsulation for the BFD packets: choice between IP, G-ACh 285 and IP with G-ACh as per [RFC5586] 287 For general MPLS-TE data, "mpls-te" data node is added under the top- 288 level "bfd" node in Section 2. Since some MPLS-TE tunnels are uni- 289 directional there is no MPLS-TE configuration for these tunnels on 290 the egress node (note that this does not apply to bi-directional 291 MPLS-TP tunnels). The BFD parameters for the egress node are added 292 under "mpls-te". 294 2.1.5. MPLS Label Switched Paths 296 Here we address MPLS LSPs whose FEC is an IP address. The top-level 297 "bfd" node in Section 2 is augmented with "mpls" which contains a 298 list of sessions uniquely identified by an IP address. 300 Since these LSPs are uni-directional there is no LSP configuration on 301 the egress node. The BFD parameters for the egress node are added 302 under "mpls". 304 2.1.6. Link Aggregation Groups 306 Per [RFC7130], configuring BFD on LAG consists of having micro-BFD 307 sessions on each LAG member link. Since the BFD parameters are an 308 attribute of the LAG, they should be under the LAG. However there is 309 no LAG YANG model which we can augment. So a "lag" data node is 310 added to the top-level "bfd" node in Section 2, the configuration is 311 per-LAG: we have a list of LAGs. The destination IP address of the 312 micro-BFD sessions is configured per-LAG and per address-family (IPv4 313 and IPv6) 315 2.2. Design of Operational Model 317 The operational model contains both the overall statistics of BFD 318 sessions running on the device and the per session operational 319 information. 321 The overall statistics of BFD sessions consist of number of BFD 322 sessions, number of BFD sessions up etc. This information is 323 available globally (i.e. for all BFD sessions) under the top level 324 "bfd" node in Section 2 and also per type of forwarding path. 326 For each BFD session, mainly three categories of operational items 327 are shown. The fundamental information of a BFD session such as the 328 local discriminator, remote discriminator and the capability of 329 supporting demand detect mode are shown in the first category. The 330 second category includes a BFD session running information, e.g. the 331 remote BFD state and the diagnostic code received. Another example 332 is the actual transmit interval between the control packets, which 333 may be different from the desired minimum transmit interval 334 configured, is shown in this category. Similar examples are actual 335 received interval between the control packets and the actual transmit 336 interval between the echo packets. The third category contains the 337 detailed statistics of the session, e.g. when the session 338 transitioned up/down and how long it has been in that state. 340 For some session types, there may be more than 1 session on the 341 virtual path to the destination. For example, with IP multi-hop 342 there could be multiple BFD sessions from the source to the same 343 destination to test the various paths (ECMP) to the destination. 344 Each of the BFD sessions on the same virtual path is uniquely 345 identified by the local discriminator. 347 2.3. Notifications 349 This YANG model defines notifications to inform clients of BFD of 350 important events detected during the protocol operation. Pair of 351 local and remote discriminator identifies a BFD session on local 352 system. Notifications also give more important details about BFD 353 sessions; e.g. new state, time in previous state, network-instance 354 and the reason that the BFD session state changed. The notifications 355 are defined for each type of forwarding path but use groupings for 356 common information. 358 2.4. RPC Operations 360 TBD 362 2.5. BFD top level hierarchy 364 At the top level there is no configuration data, only operational 365 data. The operational data consist of overall BFD session statistics 366 globally and per network-instance 367 module: ietf-bfd 368 +--rw bfd! 369 +--rw config 370 +--ro oper 371 +--ro bfd-session-statistics 372 +--ro session-count? uint32 373 +--ro session-up-count? uint32 374 +--ro session-down-count? uint32 375 +--ro session-admin-down-count? uint32 376 augment /ni:network-instances/ni:network-instance: 377 +--rw bfd! 378 +--rw config 379 +--ro oper 380 +--ro bfd-session-statistics 381 +--ro session-count? uint32 382 +--ro session-up-count? uint32 383 +--ro session-down-count? uint32 384 +--ro session-admin-down-count? uint32 386 2.6. BFD IP single-hop hierarchy 388 The configuration and operational data for each BFD IP single-hop 389 session is under "ip-sh" node under network-instance. Overall BFD IP 390 single-hop session statistics are available per network-instance and 391 globally (for all network instances). 393 module: ietf-bfd-ip-sh 394 augment /bfd:bfd: 395 +--rw ip-sh 396 +--rw config 397 +--ro oper 398 +--ro bfd-session-statistics 399 +--ro session-count? uint32 400 +--ro session-up-count? uint32 401 +--ro session-down-count? uint32 402 +--ro session-admin-down-count? uint32 403 augment /ni:network-instances/ni:network-instance/bfd:bfd: 404 +--rw ip-sh 405 +--rw config 406 | +--rw session-cfg 407 | +--rw sessions* [interface dest-addr] 408 | +--rw interface if:interface-ref 409 | +--rw dest-addr inet:ip-address 410 | +--rw source-addr? inet:ip-address 411 | +--rw local-multiplier? bfd-multiplier 412 | +--rw (interval-config-type)? 413 | | +--:(tx-rx-intervals) 414 | | | +--rw desired-min-tx-interval uint32 415 | | | +--rw required-min-rx-interval uint32 416 | | +--:(single-interval) 417 | | +--rw min-interval uint32 418 | +--rw demand-enabled? boolean 419 | +--rw admin-down? boolean 420 | +--rw authentication-parms! {bfd-authentication}? 421 | | +--rw key-chain? kc:key-chain-ref 422 | | +--rw replay-protection? identityref 423 | +--rw desired-min-echo-tx-interval? uint32 424 | +--rw required-min-echo-rx-interval? uint32 425 +--ro oper 426 +--ro bfd-session-statistics 427 | +--ro session-count? uint32 428 | +--ro session-up-count? uint32 429 | +--ro session-down-count? uint32 430 | +--ro session-admin-down-count? uint32 431 +--ro sessions* [interface dest-addr] 432 +--ro interface if:interface-ref 433 +--ro dest-addr inet:ip-address 434 +--ro source-addr? inet:ip-address 435 +--ro path-type? identityref 436 +--ro local-discriminator? bfd-discriminator 437 +--ro remote-discriminator? bfd-discriminator 438 +--ro remote-multiplier? bfd-multiplier 439 +--ro out-interface? if:interface-ref 440 +--ro demand-capability? boolean 441 +--ro source-port? inet:port-number 442 +--ro dest-port? inet:port-number 443 +--ro session-running 444 | +--ro session-index? uint32 445 | +--ro local-state? bfd-state 446 | +--ro remote-state? bfd-state 447 | +--ro local-diagnostic? bfd-diagnostic 448 | +--ro remote-diagnostic? bfd-diagnostic 449 | +--ro detection-mode? enumeration 450 | +--ro negotiated-tx-interval? uint32 451 | +--ro negotiated-rx-interval? uint32 452 | +--ro echo-tx-interval-in-use? uint32 453 | +--ro detection-time? uint32 454 +--ro sesssion-statistics 455 +--ro create-time? yang:date-and-time 456 +--ro last-down-time? yang:date-and-time 457 +--ro last-up-time? yang:date-and-time 458 +--ro down-count? uint32 459 +--ro admin-down-count? uint32 460 +--ro receive-packet-count? uint64 461 +--ro send-packet-count? uint64 462 +--ro receive-bad-packet? uint64 463 +--ro send-failed-packet? uint64 464 notifications: 465 +---n bfd-singlehop-notification 466 +--ro local-discr? bfd-discriminator 467 +--ro remote-discr? bfd-discriminator 468 +--ro new-state? bfd-state 469 +--ro state-change-reason? string 470 +--ro time-in-previous-state? string 471 +--ro dest-addr? inet:ip-address 472 +--ro source-addr? inet:ip-address 473 +--ro session-index? uint32 474 +--ro path-type? identityref 475 +--ro interface? if:interface-ref 476 +--ro echo-enabled? boolean 478 2.7. BFD IP multi-hop hierarchy 480 The configuration and operational data for each BFD IP multi-hop 481 session is under "ip-mh" node under network-instance. In the 482 operational model we support multiple BFD multi-hop sessions per 483 remote address (ECMP), the local discriminator is used as key. 484 Overall BFD IP multi-hop session statistics are available per 485 network-instance and globally (for all network instances). 487 module: ietf-bfd-ip-mh 488 augment /bfd:bfd: 489 +--rw ip-mh 490 +--rw config 491 +--ro oper 492 +--ro bfd-session-statistics 493 +--ro session-count? uint32 494 +--ro session-up-count? uint32 495 +--ro session-down-count? uint32 496 +--ro session-admin-down-count? uint32 497 augment /ni:network-instances/ni:network-instance/bfd:bfd: 498 +--rw ip-mh 499 +--rw config 500 | +--rw session-cfg 501 | +--rw sessions* [source-addr dest-addr] 502 | +--rw source-addr inet:ip-address 503 | +--rw dest-addr inet:ip-address 504 | +--rw local-multiplier? bfd-multiplier 505 | +--rw (interval-config-type)? 506 | | +--:(tx-rx-intervals) 507 | | | +--rw desired-min-tx-interval uint32 508 | | | +--rw required-min-rx-interval uint32 509 | | +--:(single-interval) 510 | | +--rw min-interval uint32 511 | +--rw demand-enabled? boolean 512 | +--rw admin-down? boolean 513 | +--rw authentication-parms! {bfd-authentication}? 514 | | +--rw key-chain? kc:key-chain-ref 515 | | +--rw replay-protection? identityref 516 | +--rw tx-ttl? bfd:ttl 517 | +--rw rx-ttl bfd:ttl 518 +--ro oper 519 +--ro bfd-session-statistics 520 | +--ro bfd-session-statistics 521 | +--ro session-count? uint32 522 | +--ro session-up-count? uint32 523 | +--ro session-down-count? uint32 524 | +--ro session-admin-down-count? uint32 525 +--ro session-group* [source-addr dest-addr] 526 +--ro source-addr inet:ip-address 527 +--ro dest-addr inet:ip-address 528 +--ro sessions* [local-discriminator] 529 +--ro ttl? bfd:ttl 530 +--ro path-type? identityref 531 +--ro local-discriminator bfd-discriminator 532 +--ro remote-discriminator? bfd-discriminator 533 +--ro remote-multiplier? bfd-multiplier 534 +--ro out-interface? if:interface-ref 535 +--ro demand-capability? boolean 536 +--ro source-port? inet:port-number 537 +--ro dest-port? inet:port-number 538 +--ro session-running 539 | +--ro session-index? uint32 540 | +--ro local-state? bfd-state 541 | +--ro remote-state? bfd-state 542 | +--ro local-diagnostic? bfd-diagnostic 543 | +--ro remote-diagnostic? bfd-diagnostic 544 | +--ro detection-mode? enumeration 545 | +--ro negotiated-tx-interval? uint32 546 | +--ro negotiated-rx-interval? uint32 547 | +--ro echo-tx-interval-in-use? uint32 548 | +--ro detection-time? uint32 549 +--ro sesssion-statistics 550 +--ro create-time? yang:date-and-time 551 +--ro last-down-time? yang:date-and-time 552 +--ro last-up-time? yang:date-and-time 553 +--ro down-count? uint32 554 +--ro admin-down-count? uint32 555 +--ro receive-packet-count? uint64 556 +--ro send-packet-count? uint64 557 +--ro receive-bad-packet? uint64 558 +--ro send-failed-packet? uint64 560 notifications: 561 +---n bfd-multihop-notification 562 +--ro local-discr? bfd-discriminator 563 +--ro remote-discr? bfd-discriminator 564 +--ro new-state? bfd-state 565 +--ro state-change-reason? string 566 +--ro time-in-previous-state? string 567 +--ro dest-addr? inet:ip-address 568 +--ro source-addr? inet:ip-address 569 +--ro session-index? uint32 570 +--ro path-type? identityref 571 +--ro network-instance? string 573 2.8. BFD over LAG hierarchy 575 The configuration and operational data for each BFD LAG session is 576 under "lag" node. Overall BFD LAG session statistics are available 577 globally. 579 module: ietf-bfd-lag 580 augment /bfd:bfd: 581 +--rw lag 582 +--rw config 583 | +--rw session-cfg 584 | +--rw sessions* [lag-name] 585 | +--rw lag-name if:interface-ref 586 | +--rw ipv4-dest-addr? inet:ipv4-address 587 | +--rw ipv6-dest-addr? inet:ipv6-address 588 | +--rw local-multiplier? bfd-multiplier 589 | +--rw (interval-config-type)? 590 | | +--:(tx-rx-intervals) 591 | | | +--rw desired-min-tx-interval uint32 592 | | | +--rw required-min-rx-interval uint32 593 | | +--:(single-interval) 594 | | +--rw min-interval uint32 595 | +--rw demand-enabled? boolean 596 | +--rw admin-down? boolean 597 | +--rw authentication-parms! {bfd-authentication}? 598 | +--rw key-chain? kc:key-chain-ref 599 | +--rw replay-protection? identityref 600 +--ro oper 601 +--ro micro-bfd-ipv4-session-statistics 602 | +--ro bfd-session-statistics 603 | +--ro session-count? uint32 604 | +--ro session-up-count? uint32 605 | +--ro session-down-count? uint32 606 | +--ro session-admin-down-count? uint32 607 +--ro micro-bfd-ipv6-session-statistics 608 | +--ro bfd-session-statistics 609 | +--ro session-count? uint32 610 | +--ro session-up-count? uint32 611 | +--ro session-down-count? uint32 612 | +--ro session-admin-down-count? uint32 613 +--ro session-lag* [lag-name] 614 +--ro lag-name if:interface-ref 615 +--ro use-ipv4? boolean 616 +--ro use-ipv6? boolean 617 +--ro member-links* [member-link] 618 +--ro member-link if:interface-ref 619 +--ro micro-bfd-ipv4 620 | +--ro path-type? identityref 621 | +--ro local-discriminator? bfd-discriminator 622 | +--ro remote-discriminator? bfd-discriminator 623 | +--ro remote-multiplier? bfd-multiplier 624 | +--ro out-interface? if:interface-ref 625 | +--ro demand-capability? boolean 626 | +--ro source-port? inet:port-number 627 | +--ro dest-port? inet:port-number 628 | +--ro session-running 629 | | +--ro session-index? uint32 630 | | +--ro local-state? bfd-state 631 | | +--ro remote-state? bfd-state 632 | | +--ro local-diagnostic? bfd-diagnostic 633 | | +--ro remote-diagnostic? bfd-diagnostic 634 | | +--ro detection-mode? enumeration 635 | | +--ro negotiated-tx-interval? uint32 636 | | +--ro negotiated-rx-interval? uint32 637 | | +--ro echo-tx-interval-in-use? uint32 638 | | +--ro detection-time? uint32 639 | +--ro sesssion-statistics 640 | +--ro create-time? yang:date-and-time 641 | +--ro last-down-time? yang:date-and-time 642 | +--ro last-up-time? yang:date-and-time 643 | +--ro down-count? uint32 644 | +--ro admin-down-count? uint32 645 | +--ro receive-packet-count? uint64 646 | +--ro send-packet-count? uint64 647 | +--ro receive-bad-packet? uint64 648 | +--ro send-failed-packet? uint64 649 +--ro micro-bfd-ipv6 650 +--ro path-type? identityref 651 +--ro local-discriminator? bfd-discriminator 652 +--ro remote-discriminator? bfd-discriminator 653 +--ro remote-multiplier? bfd-multiplier 654 +--ro out-interface? if:interface-ref 655 +--ro demand-capability? boolean 656 +--ro source-port? inet:port-number 657 +--ro dest-port? inet:port-number 658 +--ro session-running 659 | +--ro session-index? uint32 660 | +--ro local-state? bfd-state 661 | +--ro remote-state? bfd-state 662 | +--ro local-diagnostic? bfd-diagnostic 663 | +--ro remote-diagnostic? bfd-diagnostic 664 | +--ro detection-mode? enumeration 665 | +--ro negotiated-tx-interval? uint32 666 | +--ro negotiated-rx-interval? uint32 667 | +--ro echo-tx-interval-in-use? uint32 668 | +--ro detection-time? uint32 669 +--ro sesssion-statistics 670 +--ro create-time? yang:date-and-time 671 +--ro last-down-time? yang:date-and-time 672 +--ro last-up-time? yang:date-and-time 673 +--ro down-count? uint32 674 +--ro admin-down-count? uint32 675 +--ro receive-packet-count? uint64 676 +--ro send-packet-count? uint64 677 +--ro receive-bad-packet? uint64 678 +--ro send-failed-packet? uint64 679 notifications: 680 +---n bfd-lag-notification 681 +--ro local-discr? bfd-discriminator 682 +--ro remote-discr? bfd-discriminator 683 +--ro new-state? bfd-state 684 +--ro state-change-reason? string 685 +--ro time-in-previous-state? string 686 +--ro dest-addr? inet:ip-address 687 +--ro source-addr? inet:ip-address 688 +--ro session-index? uint32 689 +--ro path-type? identityref 690 +--ro lag-name? if:interface-ref 691 +--ro member-link? if:interface-ref 693 2.9. BFD over MPLS LSPs hierarchy 695 The configuration is per MPLS FEC under "mpls". In the operational 696 model we support multiple BFD sessions per MPLS FEC (ECMP), the local 697 discriminator is used as key. 699 module: ietf-bfd-mpls 700 module: ietf-bfd-mpls 701 augment /bfd:bfd: 702 +--rw mpls 703 +--rw config 704 | +--rw egress 705 | +--rw local-multiplier? bfd-multiplier 706 | +--rw (interval-config-type)? 707 | | +--:(tx-rx-intervals) 708 | | | +--rw desired-min-tx-interval uint32 709 | | | +--rw required-min-rx-interval uint32 710 | | +--:(single-interval) 711 | | +--rw min-interval uint32 712 | +--rw authentication-parms! {bfd-authentication}? 713 | +--rw key-chain? kc:key-chain-ref 714 | +--rw replay-protection? identityref 715 +--ro oper 716 +--ro bfd-session-statistics 717 +--ro session-count? uint32 718 +--ro session-up-count? uint32 719 +--ro session-down-count? uint32 720 +--ro session-admin-down-count? uint32 721 augment /ni:network-instances/ni:network-instance/bfd:bfd: 722 +--rw mpls 723 +--rw config 724 | +--rw session-cfg 725 | +--rw sessions* [mpls-fec] 726 | +--rw mpls-fec inet:ip-address 727 | +--rw local-multiplier? bfd-multiplier 728 | +--rw (interval-config-type)? 729 | | +--:(tx-rx-intervals) 730 | | | +--rw desired-min-tx-interval uint32 731 | | | +--rw required-min-rx-interval uint32 732 | | +--:(single-interval) 733 | | +--rw min-interval uint32 734 | +--rw demand-enabled? boolean 735 | +--rw admin-down? boolean 736 | +--rw authentication-parms! {bfd-authentication}? 737 | +--rw key-chain? kc:key-chain-ref 738 | +--rw replay-protection? identityref 739 +--ro oper 740 +--ro bfd-session-statistics 741 | +--ro session-count? uint32 742 | +--ro session-up-count? uint32 743 | +--ro session-down-count? uint32 744 | +--ro session-admin-down-count? uint32 745 +--ro session-group* [mpls-fec] 746 +--ro mpls-fec inet:ip-address 747 +--ro sessions* [local-discriminator] 748 +--ro path-type? identityref 749 +--ro local-discriminator bfd-discriminator 750 +--ro remote-discriminator? bfd-discriminator 751 +--ro remote-multiplier? bfd-multiplier 752 +--ro out-interface? if:interface-ref 753 +--ro demand-capability? boolean 754 +--ro source-port? inet:port-number 755 +--ro dest-port? inet:port-number 756 +--ro session-running 757 | +--ro session-index? uint32 758 | +--ro local-state? bfd-state 759 | +--ro remote-state? bfd-state 760 | +--ro local-diagnostic? bfd-diagnostic 761 | +--ro remote-diagnostic? bfd-diagnostic 762 | +--ro detection-mode? enumeration 763 | +--ro negotiated-tx-interval? uint32 764 | +--ro negotiated-rx-interval? uint32 765 | +--ro echo-tx-interval-in-use? uint32 766 | +--ro detection-time? uint32 767 +--ro sesssion-statistics 768 | +--ro create-time? yang:date-and-time 769 | +--ro last-down-time? yang:date-and-time 770 | +--ro last-up-time? yang:date-and-time 771 | +--ro down-count? uint32 772 | +--ro admin-down-count? uint32 773 | +--ro receive-packet-count? uint64 774 | +--ro send-packet-count? uint64 775 | +--ro receive-bad-packet? uint64 776 | +--ro send-failed-packet? uint64 777 +--ro mpls-dest-address? inet:ip-address 778 notifications: 779 +---n bfd-mpls-notification 780 +--ro local-discr? bfd-discriminator 781 +--ro remote-discr? bfd-discriminator 782 +--ro new-state? bfd-state 783 +--ro state-change-reason? string 784 +--ro time-in-previous-state? string 785 +--ro dest-addr? inet:ip-address 786 +--ro source-addr? inet:ip-address 787 +--ro session-index? uint32 788 +--ro path-type? identityref 789 +--ro network-instance? string 790 +--ro mpls-dest-address? inet:ip-address 792 2.10. BFD over MPLS-TE hierarchy 794 The MPLS-TE YANG model [I-D.ietf-teas-yang-te] is augmented. BFD is 795 configured per MPLS-TE tunnel, and BFD session operational data is 796 provided per MPLS-TE LSP. 798 module: ietf-bfd-mpls-te 799 augment /bfd:bfd: 801 +--rw mpls-te 802 +--rw config 803 | +--rw egress 804 | +--rw local-multiplier? bfd-multiplier 805 | +--rw (interval-config-type)? 806 | | +--:(tx-rx-intervals) 807 | | | +--rw desired-min-tx-interval uint32 808 | | | +--rw required-min-rx-interval uint32 809 | | +--:(single-interval) 810 | | +--rw min-interval uint32 811 | +--rw authentication-parms! {bfd-authentication}? 812 | +--rw key-chain? kc:key-chain-ref 813 | +--rw replay-protection? identityref 814 +--ro oper 815 +--ro bfd-session-statistics 816 +--ro session-count? uint32 817 +--ro session-up-count? uint32 818 +--ro session-down-count? uint32 819 +--ro session-admin-down-count? uint32 820 augment /te:te/te:tunnels/te:tunnel/te:config: 821 +--rw local-multiplier? bfd-multiplier 822 +--rw (interval-config-type)? 823 | +--:(tx-rx-intervals) 824 | | +--rw desired-min-tx-interval uint32 825 | | +--rw required-min-rx-interval uint32 826 | +--:(single-interval) 827 | +--rw min-interval uint32 828 +--rw demand-enabled? boolean 829 +--rw admin-down? boolean 830 +--rw authentication-parms! {bfd-authentication}? 831 | +--rw key-chain? kc:key-chain-ref 832 | +--rw replay-protection? identityref 833 +--rw encap? identityref 834 augment /te:te/te:lsps-state/te:lsp: 835 +--ro path-type? identityref 836 +--ro local-discriminator? bfd-discriminator 837 +--ro remote-discriminator? bfd-discriminator 838 +--ro remote-multiplier? bfd-multiplier 839 +--ro out-interface? if:interface-ref 840 +--ro demand-capability? boolean 841 +--ro source-port? inet:port-number 842 +--ro dest-port? inet:port-number 843 +--ro session-running 844 | +--ro session-index? uint32 845 | +--ro local-state? bfd-state 846 | +--ro remote-state? bfd-state 847 | +--ro local-diagnostic? bfd-diagnostic 848 | +--ro remote-diagnostic? bfd-diagnostic 849 | +--ro detection-mode? enumeration 850 | +--ro negotiated-tx-interval? uint32 851 | +--ro negotiated-rx-interval? uint32 852 | +--ro echo-tx-interval-in-use? uint32 853 | +--ro detection-time? uint32 854 +--ro sesssion-statistics 855 | +--ro create-time? yang:date-and-time 856 | +--ro last-down-time? yang:date-and-time 857 | +--ro last-up-time? yang:date-and-time 858 | +--ro down-count? uint32 859 | +--ro admin-down-count? uint32 860 | +--ro receive-packet-count? uint64 861 | +--ro send-packet-count? uint64 862 | +--ro receive-bad-packet? uint64 863 | +--ro send-failed-packet? uint64 864 +--ro mpls-dest-address? inet:ip-address 865 notifications: 866 +---n bfd-mpls-te-notification 867 +--ro local-discr? bfd-discriminator 868 +--ro remote-discr? bfd-discriminator 869 +--ro new-state? bfd-state 870 +--ro state-change-reason? string 871 +--ro time-in-previous-state? string 872 +--ro dest-addr? inet:ip-address 873 +--ro source-addr? inet:ip-address 874 +--ro session-index? uint32 875 +--ro path-type? identityref 876 +--ro mpls-dest-address? inet:ip-address 877 +--ro tunnel-name? string 879 2.11. Examples 881 2.12. Interaction with other YANG modules 883 TBD. 885 2.13. BFD top-level Yang Module 887 file "ietf-bfd@2016-07-04.yang" 888 module ietf-bfd { 889 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; 890 // replace with IANA namespace when assigned 891 prefix "bfd"; 893 import ietf-interfaces { 894 prefix "if"; 895 } 896 import ietf-inet-types { 897 prefix "inet"; 898 } 900 import ietf-yang-types { 901 prefix "yang"; 902 } 904 import ietf-routing { 905 prefix "rt"; 906 } 908 import ietf-network-instance { 909 prefix "ni"; 910 } 912 import ietf-key-chain { 913 prefix "kc"; 914 } 916 organization "IETF BFD Working Group"; 918 contact 919 "WG Web: 920 WG List: 921 WG Chair: Jeff Haas 922 WG Chair: Reshad Rahman 923 Editor: Lianshu Zheng and Reshad Rahman"; 925 description 926 "This module contains the YANG definition for BFD parameters as 927 per RFC5880."; 929 revision 2016-07-04 { 930 description "Initial revision."; 931 reference "RFC XXXX: A YANG data model for BFD"; 932 } 934 identity bfd { 935 base "rt:routing-protocol"; 936 description "BFD protocol"; 937 } 939 typedef bfd-discriminator { 940 type uint32 { 941 range 1..4294967295; 942 } 943 description "BFD discriminator"; 945 } 947 typedef bfd-diagnostic { 948 type enumeration { 949 enum none { 950 value 0; 951 description "None"; 952 } 953 enum controlExpiry { 954 value 1; 955 description "Control timer expiry"; 956 } 957 enum echoFailed { 958 value 2; 959 description "Echo failure"; 960 } 961 enum nborDown { 962 value 3; 963 description "Neighbor down"; 964 } 965 enum fwdingReset { 966 value 4; 967 description "Forwarding reset"; 968 } 969 enum pathDown { 970 value 5; 971 description "Path down"; 972 } 973 enum concPathDown { 974 value 6; 975 description "Concatenated path down"; 976 } 977 enum adminDown { 978 value 7; 979 description "Admin down"; 980 } 981 enum reverseConcPathDown { 982 value 8; 983 description "Reverse concatenated path down"; 984 } 985 } 986 description "BFD diagnostic"; 987 } 989 typedef bfd-state { 990 type enumeration { 991 enum adminDown { 992 value 0; 993 description "admindown"; 994 } 995 enum down { 996 value 1; 997 description "down"; 998 } 999 enum init { 1000 value 2; 1001 description "init"; 1002 } 1003 enum up { 1004 value 3; 1005 description "up"; 1006 } 1007 } 1008 description "BFD state"; 1009 } 1011 typedef bfd-multiplier { 1012 type uint8 { 1013 range 1..255; 1014 } 1015 description "Multiplier"; 1016 } 1018 typedef ttl { 1019 type uint8 { 1020 range 1..255; 1021 } 1022 description "Time To Live"; 1023 } 1025 identity bfd-path-type { 1026 description 1027 "Base identity for BFD path type. The session type indicates 1028 the type of path on which BFD is running"; 1029 } 1030 identity bfd-path-ip-sh { 1031 base bfd-path-type; 1032 description "BFD on IP single hop"; 1033 } 1034 identity bfd-path-ip-mh { 1035 base bfd-path-type; 1036 description "BFD on IP multi hop"; 1037 } 1038 identity bfd-path-mpls-te { 1039 base bfd-path-type; 1040 description "BFD on MPLS Traffic Engineering"; 1042 } 1043 identity bfd-path-mpls-lsp { 1044 base bfd-path-type; 1045 description "BFD on MPLS Label Switched Path"; 1046 } 1047 identity bfd-path-lag { 1048 base bfd-path-type; 1049 description "Micro-BFD on LAG member links"; 1050 } 1052 identity bfd-encap-type { 1053 description 1054 "Base identity for BFD encapsulation type."; 1055 } 1056 identity bfd-encap-ip { 1057 base bfd-encap-type; 1058 description "BFD with IP encapsulation."; 1059 } 1061 feature bfd-authentication { 1062 description "BFD authentication supported"; 1063 } 1065 identity bfd-auth-replay-protection { 1066 description 1067 "Base identity for BFD authentication replay protection"; 1068 } 1069 identity bfd-auth-replay-protection-non-meticulous { 1070 base bfd-auth-replay-protection; 1071 description "Non-meticulous (see RFC5880)"; 1072 } 1073 identity bfd-auth-replay-protection-meticulous { 1074 base bfd-auth-replay-protection; 1075 description "Meticulous (see RFC5880)"; 1076 } 1078 grouping bfd-auth-parms { 1079 description 1080 "Grouping for BFD authentication parameters 1081 (see section 6.7 of RFC5880)."; 1082 container authentication-parms { 1083 if-feature bfd-authentication; 1084 presence 1085 "Enables BFD authentication (see section 6.7 of RFC5880)."; 1086 description "Parameters for BFD authentication"; 1088 leaf key-chain { 1089 type kc:key-chain-ref; 1090 description "Name of key-chain"; 1091 } 1093 leaf replay-protection { 1094 type identityref { 1095 base bfd-auth-replay-protection; 1096 } 1097 description 1098 "Protection against replays"; 1099 } 1100 } 1101 } 1103 grouping bfd-grouping-base-cfg-parms { 1104 description "BFD grouping for base config parameters"; 1105 leaf local-multiplier { 1106 type bfd-multiplier; 1107 default 3; 1108 description "Multiplier transmitted by local system"; 1109 } 1111 choice interval-config-type { 1112 description 1113 "Two interval values or 1 value used for both tx and rx"; 1114 case tx-rx-intervals { 1115 leaf desired-min-tx-interval { 1116 type uint32; 1117 units microseconds; 1118 mandatory true; 1119 description 1120 "Desired minimum transmit interval of control packets"; 1121 } 1123 leaf required-min-rx-interval { 1124 type uint32; 1125 units microseconds; 1126 mandatory true; 1127 description 1128 "Required minimum receive interval of control packets"; 1129 } 1130 } 1131 case single-interval { 1132 leaf min-interval { 1133 type uint32; 1134 units microseconds; 1135 mandatory true; 1136 description 1137 "Desired minimum transmit interval and required " + 1138 "minimum receive interval of control packets"; 1139 } 1140 } 1141 } 1142 } 1144 grouping bfd-grouping-common-cfg-parms { 1145 description "BFD grouping for common config parameters"; 1147 uses bfd-grouping-base-cfg-parms; 1149 leaf demand-enabled { 1150 type boolean; 1151 default false; 1152 description "To enable demand mode"; 1153 } 1155 leaf admin-down { 1156 type boolean; 1157 default false; 1158 description 1159 "Is the BFD session administratively down"; 1160 } 1161 uses bfd-auth-parms; 1162 } 1164 grouping bfd-grouping-echo-cfg-parms { 1165 description "BFD grouping for echo config parameters"; 1166 leaf desired-min-echo-tx-interval { 1167 type uint32; 1168 units microseconds; 1169 default 0; 1170 description "Desired minumum transmit interval for echo"; 1171 } 1173 leaf required-min-echo-rx-interval { 1174 type uint32; 1175 units microseconds; 1176 default 0; 1177 description "Required minimum receive interval for echo"; 1178 } 1179 } 1181 grouping bfd-client-base-cfg-parms { 1182 description 1183 "BFD grouping which could be used by a protocol which 1184 is a client of BFD to enable its use of BFD"; 1186 container bfd-cfg { 1187 description "BFD configuration"; 1188 leaf enabled { 1189 type boolean; 1190 default false; 1191 description "True if BFD is enabled"; 1192 } 1193 } 1194 } 1196 grouping bfd-all-session { 1197 description "BFD session operational information"; 1198 leaf path-type { 1199 type identityref { 1200 base bfd-path-type; 1201 } 1202 description 1203 "BFD session type, this indicates the path type that BFD is 1204 running on"; 1205 } 1206 leaf local-discriminator { 1207 type bfd-discriminator; 1208 description "Local discriminator"; 1209 } 1210 leaf remote-discriminator { 1211 type bfd-discriminator; 1212 description "Remote discriminator"; 1213 } 1214 leaf remote-multiplier { 1215 type bfd-multiplier; 1216 description "Remote multiplier"; 1217 } 1218 leaf out-interface { 1219 type if:interface-ref; 1220 description "Outgoing physical interface name"; 1221 } 1222 leaf demand-capability { 1223 type boolean; 1224 description "Local demand mode capability"; 1225 } 1226 leaf source-port { 1227 type inet:port-number; 1228 description "Source UDP port"; 1229 } 1230 leaf dest-port { 1231 type inet:port-number; 1232 description "Destination UDP port"; 1233 } 1234 container session-running { 1235 description "BFD session running information"; 1236 leaf session-index { 1237 type uint32; 1238 description 1239 "An index used to uniquely identify BFD sessions"; 1240 } 1241 leaf local-state { 1242 type bfd-state; 1243 description "Local state"; 1244 } 1245 leaf remote-state { 1246 type bfd-state; 1247 description "Remote state"; 1248 } 1249 leaf local-diagnostic { 1250 type bfd-diagnostic; 1251 description "Local diagnostic"; 1252 } 1253 leaf remote-diagnostic { 1254 type bfd-diagnostic; 1255 description "Remote diagnostic"; 1256 } 1257 leaf detection-mode { 1258 type enumeration { 1259 enum async-with-echo { 1260 value "1"; 1261 description "Async with echo"; 1262 } 1263 enum async-without-echo { 1264 value "2"; 1265 description "Async without echo"; 1266 } 1267 enum demand-with-echo { 1268 value "3"; 1269 description "Demand with echo"; 1270 } 1271 enum demand-without-echo { 1272 value "4"; 1273 description "Demand without echo"; 1274 } 1275 } 1276 description "Detection mode"; 1277 } 1278 leaf negotiated-tx-interval { 1279 type uint32; 1280 units microseconds; 1281 description "Negotiated transmit interval"; 1283 } 1284 leaf negotiated-rx-interval { 1285 type uint32; 1286 units microseconds; 1287 description "Negotiated receive interval"; 1288 } 1289 leaf echo-tx-interval-in-use { 1290 when "../../path-type = 'bfd-path-ip-sh'" { 1291 description 1292 "Echo is supported for IP single-hop only."; 1293 } 1294 type uint32; 1295 units microseconds; 1296 description "Echo transmit interval in use"; 1297 } 1298 leaf detection-time { 1299 type uint32; 1300 units microseconds; 1301 description "Detection time"; 1302 } 1303 } 1305 container sesssion-statistics { 1306 description "BFD per-session statistics"; 1308 leaf create-time { 1309 type yang:date-and-time; 1310 description 1311 "Time and date when session was created"; 1312 } 1313 leaf last-down-time { 1314 type yang:date-and-time; 1315 description 1316 "Time and date of last time the session went down"; 1317 } 1318 leaf last-up-time { 1319 type yang:date-and-time; 1320 description 1321 "Time and date of last time the session went up"; 1322 } 1323 leaf down-count { 1324 type uint32; 1325 description "Session Down Count"; 1326 } 1327 leaf admin-down-count { 1328 type uint32; 1329 description "Session Admin-Down Count"; 1330 } 1331 leaf receive-packet-count { 1332 type uint64; 1333 description "Received Packet Count"; 1334 } 1335 leaf send-packet-count { 1336 type uint64; 1337 description "Sent Packet Count"; 1338 } 1339 leaf receive-bad-packet { 1340 type uint64; 1341 description "Received bad packet count"; 1342 } 1343 leaf send-failed-packet { 1344 type uint64; 1345 description "Packet Failed to Send Count"; 1346 } 1347 } 1348 } 1350 grouping bfd-session-statistics { 1351 description "Grouping for session counters"; 1352 container bfd-session-statistics { 1353 description "BFD session counters"; 1354 leaf session-count { 1355 type uint32; 1356 description "Number of sessions"; 1357 } 1358 leaf session-up-count { 1359 type uint32; 1360 description "Count of sessions which are up"; 1361 } 1362 leaf session-down-count { 1363 type uint32; 1364 description "Count of sessions which are down"; 1365 } 1366 leaf session-admin-down-count { 1367 type uint32; 1368 description "Count of sessions which are admin-down"; 1369 } 1370 } 1371 } 1373 grouping bfd-notification-parms { 1374 description 1375 "This group describes common parameters that will be sent " + 1376 "as part of BFD notification"; 1378 leaf local-discr { 1379 type bfd-discriminator; 1380 description "BFD local discriminator"; 1381 } 1383 leaf remote-discr { 1384 type bfd-discriminator; 1385 description "BFD remote discriminator"; 1386 } 1388 leaf new-state { 1389 type bfd-state; 1390 description "Current BFD state"; 1391 } 1393 leaf state-change-reason { 1394 type string; 1395 description "BFD state change reason"; 1396 } 1398 leaf time-in-previous-state { 1399 type string; 1400 description 1401 "How long the BFD session was in the previous state"; 1402 } 1404 leaf dest-addr { 1405 type inet:ip-address; 1406 description "BFD peer address"; 1407 } 1409 leaf source-addr { 1410 type inet:ip-address; 1411 description "BFD local address"; 1412 } 1414 leaf session-index { 1415 type uint32; 1416 description "An index used to uniquely identify BFD sessions"; 1417 } 1419 leaf path-type { 1420 type identityref { 1421 base bfd-path-type; 1422 } 1423 description "BFD path type"; 1424 } 1425 } 1426 augment "/ni:network-instances/ni:network-instance" { 1427 description "BFD augmentation."; 1429 container bfd { 1430 presence "BFD"; 1431 description "BFD top level container"; 1432 container config { 1433 description "BFD configuration container"; 1434 } 1436 container oper { 1437 config "false"; 1438 description 1439 "BFD operational container for this routing instance"; 1440 uses bfd-session-statistics; 1441 } 1442 } 1443 } 1445 container bfd { 1446 presence "BFD"; 1447 description "BFD top level container"; 1448 container config { 1449 description "BFD configuration container"; 1450 } 1452 container oper { 1453 config "false"; 1454 description "BFD operational container."; 1455 uses bfd-session-statistics; 1456 } 1457 } 1458 } 1459 1461 2.14. BFD IP single-hop Yang Module 1463 file "ietf-bfd-ip-sh@2016-07-04.yang" 1464 module ietf-bfd-ip-sh { 1465 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; 1466 // replace with IANA namespace when assigned 1467 prefix "bfd-ip-sh"; 1469 import ietf-bfd { 1470 prefix "bfd"; 1471 } 1473 import ietf-interfaces { 1474 prefix "if"; 1475 } 1477 import ietf-inet-types { 1478 prefix "inet"; 1479 } 1481 import ietf-network-instance { 1482 prefix "ni"; 1483 } 1485 organization "IETF BFD Working Group"; 1487 contact 1488 "WG Web: 1489 WG List: 1490 WG Chair: Jeff Haas 1491 WG Chair: Reshad Rahman 1492 Editor: Lianshu Zheng and Reshad Rahman"; 1494 description 1495 "This module contains the YANG definition for BFD IP single-hop 1496 as per RFC5881."; 1498 revision 2016-07-04 { 1499 description "Initial revision."; 1500 reference "RFC XXXX: A YANG data model for BFD IP single-hop"; 1501 } 1503 augment "/bfd:bfd" { 1504 description "BFD augmentation for IP single-hop"; 1505 container ip-sh { 1506 description "BFD IP single-hop top level container"; 1508 container config { 1509 description "BFD IP single-hop configuration container"; 1510 } 1511 container oper { 1512 config "false"; 1513 description "BFD IP single-hop operational container"; 1514 uses bfd:bfd-session-statistics; 1515 } 1516 } 1517 } 1519 augment "/ni:network-instances/ni:network-instance/bfd:bfd" { 1520 description "BFD augmentation for IP single-hop."; 1521 container ip-sh { 1522 description "BFD IP single-hop container"; 1523 container config { 1524 description "BFD configuration"; 1525 container session-cfg { 1526 description "BFD IP single-hop session configuration"; 1528 list sessions { 1529 key "interface dest-addr"; 1530 description "List of IP single-hop sessions"; 1531 leaf interface { 1532 type if:interface-ref; 1533 description 1534 "Interface on which the BFD session is running."; 1535 } 1536 leaf dest-addr { 1537 type inet:ip-address; 1538 description "IP address of the peer"; 1539 } 1540 leaf source-addr { 1541 type inet:ip-address; 1542 description "Local address"; 1543 } 1545 uses bfd:bfd-grouping-common-cfg-parms; 1547 uses bfd:bfd-grouping-echo-cfg-parms; 1548 } 1549 } 1550 } 1552 container oper { 1553 config "false"; 1554 description "BFD operational container"; 1556 uses bfd:bfd-session-statistics; 1558 list sessions { 1559 key "interface dest-addr"; 1560 description "BFD IP single-hop sessions"; 1561 leaf interface { 1562 type if:interface-ref; 1563 description 1564 "Interface on which the BFD session is running."; 1565 } 1566 leaf dest-addr { 1567 type inet:ip-address; 1568 description "BFD peer address"; 1570 } 1571 leaf source-addr { 1572 type inet:ip-address; 1573 description "BFD source address"; 1574 } 1576 uses bfd:bfd-all-session; 1577 } 1578 } 1579 } 1580 } 1582 notification bfd-singlehop-notification { 1583 description 1584 "Notification for BFD single-hop session state change. An " + 1585 "implementation may rate-limit notifications, e.g. when a" + 1586 "session is continuously changing state."; 1588 uses bfd:bfd-notification-parms; 1590 leaf interface { 1591 type if:interface-ref; 1592 description "Interface to which this BFD session belongs to"; 1593 } 1595 leaf echo-enabled { 1596 type boolean; 1597 description "Was echo enabled for BFD"; 1598 } 1599 } 1601 } 1602 1604 2.15. BFD IP multi-hop Yang Module 1606 file "ietf-bfd-ip-mh@2016-07-04.yang" 1607 module ietf-bfd-ip-mh { 1608 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; 1609 // replace with IANA namespace when assigned 1610 prefix "bfd-ip-mh"; 1612 import ietf-bfd { 1613 prefix "bfd"; 1614 } 1616 import ietf-inet-types { 1617 prefix "inet"; 1619 } 1621 import ietf-network-instance { 1622 prefix "ni"; 1623 } 1625 organization "IETF BFD Working Group"; 1627 contact 1628 "WG Web: 1629 WG List: 1630 WG Chair: Jeff Haas 1631 WG Chair: Reshad Rahman 1632 Editor: Lianshu Zheng and Reshad Rahman"; 1634 description 1635 "This module contains the YANG definition for BFD IP multi-hop 1636 asper RFC5883."; 1638 revision 2016-07-04 { 1639 description "Initial revision."; 1640 reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; 1641 } 1643 augment "/bfd:bfd" { 1644 description "BFD augmentation for IP multi-hop"; 1645 container ip-mh { 1646 description "BFD IP multi-hop top level container"; 1648 container config { 1649 description "BFD IP multi-hop configuration container"; 1650 } 1651 container oper { 1652 config "false"; 1653 description "BFD IP multi-hop operational container"; 1654 uses bfd:bfd-session-statistics; 1655 } 1656 } 1657 } 1659 augment "/ni:network-instances/ni:network-instance/bfd:bfd" { 1660 description "BFD augmentation for IP multi-hop."; 1662 container ip-mh { 1663 description "BFD IP multi-hop container"; 1664 container config { 1665 description "BFD configuration"; 1666 container session-cfg { 1667 description "BFD IP multi-hop session configuration"; 1669 list sessions { 1670 key "source-addr dest-addr"; 1671 description "List of IP multi-hop sessions"; 1673 leaf source-addr { 1674 type inet:ip-address; 1675 description 1676 "Local IP address"; 1677 } 1678 leaf dest-addr { 1679 type inet:ip-address; 1680 description 1681 "IP address of the peer"; 1682 } 1683 uses bfd:bfd-grouping-common-cfg-parms; 1685 leaf tx-ttl { 1686 type bfd:ttl; 1687 default 255; 1688 description "TTL of outgoing BFD control packets"; 1689 } 1690 leaf rx-ttl { 1691 type bfd:ttl; 1692 mandatory true; 1693 description 1694 "Minimum allowed TTL value for incoming BFD control 1695 packets"; 1696 } 1697 } 1698 } 1699 } 1701 container oper { 1702 config "false"; 1703 description "BFD operational container"; 1705 container bfd-session-statistics { 1706 description "BFD session counters"; 1707 uses bfd:bfd-session-statistics; 1708 } 1710 list session-group { 1711 key "source-addr dest-addr"; 1712 description 1713 "BFD IP multi-hop group of sessions. A group of " + 1714 "sessions is between 1 source and 1 destination, " + 1715 "each session has a different field in UDP/IP hdr for " + 1716 "ECMP."; 1717 leaf source-addr { 1718 type inet:ip-address; 1719 description "BFD source address"; 1720 } 1721 leaf dest-addr { 1722 type inet:ip-address; 1723 description "BFD peer address"; 1724 } 1725 list sessions { 1726 key "local-discriminator"; 1727 description 1728 "The BFD sessions between a source and a. " + 1729 "destination. Local discriminator is unique for " + 1730 "each session in the group."; 1731 leaf ttl { 1732 type bfd:ttl; 1733 description "TTL of outgoing packets"; 1734 } 1735 uses bfd:bfd-all-session; 1736 } 1737 } 1738 } 1739 } 1740 } 1742 notification bfd-multihop-notification { 1743 description 1744 "Notification for BFD multi-hop session state change. An " + 1745 "implementation may rate-limit notifications, e.g. when a" + 1746 "session is continuously changing state."; 1748 uses bfd:bfd-notification-parms; 1750 leaf network-instance { 1751 type string; 1752 description "Network instance"; 1753 } 1754 } 1755 } 1756 1758 2.16. BFD over LAG Yang Module 1760 file "ietf-bfd-lag@2016-02-17.yang" 1761 module ietf-bfd-lag { 1762 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; 1763 // replace with IANA namespace when assigned 1764 prefix "bfd-lag"; 1766 import ietf-bfd { 1767 prefix "bfd"; 1768 } 1770 import ietf-interfaces { 1771 prefix "if"; 1772 } 1774 import ietf-inet-types { 1775 prefix "inet"; 1776 } 1778 organization "IETF BFD Working Group"; 1780 contact 1781 "WG Web: 1782 WG List: 1783 WG Chair: Jeff Haas 1784 WG Chair: Reshad Rahman 1785 Editor: Lianshu Zheng and Reshad Rahman"; 1787 description 1788 "This module contains the YANG definition for BFD over LAG 1789 interfaces as per RFC7130."; 1791 revision 2016-02-17 { 1792 description "Initial revision."; 1793 reference "RFC XXXX: A YANG data model for BFD over LAG"; 1794 } 1796 augment "/bfd:bfd" { 1797 description "BFD augmentation for LAG"; 1798 container lag { 1799 description "BFD over LAG top level container"; 1801 container config { 1802 description "BFD over LAG configuration container"; 1803 container session-cfg { 1804 description "BFD over LAG session configuration"; 1805 list sessions { 1806 key "lag-name"; 1807 description "A LAG interface on which BFD is running"; 1808 leaf lag-name { 1809 type if:interface-ref ; 1810 description "Name of the LAG"; 1812 } 1813 leaf ipv4-dest-addr { 1814 type inet:ipv4-address; 1815 description 1816 "IPv4 address of the peer, for IPv4 micro-BFD."; 1817 } 1818 leaf ipv6-dest-addr { 1819 type inet:ipv6-address; 1820 description 1821 "IPv6 address of the peer, for IPv6 micro-BFD."; 1822 } 1823 uses bfd:bfd-grouping-common-cfg-parms; 1824 } 1825 } 1826 } 1828 container oper { 1829 config "false"; 1830 description "BFD over LAG operational container."; 1832 container micro-bfd-ipv4-session-statistics { 1833 description "Micro-BFD IPv4 session counters"; 1834 uses bfd:bfd-session-statistics; 1835 } 1836 container micro-bfd-ipv6-session-statistics { 1837 description "Micro-BFD IPv6 session counters"; 1838 uses bfd:bfd-session-statistics; 1839 } 1841 list session-lag { 1842 key "lag-name"; 1843 description "A LAG interface on which BFD is running"; 1844 leaf lag-name { 1845 type if:interface-ref ; 1846 description "Name of the LAG"; 1847 } 1849 leaf use-ipv4 { 1850 type boolean; 1851 description "Using IPv4 micro-BFD."; 1852 } 1853 leaf use-ipv6 { 1854 type boolean; 1855 description "Using IPv6 micro-BFD."; 1856 } 1858 list member-links { 1859 key "member-link"; 1860 description 1861 "Micro-BFD over LAG. This represents one member link"; 1863 leaf member-link { 1864 type if:interface-ref; 1865 description 1866 "Member link on which micro-BFD is running"; 1867 } 1868 container micro-bfd-ipv4 { 1869 when "../use-ipv4 = 'true'" { 1870 description "Needed only if IPv4 is used."; 1871 } 1872 description 1873 "Micro-BFD IPv4 session state on member link"; 1874 uses bfd:bfd-all-session; 1875 } 1876 container micro-bfd-ipv6 { 1877 when "../use-ipv6 = 'true'" { 1878 description "Needed only if IPv6 is used."; 1879 } 1880 description 1881 "Micro-BFD IPv6 session state on member link"; 1882 uses bfd:bfd-all-session; 1883 } 1884 } 1885 } 1886 } 1887 } 1888 } 1890 notification bfd-lag-notification { 1891 description 1892 "Notification for BFD over LAG session state change. " + 1893 "An implementation may rate-limit notifications, e.g. when a" + 1894 "session is continuously changing state."; 1896 uses bfd:bfd-notification-parms; 1898 leaf lag-name { 1899 type if:interface-ref; 1900 description "LAG interface name"; 1901 } 1903 leaf member-link { 1904 type if:interface-ref; 1905 description "Member link on which BFD is running"; 1906 } 1907 } 1909 } 1910 1912 2.17. BFD over MPLS Yang Module 1914 file "ietf-bfd-mpls@2016-07-04.yang" 1915 module ietf-bfd-mpls { 1916 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; 1917 // replace with IANA namespace when assigned 1918 prefix "bfd-mpls"; 1920 import ietf-bfd { 1921 prefix "bfd"; 1922 } 1924 import ietf-inet-types { 1925 prefix "inet"; 1926 } 1928 import ietf-network-instance { 1929 prefix "ni"; 1930 } 1932 organization "IETF BFD Working Group"; 1934 contact 1935 "WG Web: 1936 WG List: 1937 WG Chair: Jeff Haas 1938 WG Chair: Reshad Rahman 1939 Editor: Lianshu Zheng and Reshad Rahman"; 1941 description 1942 "This module contains the YANG definition for BFD parameters for 1943 MPLS LSPs as per RFC5884."; 1945 revision 2016-07-04 { 1946 description "Initial revision."; 1947 reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; 1948 } 1950 identity bfd-encap-gach { 1951 base bfd:bfd-encap-type; 1952 description 1953 "BFD with G-ACh encapsulation as per RFC5586."; 1954 } 1956 identity bfd-encap-ip-gach { 1957 base bfd:bfd-encap-type; 1958 description 1959 "BFD with IP and G-ACh encapsulation as per RFC5586."; 1960 } 1962 grouping bfd-encap-cfg { 1963 description "Configuration for BFD encapsulation"; 1965 leaf encap { 1966 type identityref { 1967 base bfd:bfd-encap-type; 1968 } 1969 default bfd:bfd-encap-ip; 1970 description "BFD encapsulation"; 1971 } 1972 } 1974 grouping bfd-mpls-dest-address { 1975 description "Destination address as per RFC5884"; 1977 leaf mpls-dest-address { 1978 type inet:ip-address; 1979 config "false"; 1980 description 1981 "Destination address as per RFC5884. 1982 Needed if IP encapsulation is used"; 1983 } 1984 } 1986 augment "/bfd:bfd" { 1987 description "BFD augmentation for MPLS"; 1988 container mpls { 1989 description "BFD MPLS top level container"; 1991 container config { 1992 description "BFD MPLS configuration container"; 1994 container egress { 1995 description "Egress configuration"; 1997 uses bfd:bfd-grouping-base-cfg-parms; 1999 uses bfd:bfd-auth-parms; 2000 } 2001 } 2003 container oper { 2004 config "false"; 2005 description "BFD MPLS operational container"; 2006 uses bfd:bfd-session-statistics; 2007 } 2008 } 2009 } 2011 augment "/ni:network-instances/ni:network-instance/bfd:bfd" { 2012 description "BFD augmentation for MPLS."; 2014 container mpls { 2015 description "BFD MPLS container"; 2017 container config { 2018 description "BFD MPLS configuration container"; 2020 container session-cfg { 2021 description "BFD MPLS session configuration"; 2022 list sessions { 2023 key "mpls-fec"; 2024 description "List of BFD MPLS sessions"; 2025 leaf mpls-fec { 2026 type inet:ip-address; 2027 description "MPLS FEC"; 2028 } 2030 uses bfd:bfd-grouping-common-cfg-parms; 2031 } 2032 } 2033 } 2035 container oper { 2036 config "false"; 2037 description "BFD MPLS operational container"; 2038 uses bfd:bfd-session-statistics; 2040 list session-group { 2041 key "mpls-fec"; 2042 description 2043 "BFD MPLS group of sessions. A group of sessions is" + 2044 "for 1 FEC, each session has a different field in " + 2045 "UDP/IP hdr for ECMP."; 2046 leaf mpls-fec { 2047 type inet:ip-address; 2048 description "MPLS-FEC"; 2049 } 2050 list sessions { 2051 key "local-discriminator"; 2052 description 2053 "The BFD sessions for an MPLS FEC. Local " + 2054 "discriminator is unique for each session in the " + 2055 "group."; 2056 uses bfd:bfd-all-session; 2058 uses bfd-mpls:bfd-mpls-dest-address; 2059 } 2060 } 2061 } 2062 } 2063 } 2065 notification bfd-mpls-notification { 2066 description 2067 "Notification for BFD over MPLS FEC session state change. " + 2068 "An implementation may rate-limit notifications, e.g. when a" + 2069 "session is continuously changing state."; 2071 uses bfd:bfd-notification-parms; 2073 leaf network-instance { 2074 type string; 2075 description "Network instance"; 2076 } 2078 leaf mpls-dest-address { 2079 type inet:ip-address; 2080 description 2081 "Destination address as per RFC5884. 2082 Needed if IP encapsulation is used"; 2083 } 2084 } 2085 } 2086 2088 2.18. BFD over MPLS-TE Yang Module 2090 file "ietf-bfd-mpls-te@2016-02-04.yang" 2091 module ietf-bfd-mpls-te { 2092 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; 2093 // replace with IANA namespace when assigned 2094 prefix "bfd-mpls-te"; 2096 import ietf-bfd { 2097 prefix "bfd"; 2098 } 2099 import ietf-bfd-mpls { 2100 prefix "bfd-mpls"; 2101 } 2103 import ietf-te { 2104 prefix "te"; 2105 } 2107 organization "IETF BFD Working Group"; 2109 contact 2110 "WG Web: 2111 WG List: 2112 WG Chair: Jeff Haas 2113 WG Chair: Reshad Rahman 2114 Editor: Lianshu Zheng and Reshad Rahman"; 2116 description 2117 "This module contains the YANG definition for BFD parameters for 2118 MPLS Traffic Engineering as per RFC5884."; 2120 revision 2016-02-04 { 2121 description "Initial revision."; 2122 reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; 2123 } 2125 augment "/bfd:bfd" { 2126 description "BFD augmentation for MPLS-TE"; 2127 container mpls-te { 2128 description "BFD MPLS-TE top level container"; 2130 container config { 2131 description "BFD MPLS-TE configuration container"; 2133 container egress { 2134 description "Egress configuration"; 2136 uses bfd:bfd-grouping-base-cfg-parms; 2138 uses bfd:bfd-auth-parms; 2139 } 2140 } 2142 container oper { 2143 config "false"; 2144 description "BFD operational container"; 2145 uses bfd:bfd-session-statistics; 2146 } 2148 } 2149 } 2151 augment "/te:te/te:tunnels/te:tunnel/te:config" { 2152 description "BFD configuration on MPLS-TE tunnel."; 2154 uses bfd:bfd-grouping-common-cfg-parms; 2156 uses bfd-mpls:bfd-encap-cfg; 2157 } 2159 augment "/te:te/te:lsps-state/te:lsp" { 2160 when "/te:te/te:lsps-state/te:lsp/te:origin-type != 'transit'" { 2161 description "BFD information not needed at transit points"; 2162 } 2163 description "BFD state information on MPLS-TE LSP."; 2165 uses bfd:bfd-all-session; 2167 uses bfd-mpls:bfd-mpls-dest-address; 2168 } 2170 notification bfd-mpls-te-notification { 2171 description 2172 "Notification for BFD over MPLS-TE session state change. " + 2173 "An implementation may rate-limit notifications, e.g. when a" + 2174 "session is continuously changing state."; 2176 uses bfd:bfd-notification-parms; 2178 uses bfd-mpls:bfd-mpls-dest-address; 2180 leaf tunnel-name { 2181 type string; 2182 description "MPLS-TE tunnel on which BFD was running."; 2183 } 2184 } 2185 } 2186 2188 2.19. Security Considerations 2190 The YANG module defined in this memo is designed to be accessed via 2191 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2192 secure transport layer and the mandatory to implement secure 2193 transport is SSH [RFC6242]. The NETCONF access control model 2194 [RFC6536] provides the means to restrict access for particular 2195 NETCONF users to a pre-configured subset of all available NETCONF 2196 protocol operations and content. 2198 The YANG module has writeable data nodes which can be used for 2199 creation of BFD sessions and modification of BFD session parameters. 2200 The system should "police" creation of BFD sessions to prevent new 2201 sessions from causing existing BFD sessions to fail. For BFD session 2202 modification, the BFD protocol has mechanisms in place which allow 2203 for in service modification. 2205 2.20. IANA Considerations 2207 The IANA is requested to as assign a new new namespace URI from the 2208 IETF XML registry. 2210 URI:TBD 2212 2.21. Acknowledgements 2214 We would also like to thank Nobo Akiya and Jeff Haas for their 2215 encouragement on this work. We would also like to thank Rakesh 2216 Gandhi and Tarek Saad for their help on the MPLS-TE model. 2218 3. References 2220 3.1. Normative References 2222 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2223 Requirement Levels", BCP 14, RFC 2119, 2224 DOI 10.17487/RFC2119, March 1997, 2225 . 2227 [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., 2228 "MPLS Generic Associated Channel", RFC 5586, 2229 DOI 10.17487/RFC5586, June 2009, 2230 . 2232 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2233 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 2234 . 2236 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2237 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, 2238 DOI 10.17487/RFC5881, June 2010, 2239 . 2241 [RFC5882] Katz, D. and D. Ward, "Generic Application of 2242 Bidirectional Forwarding Detection (BFD)", RFC 5882, 2243 DOI 10.17487/RFC5882, June 2010, 2244 . 2246 [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2247 (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, 2248 June 2010, . 2250 [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, 2251 "Bidirectional Forwarding Detection (BFD) for MPLS Label 2252 Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, 2253 June 2010, . 2255 [RFC5885] Nadeau, T., Ed. and C. Pignataro, Ed., "Bidirectional 2256 Forwarding Detection (BFD) for the Pseudowire Virtual 2257 Circuit Connectivity Verification (VCCV)", RFC 5885, 2258 DOI 10.17487/RFC5885, June 2010, 2259 . 2261 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2262 the Network Configuration Protocol (NETCONF)", RFC 6020, 2263 DOI 10.17487/RFC6020, October 2010, 2264 . 2266 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2267 and A. Bierman, Ed., "Network Configuration Protocol 2268 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2269 . 2271 [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., 2272 Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional 2273 Forwarding Detection (BFD) on Link Aggregation Group (LAG) 2274 Interfaces", RFC 7130, DOI 10.17487/RFC7130, February 2275 2014, . 2277 3.2. Informative References 2279 [I-D.ietf-netconf-restconf] 2280 Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 2281 Protocol", draft-ietf-netconf-restconf-15 (work in 2282 progress), July 2016. 2284 [I-D.ietf-netmod-routing-cfg] 2285 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 2286 Management", draft-ietf-netmod-routing-cfg-22 (work in 2287 progress), July 2016. 2289 [I-D.ietf-rtgwg-ni-model] 2290 Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic, 2291 "Network Instance Model", draft-ietf-rtgwg-ni-model-00 2292 (work in progress), June 2016. 2294 [I-D.ietf-rtgwg-yang-key-chain] 2295 Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. 2296 Yang, "Routing Key Chain YANG Data Model", draft-ietf- 2297 rtgwg-yang-key-chain-06 (work in progress), June 2016. 2299 [I-D.ietf-teas-yang-te] 2300 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, 2301 X., Jones, R., and B. Wen, "A YANG Data Model for Traffic 2302 Engineering Tunnels and Interfaces", draft-ietf-teas-yang- 2303 te-03 (work in progress), March 2016. 2305 Appendix A. Change log 2307 RFC Editor: Remove this section upon publication as an RFC. 2309 A.1. Changes between versions -02 and -03 2311 o Fixed YANG compilation warning due to incorrect revision date in 2312 ietf-bfd-ip-sh module. 2314 A.2. Changes between versions -01 and -02 2316 o Replace routing-instance, which has been removed from 2317 [I-D.ietf-netmod-routing-cfg], with network-instance from 2318 [I-D.ietf-rtgwg-ni-model] 2320 A.3. Changes between versions -00 and -01 2322 o Remove BFD configuration parameters from BFD clients, all BFD 2323 configuration parameters in BFD 2325 o YANG module split in multiple YANG modules (one per type of 2326 forwarding path) 2328 o For BFD over MPLS-TE we augment MPLS-TE model 2330 o For BFD authentication we now use key-chain in 2331 [I-D.ietf-rtgwg-yang-key-chain] 2333 Authors' Addresses 2335 Lianshu Zheng (editor) 2336 Huawei Technologies 2337 China 2339 Email: vero.zheng@huawei.com 2341 Reshad Rahman (editor) 2342 Cisco Systems 2343 Canada 2345 Email: rrahman@cisco.com 2347 Santosh Pallagatti 2348 India 2350 Email: santosh.pallagatti@gmail.com 2352 Mahesh Jethanandani 2353 Cisco Systems 2355 Email: mjethanandani@gmail.com 2357 Greg Mirsky 2358 Ericsson 2360 Email: gregory.mirsky@ericsson.com