idnits 2.17.1 draft-ietf-bfd-yang-02.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 507 has weird spacing: '...nterval uin...' == Line 525 has weird spacing: '...ce-addr ine...' == Line 591 has weird spacing: '...nterval uin...' == Line 708 has weird spacing: '...nterval uin...' == Line 730 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 7, 2016) is 2843 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 2192, but not defined == Missing Reference: 'RFC6536' is mentioned on line 2193, but not defined ** Obsolete undefined reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: A later version (-18) exists of draft-ietf-netconf-restconf-14 == 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 8, 2017 Cisco Systems 6 S. Pallagatti 8 M. Jethanandani 9 Cisco Systems 10 G. Mirsky 11 Ericsson 12 July 7, 2016 14 Yang Data Model for Bidirectional Forwarding Detection (BFD) 15 draft-ietf-bfd-yang-02.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 8, 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 -01 and -02 . . . . . . . . . . 49 97 A.2. Changes between versions -00 and -01 . . . . . . . . . . 49 98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 100 1. Introduction 102 YANG [RFC6020] is a data definition language that was introduced to 103 define the contents of a conceptual data store that allows networked 104 devices to be managed using NETCONF [RFC6241]. YANG is proving 105 relevant beyond its initial confines, as bindings to other interfaces 106 (e.g RESTCONF [I-D.ietf-netconf-restconf]) and encodings other than 107 XML (e.g JSON) are being defined. Furthermore, YANG data models can 108 be used as the basis of implementation for other interfaces, such as 109 CLI and programmatic APIs. 111 This document defines a YANG data model that can be used to configure 112 and manage Bidirectional Forwarding Detection (BFD)[RFC5880]. BFD is 113 a network protocol which is used for liveness detection of arbitrary 114 paths between systems. Some examples of different types of paths 115 over which we have BFD: 117 1) Two systems directly connected via IP. This is known as BFD over 118 single-hop IP [RFC5881] 120 2) Two systems connected via multiple hops [RFC5883] 122 3) Two systems connected via MPLS Label Switched Paths (LSPs) 123 [RFC5884] 125 4) Two systems connected via pseudowires (PWs), this is known as 126 Virtual Circuit Connectivity Verification (VCCV) [RFC5885] 128 5) Two systems connected via a Link Aggregation Group (LAG) interface 129 [RFC7130] 131 BFD typically does not operate on its own. Various control 132 protocols, also known as BFD clients, use the services provided by 133 BFD for their own operation [RFC5882]. The obvious candidates which 134 use BFD are those which do not have Hellos to detect failures, e.g. 135 static routes, and routing protocols whose Hellos do not support sub- 136 second failure detection, e.g. OSPF and IS-IS. 138 1.1. Contributors 140 2. Design of the Data Model 142 Since BFD is used for liveliness detection of various forwarding 143 paths, there is no uniform key to identify a BFD session. So the BFD 144 data model is split in multiple YANG modules where each module 145 corresponds to one type of forwarding path. For example, BFD for IP 146 single-hop is in one YANG module and BFD for MPLS-TE is in another 147 YANG module. The main difference between these modules is how a BFD 148 session is uniquely identified, i.e the key for the list containing 149 the BFD sessions for that forwarding path. To avoid duplication of 150 BFD definitions, we have common types and groupings which are used by 151 all the modules. 153 The new top-level container "bfd" is augmented by all the YANG 154 modules for their respective specific information. 156 The "network-instance" data node in [I-D.ietf-rtgwg-ni-model] has 157 been augmented with the "bfd" data node. Where appropriate for 158 specific types of forwarding path, the respective BFD YANG modules 159 follow a VRF-centric model by augmenting that new "bfd" node under 160 "network-instance". 162 Each node in every "bfd" sub-tree has a "config" node and an "oper" 163 node. 165 2.1. Design of Configuration Model 167 The configuration model consists mainly of the parameters specified 168 in [RFC5880]. Some examples are desired minimum transmit interval, 169 required minimum receive interval, detection multiplier, etc 171 Some implementations have BFD session configuration under the BFD 172 clients. For example, BFD session configuration is under routing 173 applications such as OSPF, IS-IS, BGP etc. Other implementations 174 have BFD session configuration centralized under BFD, i.e. outside 175 the multiple BFD clients. 177 The BFD parameters of interest to a BFD client are mainly the 178 multiplier and interval(s) since those parameters impact the 179 convergence time of the BFD clients when a failure occurs. Other 180 parameters such as BFD authentication are not specific to the 181 requirements of the BFD client. To avoid splitting the BFD 182 configuration between BFD clients and BFD, all the configuration is 183 under BFD. The only BFD configuration under BFD clients should be an 184 "enable" knob which makes those clients react to BFD liveliness 185 detection events. 187 2.1.1. Common BFD configuration parameters 189 The basic BFD configuration parameters are: 191 local-multiplier 192 This is the detection time multiplier as defined in 193 [RFC5880]. 195 desired-min-tx-interval 196 This is the Desired Min TX Interval as defined in [RFC5880]. 198 required-min-rx-interval 199 This is the Required Min RX Interval as defined in [RFC5880]. 201 Although [RFC5880] allows for different values for transmit and 202 receive intervals, some implementations allow users to specify just 203 one interval which is used for both transmit and receive intervals or 204 separate values for transmit and receive intervals. The BFD YANG 205 model supports this: there is a choice between "min-interval", used 206 for both transmit and receive intervals, and "desired-min-tx- 207 interval" and "required-min-rx-interval". This is supported via a 208 grouping which is used by the YANG modules for the various forwarding 209 paths. There are also intervals for the echo function (if 210 supported): 212 desired-min-echo-tx-interval 213 This is the minimum interval that the local system would like 214 to use when transmitting BFD echo packets. If 0, the echo 215 function as defined in [RFC5880] is disabled. 217 required-min-echo-rx-interval 218 This is the Required Min Echo RX Interval as defined in 219 [RFC5880]. 221 For BFD authentication we have: 223 key-chain 224 This is a reference to key-chain defined in 225 [I-D.ietf-rtgwg-yang-key-chain]. The keys, cryptographic 226 algotihms, key lifetime etc are all defined in the key-chain 227 model. 229 replay-protection 230 This specifies meticulous v/s non-meticulous mode as per 231 [RFC5880]. 233 2.1.2. Single-hop IP 235 For single-hop IP, there is an augment of the "bfd" data node under 236 "network-instance" in Section 2. We have a list of IP single-hop 237 sessions where each session is uniquely identified by the interface 238 and destination address pair. For the configuration parameters we 239 use what is defined in Section 2.1.1 241 2.1.3. Multi-hop IP 243 For multi-hop IP, there is an augment of the "bfd" data node under 244 "network-instance" in Section 2. 246 We have a list for BFD sessions over multi-hop IP. The key consists 247 of: 249 source address 250 Address belonging to the local system as per [RFC5883] 252 destination address 253 Address belonging to the remote system as per [RFC5883] 255 Since we are following a VRF-centric model we do not need a VRF field 256 in the key. 258 For the configuration parameters we use what is defined in 259 Section 2.1.1 261 Here are some extra parameters: 263 tx-ttl 264 TTL of outgoing BFD control packets. 266 rx-ttl 267 Minimum TTL of incoming BFD control packets. 269 2.1.4. MPLS Traffic Engineering Tunnels 271 For MPLS-TE tunnels, BFD is configured under the MPLS-TE tunnel since 272 the desired failure detection parameters is a property of the MPLS-TE 273 tunnel. This is achieved by augmenting the MPLS-TE data model in 274 [I-D.ietf-teas-yang-te]. For BFD parameters which are specific to 275 the TE application, e.g. whether to tear down the tunnel in the event 276 of a BFD session failure, these parameters will be defined in the 277 YANG model of the MPLS-TE application. 279 On top of the usual BFD parameters, we have the following per MPLS-TE 280 tunnel: 282 encap 283 Encapsulation for the BFD packets: choice between IP, G-ACh 284 and IP with G-ACh as per [RFC5586] 286 For general MPLS-TE data, "mpls-te" data node is added under the top- 287 level "bfd" node in Section 2. Since some MPLS-TE tunnels are uni- 288 directional there is no MPLS-TE configuration for these tunnels on 289 the egress node (note that this does not apply to bi-directional 290 MPLS-TP tunnels). The BFD parameters for the egress node are added 291 under "mpls-te". 293 2.1.5. MPLS Label Switched Paths 295 Here we address MPLS LSPs whose FEC is an IP address. The top-level 296 "bfd" node in Section 2 is augmented with "mpls" which contains a 297 list of sessions uniquely identified by an IP address. 299 Since these LSPs are uni-directional there is no LSP configuration on 300 the egress node. The BFD parameters for the egress node are added 301 under "mpls". 303 2.1.6. Link Aggregation Groups 305 Per [RFC7130], configuring BFD on LAG consists of having micro-BFD 306 sessions on each LAG member link. Since the BFD parameters are an 307 attribute of the LAG, they should be under the LAG. However there is 308 no LAG YANG model which we can augment. So a "lag" data node is 309 added to the top-level "bfd" node in Section 2, the configuration is 310 per-LAG: we have a list of LAGs. The destination IP address of the 311 micro-BFD sessions is configured per-LAG and per address-family (IPv4 312 and IPv6) 314 2.2. Design of Operational Model 316 The operational model contains both the overall statistics of BFD 317 sessions running on the device and the per session operational 318 information. 320 The overall statistics of BFD sessions consist of number of BFD 321 sessions, number of BFD sessions up etc. This information is 322 available globally (i.e. for all BFD sessions) under the top level 323 "bfd" node in Section 2 and also per type of forwarding path. 325 For each BFD session, mainly three categories of operational items 326 are shown. The fundamental information of a BFD session such as the 327 local discriminator, remote discriminator and the capability of 328 supporting demand detect mode are shown in the first category. The 329 second category includes a BFD session running information, e.g. the 330 remote BFD state and the diagnostic code received. Another example 331 is the actual transmit interval between the control packets, which 332 may be different from the desired minimum transmit interval 333 configured, is shown in this category. Similar examples are actual 334 received interval between the control packets and the actual transmit 335 interval between the echo packets. The third category contains the 336 detailed statistics of the session, e.g. when the session 337 transitioned up/down and how long it has been in that state. 339 For some session types, there may be more than 1 session on the 340 virtual path to the destination. For example, with IP multi-hop 341 there could be multiple BFD sessions from the source to the same 342 destination to test the various paths (ECMP) to the destination. 343 Each of the BFD sessions on the same virtual path is uniquely 344 identified by the local discriminator. 346 2.3. Notifications 348 This YANG model defines notifications to inform clients of BFD of 349 important events detected during the protocol operation. Pair of 350 local and remote discriminator identifies a BFD session on local 351 system. Notifications also give more important details about BFD 352 sessions; e.g. new state, time in previous state, network-instance 353 and the reason that the BFD session state changed. The notifications 354 are defined for each type of forwarding path but use groupings for 355 common information. 357 2.4. RPC Operations 359 TBD 361 2.5. BFD top level hierarchy 363 At the top level there is no configuration data, only operational 364 data. The operational data consist of overall BFD session statistics 365 globally and per network-instance 366 module: ietf-bfd 367 +--rw bfd! 368 +--rw config 369 +--ro oper 370 +--ro bfd-session-statistics 371 +--ro session-count? uint32 372 +--ro session-up-count? uint32 373 +--ro session-down-count? uint32 374 +--ro session-admin-down-count? uint32 375 augment /ni:network-instances/ni:network-instance: 376 +--rw bfd! 377 +--rw config 378 +--ro oper 379 +--ro bfd-session-statistics 380 +--ro session-count? uint32 381 +--ro session-up-count? uint32 382 +--ro session-down-count? uint32 383 +--ro session-admin-down-count? uint32 385 2.6. BFD IP single-hop hierarchy 387 The configuration and operational data for each BFD IP single-hop 388 session is under "ip-sh" node under network-instance. Overall BFD IP 389 single-hop session statistics are available per network-instance and 390 globally (for all network instances). 392 module: ietf-bfd-ip-sh 393 augment /bfd:bfd: 394 +--rw ip-sh 395 +--rw config 396 +--ro oper 397 +--ro bfd-session-statistics 398 +--ro session-count? uint32 399 +--ro session-up-count? uint32 400 +--ro session-down-count? uint32 401 +--ro session-admin-down-count? uint32 402 augment /ni:network-instances/ni:network-instance/bfd:bfd: 403 +--rw ip-sh 404 +--rw config 405 | +--rw session-cfg 406 | +--rw sessions* [interface dest-addr] 407 | +--rw interface if:interface-ref 408 | +--rw dest-addr inet:ip-address 409 | +--rw source-addr? inet:ip-address 410 | +--rw local-multiplier? bfd-multiplier 411 | +--rw (interval-config-type)? 412 | | +--:(tx-rx-intervals) 413 | | | +--rw desired-min-tx-interval uint32 414 | | | +--rw required-min-rx-interval uint32 415 | | +--:(single-interval) 416 | | +--rw min-interval uint32 417 | +--rw demand-enabled? boolean 418 | +--rw admin-down? boolean 419 | +--rw authentication-parms! {bfd-authentication}? 420 | | +--rw key-chain? kc:key-chain-ref 421 | | +--rw replay-protection? identityref 422 | +--rw desired-min-echo-tx-interval? uint32 423 | +--rw required-min-echo-rx-interval? uint32 424 +--ro oper 425 +--ro bfd-session-statistics 426 | +--ro session-count? uint32 427 | +--ro session-up-count? uint32 428 | +--ro session-down-count? uint32 429 | +--ro session-admin-down-count? uint32 430 +--ro sessions* [interface dest-addr] 431 +--ro interface if:interface-ref 432 +--ro dest-addr inet:ip-address 433 +--ro source-addr? inet:ip-address 434 +--ro path-type? identityref 435 +--ro local-discriminator? bfd-discriminator 436 +--ro remote-discriminator? bfd-discriminator 437 +--ro remote-multiplier? bfd-multiplier 438 +--ro out-interface? if:interface-ref 439 +--ro demand-capability? boolean 440 +--ro source-port? inet:port-number 441 +--ro dest-port? inet:port-number 442 +--ro session-running 443 | +--ro session-index? uint32 444 | +--ro local-state? bfd-state 445 | +--ro remote-state? bfd-state 446 | +--ro local-diagnostic? bfd-diagnostic 447 | +--ro remote-diagnostic? bfd-diagnostic 448 | +--ro detection-mode? enumeration 449 | +--ro negotiated-tx-interval? uint32 450 | +--ro negotiated-rx-interval? uint32 451 | +--ro echo-tx-interval-in-use? uint32 452 | +--ro detection-time? uint32 453 +--ro sesssion-statistics 454 +--ro create-time? yang:date-and-time 455 +--ro last-down-time? yang:date-and-time 456 +--ro last-up-time? yang:date-and-time 457 +--ro down-count? uint32 458 +--ro admin-down-count? uint32 459 +--ro receive-packet-count? uint64 460 +--ro send-packet-count? uint64 461 +--ro receive-bad-packet? uint64 462 +--ro send-failed-packet? uint64 463 notifications: 464 +---n bfd-singlehop-notification 465 +--ro local-discr? bfd-discriminator 466 +--ro remote-discr? bfd-discriminator 467 +--ro new-state? bfd-state 468 +--ro state-change-reason? string 469 +--ro time-in-previous-state? string 470 +--ro dest-addr? inet:ip-address 471 +--ro source-addr? inet:ip-address 472 +--ro session-index? uint32 473 +--ro path-type? identityref 474 +--ro interface? if:interface-ref 475 +--ro echo-enabled? boolean 477 2.7. BFD IP multi-hop hierarchy 479 The configuration and operational data for each BFD IP multi-hop 480 session is under "ip-mh" node under network-instance. In the 481 operational model we support multiple BFD multi-hop sessions per 482 remote address (ECMP), the local discriminator is used as key. 483 Overall BFD IP multi-hop session statistics are available per 484 network-instance and globally (for all network instances). 486 module: ietf-bfd-ip-mh 487 augment /bfd:bfd: 488 +--rw ip-mh 489 +--rw config 490 +--ro oper 491 +--ro bfd-session-statistics 492 +--ro session-count? uint32 493 +--ro session-up-count? uint32 494 +--ro session-down-count? uint32 495 +--ro session-admin-down-count? uint32 496 augment /ni:network-instances/ni:network-instance/bfd:bfd: 497 +--rw ip-mh 498 +--rw config 499 | +--rw session-cfg 500 | +--rw sessions* [source-addr dest-addr] 501 | +--rw source-addr inet:ip-address 502 | +--rw dest-addr inet:ip-address 503 | +--rw local-multiplier? bfd-multiplier 504 | +--rw (interval-config-type)? 505 | | +--:(tx-rx-intervals) 506 | | | +--rw desired-min-tx-interval uint32 507 | | | +--rw required-min-rx-interval uint32 508 | | +--:(single-interval) 509 | | +--rw min-interval uint32 510 | +--rw demand-enabled? boolean 511 | +--rw admin-down? boolean 512 | +--rw authentication-parms! {bfd-authentication}? 513 | | +--rw key-chain? kc:key-chain-ref 514 | | +--rw replay-protection? identityref 515 | +--rw tx-ttl? bfd:ttl 516 | +--rw rx-ttl bfd:ttl 517 +--ro oper 518 +--ro bfd-session-statistics 519 | +--ro bfd-session-statistics 520 | +--ro session-count? uint32 521 | +--ro session-up-count? uint32 522 | +--ro session-down-count? uint32 523 | +--ro session-admin-down-count? uint32 524 +--ro session-group* [source-addr dest-addr] 525 +--ro source-addr inet:ip-address 526 +--ro dest-addr inet:ip-address 527 +--ro sessions* [local-discriminator] 528 +--ro ttl? bfd:ttl 529 +--ro path-type? identityref 530 +--ro local-discriminator bfd-discriminator 531 +--ro remote-discriminator? bfd-discriminator 532 +--ro remote-multiplier? bfd-multiplier 533 +--ro out-interface? if:interface-ref 534 +--ro demand-capability? boolean 535 +--ro source-port? inet:port-number 536 +--ro dest-port? inet:port-number 537 +--ro session-running 538 | +--ro session-index? uint32 539 | +--ro local-state? bfd-state 540 | +--ro remote-state? bfd-state 541 | +--ro local-diagnostic? bfd-diagnostic 542 | +--ro remote-diagnostic? bfd-diagnostic 543 | +--ro detection-mode? enumeration 544 | +--ro negotiated-tx-interval? uint32 545 | +--ro negotiated-rx-interval? uint32 546 | +--ro echo-tx-interval-in-use? uint32 547 | +--ro detection-time? uint32 548 +--ro sesssion-statistics 549 +--ro create-time? yang:date-and-time 550 +--ro last-down-time? yang:date-and-time 551 +--ro last-up-time? yang:date-and-time 552 +--ro down-count? uint32 553 +--ro admin-down-count? uint32 554 +--ro receive-packet-count? uint64 555 +--ro send-packet-count? uint64 556 +--ro receive-bad-packet? uint64 557 +--ro send-failed-packet? uint64 559 notifications: 560 +---n bfd-multihop-notification 561 +--ro local-discr? bfd-discriminator 562 +--ro remote-discr? bfd-discriminator 563 +--ro new-state? bfd-state 564 +--ro state-change-reason? string 565 +--ro time-in-previous-state? string 566 +--ro dest-addr? inet:ip-address 567 +--ro source-addr? inet:ip-address 568 +--ro session-index? uint32 569 +--ro path-type? identityref 570 +--ro network-instance? string 572 2.8. BFD over LAG hierarchy 574 The configuration and operational data for each BFD LAG session is 575 under "lag" node. Overall BFD LAG session statistics are available 576 globally. 578 module: ietf-bfd-lag 579 augment /bfd:bfd: 580 +--rw lag 581 +--rw config 582 | +--rw session-cfg 583 | +--rw sessions* [lag-name] 584 | +--rw lag-name if:interface-ref 585 | +--rw ipv4-dest-addr? inet:ipv4-address 586 | +--rw ipv6-dest-addr? inet:ipv6-address 587 | +--rw local-multiplier? bfd-multiplier 588 | +--rw (interval-config-type)? 589 | | +--:(tx-rx-intervals) 590 | | | +--rw desired-min-tx-interval uint32 591 | | | +--rw required-min-rx-interval uint32 592 | | +--:(single-interval) 593 | | +--rw min-interval uint32 594 | +--rw demand-enabled? boolean 595 | +--rw admin-down? boolean 596 | +--rw authentication-parms! {bfd-authentication}? 597 | +--rw key-chain? kc:key-chain-ref 598 | +--rw replay-protection? identityref 599 +--ro oper 600 +--ro micro-bfd-ipv4-session-statistics 601 | +--ro bfd-session-statistics 602 | +--ro session-count? uint32 603 | +--ro session-up-count? uint32 604 | +--ro session-down-count? uint32 605 | +--ro session-admin-down-count? uint32 606 +--ro micro-bfd-ipv6-session-statistics 607 | +--ro bfd-session-statistics 608 | +--ro session-count? uint32 609 | +--ro session-up-count? uint32 610 | +--ro session-down-count? uint32 611 | +--ro session-admin-down-count? uint32 612 +--ro session-lag* [lag-name] 613 +--ro lag-name if:interface-ref 614 +--ro use-ipv4? boolean 615 +--ro use-ipv6? boolean 616 +--ro member-links* [member-link] 617 +--ro member-link if:interface-ref 618 +--ro micro-bfd-ipv4 619 | +--ro path-type? identityref 620 | +--ro local-discriminator? bfd-discriminator 621 | +--ro remote-discriminator? bfd-discriminator 622 | +--ro remote-multiplier? bfd-multiplier 623 | +--ro out-interface? if:interface-ref 624 | +--ro demand-capability? boolean 625 | +--ro source-port? inet:port-number 626 | +--ro dest-port? inet:port-number 627 | +--ro session-running 628 | | +--ro session-index? uint32 629 | | +--ro local-state? bfd-state 630 | | +--ro remote-state? bfd-state 631 | | +--ro local-diagnostic? bfd-diagnostic 632 | | +--ro remote-diagnostic? bfd-diagnostic 633 | | +--ro detection-mode? enumeration 634 | | +--ro negotiated-tx-interval? uint32 635 | | +--ro negotiated-rx-interval? uint32 636 | | +--ro echo-tx-interval-in-use? uint32 637 | | +--ro detection-time? uint32 638 | +--ro sesssion-statistics 639 | +--ro create-time? yang:date-and-time 640 | +--ro last-down-time? yang:date-and-time 641 | +--ro last-up-time? yang:date-and-time 642 | +--ro down-count? uint32 643 | +--ro admin-down-count? uint32 644 | +--ro receive-packet-count? uint64 645 | +--ro send-packet-count? uint64 646 | +--ro receive-bad-packet? uint64 647 | +--ro send-failed-packet? uint64 648 +--ro micro-bfd-ipv6 649 +--ro path-type? identityref 650 +--ro local-discriminator? bfd-discriminator 651 +--ro remote-discriminator? bfd-discriminator 652 +--ro remote-multiplier? bfd-multiplier 653 +--ro out-interface? if:interface-ref 654 +--ro demand-capability? boolean 655 +--ro source-port? inet:port-number 656 +--ro dest-port? inet:port-number 657 +--ro session-running 658 | +--ro session-index? uint32 659 | +--ro local-state? bfd-state 660 | +--ro remote-state? bfd-state 661 | +--ro local-diagnostic? bfd-diagnostic 662 | +--ro remote-diagnostic? bfd-diagnostic 663 | +--ro detection-mode? enumeration 664 | +--ro negotiated-tx-interval? uint32 665 | +--ro negotiated-rx-interval? uint32 666 | +--ro echo-tx-interval-in-use? uint32 667 | +--ro detection-time? uint32 668 +--ro sesssion-statistics 669 +--ro create-time? yang:date-and-time 670 +--ro last-down-time? yang:date-and-time 671 +--ro last-up-time? yang:date-and-time 672 +--ro down-count? uint32 673 +--ro admin-down-count? uint32 674 +--ro receive-packet-count? uint64 675 +--ro send-packet-count? uint64 676 +--ro receive-bad-packet? uint64 677 +--ro send-failed-packet? uint64 678 notifications: 679 +---n bfd-lag-notification 680 +--ro local-discr? bfd-discriminator 681 +--ro remote-discr? bfd-discriminator 682 +--ro new-state? bfd-state 683 +--ro state-change-reason? string 684 +--ro time-in-previous-state? string 685 +--ro dest-addr? inet:ip-address 686 +--ro source-addr? inet:ip-address 687 +--ro session-index? uint32 688 +--ro path-type? identityref 689 +--ro lag-name? if:interface-ref 690 +--ro member-link? if:interface-ref 692 2.9. BFD over MPLS LSPs hierarchy 694 The configuration is per MPLS FEC under "mpls". In the operational 695 model we support multiple BFD sessions per MPLS FEC (ECMP), the local 696 discriminator is used as key. 698 module: ietf-bfd-mpls 699 module: ietf-bfd-mpls 700 augment /bfd:bfd: 701 +--rw mpls 702 +--rw config 703 | +--rw egress 704 | +--rw local-multiplier? bfd-multiplier 705 | +--rw (interval-config-type)? 706 | | +--:(tx-rx-intervals) 707 | | | +--rw desired-min-tx-interval uint32 708 | | | +--rw required-min-rx-interval uint32 709 | | +--:(single-interval) 710 | | +--rw min-interval uint32 711 | +--rw authentication-parms! {bfd-authentication}? 712 | +--rw key-chain? kc:key-chain-ref 713 | +--rw replay-protection? identityref 714 +--ro oper 715 +--ro bfd-session-statistics 716 +--ro session-count? uint32 717 +--ro session-up-count? uint32 718 +--ro session-down-count? uint32 719 +--ro session-admin-down-count? uint32 720 augment /ni:network-instances/ni:network-instance/bfd:bfd: 721 +--rw mpls 722 +--rw config 723 | +--rw session-cfg 724 | +--rw sessions* [mpls-fec] 725 | +--rw mpls-fec inet:ip-address 726 | +--rw local-multiplier? bfd-multiplier 727 | +--rw (interval-config-type)? 728 | | +--:(tx-rx-intervals) 729 | | | +--rw desired-min-tx-interval uint32 730 | | | +--rw required-min-rx-interval uint32 731 | | +--:(single-interval) 732 | | +--rw min-interval uint32 733 | +--rw demand-enabled? boolean 734 | +--rw admin-down? boolean 735 | +--rw authentication-parms! {bfd-authentication}? 736 | +--rw key-chain? kc:key-chain-ref 737 | +--rw replay-protection? identityref 738 +--ro oper 739 +--ro bfd-session-statistics 740 | +--ro session-count? uint32 741 | +--ro session-up-count? uint32 742 | +--ro session-down-count? uint32 743 | +--ro session-admin-down-count? uint32 744 +--ro session-group* [mpls-fec] 745 +--ro mpls-fec inet:ip-address 746 +--ro sessions* [local-discriminator] 747 +--ro path-type? identityref 748 +--ro local-discriminator bfd-discriminator 749 +--ro remote-discriminator? bfd-discriminator 750 +--ro remote-multiplier? bfd-multiplier 751 +--ro out-interface? if:interface-ref 752 +--ro demand-capability? boolean 753 +--ro source-port? inet:port-number 754 +--ro dest-port? inet:port-number 755 +--ro session-running 756 | +--ro session-index? uint32 757 | +--ro local-state? bfd-state 758 | +--ro remote-state? bfd-state 759 | +--ro local-diagnostic? bfd-diagnostic 760 | +--ro remote-diagnostic? bfd-diagnostic 761 | +--ro detection-mode? enumeration 762 | +--ro negotiated-tx-interval? uint32 763 | +--ro negotiated-rx-interval? uint32 764 | +--ro echo-tx-interval-in-use? uint32 765 | +--ro detection-time? uint32 766 +--ro sesssion-statistics 767 | +--ro create-time? yang:date-and-time 768 | +--ro last-down-time? yang:date-and-time 769 | +--ro last-up-time? yang:date-and-time 770 | +--ro down-count? uint32 771 | +--ro admin-down-count? uint32 772 | +--ro receive-packet-count? uint64 773 | +--ro send-packet-count? uint64 774 | +--ro receive-bad-packet? uint64 775 | +--ro send-failed-packet? uint64 776 +--ro mpls-dest-address? inet:ip-address 777 notifications: 778 +---n bfd-mpls-notification 779 +--ro local-discr? bfd-discriminator 780 +--ro remote-discr? bfd-discriminator 781 +--ro new-state? bfd-state 782 +--ro state-change-reason? string 783 +--ro time-in-previous-state? string 784 +--ro dest-addr? inet:ip-address 785 +--ro source-addr? inet:ip-address 786 +--ro session-index? uint32 787 +--ro path-type? identityref 788 +--ro network-instance? string 789 +--ro mpls-dest-address? inet:ip-address 791 2.10. BFD over MPLS-TE hierarchy 793 The MPLS-TE YANG model [I-D.ietf-teas-yang-te] is augmented. BFD is 794 configured per MPLS-TE tunnel, and BFD session operational data is 795 provided per MPLS-TE LSP. 797 module: ietf-bfd-mpls-te 798 augment /bfd:bfd: 800 +--rw mpls-te 801 +--rw config 802 | +--rw egress 803 | +--rw local-multiplier? bfd-multiplier 804 | +--rw (interval-config-type)? 805 | | +--:(tx-rx-intervals) 806 | | | +--rw desired-min-tx-interval uint32 807 | | | +--rw required-min-rx-interval uint32 808 | | +--:(single-interval) 809 | | +--rw min-interval uint32 810 | +--rw authentication-parms! {bfd-authentication}? 811 | +--rw key-chain? kc:key-chain-ref 812 | +--rw replay-protection? identityref 813 +--ro oper 814 +--ro bfd-session-statistics 815 +--ro session-count? uint32 816 +--ro session-up-count? uint32 817 +--ro session-down-count? uint32 818 +--ro session-admin-down-count? uint32 819 augment /te:te/te:tunnels/te:tunnel/te:config: 820 +--rw local-multiplier? bfd-multiplier 821 +--rw (interval-config-type)? 822 | +--:(tx-rx-intervals) 823 | | +--rw desired-min-tx-interval uint32 824 | | +--rw required-min-rx-interval uint32 825 | +--:(single-interval) 826 | +--rw min-interval uint32 827 +--rw demand-enabled? boolean 828 +--rw admin-down? boolean 829 +--rw authentication-parms! {bfd-authentication}? 830 | +--rw key-chain? kc:key-chain-ref 831 | +--rw replay-protection? identityref 832 +--rw encap? identityref 833 augment /te:te/te:lsps-state/te:lsp: 834 +--ro path-type? identityref 835 +--ro local-discriminator? bfd-discriminator 836 +--ro remote-discriminator? bfd-discriminator 837 +--ro remote-multiplier? bfd-multiplier 838 +--ro out-interface? if:interface-ref 839 +--ro demand-capability? boolean 840 +--ro source-port? inet:port-number 841 +--ro dest-port? inet:port-number 842 +--ro session-running 843 | +--ro session-index? uint32 844 | +--ro local-state? bfd-state 845 | +--ro remote-state? bfd-state 846 | +--ro local-diagnostic? bfd-diagnostic 847 | +--ro remote-diagnostic? bfd-diagnostic 848 | +--ro detection-mode? enumeration 849 | +--ro negotiated-tx-interval? uint32 850 | +--ro negotiated-rx-interval? uint32 851 | +--ro echo-tx-interval-in-use? uint32 852 | +--ro detection-time? uint32 853 +--ro sesssion-statistics 854 | +--ro create-time? yang:date-and-time 855 | +--ro last-down-time? yang:date-and-time 856 | +--ro last-up-time? yang:date-and-time 857 | +--ro down-count? uint32 858 | +--ro admin-down-count? uint32 859 | +--ro receive-packet-count? uint64 860 | +--ro send-packet-count? uint64 861 | +--ro receive-bad-packet? uint64 862 | +--ro send-failed-packet? uint64 863 +--ro mpls-dest-address? inet:ip-address 864 notifications: 865 +---n bfd-mpls-te-notification 866 +--ro local-discr? bfd-discriminator 867 +--ro remote-discr? bfd-discriminator 868 +--ro new-state? bfd-state 869 +--ro state-change-reason? string 870 +--ro time-in-previous-state? string 871 +--ro dest-addr? inet:ip-address 872 +--ro source-addr? inet:ip-address 873 +--ro session-index? uint32 874 +--ro path-type? identityref 875 +--ro mpls-dest-address? inet:ip-address 876 +--ro tunnel-name? string 878 2.11. Examples 880 2.12. Interaction with other YANG modules 882 TBD. 884 2.13. BFD top-level Yang Module 886 file "ietf-bfd@2016-07-04.yang" 887 module ietf-bfd { 888 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; 889 // replace with IANA namespace when assigned 890 prefix "bfd"; 892 import ietf-interfaces { 893 prefix "if"; 894 } 895 import ietf-inet-types { 896 prefix "inet"; 897 } 899 import ietf-yang-types { 900 prefix "yang"; 901 } 903 import ietf-routing { 904 prefix "rt"; 905 } 907 import ietf-network-instance { 908 prefix "ni"; 909 } 911 import ietf-key-chain { 912 prefix "kc"; 913 } 915 organization "IETF BFD Working Group"; 917 contact 918 "WG Web: 919 WG List: 920 WG Chair: Jeff Haas 921 WG Chair: Reshad Rahman 922 Editor: Lianshu Zheng and Reshad Rahman"; 924 description 925 "This module contains the YANG definition for BFD parameters as 926 per RFC5880."; 928 revision 2016-07-04 { 929 description "Initial revision."; 930 reference "RFC XXXX: A YANG data model for BFD"; 931 } 933 identity bfd { 934 base "rt:routing-protocol"; 935 description "BFD protocol"; 936 } 938 typedef bfd-discriminator { 939 type uint32 { 940 range 1..4294967295; 941 } 942 description "BFD discriminator"; 944 } 946 typedef bfd-diagnostic { 947 type enumeration { 948 enum none { 949 value 0; 950 description "None"; 951 } 952 enum controlExpiry { 953 value 1; 954 description "Control timer expiry"; 955 } 956 enum echoFailed { 957 value 2; 958 description "Echo failure"; 959 } 960 enum nborDown { 961 value 3; 962 description "Neighbor down"; 963 } 964 enum fwdingReset { 965 value 4; 966 description "Forwarding reset"; 967 } 968 enum pathDown { 969 value 5; 970 description "Path down"; 971 } 972 enum concPathDown { 973 value 6; 974 description "Concatenated path down"; 975 } 976 enum adminDown { 977 value 7; 978 description "Admin down"; 979 } 980 enum reverseConcPathDown { 981 value 8; 982 description "Reverse concatenated path down"; 983 } 984 } 985 description "BFD diagnostic"; 986 } 988 typedef bfd-state { 989 type enumeration { 990 enum adminDown { 991 value 0; 992 description "admindown"; 993 } 994 enum down { 995 value 1; 996 description "down"; 997 } 998 enum init { 999 value 2; 1000 description "init"; 1001 } 1002 enum up { 1003 value 3; 1004 description "up"; 1005 } 1006 } 1007 description "BFD state"; 1008 } 1010 typedef bfd-multiplier { 1011 type uint8 { 1012 range 1..255; 1013 } 1014 description "Multiplier"; 1015 } 1017 typedef ttl { 1018 type uint8 { 1019 range 1..255; 1020 } 1021 description "Time To Live"; 1022 } 1024 identity bfd-path-type { 1025 description 1026 "Base identity for BFD path type. The session type indicates 1027 the type of path on which BFD is running"; 1028 } 1029 identity bfd-path-ip-sh { 1030 base bfd-path-type; 1031 description "BFD on IP single hop"; 1032 } 1033 identity bfd-path-ip-mh { 1034 base bfd-path-type; 1035 description "BFD on IP multi hop"; 1036 } 1037 identity bfd-path-mpls-te { 1038 base bfd-path-type; 1039 description "BFD on MPLS Traffic Engineering"; 1041 } 1042 identity bfd-path-mpls-lsp { 1043 base bfd-path-type; 1044 description "BFD on MPLS Label Switched Path"; 1045 } 1046 identity bfd-path-lag { 1047 base bfd-path-type; 1048 description "Micro-BFD on LAG member links"; 1049 } 1051 identity bfd-encap-type { 1052 description 1053 "Base identity for BFD encapsulation type."; 1054 } 1055 identity bfd-encap-ip { 1056 base bfd-encap-type; 1057 description "BFD with IP encapsulation."; 1058 } 1060 feature bfd-authentication { 1061 description "BFD authentication supported"; 1062 } 1064 identity bfd-auth-replay-protection { 1065 description 1066 "Base identity for BFD authentication replay protection"; 1067 } 1068 identity bfd-auth-replay-protection-non-meticulous { 1069 base bfd-auth-replay-protection; 1070 description "Non-meticulous (see RFC5880)"; 1071 } 1072 identity bfd-auth-replay-protection-meticulous { 1073 base bfd-auth-replay-protection; 1074 description "Meticulous (see RFC5880)"; 1075 } 1077 grouping bfd-auth-parms { 1078 description 1079 "Grouping for BFD authentication parameters 1080 (see section 6.7 of RFC5880)."; 1081 container authentication-parms { 1082 if-feature bfd-authentication; 1083 presence 1084 "Enables BFD authentication (see section 6.7 of RFC5880)."; 1085 description "Parameters for BFD authentication"; 1087 leaf key-chain { 1088 type kc:key-chain-ref; 1089 description "Name of key-chain"; 1090 } 1092 leaf replay-protection { 1093 type identityref { 1094 base bfd-auth-replay-protection; 1095 } 1096 description 1097 "Protection against replays"; 1098 } 1099 } 1100 } 1102 grouping bfd-grouping-base-cfg-parms { 1103 description "BFD grouping for base config parameters"; 1104 leaf local-multiplier { 1105 type bfd-multiplier; 1106 default 3; 1107 description "Multiplier transmitted by local system"; 1108 } 1110 choice interval-config-type { 1111 description 1112 "Two interval values or 1 value used for both tx and rx"; 1113 case tx-rx-intervals { 1114 leaf desired-min-tx-interval { 1115 type uint32; 1116 units microseconds; 1117 mandatory true; 1118 description 1119 "Desired minimum transmit interval of control packets"; 1120 } 1122 leaf required-min-rx-interval { 1123 type uint32; 1124 units microseconds; 1125 mandatory true; 1126 description 1127 "Required minimum receive interval of control packets"; 1128 } 1129 } 1130 case single-interval { 1131 leaf min-interval { 1132 type uint32; 1133 units microseconds; 1134 mandatory true; 1135 description 1136 "Desired minimum transmit interval and required " + 1137 "minimum receive interval of control packets"; 1138 } 1139 } 1140 } 1141 } 1143 grouping bfd-grouping-common-cfg-parms { 1144 description "BFD grouping for common config parameters"; 1146 uses bfd-grouping-base-cfg-parms; 1148 leaf demand-enabled { 1149 type boolean; 1150 default false; 1151 description "To enable demand mode"; 1152 } 1154 leaf admin-down { 1155 type boolean; 1156 default false; 1157 description 1158 "Is the BFD session administratively down"; 1159 } 1160 uses bfd-auth-parms; 1161 } 1163 grouping bfd-grouping-echo-cfg-parms { 1164 description "BFD grouping for echo config parameters"; 1165 leaf desired-min-echo-tx-interval { 1166 type uint32; 1167 units microseconds; 1168 default 0; 1169 description "Desired minumum transmit interval for echo"; 1170 } 1172 leaf required-min-echo-rx-interval { 1173 type uint32; 1174 units microseconds; 1175 default 0; 1176 description "Required minimum receive interval for echo"; 1177 } 1178 } 1180 grouping bfd-client-base-cfg-parms { 1181 description 1182 "BFD grouping which could be used by a protocol which 1183 is a client of BFD to enable its use of BFD"; 1185 container bfd-cfg { 1186 description "BFD configuration"; 1187 leaf enabled { 1188 type boolean; 1189 default false; 1190 description "True if BFD is enabled"; 1191 } 1192 } 1193 } 1195 grouping bfd-all-session { 1196 description "BFD session operational information"; 1197 leaf path-type { 1198 type identityref { 1199 base bfd-path-type; 1200 } 1201 description 1202 "BFD session type, this indicates the path type that BFD is 1203 running on"; 1204 } 1205 leaf local-discriminator { 1206 type bfd-discriminator; 1207 description "Local discriminator"; 1208 } 1209 leaf remote-discriminator { 1210 type bfd-discriminator; 1211 description "Remote discriminator"; 1212 } 1213 leaf remote-multiplier { 1214 type bfd-multiplier; 1215 description "Remote multiplier"; 1216 } 1217 leaf out-interface { 1218 type if:interface-ref; 1219 description "Outgoing physical interface name"; 1220 } 1221 leaf demand-capability { 1222 type boolean; 1223 description "Local demand mode capability"; 1224 } 1225 leaf source-port { 1226 type inet:port-number; 1227 description "Source UDP port"; 1228 } 1229 leaf dest-port { 1230 type inet:port-number; 1231 description "Destination UDP port"; 1232 } 1233 container session-running { 1234 description "BFD session running information"; 1235 leaf session-index { 1236 type uint32; 1237 description 1238 "An index used to uniquely identify BFD sessions"; 1239 } 1240 leaf local-state { 1241 type bfd-state; 1242 description "Local state"; 1243 } 1244 leaf remote-state { 1245 type bfd-state; 1246 description "Remote state"; 1247 } 1248 leaf local-diagnostic { 1249 type bfd-diagnostic; 1250 description "Local diagnostic"; 1251 } 1252 leaf remote-diagnostic { 1253 type bfd-diagnostic; 1254 description "Remote diagnostic"; 1255 } 1256 leaf detection-mode { 1257 type enumeration { 1258 enum async-with-echo { 1259 value "1"; 1260 description "Async with echo"; 1261 } 1262 enum async-without-echo { 1263 value "2"; 1264 description "Async without echo"; 1265 } 1266 enum demand-with-echo { 1267 value "3"; 1268 description "Demand with echo"; 1269 } 1270 enum demand-without-echo { 1271 value "4"; 1272 description "Demand without echo"; 1273 } 1274 } 1275 description "Detection mode"; 1276 } 1277 leaf negotiated-tx-interval { 1278 type uint32; 1279 units microseconds; 1280 description "Negotiated transmit interval"; 1282 } 1283 leaf negotiated-rx-interval { 1284 type uint32; 1285 units microseconds; 1286 description "Negotiated receive interval"; 1287 } 1288 leaf echo-tx-interval-in-use { 1289 when "../../path-type = 'bfd-path-ip-sh'" { 1290 description 1291 "Echo is supported for IP single-hop only."; 1292 } 1293 type uint32; 1294 units microseconds; 1295 description "Echo transmit interval in use"; 1296 } 1297 leaf detection-time { 1298 type uint32; 1299 units microseconds; 1300 description "Detection time"; 1301 } 1302 } 1304 container sesssion-statistics { 1305 description "BFD per-session statistics"; 1307 leaf create-time { 1308 type yang:date-and-time; 1309 description 1310 "Time and date when session was created"; 1311 } 1312 leaf last-down-time { 1313 type yang:date-and-time; 1314 description 1315 "Time and date of last time the session went down"; 1316 } 1317 leaf last-up-time { 1318 type yang:date-and-time; 1319 description 1320 "Time and date of last time the session went up"; 1321 } 1322 leaf down-count { 1323 type uint32; 1324 description "Session Down Count"; 1325 } 1326 leaf admin-down-count { 1327 type uint32; 1328 description "Session Admin-Down Count"; 1329 } 1330 leaf receive-packet-count { 1331 type uint64; 1332 description "Received Packet Count"; 1333 } 1334 leaf send-packet-count { 1335 type uint64; 1336 description "Sent Packet Count"; 1337 } 1338 leaf receive-bad-packet { 1339 type uint64; 1340 description "Received bad packet count"; 1341 } 1342 leaf send-failed-packet { 1343 type uint64; 1344 description "Packet Failed to Send Count"; 1345 } 1346 } 1347 } 1349 grouping bfd-session-statistics { 1350 description "Grouping for session counters"; 1351 container bfd-session-statistics { 1352 description "BFD session counters"; 1353 leaf session-count { 1354 type uint32; 1355 description "Number of sessions"; 1356 } 1357 leaf session-up-count { 1358 type uint32; 1359 description "Count of sessions which are up"; 1360 } 1361 leaf session-down-count { 1362 type uint32; 1363 description "Count of sessions which are down"; 1364 } 1365 leaf session-admin-down-count { 1366 type uint32; 1367 description "Count of sessions which are admin-down"; 1368 } 1369 } 1370 } 1372 grouping bfd-notification-parms { 1373 description 1374 "This group describes common parameters that will be sent " + 1375 "as part of BFD notification"; 1377 leaf local-discr { 1378 type bfd-discriminator; 1379 description "BFD local discriminator"; 1380 } 1382 leaf remote-discr { 1383 type bfd-discriminator; 1384 description "BFD remote discriminator"; 1385 } 1387 leaf new-state { 1388 type bfd-state; 1389 description "Current BFD state"; 1390 } 1392 leaf state-change-reason { 1393 type string; 1394 description "BFD state change reason"; 1395 } 1397 leaf time-in-previous-state { 1398 type string; 1399 description 1400 "How long the BFD session was in the previous state"; 1401 } 1403 leaf dest-addr { 1404 type inet:ip-address; 1405 description "BFD peer address"; 1406 } 1408 leaf source-addr { 1409 type inet:ip-address; 1410 description "BFD local address"; 1411 } 1413 leaf session-index { 1414 type uint32; 1415 description "An index used to uniquely identify BFD sessions"; 1416 } 1418 leaf path-type { 1419 type identityref { 1420 base bfd-path-type; 1421 } 1422 description "BFD path type"; 1423 } 1424 } 1425 augment "/ni:network-instances/ni:network-instance" { 1426 description "BFD augmentation."; 1428 container bfd { 1429 presence "BFD"; 1430 description "BFD top level container"; 1431 container config { 1432 description "BFD configuration container"; 1433 } 1435 container oper { 1436 config "false"; 1437 description 1438 "BFD operational container for this routing instance"; 1439 uses bfd-session-statistics; 1440 } 1441 } 1442 } 1444 container bfd { 1445 presence "BFD"; 1446 description "BFD top level container"; 1447 container config { 1448 description "BFD configuration container"; 1449 } 1451 container oper { 1452 config "false"; 1453 description "BFD operational container."; 1454 uses bfd-session-statistics; 1455 } 1456 } 1457 } 1458 1460 2.14. BFD IP single-hop Yang Module 1462 file "ietf-bfd-ip-sh@2016-07-04.yang" 1463 module ietf-bfd-ip-sh { 1464 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; 1465 // replace with IANA namespace when assigned 1466 prefix "bfd-ip-sh"; 1468 import ietf-bfd { 1469 prefix "bfd"; 1470 } 1472 import ietf-interfaces { 1473 prefix "if"; 1474 } 1476 import ietf-inet-types { 1477 prefix "inet"; 1478 } 1480 import ietf-network-instance { 1481 prefix "ni"; 1482 } 1484 organization "IETF BFD Working Group"; 1486 contact 1487 "WG Web: 1488 WG List: 1489 WG Chair: Jeff Haas 1490 WG Chair: Reshad Rahman 1491 Editor: Lianshu Zheng and Reshad Rahman"; 1493 description 1494 "This module contains the YANG definition for BFD IP single-hop 1495 as per RFC5881."; 1497 revision 2016-01-04 { 1498 description "Initial revision."; 1499 reference "RFC XXXX: A YANG data model for BFD IP single-hop"; 1500 } 1502 augment "/bfd:bfd" { 1503 description "BFD augmentation for IP single-hop"; 1504 container ip-sh { 1505 description "BFD IP single-hop top level container"; 1507 container config { 1508 description "BFD IP single-hop configuration container"; 1509 } 1510 container oper { 1511 config "false"; 1512 description "BFD IP single-hop operational container"; 1513 uses bfd:bfd-session-statistics; 1514 } 1515 } 1516 } 1518 augment "/ni:network-instances/ni:network-instance/bfd:bfd" { 1519 description "BFD augmentation for IP single-hop."; 1520 container ip-sh { 1521 description "BFD IP single-hop container"; 1522 container config { 1523 description "BFD configuration"; 1524 container session-cfg { 1525 description "BFD IP single-hop session configuration"; 1527 list sessions { 1528 key "interface dest-addr"; 1529 description "List of IP single-hop sessions"; 1530 leaf interface { 1531 type if:interface-ref; 1532 description 1533 "Interface on which the BFD session is running."; 1534 } 1535 leaf dest-addr { 1536 type inet:ip-address; 1537 description "IP address of the peer"; 1538 } 1539 leaf source-addr { 1540 type inet:ip-address; 1541 description "Local address"; 1542 } 1544 uses bfd:bfd-grouping-common-cfg-parms; 1546 uses bfd:bfd-grouping-echo-cfg-parms; 1547 } 1548 } 1549 } 1551 container oper { 1552 config "false"; 1553 description "BFD operational container"; 1555 uses bfd:bfd-session-statistics; 1557 list sessions { 1558 key "interface dest-addr"; 1559 description "BFD IP single-hop sessions"; 1560 leaf interface { 1561 type if:interface-ref; 1562 description 1563 "Interface on which the BFD session is running."; 1564 } 1565 leaf dest-addr { 1566 type inet:ip-address; 1567 description "BFD peer address"; 1569 } 1570 leaf source-addr { 1571 type inet:ip-address; 1572 description "BFD source address"; 1573 } 1575 uses bfd:bfd-all-session; 1576 } 1577 } 1578 } 1579 } 1581 notification bfd-singlehop-notification { 1582 description 1583 "Notification for BFD single-hop session state change. An " + 1584 "implementation may rate-limit notifications, e.g. when a" + 1585 "session is continuously changing state."; 1587 uses bfd:bfd-notification-parms; 1589 leaf interface { 1590 type if:interface-ref; 1591 description "Interface to which this BFD session belongs to"; 1592 } 1594 leaf echo-enabled { 1595 type boolean; 1596 description "Was echo enabled for BFD"; 1597 } 1598 } 1600 } 1601 1603 2.15. BFD IP multi-hop Yang Module 1605 file "ietf-bfd-ip-mh@2016-07-04.yang" 1606 module ietf-bfd-ip-mh { 1607 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; 1608 // replace with IANA namespace when assigned 1609 prefix "bfd-ip-mh"; 1611 import ietf-bfd { 1612 prefix "bfd"; 1613 } 1615 import ietf-inet-types { 1616 prefix "inet"; 1618 } 1620 import ietf-network-instance { 1621 prefix "ni"; 1622 } 1624 organization "IETF BFD Working Group"; 1626 contact 1627 "WG Web: 1628 WG List: 1629 WG Chair: Jeff Haas 1630 WG Chair: Reshad Rahman 1631 Editor: Lianshu Zheng and Reshad Rahman"; 1633 description 1634 "This module contains the YANG definition for BFD IP multi-hop 1635 asper RFC5883."; 1637 revision 2016-07-04 { 1638 description "Initial revision."; 1639 reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; 1640 } 1642 augment "/bfd:bfd" { 1643 description "BFD augmentation for IP multi-hop"; 1644 container ip-mh { 1645 description "BFD IP multi-hop top level container"; 1647 container config { 1648 description "BFD IP multi-hop configuration container"; 1649 } 1650 container oper { 1651 config "false"; 1652 description "BFD IP multi-hop operational container"; 1653 uses bfd:bfd-session-statistics; 1654 } 1655 } 1656 } 1658 augment "/ni:network-instances/ni:network-instance/bfd:bfd" { 1659 description "BFD augmentation for IP multi-hop."; 1661 container ip-mh { 1662 description "BFD IP multi-hop container"; 1663 container config { 1664 description "BFD configuration"; 1665 container session-cfg { 1666 description "BFD IP multi-hop session configuration"; 1668 list sessions { 1669 key "source-addr dest-addr"; 1670 description "List of IP multi-hop sessions"; 1672 leaf source-addr { 1673 type inet:ip-address; 1674 description 1675 "Local IP address"; 1676 } 1677 leaf dest-addr { 1678 type inet:ip-address; 1679 description 1680 "IP address of the peer"; 1681 } 1682 uses bfd:bfd-grouping-common-cfg-parms; 1684 leaf tx-ttl { 1685 type bfd:ttl; 1686 default 255; 1687 description "TTL of outgoing BFD control packets"; 1688 } 1689 leaf rx-ttl { 1690 type bfd:ttl; 1691 mandatory true; 1692 description 1693 "Minimum allowed TTL value for incoming BFD control 1694 packets"; 1695 } 1696 } 1697 } 1698 } 1700 container oper { 1701 config "false"; 1702 description "BFD operational container"; 1704 container bfd-session-statistics { 1705 description "BFD session counters"; 1706 uses bfd:bfd-session-statistics; 1707 } 1709 list session-group { 1710 key "source-addr dest-addr"; 1711 description 1712 "BFD IP multi-hop group of sessions. A group of " + 1713 "sessions is between 1 source and 1 destination, " + 1714 "each session has a different field in UDP/IP hdr for " + 1715 "ECMP."; 1716 leaf source-addr { 1717 type inet:ip-address; 1718 description "BFD source address"; 1719 } 1720 leaf dest-addr { 1721 type inet:ip-address; 1722 description "BFD peer address"; 1723 } 1724 list sessions { 1725 key "local-discriminator"; 1726 description 1727 "The BFD sessions between a source and a. " + 1728 "destination. Local discriminator is unique for " + 1729 "each session in the group."; 1730 leaf ttl { 1731 type bfd:ttl; 1732 description "TTL of outgoing packets"; 1733 } 1734 uses bfd:bfd-all-session; 1735 } 1736 } 1737 } 1738 } 1739 } 1741 notification bfd-multihop-notification { 1742 description 1743 "Notification for BFD multi-hop session state change. An " + 1744 "implementation may rate-limit notifications, e.g. when a" + 1745 "session is continuously changing state."; 1747 uses bfd:bfd-notification-parms; 1749 leaf network-instance { 1750 type string; 1751 description "Network instance"; 1752 } 1753 } 1754 } 1755 1757 2.16. BFD over LAG Yang Module 1759 file "ietf-bfd-lag@2016-02-17.yang" 1760 module ietf-bfd-lag { 1761 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; 1762 // replace with IANA namespace when assigned 1763 prefix "bfd-lag"; 1765 import ietf-bfd { 1766 prefix "bfd"; 1767 } 1769 import ietf-interfaces { 1770 prefix "if"; 1771 } 1773 import ietf-inet-types { 1774 prefix "inet"; 1775 } 1777 organization "IETF BFD Working Group"; 1779 contact 1780 "WG Web: 1781 WG List: 1782 WG Chair: Jeff Haas 1783 WG Chair: Reshad Rahman 1784 Editor: Lianshu Zheng and Reshad Rahman"; 1786 description 1787 "This module contains the YANG definition for BFD over LAG 1788 interfaces as per RFC7130."; 1790 revision 2016-02-17 { 1791 description "Initial revision."; 1792 reference "RFC XXXX: A YANG data model for BFD over LAG"; 1793 } 1795 augment "/bfd:bfd" { 1796 description "BFD augmentation for LAG"; 1797 container lag { 1798 description "BFD over LAG top level container"; 1800 container config { 1801 description "BFD over LAG configuration container"; 1802 container session-cfg { 1803 description "BFD over LAG session configuration"; 1804 list sessions { 1805 key "lag-name"; 1806 description "A LAG interface on which BFD is running"; 1807 leaf lag-name { 1808 type if:interface-ref ; 1809 description "Name of the LAG"; 1811 } 1812 leaf ipv4-dest-addr { 1813 type inet:ipv4-address; 1814 description 1815 "IPv4 address of the peer, for IPv4 micro-BFD."; 1816 } 1817 leaf ipv6-dest-addr { 1818 type inet:ipv6-address; 1819 description 1820 "IPv6 address of the peer, for IPv6 micro-BFD."; 1821 } 1822 uses bfd:bfd-grouping-common-cfg-parms; 1823 } 1824 } 1825 } 1827 container oper { 1828 config "false"; 1829 description "BFD over LAG operational container."; 1831 container micro-bfd-ipv4-session-statistics { 1832 description "Micro-BFD IPv4 session counters"; 1833 uses bfd:bfd-session-statistics; 1834 } 1835 container micro-bfd-ipv6-session-statistics { 1836 description "Micro-BFD IPv6 session counters"; 1837 uses bfd:bfd-session-statistics; 1838 } 1840 list session-lag { 1841 key "lag-name"; 1842 description "A LAG interface on which BFD is running"; 1843 leaf lag-name { 1844 type if:interface-ref ; 1845 description "Name of the LAG"; 1846 } 1848 leaf use-ipv4 { 1849 type boolean; 1850 description "Using IPv4 micro-BFD."; 1851 } 1852 leaf use-ipv6 { 1853 type boolean; 1854 description "Using IPv6 micro-BFD."; 1855 } 1857 list member-links { 1858 key "member-link"; 1859 description 1860 "Micro-BFD over LAG. This represents one member link"; 1862 leaf member-link { 1863 type if:interface-ref; 1864 description 1865 "Member link on which micro-BFD is running"; 1866 } 1867 container micro-bfd-ipv4 { 1868 when "../use-ipv4 = 'true'" { 1869 description "Needed only if IPv4 is used."; 1870 } 1871 description 1872 "Micro-BFD IPv4 session state on member link"; 1873 uses bfd:bfd-all-session; 1874 } 1875 container micro-bfd-ipv6 { 1876 when "../use-ipv6 = 'true'" { 1877 description "Needed only if IPv6 is used."; 1878 } 1879 description 1880 "Micro-BFD IPv6 session state on member link"; 1881 uses bfd:bfd-all-session; 1882 } 1883 } 1884 } 1885 } 1886 } 1887 } 1889 notification bfd-lag-notification { 1890 description 1891 "Notification for BFD over LAG session state change. " + 1892 "An implementation may rate-limit notifications, e.g. when a" + 1893 "session is continuously changing state."; 1895 uses bfd:bfd-notification-parms; 1897 leaf lag-name { 1898 type if:interface-ref; 1899 description "LAG interface name"; 1900 } 1902 leaf member-link { 1903 type if:interface-ref; 1904 description "Member link on which BFD is running"; 1905 } 1906 } 1908 } 1909 1911 2.17. BFD over MPLS Yang Module 1913 file "ietf-bfd-mpls@2016-07-04.yang" 1914 module ietf-bfd-mpls { 1915 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; 1916 // replace with IANA namespace when assigned 1917 prefix "bfd-mpls"; 1919 import ietf-bfd { 1920 prefix "bfd"; 1921 } 1923 import ietf-inet-types { 1924 prefix "inet"; 1925 } 1927 import ietf-network-instance { 1928 prefix "ni"; 1929 } 1931 organization "IETF BFD Working Group"; 1933 contact 1934 "WG Web: 1935 WG List: 1936 WG Chair: Jeff Haas 1937 WG Chair: Reshad Rahman 1938 Editor: Lianshu Zheng and Reshad Rahman"; 1940 description 1941 "This module contains the YANG definition for BFD parameters for 1942 MPLS LSPs as per RFC5884."; 1944 revision 2016-07-04 { 1945 description "Initial revision."; 1946 reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; 1947 } 1949 identity bfd-encap-gach { 1950 base bfd:bfd-encap-type; 1951 description 1952 "BFD with G-ACh encapsulation as per RFC5586."; 1953 } 1955 identity bfd-encap-ip-gach { 1956 base bfd:bfd-encap-type; 1957 description 1958 "BFD with IP and G-ACh encapsulation as per RFC5586."; 1959 } 1961 grouping bfd-encap-cfg { 1962 description "Configuration for BFD encapsulation"; 1964 leaf encap { 1965 type identityref { 1966 base bfd:bfd-encap-type; 1967 } 1968 default bfd:bfd-encap-ip; 1969 description "BFD encapsulation"; 1970 } 1971 } 1973 grouping bfd-mpls-dest-address { 1974 description "Destination address as per RFC5884"; 1976 leaf mpls-dest-address { 1977 type inet:ip-address; 1978 config "false"; 1979 description 1980 "Destination address as per RFC5884. 1981 Needed if IP encapsulation is used"; 1982 } 1983 } 1985 augment "/bfd:bfd" { 1986 description "BFD augmentation for MPLS"; 1987 container mpls { 1988 description "BFD MPLS top level container"; 1990 container config { 1991 description "BFD MPLS configuration container"; 1993 container egress { 1994 description "Egress configuration"; 1996 uses bfd:bfd-grouping-base-cfg-parms; 1998 uses bfd:bfd-auth-parms; 1999 } 2000 } 2002 container oper { 2003 config "false"; 2004 description "BFD MPLS operational container"; 2005 uses bfd:bfd-session-statistics; 2006 } 2007 } 2008 } 2010 augment "/ni:network-instances/ni:network-instance/bfd:bfd" { 2011 description "BFD augmentation for MPLS."; 2013 container mpls { 2014 description "BFD MPLS container"; 2016 container config { 2017 description "BFD MPLS configuration container"; 2019 container session-cfg { 2020 description "BFD MPLS session configuration"; 2021 list sessions { 2022 key "mpls-fec"; 2023 description "List of BFD MPLS sessions"; 2024 leaf mpls-fec { 2025 type inet:ip-address; 2026 description "MPLS FEC"; 2027 } 2029 uses bfd:bfd-grouping-common-cfg-parms; 2030 } 2031 } 2032 } 2034 container oper { 2035 config "false"; 2036 description "BFD MPLS operational container"; 2037 uses bfd:bfd-session-statistics; 2039 list session-group { 2040 key "mpls-fec"; 2041 description 2042 "BFD MPLS group of sessions. A group of sessions is" + 2043 "for 1 FEC, each session has a different field in " + 2044 "UDP/IP hdr for ECMP."; 2045 leaf mpls-fec { 2046 type inet:ip-address; 2047 description "MPLS-FEC"; 2048 } 2049 list sessions { 2050 key "local-discriminator"; 2051 description 2052 "The BFD sessions for an MPLS FEC. Local " + 2053 "discriminator is unique for each session in the " + 2054 "group."; 2055 uses bfd:bfd-all-session; 2057 uses bfd-mpls:bfd-mpls-dest-address; 2058 } 2059 } 2060 } 2061 } 2062 } 2064 notification bfd-mpls-notification { 2065 description 2066 "Notification for BFD over MPLS FEC session state change. " + 2067 "An implementation may rate-limit notifications, e.g. when a" + 2068 "session is continuously changing state."; 2070 uses bfd:bfd-notification-parms; 2072 leaf network-instance { 2073 type string; 2074 description "Network instance"; 2075 } 2077 leaf mpls-dest-address { 2078 type inet:ip-address; 2079 description 2080 "Destination address as per RFC5884. 2081 Needed if IP encapsulation is used"; 2082 } 2083 } 2084 } 2085 2087 2.18. BFD over MPLS-TE Yang Module 2089 file "ietf-bfd-mpls-te@2016-02-04.yang" 2090 module ietf-bfd-mpls-te { 2091 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; 2092 // replace with IANA namespace when assigned 2093 prefix "bfd-mpls-te"; 2095 import ietf-bfd { 2096 prefix "bfd"; 2097 } 2098 import ietf-bfd-mpls { 2099 prefix "bfd-mpls"; 2100 } 2102 import ietf-te { 2103 prefix "te"; 2104 } 2106 organization "IETF BFD Working Group"; 2108 contact 2109 "WG Web: 2110 WG List: 2111 WG Chair: Jeff Haas 2112 WG Chair: Reshad Rahman 2113 Editor: Lianshu Zheng and Reshad Rahman"; 2115 description 2116 "This module contains the YANG definition for BFD parameters for 2117 MPLS Traffic Engineering as per RFC5884."; 2119 revision 2016-02-04 { 2120 description "Initial revision."; 2121 reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; 2122 } 2124 augment "/bfd:bfd" { 2125 description "BFD augmentation for MPLS-TE"; 2126 container mpls-te { 2127 description "BFD MPLS-TE top level container"; 2129 container config { 2130 description "BFD MPLS-TE configuration container"; 2132 container egress { 2133 description "Egress configuration"; 2135 uses bfd:bfd-grouping-base-cfg-parms; 2137 uses bfd:bfd-auth-parms; 2138 } 2139 } 2141 container oper { 2142 config "false"; 2143 description "BFD operational container"; 2144 uses bfd:bfd-session-statistics; 2145 } 2147 } 2148 } 2150 augment "/te:te/te:tunnels/te:tunnel/te:config" { 2151 description "BFD configuration on MPLS-TE tunnel."; 2153 uses bfd:bfd-grouping-common-cfg-parms; 2155 uses bfd-mpls:bfd-encap-cfg; 2156 } 2158 augment "/te:te/te:lsps-state/te:lsp" { 2159 when "/te:te/te:lsps-state/te:lsp/te:origin-type != 'transit'" { 2160 description "BFD information not needed at transit points"; 2161 } 2162 description "BFD state information on MPLS-TE LSP."; 2164 uses bfd:bfd-all-session; 2166 uses bfd-mpls:bfd-mpls-dest-address; 2167 } 2169 notification bfd-mpls-te-notification { 2170 description 2171 "Notification for BFD over MPLS-TE session state change. " + 2172 "An implementation may rate-limit notifications, e.g. when a" + 2173 "session is continuously changing state."; 2175 uses bfd:bfd-notification-parms; 2177 uses bfd-mpls:bfd-mpls-dest-address; 2179 leaf tunnel-name { 2180 type string; 2181 description "MPLS-TE tunnel on which BFD was running."; 2182 } 2183 } 2184 } 2185 2187 2.19. Security Considerations 2189 The YANG module defined in this memo is designed to be accessed via 2190 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2191 secure transport layer and the mandatory to implement secure 2192 transport is SSH [RFC6242]. The NETCONF access control model 2193 [RFC6536] provides the means to restrict access for particular 2194 NETCONF users to a pre-configured subset of all available NETCONF 2195 protocol operations and content. 2197 The YANG module has writeable data nodes which can be used for 2198 creation of BFD sessions and modification of BFD session parameters. 2199 The system should "police" creation of BFD sessions to prevent new 2200 sessions from causing existing BFD sessions to fail. For BFD session 2201 modification, the BFD protocol has mechanisms in place which allow 2202 for in service modification. 2204 2.20. IANA Considerations 2206 The IANA is requested to as assign a new new namespace URI from the 2207 IETF XML registry. 2209 URI:TBD 2211 2.21. Acknowledgements 2213 We would also like to thank Nobo Akiya and Jeff Haas for their 2214 encouragement on this work. We would also like to thank Rakesh 2215 Gandhi and Tarek Saad for their help on the MPLS-TE model. 2217 3. References 2219 3.1. Normative References 2221 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2222 Requirement Levels", BCP 14, RFC 2119, 2223 DOI 10.17487/RFC2119, March 1997, 2224 . 2226 [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., 2227 "MPLS Generic Associated Channel", RFC 5586, 2228 DOI 10.17487/RFC5586, June 2009, 2229 . 2231 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2232 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 2233 . 2235 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2236 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, 2237 DOI 10.17487/RFC5881, June 2010, 2238 . 2240 [RFC5882] Katz, D. and D. Ward, "Generic Application of 2241 Bidirectional Forwarding Detection (BFD)", RFC 5882, 2242 DOI 10.17487/RFC5882, June 2010, 2243 . 2245 [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2246 (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, 2247 June 2010, . 2249 [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, 2250 "Bidirectional Forwarding Detection (BFD) for MPLS Label 2251 Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, 2252 June 2010, . 2254 [RFC5885] Nadeau, T., Ed. and C. Pignataro, Ed., "Bidirectional 2255 Forwarding Detection (BFD) for the Pseudowire Virtual 2256 Circuit Connectivity Verification (VCCV)", RFC 5885, 2257 DOI 10.17487/RFC5885, June 2010, 2258 . 2260 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2261 the Network Configuration Protocol (NETCONF)", RFC 6020, 2262 DOI 10.17487/RFC6020, October 2010, 2263 . 2265 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2266 and A. Bierman, Ed., "Network Configuration Protocol 2267 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2268 . 2270 [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., 2271 Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional 2272 Forwarding Detection (BFD) on Link Aggregation Group (LAG) 2273 Interfaces", RFC 7130, DOI 10.17487/RFC7130, February 2274 2014, . 2276 3.2. Informative References 2278 [I-D.ietf-netconf-restconf] 2279 Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 2280 Protocol", draft-ietf-netconf-restconf-14 (work in 2281 progress), June 2016. 2283 [I-D.ietf-netmod-routing-cfg] 2284 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 2285 Management", draft-ietf-netmod-routing-cfg-22 (work in 2286 progress), July 2016. 2288 [I-D.ietf-rtgwg-ni-model] 2289 Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic, 2290 "Network Instance Model", draft-ietf-rtgwg-ni-model-00 2291 (work in progress), June 2016. 2293 [I-D.ietf-rtgwg-yang-key-chain] 2294 Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. 2295 Yang, "Routing Key Chain YANG Data Model", draft-ietf- 2296 rtgwg-yang-key-chain-06 (work in progress), June 2016. 2298 [I-D.ietf-teas-yang-te] 2299 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, 2300 X., Jones, R., and B. Wen, "A YANG Data Model for Traffic 2301 Engineering Tunnels and Interfaces", draft-ietf-teas-yang- 2302 te-03 (work in progress), March 2016. 2304 Appendix A. Change log 2306 RFC Editor: Remove this section upon publication as an RFC. 2308 A.1. Changes between versions -01 and -02 2310 o Replace routing-instance, which has been removed from 2311 [I-D.ietf-netmod-routing-cfg], with network-instance from 2312 [I-D.ietf-rtgwg-ni-model] 2314 A.2. Changes between versions -00 and -01 2316 o Remove BFD configuration parameters from BFD clients, all BFD 2317 configuration parameters in BFD 2319 o YANG module split in multiple YANG modules (one per type of 2320 forwarding path) 2322 o For BFD over MPLS-TE we augment MPLS-TE model 2324 o For BFD authentication we now use key-chain in 2325 [I-D.ietf-rtgwg-yang-key-chain] 2327 Authors' Addresses 2329 Lianshu Zheng (editor) 2330 Huawei Technologies 2331 China 2333 Email: vero.zheng@huawei.com 2334 Reshad Rahman (editor) 2335 Cisco Systems 2336 Canada 2338 Email: rrahman@cisco.com 2340 Santosh Pallagatti 2341 India 2343 Email: santosh.pallagatti@gmail.com 2345 Mahesh Jethanandani 2346 Cisco Systems 2348 Email: mjethanandani@gmail.com 2350 Greg Mirsky 2351 Ericsson 2353 Email: gregory.mirsky@ericsson.com