idnits 2.17.1 draft-ietf-bfd-yang-01.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 509 has weird spacing: '...nterval uin...' == Line 527 has weird spacing: '...ce-addr ine...' == Line 592 has weird spacing: '...nterval uin...' == Line 709 has weird spacing: '...nterval uin...' == Line 732 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 (February 17, 2016) is 2992 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 2203, but not defined == Missing Reference: 'RFC6536' is mentioned on line 2204, but not defined ** Obsolete undefined reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: A later version (-18) exists of draft-ietf-netconf-restconf-09 == Outdated reference: A later version (-25) exists of draft-ietf-netmod-routing-cfg-20 == Outdated reference: A later version (-24) exists of draft-ietf-rtgwg-yang-key-chain-01 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-02 Summary: 1 error (**), 0 flaws (~~), 14 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: August 20, 2016 Cisco Systems 6 S. Pallagatti 8 M. Jethanandani 9 Cisco Systems 10 G. Mirsky 11 Ericsson 12 February 17, 2016 14 Yang Data Model for Bidirectional Forwarding Detection (BFD) 15 draft-ietf-bfd-yang-01.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 August 20, 2016. 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 . . . . . . . . . . . . . . 32 85 2.15. BFD IP multi-hop Yang Module . . . . . . . . . . . . . . 35 86 2.16. BFD over LAG Yang Module . . . . . . . . . . . . . . . . 38 87 2.17. BFD over MPLS Yang Module . . . . . . . . . . . . . . . . 41 88 2.18. BFD over MPLS-TEYang Module . . . . . . . . . . . . . . . 45 89 2.19. Security Considerations . . . . . . . . . . . . . . . . . 47 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 . . . . . . . . . . . . . . . . . 49 95 Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 49 96 A.1. Changes between versions -00 and -01 . . . . . . . . . . 49 97 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 99 1. Introduction 101 YANG [RFC6020] is a data definition language that was introduced to 102 define the contents of a conceptual data store that allows networked 103 devices to be managed using NETCONF [RFC6241]. YANG is proving 104 relevant beyond its initial confines, as bindings to other interfaces 105 (e.g RESTCONF [I-D.ietf-netconf-restconf]) and encodings other than 106 XML (e.g JSON) are being defined. Furthermore, YANG data models can 107 be used as the basis of implementation for other interfaces, such as 108 CLI and programmatic APIs. 110 This document defines a YANG data model that can be used to configure 111 and manage Bidirectional Forwarding Detection (BFD)[RFC5880]. BFD is 112 a network protocol which is used for liveness detection of arbitrary 113 paths between systems. Some examples of different types of paths 114 over which we have BFD: 116 1) Two systems directly connected via IP. This is known as BFD over 117 single-hop IP [RFC5881] 119 2) Two systems connected via multiple hops [RFC5883] 121 3) Two systems connected via MPLS Label Switched Paths (LSPs) 122 [RFC5884] 124 4) Two systems connected via pseudowires (PWs), this is known as 125 Virtual Circuit Connectivity Verification (VCCV) [RFC5885] 127 5) Two systems connected via a Link Aggregation Group (LAG) interface 128 [RFC7130] 130 BFD typically does not operate on its own. Various control 131 protocols, also known as BFD clients, use the services provided by 132 BFD for their own operation [RFC5882]. The obvious candidates which 133 use BFD are those which do not have Hellos to detect failures, e.g. 134 static routes, and routing protocols whose Hellos do not support sub- 135 second failure detection, e.g. OSPF and IS-IS. 137 1.1. Contributors 139 2. Design of the Data Model 141 Since BFD is used for liveliness detection of various forwarding 142 paths, there is no uniform key to identify a BFD session. So the BFD 143 data model is split in multiple YANG modules where each module 144 corresponds to one type of forwarding path. For example, BFD for IP 145 single-hop is in one YANG module and BFD for MPLS-TE is in another 146 YANG module. The main difference between these modules is how a BFD 147 session is uniquely identified, i.e the key for the list containing 148 the BFD sessions for that forwarding path. To avoid duplication of 149 BFD definitions, we have common types and groupings which are used by 150 all the modules. 152 The new top-level container "bfd" is augmented by all the YANG 153 modules for their respective specific information. 155 The "routing-protocol" data node in [I-D.ietf-netmod-routing-cfg] has 156 been augmented with the "bfd" data node. Where appropriate for 157 specific types of forwarding path, the respective BFD YANG modules 158 follow a VRF-centric model by augmenting that new "bfd" node under 159 "routing-protocol". 161 Each node in every "bfd" sub-tree has a "config" node and an "oper" 162 node. 164 2.1. Design of Configuration Model 166 The configuration model consists mainly of the parameters specified 167 in [RFC5880]. Some examples are desired minimum transmit interval, 168 required minimum receive interval, detection multiplier, etc 170 Some implementations have BFD session configuration under the BFD 171 clients. For example, BFD session configuration is under routing 172 applications such as OSPF, IS-IS, BGP etc. Other implementations 173 have BFD session configuration centralized under BFD, i.e. outside 174 the multiple BFD clients. 176 The BFD parameters of interest to a BFD client are mainly the 177 multiplier and interval(s) since those parameters impact the 178 convergence time of the BFD clients when a failure occurs. Other 179 parameters such as BFD authentication are not specific to the 180 requirements of the BFD client. To avoid splitting the BFD 181 configuration between BFD clients and BFD, all the configuration is 182 under BFD. The only BFD configuration under BFD clients should be an 183 "enable" knob which makes those clients react to BFD liveliness 184 detection events. 186 2.1.1. Common BFD configuration parameters 188 The basic BFD configuration parameters are: 190 local-multiplier 191 This is the detection time multiplier as defined in 192 [RFC5880]. 194 desired-min-tx-interval 195 This is the Desired Min TX Interval as defined in [RFC5880]. 197 required-min-rx-interval 198 This is the Required Min RX Interval as defined in [RFC5880]. 200 Although [RFC5880] allows for different values for transmit and 201 receive intervals, some implementations allow users to specify just 202 one interval which is used for both transmit and receive intervals or 203 separate values for transmit and receive intervals. The BFD YANG 204 model supports this: there is a choice between "min-interval", used 205 for both transmit and receive intervals, and "desired-min-tx- 206 interval" and "required-min-rx-interval". This is supported via a 207 grouping which is used by the YANG modules for the various forwarding 208 paths. There are also intervals for the echo function (if 209 supported): 211 desired-min-echo-tx-interval 212 This is the minimum interval that the local system would like 213 to use when transmitting BFD echo packets. If 0, the echo 214 function as defined in [RFC5880] is disabled. 216 required-min-echo-rx-interval 217 This is the Required Min Echo RX Interval as defined in 218 [RFC5880]. 220 For BFD authentication we have: 222 key-chain 223 This is a reference to key-chain defined in 224 [I-D.ietf-rtgwg-yang-key-chain]. The keys, cryptographic 225 algotihms, key lifetime etc are all defined in the key-chain 226 model. 228 replay-protection 229 This specifies meticulous v/s non-meticulous mode as per 230 [RFC5880]. 232 2.1.2. Single-hop IP 234 For single-hop IP, there is an augment of the "bfd" data node under 235 "routing-protocol" in Section 2. We have a list of IP single-hop 236 sessions where each session is uniquely identified by the interface 237 and destination address pair. For the configuration parameters we 238 use what is defined in Section 2.1.1 240 2.1.3. Multi-hop IP 242 For multi-hop IP, there is an augment of the "bfd" data node under 243 "routing-protocol" in Section 2. 245 We have a list for BFD sessions over multi-hop IP. The key consists 246 of: 248 source address 249 Address belonging to the local system as per [RFC5883] 251 destination address 252 Address belonging to the remote system as per [RFC5883] 254 Since we are following a VRF-centric model we do not need a VRF field 255 in the key. 257 For the configuration parameters we use what is defined in 258 Section 2.1.1 260 Here are some extra parameters: 262 tx-ttl 263 TTL of outgoing BFD control packets. 265 rx-ttl 266 Minimum TTL of incoming BFD control packets. 268 2.1.4. MPLS Traffic Engineering Tunnels 270 For MPLS-TE tunnels, BFD is configured under the MPLS-TE tunnel since 271 the desired failure detection parameters is a property of the MPLS-TE 272 tunnel. This is achieved by augmenting the MPLS-TE data model in 273 [I-D.ietf-teas-yang-te]. For BFD parameters which are specific to 274 the TE application, e.g. whether to tear down the tunnel in the event 275 of a BFD session failure, these parameters will be defined in the 276 YANG model of the MPLS-TE application. 278 On top of the usual BFD parameters, we have the following per MPLS-TE 279 tunnel: 281 encap 282 Encapsulation for the BFD packets: choice between IP, G-ACh 283 and IP with G-ACh as per [RFC5586] 285 For general MPLS-TE data, "mpls-te" data node is added under the top- 286 level "bfd" node in Section 2. Since some MPLS-TE tunnels are uni- 287 directional there is no MPLS-TE configuration for these tunnels on 288 the egress node (note that this does not apply to bi-directional 289 MPLS-TP tunnels). The BFD parameters for the egress node are added 290 under "mpls-te". 292 2.1.5. MPLS Label Switched Paths 294 Here we address MPLS LSPs whose FEC is an IP address. The top-level 295 "bfd" node in Section 2 is augmented with "mpls" which contains a 296 list of sessions uniquely identified by an IP address. 298 Since these LSPs are uni-directional there is no LSP configuration on 299 the egress node. The BFD parameters for the egress node are added 300 under "mpls". 302 2.1.6. Link Aggregation Groups 304 Per [RFC7130], configuring BFD on LAG consists of having micro-BFD 305 sessions on each LAG member link. Since the BFD parameters are an 306 attribute of the LAG, they should be under the LAG. However there is 307 no LAG YANG model which we can augment. So a "lag" data node is 308 added to the top-level "bfd" node in Section 2, the configuration is 309 per-LAG: we have a list of LAGs. The destination IP address of the 310 micro-BFD sessions is configured per-LAG and per address-family (IPv4 311 and IPv6) 313 2.2. Design of Operational Model 315 The operational model contains both the overall statistics of BFD 316 sessions running on the device and the per session operational 317 information. 319 The overall statistics of BFD sessions consist of number of BFD 320 sessions, number of BFD sessions up etc. This information is 321 available globally (i.e. for all BFD sessions) under the top level 322 "bfd" node in Section 2 and also per type of forwarding path. 324 For each BFD session, mainly three categories of operational items 325 are shown. The fundamental information of a BFD session such as the 326 local discriminator, remote discriminator and the capability of 327 supporting demand detect mode are shown in the first category. The 328 second category includes a BFD session running information, e.g. the 329 remote BFD state and the diagnostic code received. Another example 330 is the actual transmit interval between the control packets, which 331 may be different from the desired minimum transmit interval 332 configured, is shown in this category. Similar examples are actual 333 received interval between the control packets and the actual transmit 334 interval between the echo packets. The third category contains the 335 detailed statistics of the session, e.g. when the session 336 transitioned up/down and how long it has been in that state. 338 For some session types, there may be more than 1 session on the 339 virtual path to the destination. For example, with IP multi-hop 340 there could be multiple BFD sessions from the source to the same 341 destination to test the various paths (ECMP) to the destination. 342 Each of the BFD sessions on the same virtual path is uniquely 343 identified by the local discriminator. 345 2.3. Notifications 347 This YANG model defines notifications to inform clients of BFD of 348 important events detected during the protocol operation. Pair of 349 local and remote discriminator identifies a BFD session on local 350 system. Notifications also give more important details about BFD 351 sessions; e.g. new state, time in previous state, routing-instance 352 and the reason that the BFD session state changed. The notifications 353 are defined for each type of forwarding path but use groupings for 354 common information. 356 2.4. RPC Operations 358 TBD 360 2.5. BFD top level hierarchy 362 At the top level there is no configuration data, only operational 363 data. The operational data consist of overall BFD session statistics 364 globally and per routing-instance 365 module: ietf-bfd 366 +--rw bfd! 367 +--rw config 368 +--ro oper 369 +--ro bfd-session-statistics 370 +--ro session-count? uint32 371 +--ro session-up-count? uint32 372 +--ro session-down-count? uint32 373 +--ro session-admin-down-count? uint32 374 augment /rt:routing/rt:routing-instance 375 /rt:routing-protocols/rt:routing-protocol: 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 routing-instance. Overall BFD IP 389 single-hop session statistics are available per routing-instance and 390 globally (for all routing 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 /rt:routing/rt:routing-instance/rt:routing-protocols 403 /rt:routing-protocol/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 routing-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 routing-instance and globally (for all routing 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 /rt:routing/rt:routing-instance/rt:routing-protocols 498 /rt:routing-protocol/bfd:bfd: 499 +--rw ip-mh 500 +--rw config 501 | +--rw session-cfg 502 | +--rw sessions* [source-addr dest-addr] 503 | +--rw source-addr inet:ip-address 504 | +--rw dest-addr inet:ip-address 505 | +--rw local-multiplier? bfd-multiplier 506 | +--rw (interval-config-type)? 507 | | +--:(tx-rx-intervals) 508 | | | +--rw desired-min-tx-interval uint32 509 | | | +--rw required-min-rx-interval uint32 510 | | +--:(single-interval) 511 | | +--rw min-interval uint32 512 | +--rw demand-enabled? boolean 513 | +--rw admin-down? boolean 514 | +--rw authentication-parms! {bfd-authentication}? 515 | | +--rw key-chain? kc:key-chain-ref 516 | | +--rw replay-protection? identityref 517 | +--rw tx-ttl? bfd:ttl 518 | +--rw rx-ttl bfd:ttl 519 +--ro oper 520 +--ro bfd-session-statistics 521 | +--ro bfd-session-statistics 522 | +--ro session-count? uint32 523 | +--ro session-up-count? uint32 524 | +--ro session-down-count? uint32 525 | +--ro session-admin-down-count? uint32 526 +--ro session-group* [source-addr dest-addr] 527 +--ro source-addr inet:ip-address 528 +--ro dest-addr inet:ip-address 529 +--ro sessions* [local-discriminator] 530 +--ro ttl? bfd:ttl 531 +--ro path-type? identityref 532 +--ro local-discriminator bfd-discriminator 533 +--ro remote-discriminator? bfd-discriminator 534 +--ro remote-multiplier? bfd-multiplier 535 +--ro out-interface? if:interface-ref 536 +--ro demand-capability? boolean 537 +--ro source-port? inet:port-number 538 +--ro dest-port? inet:port-number 539 +--ro session-running 540 | +--ro session-index? uint32 541 | +--ro local-state? bfd-state 542 | +--ro remote-state? bfd-state 543 | +--ro local-diagnostic? bfd-diagnostic 544 | +--ro remote-diagnostic? bfd-diagnostic 545 | +--ro detection-mode? enumeration 546 | +--ro negotiated-tx-interval? uint32 547 | +--ro negotiated-rx-interval? uint32 548 | +--ro echo-tx-interval-in-use? uint32 549 | +--ro detection-time? uint32 550 +--ro sesssion-statistics 551 +--ro create-time? yang:date-and-time 552 +--ro last-down-time? yang:date-and-time 553 +--ro last-up-time? yang:date-and-time 554 +--ro down-count? uint32 555 +--ro admin-down-count? uint32 556 +--ro receive-packet-count? uint64 557 +--ro send-packet-count? uint64 558 +--ro receive-bad-packet? uint64 559 +--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 routing-instance? rt:routing-instance-ref 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 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 /rt:routing/rt:routing-instance/rt:routing-protocols 722 /rt:routing-protocol/bfd:bfd: 723 +--rw mpls 724 +--rw config 725 | +--rw session-cfg 726 | +--rw sessions* [mpls-fec] 727 | +--rw mpls-fec inet:ip-address 728 | +--rw local-multiplier? bfd-multiplier 729 | +--rw (interval-config-type)? 730 | | +--:(tx-rx-intervals) 731 | | | +--rw desired-min-tx-interval uint32 732 | | | +--rw required-min-rx-interval uint32 733 | | +--:(single-interval) 734 | | +--rw min-interval uint32 735 | +--rw demand-enabled? boolean 736 | +--rw admin-down? boolean 737 | +--rw authentication-parms! {bfd-authentication}? 738 | +--rw key-chain? kc:key-chain-ref 739 | +--rw replay-protection? identityref 740 +--ro oper 741 +--ro bfd-session-statistics 742 | +--ro session-count? uint32 743 | +--ro session-up-count? uint32 744 | +--ro session-down-count? uint32 745 | +--ro session-admin-down-count? uint32 746 +--ro session-group* [mpls-fec] 747 +--ro mpls-fec inet:ip-address 748 +--ro sessions* [local-discriminator] 749 +--ro path-type? identityref 750 +--ro local-discriminator bfd-discriminator 751 +--ro remote-discriminator? bfd-discriminator 752 +--ro remote-multiplier? bfd-multiplier 753 +--ro out-interface? if:interface-ref 754 +--ro demand-capability? boolean 755 +--ro source-port? inet:port-number 756 +--ro dest-port? inet:port-number 757 +--ro session-running 758 | +--ro session-index? uint32 759 | +--ro local-state? bfd-state 760 | +--ro remote-state? bfd-state 761 | +--ro local-diagnostic? bfd-diagnostic 762 | +--ro remote-diagnostic? bfd-diagnostic 763 | +--ro detection-mode? enumeration 764 | +--ro negotiated-tx-interval? uint32 765 | +--ro negotiated-rx-interval? uint32 766 | +--ro echo-tx-interval-in-use? uint32 767 | +--ro detection-time? uint32 768 +--ro sesssion-statistics 769 | +--ro create-time? yang:date-and-time 770 | +--ro last-down-time? yang:date-and-time 771 | +--ro last-up-time? yang:date-and-time 772 | +--ro down-count? uint32 773 | +--ro admin-down-count? uint32 774 | +--ro receive-packet-count? uint64 775 | +--ro send-packet-count? uint64 776 | +--ro receive-bad-packet? uint64 777 | +--ro send-failed-packet? uint64 778 +--ro mpls-dest-address? inet:ip-address 779 notifications: 780 +---n bfd-mpls-notification 781 +--ro local-discr? bfd-discriminator 782 +--ro remote-discr? bfd-discriminator 783 +--ro new-state? bfd-state 784 +--ro state-change-reason? string 785 +--ro time-in-previous-state? string 786 +--ro dest-addr? inet:ip-address 787 +--ro source-addr? inet:ip-address 788 +--ro session-index? uint32 789 +--ro path-type? identityref 790 +--ro routing-instance? rt:routing-instance-ref 791 +--ro mpls-dest-address? inet:ip-address 793 2.10. BFD over MPLS-TE hierarchy 795 The MPLS-TE YANG model [I-D.ietf-teas-yang-te] is augmented. BFD is 796 configured per MPLS-TE tunnel, and BFD session operational data is 797 provided per MPLS-TE LSP. 799 module: ietf-bfd-mpls-te 800 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-02-17.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"; 896 } 898 import ietf-inet-types { 899 prefix "inet"; 900 } 902 import ietf-yang-types { 903 prefix "yang"; 904 } 906 import ietf-routing { 907 prefix "rt"; 908 } 910 import ietf-key-chain { 911 prefix "kc"; 912 } 914 organization "IETF BFD Working Group"; 916 contact 917 "WG Web: 918 WG List: 919 WG Chair: Jeff Haas 920 WG Chair: Reshad Rahman 921 Editor: Lianshu Zheng and Reshad Rahman"; 923 description 924 "This module contains the YANG definition for BFD parameters as 925 per RFC5880."; 927 revision 2016-02-17 { 928 description 929 "* Split in several modules 930 * This module contains common definitions and 931 summary information."; 932 reference "RFC XXXX: A YANG data model for BFD"; 933 } 935 revision 2015-07-01 { 936 description "Initial revision."; 937 reference "RFC XXXX: A YANG data model for BFD"; 938 } 940 identity bfd { 941 base "rt:routing-protocol"; 942 description "BFD protocol"; 943 } 944 typedef bfd-discriminator { 945 type uint32 { 946 range 1..4294967295; 947 } 948 description "BFD discriminator"; 949 } 951 typedef bfd-diagnostic { 952 type enumeration { 953 enum none { 954 value 0; 955 description "None"; 956 } 957 enum controlExpiry { 958 value 1; 959 description "Control timer expiry"; 960 } 961 enum echoFailed { 962 value 2; 963 description "Echo failure"; 964 } 965 enum nborDown { 966 value 3; 967 description "Neighbor down"; 968 } 969 enum fwdingReset { 970 value 4; 971 description "Forwarding reset"; 972 } 973 enum pathDown { 974 value 5; 975 description "Path down"; 976 } 977 enum concPathDown { 978 value 6; 979 description "Concatenated path down"; 980 } 981 enum adminDown { 982 value 7; 983 description "Admin down"; 984 } 985 enum reverseConcPathDown { 986 value 8; 987 description "Reverse concatenated path down"; 988 } 989 } 990 description "BFD diagnostic"; 991 } 992 typedef bfd-state { 993 type enumeration { 994 enum adminDown { 995 value 0; 996 description "admindown"; 997 } 998 enum down { 999 value 1; 1000 description "down"; 1001 } 1002 enum init { 1003 value 2; 1004 description "init"; 1005 } 1006 enum up { 1007 value 3; 1008 description "up"; 1009 } 1010 } 1011 description "BFD state"; 1012 } 1014 typedef bfd-multiplier { 1015 type uint8 { 1016 range 1..255; 1017 } 1018 description "Multiplier"; 1019 } 1021 typedef ttl { 1022 type uint8 { 1023 range 1..255; 1024 } 1025 description "Time To Live"; 1026 } 1028 identity bfd-path-type { 1029 description 1030 "Base identity for BFD path type. The session type indicates 1031 the type of path on which BFD is running"; 1032 } 1033 identity bfd-path-ip-sh { 1034 base bfd-path-type; 1035 description "BFD on IP single hop"; 1036 } 1037 identity bfd-path-ip-mh { 1038 base bfd-path-type; 1039 description "BFD on IP multi hop"; 1041 } 1042 identity bfd-path-mpls-te { 1043 base bfd-path-type; 1044 description "BFD on MPLS Traffic Engineering"; 1045 } 1046 identity bfd-path-mpls-lsp { 1047 base bfd-path-type; 1048 description "BFD on MPLS Label Switched Path"; 1049 } 1050 identity bfd-path-lag { 1051 base bfd-path-type; 1052 description "Micro-BFD on LAG member links"; 1053 } 1055 identity bfd-encap-type { 1056 description 1057 "Base identity for BFD encapsulation type."; 1058 } 1059 identity bfd-encap-ip { 1060 base bfd-encap-type; 1061 description "BFD with IP encapsulation."; 1062 } 1064 feature bfd-authentication { 1065 description "BFD authentication supported"; 1066 } 1068 identity bfd-auth-replay-protection { 1069 description 1070 "Base identity for BFD authentication replay protection"; 1071 } 1072 identity bfd-auth-replay-protection-non-meticulous { 1073 base bfd-auth-replay-protection; 1074 description "Non-meticulous (see RFC5880)"; 1075 } 1076 identity bfd-auth-replay-protection-meticulous { 1077 base bfd-auth-replay-protection; 1078 description "Meticulous (see RFC5880)"; 1079 } 1081 grouping bfd-auth-parms { 1082 description 1083 "Grouping for BFD authentication parameters 1084 (see section 6.7 of RFC5880)."; 1085 container authentication-parms { 1086 if-feature bfd-authentication; 1087 presence 1088 "Enables BFD authentication (see section 6.7 of RFC5880)."; 1090 description "Parameters for BFD authentication"; 1092 leaf key-chain { 1093 type kc:key-chain-ref; 1094 description "Name of key-chain"; 1095 } 1097 leaf replay-protection { 1098 type identityref { 1099 base bfd-auth-replay-protection; 1100 } 1101 description 1102 "Protection against replays"; 1103 } 1104 } 1105 } 1107 grouping bfd-grouping-base-cfg-parms { 1108 description "BFD grouping for base config parameters"; 1109 leaf local-multiplier { 1110 type bfd-multiplier; 1111 default 3; 1112 description "Multiplier transmitted by local system"; 1113 } 1115 choice interval-config-type { 1116 description 1117 "Two interval values or 1 value used for both tx and rx"; 1118 case tx-rx-intervals { 1119 leaf desired-min-tx-interval { 1120 type uint32; 1121 units microseconds; 1122 mandatory true; 1123 description 1124 "Desired minimum transmit interval of control packets"; 1125 } 1127 leaf required-min-rx-interval { 1128 type uint32; 1129 units microseconds; 1130 mandatory true; 1131 description 1132 "Required minimum receive interval of control packets"; 1133 } 1134 } 1135 case single-interval { 1136 leaf min-interval { 1137 type uint32; 1138 units microseconds; 1139 mandatory true; 1140 description 1141 "Desired minimum transmit interval and required " + 1142 "minimum receive interval of control packets"; 1143 } 1144 } 1145 } 1146 } 1148 grouping bfd-grouping-common-cfg-parms { 1149 description "BFD grouping for common config parameters"; 1151 uses bfd-grouping-base-cfg-parms; 1153 leaf demand-enabled { 1154 type boolean; 1155 default false; 1156 description "To enable demand mode"; 1157 } 1159 leaf admin-down { 1160 type boolean; 1161 default false; 1162 description 1163 "Is the BFD session administratively down"; 1164 } 1165 uses bfd-auth-parms; 1166 } 1168 grouping bfd-grouping-echo-cfg-parms { 1169 description "BFD grouping for echo config parameters"; 1170 leaf desired-min-echo-tx-interval { 1171 type uint32; 1172 units microseconds; 1173 default 0; 1174 description "Desired minumum transmit interval for echo"; 1175 } 1177 leaf required-min-echo-rx-interval { 1178 type uint32; 1179 units microseconds; 1180 default 0; 1181 description "Required minimum receive interval for echo"; 1182 } 1183 } 1184 grouping bfd-client-base-cfg-parms { 1185 description 1186 "BFD grouping which could be used by a protocol which 1187 is a client of BFD to enable its use of BFD"; 1189 container bfd-cfg { 1190 description "BFD configuration"; 1191 leaf enabled { 1192 type boolean; 1193 default false; 1194 description "True if BFD is enabled"; 1195 } 1196 } 1197 } 1199 grouping bfd-all-session { 1200 description "BFD session operational information"; 1201 leaf path-type { 1202 type identityref { 1203 base bfd-path-type; 1204 } 1205 description 1206 "BFD session type, this indicates the path type that BFD is 1207 running on"; 1208 } 1209 leaf local-discriminator { 1210 type bfd-discriminator; 1211 description "Local discriminator"; 1212 } 1213 leaf remote-discriminator { 1214 type bfd-discriminator; 1215 description "Remote discriminator"; 1216 } 1217 leaf remote-multiplier { 1218 type bfd-multiplier; 1219 description "Remote multiplier"; 1220 } 1221 leaf out-interface { 1222 type if:interface-ref; 1223 description "Outgoing physical interface name"; 1224 } 1225 leaf demand-capability { 1226 type boolean; 1227 description "Local demand mode capability"; 1228 } 1229 leaf source-port { 1230 type inet:port-number; 1231 description "Source UDP port"; 1233 } 1234 leaf dest-port { 1235 type inet:port-number; 1236 description "Destination UDP port"; 1237 } 1239 container session-running { 1240 description "BFD session running information"; 1241 leaf session-index { 1242 type uint32; 1243 description 1244 "An index used to uniquely identify BFD sessions"; 1245 } 1246 leaf local-state { 1247 type bfd-state; 1248 description "Local state"; 1249 } 1250 leaf remote-state { 1251 type bfd-state; 1252 description "Remote state"; 1253 } 1254 leaf local-diagnostic { 1255 type bfd-diagnostic; 1256 description "Local diagnostic"; 1257 } 1258 leaf remote-diagnostic { 1259 type bfd-diagnostic; 1260 description "Remote diagnostic"; 1261 } 1262 leaf detection-mode { 1263 type enumeration { 1264 enum async-with-echo { 1265 value "1"; 1266 description "Async with echo"; 1267 } 1268 enum async-without-echo { 1269 value "2"; 1270 description "Async without echo"; 1271 } 1272 enum demand-with-echo { 1273 value "3"; 1274 description "Demand with echo"; 1275 } 1276 enum demand-without-echo { 1277 value "4"; 1278 description "Demand without echo"; 1279 } 1280 } 1281 description "Detection mode"; 1282 } 1283 leaf negotiated-tx-interval { 1284 type uint32; 1285 units microseconds; 1286 description "Negotiated transmit interval"; 1287 } 1288 leaf negotiated-rx-interval { 1289 type uint32; 1290 units microseconds; 1291 description "Negotiated receive interval"; 1292 } 1293 leaf echo-tx-interval-in-use { 1294 when "../../path-type = 'bfd-path-ip-sh'" { 1295 description 1296 "Echo is supported for IP single-hop only."; 1297 } 1298 type uint32; 1299 units microseconds; 1300 description "Echo transmit interval in use"; 1301 } 1302 leaf detection-time { 1303 type uint32; 1304 units microseconds; 1305 description "Detection time"; 1306 } 1307 } 1309 container sesssion-statistics { 1310 description "BFD per-session statistics"; 1312 leaf create-time { 1313 type yang:date-and-time; 1314 description 1315 "Time and date when session was created"; 1316 } 1317 leaf last-down-time { 1318 type yang:date-and-time; 1319 description 1320 "Time and date of last time the session went down"; 1321 } 1322 leaf last-up-time { 1323 type yang:date-and-time; 1324 description 1325 "Time and date of last time the session went up"; 1326 } 1327 leaf down-count { 1328 type uint32; 1329 description "Session Down Count"; 1330 } 1331 leaf admin-down-count { 1332 type uint32; 1333 description "Session Admin-Down Count"; 1334 } 1335 leaf receive-packet-count { 1336 type uint64; 1337 description "Received Packet Count"; 1338 } 1339 leaf send-packet-count { 1340 type uint64; 1341 description "Sent Packet Count"; 1342 } 1343 leaf receive-bad-packet { 1344 type uint64; 1345 description "Received bad packet count"; 1346 } 1347 leaf send-failed-packet { 1348 type uint64; 1349 description "Packet Failed to Send Count"; 1350 } 1351 } 1352 } 1354 grouping bfd-session-statistics { 1355 description "Grouping for session counters"; 1356 container bfd-session-statistics { 1357 description "BFD session counters"; 1358 leaf session-count { 1359 type uint32; 1360 description "Number of sessions"; 1361 } 1362 leaf session-up-count { 1363 type uint32; 1364 description "Count of sessions which are up"; 1365 } 1366 leaf session-down-count { 1367 type uint32; 1368 description "Count of sessions which are down"; 1369 } 1370 leaf session-admin-down-count { 1371 type uint32; 1372 description "Count of sessions which are admin-down"; 1373 } 1374 } 1375 } 1376 grouping bfd-notification-parms { 1377 description 1378 "This group describes common parameters that will be sent " + 1379 "as part of BFD notification"; 1381 leaf local-discr { 1382 type bfd-discriminator; 1383 description "BFD local discriminator"; 1384 } 1386 leaf remote-discr { 1387 type bfd-discriminator; 1388 description "BFD remote discriminator"; 1389 } 1391 leaf new-state { 1392 type bfd-state; 1393 description "Current BFD state"; 1394 } 1396 leaf state-change-reason { 1397 type string; 1398 description "BFD state change reason"; 1399 } 1401 leaf time-in-previous-state { 1402 type string; 1403 description 1404 "How long the BFD session was in the previous state"; 1405 } 1407 leaf dest-addr { 1408 type inet:ip-address; 1409 description "BFD peer address"; 1410 } 1412 leaf source-addr { 1413 type inet:ip-address; 1414 description "BFD local address"; 1415 } 1417 leaf session-index { 1418 type uint32; 1419 description "An index used to uniquely identify BFD sessions"; 1420 } 1422 leaf path-type { 1423 type identityref { 1424 base bfd-path-type; 1425 } 1426 description "BFD path type"; 1427 } 1428 } 1430 augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" 1431 + "rt:routing-protocol" { 1432 when "rt:type = 'bfd:bfd'" { 1433 description 1434 "This augment is only valid for a protocol instance 1435 of BFD."; 1436 } 1437 description "BFD augmentation."; 1439 container bfd { 1440 presence "BFD"; 1441 description "BFD top level container"; 1442 container config { 1443 description "BFD configuration container"; 1444 } 1446 container oper { 1447 config "false"; 1448 description 1449 "BFD operational container for this routing instance"; 1450 uses bfd-session-statistics; 1451 } 1452 } 1453 } 1455 container bfd { 1456 presence "BFD"; 1457 description "BFD top level container"; 1458 container config { 1459 description "BFD configuration container"; 1460 } 1462 container oper { 1463 config "false"; 1464 description "BFD operational container."; 1465 uses bfd-session-statistics; 1466 } 1467 } 1468 } 1469 1471 2.14. BFD IP single-hop Yang Module 1473 file "ietf-bfd-ip-sh@2016-02-17.yang" 1474 module ietf-bfd-ip-sh { 1475 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; 1476 // replace with IANA namespace when assigned 1477 prefix "bfd-ip-sh"; 1479 import ietf-bfd { 1480 prefix "bfd"; 1481 } 1483 import ietf-interfaces { 1484 prefix "if"; 1485 } 1487 import ietf-inet-types { 1488 prefix "inet"; 1489 } 1491 import ietf-routing { 1492 prefix "rt"; 1493 } 1495 organization "IETF BFD Working Group"; 1497 contact 1498 "WG Web: 1499 WG List: 1500 WG Chair: Jeff Haas 1501 WG Chair: Reshad Rahman 1502 Editor: Lianshu Zheng and Reshad Rahman"; 1504 description 1505 "This module contains the YANG definition for BFD IP single-hop 1506 as per RFC5881."; 1508 revision 2016-02-17 { 1509 description "Initial revision."; 1510 reference "RFC XXXX: A YANG data model for BFD IP single-hop"; 1511 } 1513 augment "/bfd:bfd" { 1514 description "BFD augmentation for IP single-hop"; 1515 container ip-sh { 1516 description "BFD IP single-hop top level container"; 1518 container config { 1519 description "BFD IP single-hop configuration container"; 1520 } 1521 container oper { 1522 config "false"; 1523 description "BFD IP single-hop operational container"; 1524 uses bfd:bfd-session-statistics; 1525 } 1526 } 1527 } 1529 augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" 1530 + "rt:routing-protocol/bfd:bfd" { 1531 description "BFD augmentation for IP single-hop."; 1533 container ip-sh { 1534 description "BFD IP single-hop container"; 1535 container config { 1536 description "BFD configuration"; 1537 container session-cfg { 1538 description "BFD IP single-hop session configuration"; 1540 list sessions { 1541 key "interface dest-addr"; 1542 description "List of IP single-hop sessions"; 1543 leaf interface { 1544 type if:interface-ref; 1545 description 1546 "Interface on which the BFD session is running."; 1547 } 1548 leaf dest-addr { 1549 type inet:ip-address; 1550 description "IP address of the peer"; 1551 } 1552 leaf source-addr { 1553 type inet:ip-address; 1554 description "Local address"; 1555 } 1557 uses bfd:bfd-grouping-common-cfg-parms; 1559 uses bfd:bfd-grouping-echo-cfg-parms; 1560 } 1561 } 1562 } 1564 container oper { 1565 config "false"; 1566 description "BFD operational container"; 1567 uses bfd:bfd-session-statistics; 1569 list sessions { 1570 key "interface dest-addr"; 1571 description "BFD IP single-hop sessions"; 1572 leaf interface { 1573 type if:interface-ref; 1574 description 1575 "Interface on which the BFD session is running."; 1576 } 1577 leaf dest-addr { 1578 type inet:ip-address; 1579 description "BFD peer address"; 1580 } 1581 leaf source-addr { 1582 type inet:ip-address; 1583 description "BFD source address"; 1584 } 1586 uses bfd:bfd-all-session; 1587 } 1588 } 1589 } 1590 } 1592 notification bfd-singlehop-notification { 1593 description 1594 "Notification for BFD single-hop session state change. An " + 1595 "implementation may rate-limit notifications, e.g. when a" + 1596 "session is continuously changing state."; 1598 uses bfd:bfd-notification-parms; 1600 leaf interface { 1601 type if:interface-ref; 1602 description "Interface to which this BFD session belongs to"; 1603 } 1605 leaf echo-enabled { 1606 type boolean; 1607 description "Was echo enabled for BFD"; 1608 } 1609 } 1611 } 1612 1614 2.15. BFD IP multi-hop Yang Module 1616 file "ietf-bfd-ip-mh@2016-02-17.yang" 1617 module ietf-bfd-ip-mh { 1618 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; 1619 // replace with IANA namespace when assigned 1620 prefix "bfd-ip-mh"; 1622 import ietf-bfd { 1623 prefix "bfd"; 1624 } 1626 import ietf-inet-types { 1627 prefix "inet"; 1628 } 1630 import ietf-routing { 1631 prefix "rt"; 1632 } 1634 organization "IETF BFD Working Group"; 1636 contact 1637 "WG Web: 1638 WG List: 1639 WG Chair: Jeff Haas 1640 WG Chair: Reshad Rahman 1641 Editor: Lianshu Zheng and Reshad Rahman"; 1643 description 1644 "This module contains the YANG definition for BFD IP multi-hop 1645 asper RFC5883."; 1647 revision 2016-02-17 { 1648 description "Initial revision."; 1649 reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; 1650 } 1652 augment "/bfd:bfd" { 1653 description "BFD augmentation for IP multi-hop"; 1654 container ip-mh { 1655 description "BFD IP multi-hop top level container"; 1657 container config { 1658 description "BFD IP multi-hop configuration container"; 1659 } 1660 container oper { 1661 config "false"; 1662 description "BFD IP multi-hop operational container"; 1663 uses bfd:bfd-session-statistics; 1664 } 1665 } 1666 } 1668 augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" 1669 + "rt:routing-protocol/bfd:bfd" { 1670 when "rt:type = 'bfd:bfd'" { 1671 description 1672 "This augment is only valid for a protocol instance 1673 of BFD."; 1674 } 1675 description "BFD augmentation for IP multi-hop."; 1677 container ip-mh { 1678 description "BFD IP multi-hop container"; 1679 container config { 1680 description "BFD configuration"; 1681 container session-cfg { 1682 description "BFD IP multi-hop session configuration"; 1684 list sessions { 1685 key "source-addr dest-addr"; 1686 description "List of IP multi-hop sessions"; 1688 leaf source-addr { 1689 type inet:ip-address; 1690 description 1691 "Local IP address"; 1692 } 1693 leaf dest-addr { 1694 type inet:ip-address; 1695 description 1696 "IP address of the peer"; 1697 } 1698 uses bfd:bfd-grouping-common-cfg-parms; 1700 leaf tx-ttl { 1701 type bfd:ttl; 1702 default 255; 1703 description "TTL of outgoing BFD control packets"; 1704 } 1705 leaf rx-ttl { 1706 type bfd:ttl; 1707 mandatory true; 1708 description 1709 "Minimum allowed TTL value for incoming BFD control 1710 packets"; 1711 } 1712 } 1713 } 1714 } 1716 container oper { 1717 config "false"; 1718 description "BFD operational container"; 1720 container bfd-session-statistics { 1721 description "BFD session counters"; 1722 uses bfd:bfd-session-statistics; 1723 } 1725 list session-group { 1726 key "source-addr dest-addr"; 1727 description 1728 "BFD IP multi-hop group of sessions. A group of " + 1729 "sessions is between 1 source and 1 destination, " + 1730 "each session has a different field in UDP/IP hdr for " + 1731 "ECMP."; 1732 leaf source-addr { 1733 type inet:ip-address; 1734 description "BFD source address"; 1735 } 1736 leaf dest-addr { 1737 type inet:ip-address; 1738 description "BFD peer address"; 1739 } 1740 list sessions { 1741 key "local-discriminator"; 1742 description 1743 "The BFD sessions between a source and a. " + 1744 "destination. Local discriminator is unique for " + 1745 "each session in the group."; 1746 leaf ttl { 1747 type bfd:ttl; 1748 description "TTL of outgoing packets"; 1749 } 1750 uses bfd:bfd-all-session; 1751 } 1752 } 1753 } 1754 } 1755 } 1757 notification bfd-multihop-notification { 1758 description 1759 "Notification for BFD multi-hop session state change. An " + 1760 "implementation may rate-limit notifications, e.g. when a" + 1761 "session is continuously changing state."; 1763 uses bfd:bfd-notification-parms; 1765 leaf routing-instance { 1766 type rt:routing-instance-ref; 1767 description "Routing instance"; 1768 } 1769 } 1771 } 1772 1774 2.16. BFD over LAG Yang Module 1776 file "ietf-bfd-lag@2016-02-17.yang" 1777 module ietf-bfd-lag { 1778 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; 1779 // replace with IANA namespace when assigned 1780 prefix "bfd-lag"; 1782 import ietf-bfd { 1783 prefix "bfd"; 1784 } 1786 import ietf-interfaces { 1787 prefix "if"; 1788 } 1790 import ietf-inet-types { 1791 prefix "inet"; 1792 } 1794 organization "IETF BFD Working Group"; 1796 contact 1797 "WG Web: 1798 WG List: 1799 WG Chair: Jeff Haas 1800 WG Chair: Reshad Rahman 1801 Editor: Lianshu Zheng and Reshad Rahman"; 1803 description 1804 "This module contains the YANG definition for BFD over LAG 1805 interfaces as per RFC7130."; 1807 revision 2016-02-17 { 1808 description "Initial revision."; 1809 reference "RFC XXXX: A YANG data model for BFD over LAG"; 1810 } 1812 augment "/bfd:bfd" { 1813 description "BFD augmentation for LAG"; 1814 container lag { 1815 description "BFD over LAG top level container"; 1817 container config { 1818 description "BFD over LAG configuration container"; 1819 container session-cfg { 1820 description "BFD over LAG session configuration"; 1821 list sessions { 1822 key "lag-name"; 1823 description "A LAG interface on which BFD is running"; 1824 leaf lag-name { 1825 type if:interface-ref ; 1826 description "Name of the LAG"; 1827 } 1828 leaf ipv4-dest-addr { 1829 type inet:ipv4-address; 1830 description 1831 "IPv4 address of the peer, for IPv4 micro-BFD."; 1832 } 1833 leaf ipv6-dest-addr { 1834 type inet:ipv6-address; 1835 description 1836 "IPv6 address of the peer, for IPv6 micro-BFD."; 1837 } 1838 uses bfd:bfd-grouping-common-cfg-parms; 1839 } 1840 } 1841 } 1843 container oper { 1844 config "false"; 1845 description "BFD over LAG operational container."; 1847 container micro-bfd-ipv4-session-statistics { 1848 description "Micro-BFD IPv4 session counters"; 1849 uses bfd:bfd-session-statistics; 1850 } 1851 container micro-bfd-ipv6-session-statistics { 1852 description "Micro-BFD IPv6 session counters"; 1853 uses bfd:bfd-session-statistics; 1854 } 1855 list session-lag { 1856 key "lag-name"; 1857 description "A LAG interface on which BFD is running"; 1858 leaf lag-name { 1859 type if:interface-ref ; 1860 description "Name of the LAG"; 1861 } 1863 leaf use-ipv4 { 1864 type boolean; 1865 description "Using IPv4 micro-BFD."; 1866 } 1867 leaf use-ipv6 { 1868 type boolean; 1869 description "Using IPv6 micro-BFD."; 1870 } 1872 list member-links { 1873 key "member-link"; 1874 description 1875 "Micro-BFD over LAG. This represents one member link"; 1877 leaf member-link { 1878 type if:interface-ref; 1879 description 1880 "Member link on which micro-BFD is running"; 1881 } 1882 container micro-bfd-ipv4 { 1883 when "../use-ipv4 = 'true'" { 1884 description "Needed only if IPv4 is used."; 1885 } 1886 description 1887 "Micro-BFD IPv4 session state on member link"; 1888 uses bfd:bfd-all-session; 1889 } 1890 container micro-bfd-ipv6 { 1891 when "../use-ipv6 = 'true'" { 1892 description "Needed only if IPv6 is used."; 1893 } 1894 description 1895 "Micro-BFD IPv6 session state on member link"; 1896 uses bfd:bfd-all-session; 1897 } 1898 } 1899 } 1900 } 1901 } 1902 } 1903 notification bfd-lag-notification { 1904 description 1905 "Notification for BFD over LAG session state change. " + 1906 "An implementation may rate-limit notifications, e.g. when a" + 1907 "session is continuously changing state."; 1909 uses bfd:bfd-notification-parms; 1911 leaf lag-name { 1912 type if:interface-ref; 1913 description "LAG interface name"; 1914 } 1916 leaf member-link { 1917 type if:interface-ref; 1918 description "Member link on which BFD is running"; 1919 } 1920 } 1921 } 1922 1924 2.17. BFD over MPLS Yang Module 1926 file "ietf-bfd-mpls@2016-02-17.yang" 1927 module ietf-bfd-mpls { 1928 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; 1929 // replace with IANA namespace when assigned 1930 prefix "bfd-mpls"; 1932 import ietf-bfd { 1933 prefix "bfd"; 1934 } 1936 import ietf-inet-types { 1937 prefix "inet"; 1938 } 1940 import ietf-routing { 1941 prefix "rt"; 1942 } 1943 organization "IETF BFD Working Group"; 1945 contact 1946 "WG Web: 1947 WG List: 1948 WG Chair: Jeff Haas 1949 WG Chair: Reshad Rahman 1950 Editor: Lianshu Zheng and Reshad Rahman"; 1952 description 1953 "This module contains the YANG definition for BFD parameters for 1954 MPLS LSPs as per RFC5884."; 1956 revision 2016-02-17 { 1957 description "Initial revision."; 1958 reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; 1959 } 1961 identity bfd-encap-gach { 1962 base bfd:bfd-encap-type; 1963 description 1964 "BFD with G-ACh encapsulation as per RFC5586."; 1965 } 1967 identity bfd-encap-ip-gach { 1968 base bfd:bfd-encap-type; 1969 description 1970 "BFD with IP and G-ACh encapsulation as per RFC5586."; 1971 } 1973 grouping bfd-encap-cfg { 1974 description "Configuration for BFD encapsulation"; 1976 leaf encap { 1977 type identityref { 1978 base bfd:bfd-encap-type; 1979 } 1980 default bfd:bfd-encap-ip; 1981 description "BFD encapsulation"; 1982 } 1983 } 1985 grouping bfd-mpls-dest-address { 1986 description "Destination address as per RFC5884"; 1988 leaf mpls-dest-address { 1989 type inet:ip-address; 1990 config "false"; 1991 description 1992 "Destination address as per RFC5884. 1993 Needed if IP encapsulation is used"; 1994 } 1995 } 1997 augment "/bfd:bfd" { 1998 description "BFD augmentation for MPLS"; 1999 container mpls { 2000 description "BFD MPLS top level container"; 2002 container config { 2003 description "BFD MPLS configuration container"; 2005 container egress { 2006 description "Egress configuration"; 2008 uses bfd:bfd-grouping-base-cfg-parms; 2010 uses bfd:bfd-auth-parms; 2011 } 2012 } 2014 container oper { 2015 config "false"; 2016 description "BFD MPLS operational container"; 2017 uses bfd:bfd-session-statistics; 2018 } 2019 } 2020 } 2022 augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" 2023 + "rt:routing-protocol/bfd:bfd" { 2024 description "BFD augmentation for MPLS."; 2026 container mpls { 2027 description "BFD MPLS container"; 2029 container config { 2030 description "BFD MPLS configuration container"; 2032 container session-cfg { 2033 description "BFD MPLS session configuration"; 2034 list sessions { 2035 key "mpls-fec"; 2036 description "List of BFD MPLS sessions"; 2037 leaf mpls-fec { 2038 type inet:ip-address; 2039 description "MPLS FEC"; 2040 } 2042 uses bfd:bfd-grouping-common-cfg-parms; 2043 } 2044 } 2045 } 2046 container oper { 2047 config "false"; 2048 description "BFD MPLS operational container"; 2049 uses bfd:bfd-session-statistics; 2051 list session-group { 2052 key "mpls-fec"; 2053 description 2054 "BFD MPLS group of sessions. A group of sessions is" + 2055 "for 1 FEC, each session has a different field in " + 2056 "UDP/IP hdr for ECMP."; 2057 leaf mpls-fec { 2058 type inet:ip-address; 2059 description "MPLS-FEC"; 2060 } 2061 list sessions { 2062 key "local-discriminator"; 2063 description 2064 "The BFD sessions for an MPLS FEC. Local " + 2065 "discriminator is unique for each session in the " + 2066 "group."; 2067 uses bfd:bfd-all-session; 2069 uses bfd-mpls:bfd-mpls-dest-address; 2070 } 2071 } 2072 } 2073 } 2074 } 2076 notification bfd-mpls-notification { 2077 description 2078 "Notification for BFD over MPLS FEC session state change. " + 2079 "An implementation may rate-limit notifications, e.g. when a" + 2080 "session is continuously changing state."; 2082 uses bfd:bfd-notification-parms; 2084 leaf routing-instance { 2085 type rt:routing-instance-ref; 2086 description "Routing instance"; 2087 } 2089 leaf mpls-dest-address { 2090 type inet:ip-address; 2091 description 2092 "Destination address as per RFC5884. 2093 Needed if IP encapsulation is used"; 2095 } 2096 } 2097 } 2098 2100 2.18. BFD over MPLS-TEYang Module 2102 file "ietf-bfd-mpls-te@2016-02-17.yang" 2103 module ietf-bfd-mpls-te { 2104 namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; 2105 // replace with IANA namespace when assigned 2106 prefix "bfd-mpls-te"; 2108 import ietf-bfd { 2109 prefix "bfd"; 2110 } 2112 import ietf-bfd-mpls { 2113 prefix "bfd-mpls"; 2114 } 2116 import ietf-te { 2117 prefix "te"; 2118 } 2120 organization "IETF BFD Working Group"; 2122 contact 2123 "WG Web: 2124 WG List: 2125 WG Chair: Jeff Haas 2126 WG Chair: Reshad Rahman 2127 Editor: Lianshu Zheng and Reshad Rahman"; 2129 description 2130 "This module contains the YANG definition for BFD parameters for 2131 MPLS Traffic Engineering as per RFC5884."; 2133 revision 2016-02-04 { 2134 description "Initial revision."; 2135 reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; 2136 } 2138 augment "/bfd:bfd" { 2139 description "BFD augmentation for MPLS-TE"; 2140 container mpls-te { 2141 description "BFD MPLS-TE top level container"; 2142 container config { 2143 description "BFD MPLS-TE configuration container"; 2145 container egress { 2146 description "Egress configuration"; 2148 uses bfd:bfd-grouping-base-cfg-parms; 2150 uses bfd:bfd-auth-parms; 2151 } 2152 } 2154 container oper { 2155 config "false"; 2156 description "BFD operational container"; 2157 uses bfd:bfd-session-statistics; 2158 } 2159 } 2160 } 2162 augment "/te:te/te:tunnels/te:tunnel/te:config" { 2163 description "BFD configuration on MPLS-TE tunnel."; 2165 uses bfd:bfd-grouping-common-cfg-parms; 2167 uses bfd-mpls:bfd-encap-cfg; 2168 } 2170 augment "/te:te/te:lsps-state/te:lsp" { 2171 when "/te:te/te:lsps-state/te:lsp/te:origin-type != 'transit'" { 2172 description "BFD information not needed at transit points"; 2173 } 2174 description "BFD state information on MPLS-TE LSP."; 2176 uses bfd:bfd-all-session; 2178 uses bfd-mpls:bfd-mpls-dest-address; 2179 } 2181 notification bfd-mpls-te-notification { 2182 description 2183 "Notification for BFD over MPLS-TE session state change. " + 2184 "An implementation may rate-limit notifications, e.g. when a" + 2185 "session is continuously changing state."; 2187 uses bfd:bfd-notification-parms; 2188 uses bfd-mpls:bfd-mpls-dest-address; 2190 leaf tunnel-name { 2191 type string; 2192 description "MPLS-TE tunnel on which BFD was running."; 2193 } 2194 } 2195 } 2196 2198 2.19. Security Considerations 2200 The YANG module defined in this memo is designed to be accessed via 2201 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2202 secure transport layer and the mandatory to implement secure 2203 transport is SSH [RFC6242]. The NETCONF access control model 2204 [RFC6536] provides the means to restrict access for particular 2205 NETCONF users to a pre-configured subset of all available NETCONF 2206 protocol operations and content. 2208 The YANG module has writeable data nodes which can be used for 2209 creation of BFD sessions and modification of BFD session parameters. 2210 The system should "police" creation of BFD sessions to prevent new 2211 sessions from causing existing BFD sessions to fail. For BFD session 2212 modification, the BFD protocol has mechanisms in place which allow 2213 for in service modification. 2215 2.20. IANA Considerations 2217 The IANA is requested to as assign a new new namespace URI from the 2218 IETF XML registry. 2220 URI:TBD 2222 2.21. Acknowledgements 2224 We would also like to thank Nobo Akiya and Jeff Haas for their 2225 encouragement on this work. We would also like to thank Rakesh 2226 Gandhi and Tarek Saad for their help on the MPLS-TE model. 2228 3. References 2230 3.1. Normative References 2232 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2233 Requirement Levels", BCP 14, RFC 2119, 2234 DOI 10.17487/RFC2119, March 1997, 2235 . 2237 [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., 2238 "MPLS Generic Associated Channel", RFC 5586, 2239 DOI 10.17487/RFC5586, June 2009, 2240 . 2242 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2243 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 2244 . 2246 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2247 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, 2248 DOI 10.17487/RFC5881, June 2010, 2249 . 2251 [RFC5882] Katz, D. and D. Ward, "Generic Application of 2252 Bidirectional Forwarding Detection (BFD)", RFC 5882, 2253 DOI 10.17487/RFC5882, June 2010, 2254 . 2256 [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 2257 (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, 2258 June 2010, . 2260 [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, 2261 "Bidirectional Forwarding Detection (BFD) for MPLS Label 2262 Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, 2263 June 2010, . 2265 [RFC5885] Nadeau, T., Ed. and C. Pignataro, Ed., "Bidirectional 2266 Forwarding Detection (BFD) for the Pseudowire Virtual 2267 Circuit Connectivity Verification (VCCV)", RFC 5885, 2268 DOI 10.17487/RFC5885, June 2010, 2269 . 2271 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2272 the Network Configuration Protocol (NETCONF)", RFC 6020, 2273 DOI 10.17487/RFC6020, October 2010, 2274 . 2276 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2277 and A. Bierman, Ed., "Network Configuration Protocol 2278 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2279 . 2281 [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., 2282 Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional 2283 Forwarding Detection (BFD) on Link Aggregation Group (LAG) 2284 Interfaces", RFC 7130, DOI 10.17487/RFC7130, February 2285 2014, . 2287 3.2. Informative References 2289 [I-D.ietf-netconf-restconf] 2290 Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 2291 Protocol", draft-ietf-netconf-restconf-09 (work in 2292 progress), December 2015. 2294 [I-D.ietf-netmod-routing-cfg] 2295 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 2296 Management", draft-ietf-netmod-routing-cfg-20 (work in 2297 progress), October 2015. 2299 [I-D.ietf-rtgwg-yang-key-chain] 2300 Lindem, A., Qu, Y., Yeung, D., Chen, H., Zhang, J., and Y. 2301 Yang, "Key Chain YANG Data Model", draft-ietf-rtgwg-yang- 2302 key-chain-01 (work in progress), February 2016. 2304 [I-D.ietf-teas-yang-te] 2305 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, 2306 X., Jones, R., and B. Wen, "A YANG Data Model for Traffic 2307 Engineering Tunnels and Interfaces", draft-ietf-teas-yang- 2308 te-02 (work in progress), October 2015. 2310 Appendix A. Change log 2312 RFC Editor: Remove this section upon publication as an RFC. 2314 A.1. 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 2335 Reshad Rahman (editor) 2336 Cisco Systems 2337 Canada 2339 Email: rrahman@cisco.com 2341 Santosh Pallagatti 2342 India 2344 Email: santosh.pallagatti@gmail.com 2346 Mahesh Jethanandani 2347 Cisco Systems 2349 Email: mjethanandani@gmail.com 2351 Greg Mirsky 2352 Ericsson 2354 Email: gregory.mirsky@ericsson.com