| < draft-ietf-bfd-yang-07.txt | draft-ietf-bfd-yang-08.txt > | |||
|---|---|---|---|---|
| Network Working Group R. Rahman, Ed. | Network Working Group R. Rahman, Ed. | |||
| Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
| Intended status: Standards Track L. Zheng, Ed. | Intended status: Standards Track L. Zheng, Ed. | |||
| Expires: May 3, 2018 Huawei Technologies | Expires: July 15, 2018 Huawei Technologies | |||
| M. Jethanandani, Ed. | M. Jethanandani, Ed. | |||
| Cisco Systems | Cisco Systems | |||
| S. Pallagatti | S. Pallagatti | |||
| G. Mirsky | G. Mirsky | |||
| ZTE Corporation | ZTE Corporation | |||
| October 30, 2017 | January 11, 2018 | |||
| YANG Data Model for Bidirectional Forwarding Detection (BFD) | YANG Data Model for Bidirectional Forwarding Detection (BFD) | |||
| draft-ietf-bfd-yang-07.txt | draft-ietf-bfd-yang-08.txt | |||
| Abstract | Abstract | |||
| This document defines a YANG data model that can be used to configure | This document defines a YANG data model that can be used to configure | |||
| and manage Bidirectional Forwarding Detection (BFD). | and manage Bidirectional Forwarding Detection (BFD). | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 3, 2018. | This Internet-Draft will expire on July 15, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. Design of Configuration Model . . . . . . . . . . . . . . 5 | 2.1. Design of Configuration Model . . . . . . . . . . . . . . 5 | |||
| 2.1.1. Common BFD configuration parameters . . . . . . . . . 5 | 2.1.1. Common BFD configuration parameters . . . . . . . . . 5 | |||
| 2.1.2. Single-hop IP . . . . . . . . . . . . . . . . . . . . 6 | 2.1.2. Single-hop IP . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.1.3. Multi-hop IP . . . . . . . . . . . . . . . . . . . . 6 | 2.1.3. Multi-hop IP . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 7 | 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 7 | |||
| 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 8 | 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 8 | |||
| 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 8 | 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 8 | |||
| 2.2. Design of Operational Model . . . . . . . . . . . . . . . 8 | 2.2. Design of Operational Model . . . . . . . . . . . . . . . 8 | |||
| 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 9 | 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 9 | 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 9 | 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 9 | |||
| 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 9 | 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 10 | |||
| 2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11 | 2.7. BFD IP multi-hop hierarchy . . . . . . . . . . . . . . . 11 | |||
| 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13 | 2.8. BFD over LAG hierarchy . . . . . . . . . . . . . . . . . 13 | |||
| 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 16 | 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 16 | |||
| 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 18 | 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 18 | |||
| 2.11. Interaction with other YANG modules . . . . . . . . . . . 20 | 2.11. Interaction with other YANG modules . . . . . . . . . . . 20 | |||
| 2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 20 | 2.11.1. Module ietf-interfaces . . . . . . . . . . . . . . . 20 | |||
| 2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 20 | 2.11.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 20 | |||
| 2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 20 | 2.11.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 21 | |||
| 2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 21 | 2.11.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 21 | |||
| 2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 21 | 2.12. IANA BFD YANG Module . . . . . . . . . . . . . . . . . . 21 | |||
| 2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 23 | 2.13. BFD types YANG Module . . . . . . . . . . . . . . . . . . 24 | |||
| 2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 35 | 2.14. BFD top-level YANG Module . . . . . . . . . . . . . . . . 35 | |||
| 2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 37 | 2.15. BFD IP single-hop YANG Module . . . . . . . . . . . . . . 36 | |||
| 2.16. BFD IP multi-hop YANG Module . . . . . . . . . . . . . . 39 | 2.16. BFD IP multi-hop YANG Module . . . . . . . . . . . . . . 39 | |||
| 2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 42 | 2.17. BFD over LAG YANG Module . . . . . . . . . . . . . . . . 42 | |||
| 2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 45 | 2.18. BFD over MPLS YANG Module . . . . . . . . . . . . . . . . 45 | |||
| 2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 48 | 2.19. BFD over MPLS-TE YANG Module . . . . . . . . . . . . . . 48 | |||
| 2.20. Security Considerations . . . . . . . . . . . . . . . . . 51 | 2.20. Security Considerations . . . . . . . . . . . . . . . . . 51 | |||
| 2.21. IANA Considerations . . . . . . . . . . . . . . . . . . . 51 | 2.21. IANA Considerations . . . . . . . . . . . . . . . . . . . 51 | |||
| 2.21.1. IANA-Maintained iana-bfd-types module . . . . . . . 53 | 2.21.1. IANA-Maintained iana-bfd-types module . . . . . . . 53 | |||
| 2.22. Acknowledgements . . . . . . . . . . . . . . . . . . . . 53 | 2.22. Acknowledgements . . . . . . . . . . . . . . . . . . . . 53 | |||
| 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 | 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 3.1. Normative References . . . . . . . . . . . . . . . . . . 53 | 3.1. Normative References . . . . . . . . . . . . . . . . . . 53 | |||
| 3.2. Informative References . . . . . . . . . . . . . . . . . 54 | 3.2. Informative References . . . . . . . . . . . . . . . . . 54 | |||
| Appendix A. Echo function configuration example . . . . . . . . 55 | Appendix A. Echo function configuration example . . . . . . . . 55 | |||
| A.1. Example YANG module for BFD echo function . . . . . . . . 56 | A.1. Example YANG module for BFD echo function . . . . . . . . 56 | |||
| Appendix B. BFD client configuration example . . . . . . . . . . 58 | Appendix B. BFD client configuration example . . . . . . . . . . 58 | |||
| B.1. Example YANG module for BFD client . . . . . . . . . . . 58 | B.1. Example YANG module for BFD client . . . . . . . . . . . 58 | |||
| Appendix C. Change log . . . . . . . . . . . . . . . . . . . . . 60 | Appendix C. Change log . . . . . . . . . . . . . . . . . . . . . 60 | |||
| C.1. Changes between versions -06 and -07 . . . . . . . . . . 60 | C.1. Changes between versions -07 and -08 . . . . . . . . . . 60 | |||
| C.2. Changes between versions -05 and -06 . . . . . . . . . . 61 | C.2. Changes between versions -06 and -07 . . . . . . . . . . 61 | |||
| C.3. Changes between versions -04 and -05 . . . . . . . . . . 61 | C.3. Changes between versions -05 and -06 . . . . . . . . . . 61 | |||
| C.4. Changes between versions -03 and -04 . . . . . . . . . . 61 | C.4. Changes between versions -04 and -05 . . . . . . . . . . 61 | |||
| C.5. Changes between versions -02 and -03 . . . . . . . . . . 61 | C.5. Changes between versions -03 and -04 . . . . . . . . . . 61 | |||
| C.6. Changes between versions -01 and -02 . . . . . . . . . . 61 | C.6. Changes between versions -02 and -03 . . . . . . . . . . 61 | |||
| C.7. Changes between versions -00 and -01 . . . . . . . . . . 61 | C.7. Changes between versions -01 and -02 . . . . . . . . . . 61 | |||
| C.8. Changes between versions -00 and -01 . . . . . . . . . . 62 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a YANG data model that can be used to configure | This document defines a YANG data model that can be used to configure | |||
| and manage Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD | and manage Bidirectional Forwarding Detection (BFD) [RFC5880]. BFD | |||
| is a network protocol which is used for liveness detection of | is a network protocol which is used for liveness detection of | |||
| arbitrary paths between systems. Some examples of different types of | arbitrary paths between systems. Some examples of different types of | |||
| paths over which we have BFD: | paths over which we have BFD: | |||
| skipping to change at page 5, line 33 ¶ | skipping to change at page 5, line 33 ¶ | |||
| requirements of the BFD client. Ideally all configuration should be | requirements of the BFD client. Ideally all configuration should be | |||
| centralized under BFD. However, this is a problem for clients of BFD | centralized under BFD. However, this is a problem for clients of BFD | |||
| which auto-discover their peers. For example, IGPs do not have the | which auto-discover their peers. For example, IGPs do not have the | |||
| peer address configured, instead the IGP is enabled on an interface | peer address configured, instead the IGP is enabled on an interface | |||
| and the IGP peers are auto-discovered. So for an operator to | and the IGP peers are auto-discovered. So for an operator to | |||
| configure BFD to an IGP peer, the operator would first have to | configure BFD to an IGP peer, the operator would first have to | |||
| determine the peer addresses. And when a new peer is discovered, BFD | determine the peer addresses. And when a new peer is discovered, BFD | |||
| configuration would need to be added. To avoid this issue, we define | configuration would need to be added. To avoid this issue, we define | |||
| grouping client-cfg-parms in Section 2.13 for BFD clients to | grouping client-cfg-parms in Section 2.13 for BFD clients to | |||
| configure BFD: this allows BFD clients such as the IGPs to have | configure BFD: this allows BFD clients such as the IGPs to have | |||
| configuration (multipler and intervals) for the BFD sessions they | configuration (multiplier and intervals) for the BFD sessions they | |||
| need. The mechanism how the BFD sessions are created by the BFD | need. The mechanism how the BFD sessions are created by the BFD | |||
| clients is outside the scope of this document. | clients is outside the scope of this document. For BFD clients which | |||
| create BFD sessions via their own configuration, authentication | ||||
| parameters (if required) are still specified in BFD. | ||||
| 2.1.1. Common BFD configuration parameters | 2.1.1. Common BFD configuration parameters | |||
| The basic BFD configuration parameters are: | The basic BFD configuration parameters are: | |||
| local-multiplier | local-multiplier | |||
| This is the detection time multiplier as defined in BFD | This is the detection time multiplier as defined in BFD | |||
| [RFC5880]. | [RFC5880]. | |||
| desired-min-tx-interval | desired-min-tx-interval | |||
| skipping to change at page 6, line 13 ¶ | skipping to change at page 6, line 15 ¶ | |||
| [RFC5880]. | [RFC5880]. | |||
| Although BFD [RFC5880] allows for different values for transmit and | Although BFD [RFC5880] allows for different values for transmit and | |||
| receive intervals, some implementations allow users to specify just | receive intervals, some implementations allow users to specify just | |||
| one interval which is used for both transmit and receive intervals or | one interval which is used for both transmit and receive intervals or | |||
| separate values for transmit and receive intervals. The BFD YANG | separate values for transmit and receive intervals. The BFD YANG | |||
| model supports this: there is a choice between "min-interval", used | model supports this: there is a choice between "min-interval", used | |||
| for both transmit and receive intervals, and "desired-min-tx- | for both transmit and receive intervals, and "desired-min-tx- | |||
| interval" and "required-min-rx-interval". This is supported via a | interval" and "required-min-rx-interval". This is supported via a | |||
| grouping which is used by the YANG modules for the various forwarding | grouping which is used by the YANG modules for the various forwarding | |||
| paths. For BFD authentication we have: | paths. | |||
| For BFD authentication we have: | ||||
| key-chain | key-chain | |||
| This is a reference to key-chain defined in YANG Data Model | This is a reference to key-chain defined in YANG Data Model | |||
| for Key Chains [RFC8177]. The keys, cryptographic algotihms, | for Key Chains [RFC8177]. The keys, cryptographic | |||
| key lifetime etc are all defined in the key-chain model. | algorithms, key lifetime etc are all defined in the key-chain | |||
| model. | ||||
| replay-protection | meticulous | |||
| This specifies meticulous v/s non-meticulous mode as per BFD | This enables meticulous mode as per BFD [RFC5880]. | |||
| [RFC5880]. | ||||
| 2.1.2. Single-hop IP | 2.1.2. Single-hop IP | |||
| For single-hop IP, there is an augment of the "bfd" data node in | For single-hop IP, there is an augment of the "bfd" data node in | |||
| Section 2. The "ip-sh" node contains a list of IP single-hop | Section 2. The "ip-sh" node contains a list of IP single-hop | |||
| sessions where each session is uniquely identified by the interface | sessions where each session is uniquely identified by the interface | |||
| and destination address pair. For the configuration parameters we | and destination address pair. For the configuration parameters we | |||
| use what is defined in Section 2.1.1 | use what is defined in Section 2.1.1. The "ip-sh" node also contains | |||
| a list of interfaces, this is used to specify authentication | ||||
| parameters for BFD sessions which are created by BFD clients, see | ||||
| Section 2.1. | ||||
| [RFC5880] and [RFC5881] do not specify whether echo function is | [RFC5880] and [RFC5881] do not specify whether echo function is | |||
| continuous or on demand. Therefore the mechanism used to start and | continuous or on demand. Therefore the mechanism used to start and | |||
| stop echo function is implementation specific and should be done by | stop echo function is implementation specific and should be done by | |||
| augmentation: | augmentation: | |||
| 1) Configuration. This is suitable for continuous echo function. | 1) Configuration. This is suitable for continuous echo function. | |||
| An example is provided in Appendix A. | An example is provided in Appendix A. | |||
| 2) RPC. This is suitable for on-demand echo function. | 2) RPC. This is suitable for on-demand echo function. | |||
| skipping to change at page 9, line 5 ¶ | skipping to change at page 9, line 12 ¶ | |||
| second category includes a BFD session running information, e.g. the | second category includes a BFD session running information, e.g. the | |||
| remote BFD state and the diagnostic code received. Another example | remote BFD state and the diagnostic code received. Another example | |||
| is the actual transmit interval between the control packets, which | is the actual transmit interval between the control packets, which | |||
| may be different from the desired minimum transmit interval | may be different from the desired minimum transmit interval | |||
| configured, is shown in this category. Similar examples are actual | configured, is shown in this category. Similar examples are actual | |||
| received interval between the control packets and the actual transmit | received interval between the control packets and the actual transmit | |||
| interval between the echo packets. The third category contains the | interval between the echo packets. The third category contains the | |||
| detailed statistics of the session, e.g. when the session | detailed statistics of the session, e.g. when the session | |||
| transitioned up/down and how long it has been in that state. | transitioned up/down and how long it has been in that state. | |||
| For some session types, there may be more than 1 session on the | For some path types, there may be more than 1 session on the virtual | |||
| virtual path to the destination. For example, with IP multi-hop and | path to the destination. For example, with IP multi-hop and MPLS | |||
| MPLS LSPs, there could be multiple BFD sessions from the source to | LSPs, there could be multiple BFD sessions from the source to the | |||
| the same destination to test the various paths (ECMP) to the | same destination to test the various paths (ECMP) to the destination. | |||
| destination. This is represented by having multiple "sessions" under | This is represented by having multiple "sessions" under each | |||
| each "session-group". | "session-group". | |||
| 2.3. Notifications | 2.3. Notifications | |||
| This YANG model defines notifications to inform clients of BFD of | This YANG model defines notifications to inform clients of BFD of | |||
| important events detected during the protocol operation. Pair of | important events detected during the protocol operation. Pair of | |||
| local and remote discriminator identifies a BFD session on local | local and remote discriminator identifies a BFD session on local | |||
| system. Notifications also give more important details about BFD | system. Notifications also give more important details about BFD | |||
| sessions; e.g. new state, time in previous state, network-instance | sessions; e.g. new state, time in previous state, network-instance | |||
| and the reason that the BFD session state changed. The notifications | and the reason that the BFD session state changed. The notifications | |||
| are defined for each type of forwarding path but use groupings for | are defined for each type of forwarding path but use groupings for | |||
| skipping to change at page 10, line 15 ¶ | skipping to change at page 10, line 23 ¶ | |||
| module: ietf-bfd-ip-sh | module: ietf-bfd-ip-sh | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/bfd:bfd: | /rt:control-plane-protocol/bfd:bfd: | |||
| +--rw ip-sh | +--rw ip-sh | |||
| +--ro session-statistics | +--ro session-statistics | |||
| | +--ro session-count? uint32 | | +--ro session-count? uint32 | |||
| | +--ro session-up-count? uint32 | | +--ro session-up-count? uint32 | |||
| | +--ro session-down-count? uint32 | | +--ro session-down-count? uint32 | |||
| | +--ro session-admin-down-count? uint32 | | +--ro session-admin-down-count? uint32 | |||
| +--rw sessions* [interface dest-addr] | +--rw sessions* [interface dest-addr] | |||
| +--rw interface if:interface-ref | | +--rw interface if:interface-ref | |||
| +--rw dest-addr inet:ip-address | | +--rw dest-addr inet:ip-address | |||
| +--rw source-addr? inet:ip-address | | +--rw source-addr? inet:ip-address | |||
| +--rw local-multiplier? multiplier | | +--rw local-multiplier? multiplier | |||
| +--rw (interval-config-type)? | | +--rw (interval-config-type)? | |||
| | +--:(tx-rx-intervals) | | | +--:(tx-rx-intervals) | |||
| | | +--rw desired-min-tx-interval uint32 | | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw required-min-rx-interval uint32 | | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(single-interval) | | | +--:(single-interval) | |||
| | +--rw min-interval uint32 | | | +--rw min-interval? uint32 | |||
| +--rw demand-enabled? boolean {demand-mode}? | | +--rw demand-enabled? boolean {demand-mode}? | |||
| +--rw admin-down? boolean | | +--rw admin-down? boolean | |||
| +--rw authentication-parms! {authentication}? | | +--rw authentication-parms! {authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | | +--rw meticulous? boolean | |||
| +--ro path-type? identityref | | +--ro path-type? identityref | |||
| +--ro ip-encapsulation? boolean | | +--ro ip-encapsulation? boolean | |||
| +--ro local-discriminator? discriminator | | +--ro local-discriminator? discriminator | |||
| +--ro remote-discriminator? discriminator | | +--ro remote-discriminator? discriminator | |||
| +--ro remote-multiplier? multiplier | | +--ro remote-multiplier? multiplier | |||
| +--ro demand-capability? boolean {demand-mode}? | | +--ro demand-capability? boolean {demand-mode}? | |||
| +--ro source-port? inet:port-number | | +--ro source-port? inet:port-number | |||
| +--ro dest-port? inet:port-number | | +--ro dest-port? inet:port-number | |||
| +--ro session-running | | +--ro session-running | |||
| | +--ro session-index? uint32 | | | +--ro session-index? uint32 | |||
| | +--ro local-state? state | | | +--ro local-state? state | |||
| | +--ro remote-state? state | | | +--ro remote-state? state | |||
| | +--ro local-diagnostic? | | | +--ro local-diagnostic? | |||
| | | iana-bfd-types:diagnostic | | | | iana-bfd-types:diagnostic | |||
| | +--ro remote-diagnostic? | | | +--ro remote-diagnostic? | |||
| | | iana-bfd-types:diagnostic | | | | iana-bfd-types:diagnostic | |||
| | +--ro remote-authenticated? boolean | | | +--ro remote-authenticated? boolean | |||
| | +--ro remote-authentication-type? iana-bfd-types:auth-ty | | | +--ro remote-authentication-type? iana-bfd-types:auth-ty | |||
| pe | pe | |||
| | | {authentication}? | | | | {authentication}? | |||
| | +--ro detection-mode? enumeration | | | +--ro detection-mode? enumeration | |||
| | +--ro negotiated-tx-interval? uint32 | | | +--ro negotiated-tx-interval? uint32 | |||
| | +--ro negotiated-rx-interval? uint32 | | | +--ro negotiated-rx-interval? uint32 | |||
| | +--ro detection-time? uint32 | | | +--ro detection-time? uint32 | |||
| | +--ro echo-tx-interval-in-use? uint32 {echo-mode}? | | | +--ro echo-tx-interval-in-use? uint32 {echo-mode}? | |||
| +--ro sesssion-statistics | | +--ro sesssion-statistics | |||
| +--ro create-time? yang:date-and-time | | +--ro create-time? yang:date-and-time | |||
| +--ro last-down-time? yang:date-and-time | | +--ro last-down-time? yang:date-and-time | |||
| +--ro last-up-time? yang:date-and-time | | +--ro last-up-time? yang:date-and-time | |||
| +--ro down-count? uint32 | | +--ro down-count? uint32 | |||
| +--ro admin-down-count? uint32 | | +--ro admin-down-count? uint32 | |||
| +--ro receive-packet-count? uint64 | | +--ro receive-packet-count? uint64 | |||
| +--ro send-packet-count? uint64 | | +--ro send-packet-count? uint64 | |||
| +--ro receive-bad-packet? uint64 | | +--ro receive-bad-packet? uint64 | |||
| +--ro send-failed-packet? uint64 | | +--ro send-failed-packet? uint64 | |||
| +--rw interfaces* [interface] | ||||
| +--rw interface if:interface-ref | ||||
| +--rw authentication-parms! {authentication}? | ||||
| +--rw key-chain? kc:key-chain-ref | ||||
| +--rw meticulous? boolean | ||||
| notifications: | notifications: | |||
| +---n singlehop-notification | +---n singlehop-notification | |||
| +--ro local-discr? discriminator | +--ro local-discr? discriminator | |||
| +--ro remote-discr? discriminator | +--ro remote-discr? discriminator | |||
| +--ro new-state? state | +--ro new-state? state | |||
| +--ro state-change-reason? iana-bfd-types:diagnostic | +--ro state-change-reason? iana-bfd-types:diagnostic | |||
| +--ro time-of-last-state-change? yang:date-and-time | +--ro time-of-last-state-change? yang:date-and-time | |||
| +--ro dest-addr? inet:ip-address | +--ro dest-addr? inet:ip-address | |||
| +--ro source-addr? inet:ip-address | +--ro source-addr? inet:ip-address | |||
| skipping to change at page 12, line 9 ¶ | skipping to change at page 12, line 22 ¶ | |||
| | +--ro session-count? uint32 | | +--ro session-count? uint32 | |||
| | +--ro session-up-count? uint32 | | +--ro session-up-count? uint32 | |||
| | +--ro session-down-count? uint32 | | +--ro session-down-count? uint32 | |||
| | +--ro session-admin-down-count? uint32 | | +--ro session-admin-down-count? uint32 | |||
| +--rw session-group* [source-addr dest-addr] | +--rw session-group* [source-addr dest-addr] | |||
| +--rw source-addr inet:ip-address | +--rw source-addr inet:ip-address | |||
| +--rw dest-addr inet:ip-address | +--rw dest-addr inet:ip-address | |||
| +--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier | |||
| +--rw (interval-config-type)? | +--rw (interval-config-type)? | |||
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals) | |||
| | | +--rw desired-min-tx-interval uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw required-min-rx-interval uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(single-interval) | | +--:(single-interval) | |||
| | +--rw min-interval uint32 | | +--rw min-interval? uint32 | |||
| +--rw demand-enabled? boolean {demand-mode}? | +--rw demand-enabled? boolean {demand-mode}? | |||
| +--rw admin-down? boolean | +--rw admin-down? boolean | |||
| +--rw authentication-parms! {authentication}? | +--rw authentication-parms! {authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | +--rw meticulous? boolean | |||
| +--rw tx-ttl? bfd-types:hops | +--rw tx-ttl? bfd-types:hops | |||
| +--rw rx-ttl bfd-types:hops | +--rw rx-ttl bfd-types:hops | |||
| +--ro sessions* | +--ro sessions* | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro ip-encapsulation? boolean | +--ro ip-encapsulation? boolean | |||
| +--ro local-discriminator? discriminator | +--ro local-discriminator? discriminator | |||
| +--ro remote-discriminator? discriminator | +--ro remote-discriminator? discriminator | |||
| +--ro remote-multiplier? multiplier | +--ro remote-multiplier? multiplier | |||
| +--ro demand-capability? boolean {demand-mode}? | +--ro demand-capability? boolean {demand-mode}? | |||
| +--ro source-port? inet:port-number | +--ro source-port? inet:port-number | |||
| skipping to change at page 13, line 51 ¶ | skipping to change at page 14, line 16 ¶ | |||
| | +--ro session-up-count? uint32 | | +--ro session-up-count? uint32 | |||
| | +--ro session-down-count? uint32 | | +--ro session-down-count? uint32 | |||
| | +--ro session-admin-down-count? uint32 | | +--ro session-admin-down-count? uint32 | |||
| +--rw sessions* [lag-name] | +--rw sessions* [lag-name] | |||
| +--rw lag-name if:interface-ref | +--rw lag-name if:interface-ref | |||
| +--rw ipv4-dest-addr? inet:ipv4-address | +--rw ipv4-dest-addr? inet:ipv4-address | |||
| +--rw ipv6-dest-addr? inet:ipv6-address | +--rw ipv6-dest-addr? inet:ipv6-address | |||
| +--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier | |||
| +--rw (interval-config-type)? | +--rw (interval-config-type)? | |||
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals) | |||
| | | +--rw desired-min-tx-interval uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw required-min-rx-interval uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(single-interval) | | +--:(single-interval) | |||
| | +--rw min-interval uint32 | | +--rw min-interval? uint32 | |||
| +--rw demand-enabled? boolean {demand-mode}? | +--rw demand-enabled? boolean {demand-mode}? | |||
| +--rw admin-down? boolean | +--rw admin-down? boolean | |||
| +--rw authentication-parms! {authentication}? | +--rw authentication-parms! {authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | +--rw meticulous? boolean | |||
| +--rw use-ipv4? boolean | +--rw use-ipv4? boolean | |||
| +--rw use-ipv6? boolean | +--rw use-ipv6? boolean | |||
| +--ro member-links* [member-link] | +--ro member-links* [member-link] | |||
| +--ro member-link if:interface-ref | +--ro member-link if:interface-ref | |||
| +--ro micro-bfd-ipv4 | +--ro micro-bfd-ipv4 | |||
| | +--ro path-type? identityref | | +--ro path-type? identityref | |||
| | +--ro ip-encapsulation? boolean | | +--ro ip-encapsulation? boolean | |||
| | +--ro local-discriminator? discriminator | | +--ro local-discriminator? discriminator | |||
| | +--ro remote-discriminator? discriminator | | +--ro remote-discriminator? discriminator | |||
| | +--ro remote-multiplier? multiplier | | +--ro remote-multiplier? multiplier | |||
| skipping to change at page 16, line 30 ¶ | skipping to change at page 16, line 43 ¶ | |||
| +--ro session-statistics | +--ro session-statistics | |||
| | +--ro session-count? uint32 | | +--ro session-count? uint32 | |||
| | +--ro session-up-count? uint32 | | +--ro session-up-count? uint32 | |||
| | +--ro session-down-count? uint32 | | +--ro session-down-count? uint32 | |||
| | +--ro session-admin-down-count? uint32 | | +--ro session-admin-down-count? uint32 | |||
| +--rw egress | +--rw egress | |||
| | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw local-multiplier? multiplier | | +--rw local-multiplier? multiplier | |||
| | +--rw (interval-config-type)? | | +--rw (interval-config-type)? | |||
| | | +--:(tx-rx-intervals) | | | +--:(tx-rx-intervals) | |||
| | | | +--rw desired-min-tx-interval uint32 | | | | +--rw desired-min-tx-interval? uint32 | |||
| | | | +--rw required-min-rx-interval uint32 | | | | +--rw required-min-rx-interval? uint32 | |||
| | | +--:(single-interval) | | | +--:(single-interval) | |||
| | | +--rw min-interval uint32 | | | +--rw min-interval? uint32 | |||
| | +--rw authentication-parms! {authentication}? | | +--rw authentication-parms! {authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | +--rw meticulous? boolean | |||
| +--rw session-group* [mpls-fec] | +--rw session-group* [mpls-fec] | |||
| +--rw mpls-fec inet:ip-prefix | +--rw mpls-fec inet:ip-prefix | |||
| +--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier | |||
| +--rw (interval-config-type)? | +--rw (interval-config-type)? | |||
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals) | |||
| | | +--rw desired-min-tx-interval uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw required-min-rx-interval uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(single-interval) | | +--:(single-interval) | |||
| | +--rw min-interval uint32 | | +--rw min-interval? uint32 | |||
| +--rw demand-enabled? boolean {demand-mode}? | +--rw demand-enabled? boolean {demand-mode}? | |||
| +--rw admin-down? boolean | +--rw admin-down? boolean | |||
| +--rw authentication-parms! {authentication}? | +--rw authentication-parms! {authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | +--rw meticulous? boolean | |||
| +--ro sessions* | +--ro sessions* | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro ip-encapsulation? boolean | +--ro ip-encapsulation? boolean | |||
| +--ro local-discriminator? discriminator | +--ro local-discriminator? discriminator | |||
| +--ro remote-discriminator? discriminator | +--ro remote-discriminator? discriminator | |||
| +--ro remote-multiplier? multiplier | +--ro remote-multiplier? multiplier | |||
| +--ro demand-capability? boolean {demand-mode}? | +--ro demand-capability? boolean {demand-mode}? | |||
| +--ro source-port? inet:port-number | +--ro source-port? inet:port-number | |||
| +--ro dest-port? inet:port-number | +--ro dest-port? inet:port-number | |||
| +--ro session-running | +--ro session-running | |||
| skipping to change at page 18, line 21 ¶ | skipping to change at page 18, line 34 ¶ | |||
| module: ietf-bfd-mpls-te | module: ietf-bfd-mpls-te | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/bfd:bfd: | /rt:control-plane-protocol/bfd:bfd: | |||
| +--rw mpls-te | +--rw mpls-te | |||
| +--rw egress | +--rw egress | |||
| | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw local-multiplier? multiplier | | +--rw local-multiplier? multiplier | |||
| | +--rw (interval-config-type)? | | +--rw (interval-config-type)? | |||
| | | +--:(tx-rx-intervals) | | | +--:(tx-rx-intervals) | |||
| | | | +--rw desired-min-tx-interval uint32 | | | | +--rw desired-min-tx-interval? uint32 | |||
| | | | +--rw required-min-rx-interval uint32 | | | | +--rw required-min-rx-interval? uint32 | |||
| | | +--:(single-interval) | | | +--:(single-interval) | |||
| | | +--rw min-interval uint32 | | | +--rw min-interval? uint32 | |||
| | +--rw authentication-parms! {authentication}? | | +--rw authentication-parms! {authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | +--rw meticulous? boolean | |||
| +--ro session-statistics | +--ro session-statistics | |||
| +--ro session-count? uint32 | +--ro session-count? uint32 | |||
| +--ro session-up-count? uint32 | +--ro session-up-count? uint32 | |||
| +--ro session-down-count? uint32 | +--ro session-down-count? uint32 | |||
| +--ro session-admin-down-count? uint32 | +--ro session-admin-down-count? uint32 | |||
| augment /te:te/te:tunnels/te:tunnel: | augment /te:te/te:tunnels/te:tunnel: | |||
| +--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier | |||
| +--rw (interval-config-type)? | +--rw (interval-config-type)? | |||
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals) | |||
| | | +--rw desired-min-tx-interval uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw required-min-rx-interval uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(single-interval) | | +--:(single-interval) | |||
| | +--rw min-interval uint32 | | +--rw min-interval? uint32 | |||
| +--rw demand-enabled? boolean {demand-mode}? | +--rw demand-enabled? boolean {demand-mode}? | |||
| +--rw admin-down? boolean | +--rw admin-down? boolean | |||
| +--rw authentication-parms! {authentication}? | +--rw authentication-parms! {authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | +--rw meticulous? boolean | |||
| +--rw encap? identityref | +--rw encap? identityref | |||
| augment /te:te/te:lsps-state/te:lsp: | augment /te:te/te:lsps-state/te:lsp: | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro ip-encapsulation? boolean | +--ro ip-encapsulation? boolean | |||
| +--ro local-discriminator? discriminator | +--ro local-discriminator? discriminator | |||
| +--ro remote-discriminator? discriminator | +--ro remote-discriminator? discriminator | |||
| +--ro remote-multiplier? multiplier | +--ro remote-multiplier? multiplier | |||
| +--ro demand-capability? boolean {demand-mode}? | +--ro demand-capability? boolean {demand-mode}? | |||
| +--ro source-port? inet:port-number | +--ro source-port? inet:port-number | |||
| +--ro dest-port? inet:port-number | +--ro dest-port? inet:port-number | |||
| skipping to change at page 21, line 17 ¶ | skipping to change at page 21, line 26 ¶ | |||
| The following configuration is defined in the "ietf-te" YANG module | The following configuration is defined in the "ietf-te" YANG module | |||
| YANG Data Model for TE Topology [I-D.ietf-teas-yang-te]: | YANG Data Model for TE Topology [I-D.ietf-teas-yang-te]: | |||
| /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel/ietf-te:config/ietf- | /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel/ietf-te:config/ietf- | |||
| te:admin-status | te:admin-status | |||
| If this configuration is not set to "state-up", no BFD MPLS | If this configuration is not set to "state-up", no BFD MPLS | |||
| packets can be transmitted or received on that tunnel. | packets can be transmitted or received on that tunnel. | |||
| 2.12. IANA BFD YANG Module | 2.12. IANA BFD YANG Module | |||
| <CODE BEGINS> file "iana-bfd-types@2017-10-30.yang" | <CODE BEGINS> file "iana-bfd-types@2018-01-11.yang" | |||
| module iana-bfd-types { | module iana-bfd-types { | |||
| namespace "urn:ietf:params:xml:ns:yang:iana-bfd-types"; | namespace "urn:ietf:params:xml:ns:yang:iana-bfd-types"; | |||
| prefix "iana-bfd-types"; | prefix "iana-bfd-types"; | |||
| organization "IANA"; | organization "IANA"; | |||
| contact | contact | |||
| " Internet Assigned Numbers Authority | " Internet Assigned Numbers Authority | |||
| skipping to change at page 22, line 5 ¶ | skipping to change at page 22, line 13 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: IANA BFD YANG Data Types."; | reference "RFC XXXX: IANA BFD YANG Data Types."; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| typedef diagnostic { | typedef diagnostic { | |||
| type enumeration { | type enumeration { | |||
| enum none { | enum none { | |||
| skipping to change at page 23, line 43 ¶ | skipping to change at page 24, line 4 ¶ | |||
| } | } | |||
| enum meticulous-keyed-sha1 { | enum meticulous-keyed-sha1 { | |||
| value 5; | value 5; | |||
| description "Meticulous keyed SHA1"; | description "Meticulous keyed SHA1"; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "BFD authentication type as defined in RFC5880. Range is 0 to | "BFD authentication type as defined in RFC5880. Range is 0 to | |||
| 255."; | 255."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.13. BFD types YANG Module | 2.13. BFD types YANG Module | |||
| <CODE BEGINS> file "ietf-bfd-types@2017-10-30.yang" | <CODE BEGINS> file "ietf-bfd-types@2018-01-11.yang" | |||
| module ietf-bfd-types { | module ietf-bfd-types { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-types"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-types"; | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| import iana-bfd-types { | import iana-bfd-types { | |||
| prefix "iana-bfd-types"; | prefix "iana-bfd-types"; | |||
| } | } | |||
| skipping to change at page 25, line 4 ¶ | skipping to change at page 25, line 12 ¶ | |||
| Copyright (c) 2017 IETF Trust and the persons | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | identified as authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD"; | reference "RFC XXXX: A YANG data model for BFD"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| identity bfdv1 { | identity bfdv1 { | |||
| base "rt:control-plane-protocol"; | base "rt:control-plane-protocol"; | |||
| description "BFD protocol version 1 as per RFC5880."; | description "BFD protocol version 1 as per RFC5880."; | |||
| skipping to change at page 26, line 4 ¶ | skipping to change at page 26, line 13 ¶ | |||
| value 3; | value 3; | |||
| description "up"; | description "up"; | |||
| } | } | |||
| } | } | |||
| description "BFD state as defined in RFC5880"; | description "BFD state as defined in RFC5880"; | |||
| } | } | |||
| typedef multiplier { | typedef multiplier { | |||
| type uint8 { | type uint8 { | |||
| range 1..255; | range 1..255; | |||
| } | } | |||
| description "Multiplier"; | description "Multiplier"; | |||
| } | } | |||
| typedef hops { | typedef hops { | |||
| type uint8 { | type uint8 { | |||
| range 1..255; | range 1..255; | |||
| } | } | |||
| description | description | |||
| "This corresponds to Time To Live for IPv4 and corresponds to hop | "This corresponds to Time To Live for IPv4 and corresponds to hop | |||
| limit for IPv6"; | limit for IPv6"; | |||
| } | } | |||
| /* | /* | |||
| * Identity definitions | * Identity definitions | |||
| */ | */ | |||
| identity path-type { | identity path-type { | |||
| description | description | |||
| "Base identity for BFD path type. The session type indicates | "Base identity for BFD path type. The path type indicates | |||
| the type of path on which BFD is running"; | the type of path on which BFD is running"; | |||
| } | } | |||
| identity path-ip-sh { | identity path-ip-sh { | |||
| base path-type; | base path-type; | |||
| description "BFD on IP single hop"; | description "BFD on IP single hop"; | |||
| } | } | |||
| identity path-ip-mh { | identity path-ip-mh { | |||
| base path-type; | base path-type; | |||
| description "BFD on IP multi hop"; | description "BFD on IP multi hop"; | |||
| } | } | |||
| skipping to change at page 27, line 7 ¶ | skipping to change at page 27, line 16 ¶ | |||
| identity encap-type { | identity encap-type { | |||
| description | description | |||
| "Base identity for BFD encapsulation type."; | "Base identity for BFD encapsulation type."; | |||
| } | } | |||
| identity encap-ip { | identity encap-ip { | |||
| base encap-type; | base encap-type; | |||
| description "BFD with IP encapsulation."; | description "BFD with IP encapsulation."; | |||
| } | } | |||
| identity auth-replay-protection { | ||||
| description | ||||
| "Base identity for BFD authentication replay protection. " + | ||||
| "See section 6.7 of RFC5880."; | ||||
| } | ||||
| identity auth-replay-protection-non-meticulous { | ||||
| base auth-replay-protection; | ||||
| description "Non-meticulous (see section 6.7.3 of RFC5880)"; | ||||
| } | ||||
| identity auth-replay-protection-meticulous { | ||||
| base auth-replay-protection; | ||||
| description "Meticulous (see section 6.7.3 of RFC5880)"; | ||||
| } | ||||
| /* | /* | |||
| * Feature definitions. | * Feature definitions. | |||
| */ | */ | |||
| feature authentication { | feature authentication { | |||
| description "BFD authentication supported"; | description "BFD authentication supported"; | |||
| } | } | |||
| feature demand-mode { | feature demand-mode { | |||
| description "BFD demand mode supported"; | description "BFD demand mode supported"; | |||
| } | } | |||
| feature echo-mode { | feature echo-mode { | |||
| description "BFD echo mode supported"; | description "BFD echo mode supported"; | |||
| } | } | |||
| /* | /* | |||
| skipping to change at page 28, line 4 ¶ | skipping to change at page 27, line 47 ¶ | |||
| (see section 6.7 of RFC5880)."; | (see section 6.7 of RFC5880)."; | |||
| container authentication-parms { | container authentication-parms { | |||
| if-feature authentication; | if-feature authentication; | |||
| presence | presence | |||
| "Enables BFD authentication (see section 6.7 of RFC5880)."; | "Enables BFD authentication (see section 6.7 of RFC5880)."; | |||
| description "Parameters for BFD authentication"; | description "Parameters for BFD authentication"; | |||
| leaf key-chain { | leaf key-chain { | |||
| type kc:key-chain-ref; | type kc:key-chain-ref; | |||
| description "Name of key-chain"; | description "Name of key-chain"; | |||
| } | } | |||
| leaf replay-protection { | leaf meticulous { | |||
| type identityref { | type boolean; | |||
| base auth-replay-protection; | ||||
| } | ||||
| description | description | |||
| "Protection against replays"; | "Enables meticulous mode as described in section 6.7 " + | |||
| "of RFC5880"; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping base-cfg-parms { | grouping base-cfg-parms { | |||
| description "BFD grouping for base config parameters"; | description "BFD grouping for base config parameters"; | |||
| leaf local-multiplier { | leaf local-multiplier { | |||
| type multiplier; | type multiplier; | |||
| default 3; | default 3; | |||
| description "Multiplier transmitted by local system"; | description "Multiplier transmitted by local system"; | |||
| } | } | |||
| choice interval-config-type { | choice interval-config-type { | |||
| description | description | |||
| "Two interval values or 1 value used for both tx and rx"; | "Two interval values or 1 value used for both tx and rx"; | |||
| case tx-rx-intervals { | case tx-rx-intervals { | |||
| leaf desired-min-tx-interval { | leaf desired-min-tx-interval { | |||
| type uint32; | type uint32; | |||
| units microseconds; | units microseconds; | |||
| mandatory true; | default 1000000; | |||
| description | description | |||
| "Desired minimum transmit interval of control packets"; | "Desired minimum transmit interval of control packets"; | |||
| } | } | |||
| leaf required-min-rx-interval { | leaf required-min-rx-interval { | |||
| type uint32; | type uint32; | |||
| units microseconds; | units microseconds; | |||
| mandatory true; | default 1000000; | |||
| description | description | |||
| "Required minimum receive interval of control packets"; | "Required minimum receive interval of control packets"; | |||
| } | } | |||
| } | } | |||
| case single-interval { | case single-interval { | |||
| leaf min-interval { | leaf min-interval { | |||
| type uint32; | type uint32; | |||
| units microseconds; | units microseconds; | |||
| mandatory true; | default 1000000; | |||
| description | description | |||
| "Desired minimum transmit interval and required " + | "Desired minimum transmit interval and required " + | |||
| "minimum receive interval of control packets"; | "minimum receive interval of control packets"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping client-cfg-parms { | grouping client-cfg-parms { | |||
| description | description | |||
| "BFD grouping for config parameters | "BFD grouping for config parameters | |||
| used by clients of BFD, e.g. IGP or MPLS"; | used by clients of BFD, e.g. IGP or MPLS"; | |||
| skipping to change at page 30, line 6 ¶ | skipping to change at page 29, line 48 ¶ | |||
| } | } | |||
| grouping all-session { | grouping all-session { | |||
| description "BFD session operational information"; | description "BFD session operational information"; | |||
| leaf path-type { | leaf path-type { | |||
| type identityref { | type identityref { | |||
| base path-type; | base path-type; | |||
| } | } | |||
| config "false"; | config "false"; | |||
| description | description | |||
| "BFD session type, this indicates the path type that BFD is | "BFD path type, this indicates the path type that BFD is | |||
| running on"; | running on"; | |||
| } | } | |||
| leaf ip-encapsulation { | leaf ip-encapsulation { | |||
| type boolean; | type boolean; | |||
| config "false"; | config "false"; | |||
| description "Whether BFD encapsulation uses IP"; | description "Whether BFD encapsulation uses IP"; | |||
| } | } | |||
| leaf local-discriminator { | leaf local-discriminator { | |||
| type discriminator; | type discriminator; | |||
| config "false"; | config "false"; | |||
| skipping to change at page 35, line 32 ¶ | skipping to change at page 35, line 26 ¶ | |||
| } | } | |||
| description "BFD path type"; | description "BFD path type"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.14. BFD top-level YANG Module | 2.14. BFD top-level YANG Module | |||
| <CODE BEGINS> file "ietf-bfd@2017-10-30.yang" | <CODE BEGINS> file "ietf-bfd@2018-01-11.yang" | |||
| module ietf-bfd { | module ietf-bfd { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd"; | |||
| prefix "bfd"; | prefix "bfd"; | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| } | } | |||
| skipping to change at page 36, line 25 ¶ | skipping to change at page 36, line 20 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD"; | reference "RFC XXXX: A YANG data model for BFD"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol" { | + "rt:control-plane-protocol" { | |||
| when "rt:type = 'bfd-types:bfdv1'" { | when "rt:type = 'bfd-types:bfdv1'" { | |||
| skipping to change at page 37, line 7 ¶ | skipping to change at page 36, line 49 ¶ | |||
| uses bfd-types:session-statistics; | uses bfd-types:session-statistics; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.15. BFD IP single-hop YANG Module | 2.15. BFD IP single-hop YANG Module | |||
| <CODE BEGINS> file "ietf-bfd-ip-sh@2017-10-30.yang" | <CODE BEGINS> file "ietf-bfd-ip-sh@2018-01-11.yang" | |||
| module ietf-bfd-ip-sh { | module ietf-bfd-ip-sh { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"; | |||
| prefix "bfd-ip-sh"; | prefix "bfd-ip-sh"; | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| } | } | |||
| skipping to change at page 38, line 8 ¶ | skipping to change at page 38, line 4 ¶ | |||
| Copyright (c) 2017 IETF Trust and the persons | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | identified as authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD IP single-hop"; | reference "RFC XXXX: A YANG data model for BFD IP single-hop"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/bfd:bfd" { | + "rt:control-plane-protocol/bfd:bfd" { | |||
| description "BFD augmentation for IP single-hop"; | description "BFD augmentation for IP single-hop"; | |||
| skipping to change at page 38, line 49 ¶ | skipping to change at page 38, line 44 ¶ | |||
| } | } | |||
| leaf source-addr { | leaf source-addr { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description "Local address"; | description "Local address"; | |||
| } | } | |||
| uses bfd-types:common-cfg-parms; | uses bfd-types:common-cfg-parms; | |||
| uses bfd-types:all-session; | uses bfd-types:all-session; | |||
| } | } | |||
| list interfaces { | ||||
| key "interface"; | ||||
| description "List of interfaces"; | ||||
| leaf interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "BFD information for this interface."; | ||||
| } | ||||
| uses bfd-types:auth-parms; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| notification singlehop-notification { | notification singlehop-notification { | |||
| description | description | |||
| "Notification for BFD single-hop session state change. An " + | "Notification for BFD single-hop session state change. An " + | |||
| "implementation may rate-limit notifications, e.g. when a" + | "implementation may rate-limit notifications, e.g. when a" + | |||
| "session is continuously changing state."; | "session is continuously changing state."; | |||
| uses bfd-types:notification-parms; | uses bfd-types:notification-parms; | |||
| leaf interface { | leaf interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| skipping to change at page 39, line 29 ¶ | skipping to change at page 39, line 34 ¶ | |||
| description "Was echo enabled for BFD"; | description "Was echo enabled for BFD"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.16. BFD IP multi-hop YANG Module | 2.16. BFD IP multi-hop YANG Module | |||
| <CODE BEGINS> file "ietf-bfd-ip-mh@2017-10-30.yang" | <CODE BEGINS> file "ietf-bfd-ip-mh@2018-01-11.yang" | |||
| module ietf-bfd-ip-mh { | module ietf-bfd-ip-mh { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"; | |||
| // replace with IANA namespace when assigned | // replace with IANA namespace when assigned | |||
| prefix "bfd-ip-mh"; | prefix "bfd-ip-mh"; | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| } | } | |||
| skipping to change at page 40, line 31 ¶ | skipping to change at page 40, line 35 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; | reference "RFC XXXX: A YANG data model for BFD IP multi-hop"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/bfd:bfd" { | + "rt:control-plane-protocol/bfd:bfd" { | |||
| description "BFD augmentation for IP multi-hop"; | description "BFD augmentation for IP multi-hop"; | |||
| skipping to change at page 42, line 4 ¶ | skipping to change at page 42, line 8 ¶ | |||
| notification multihop-notification { | notification multihop-notification { | |||
| description | description | |||
| "Notification for BFD multi-hop session state change. An " + | "Notification for BFD multi-hop session state change. An " + | |||
| "implementation may rate-limit notifications, e.g. when a" + | "implementation may rate-limit notifications, e.g. when a" + | |||
| "session is continuously changing state."; | "session is continuously changing state."; | |||
| uses bfd-types:notification-parms; | uses bfd-types:notification-parms; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.17. BFD over LAG YANG Module | 2.17. BFD over LAG YANG Module | |||
| <CODE BEGINS> file "ietf-bfd-lag@2017-10-30.yang" | <CODE BEGINS> file "ietf-bfd-lag@2018-01-11.yang" | |||
| module ietf-bfd-lag { | module ietf-bfd-lag { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-lag"; | |||
| // replace with IANA namespace when assigned | // replace with IANA namespace when assigned | |||
| prefix "bfd-lag"; | prefix "bfd-lag"; | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| } | } | |||
| skipping to change at page 43, line 15 ¶ | skipping to change at page 43, line 18 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD over LAG"; | reference "RFC XXXX: A YANG data model for BFD over LAG"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/bfd:bfd" { | + "rt:control-plane-protocol/bfd:bfd" { | |||
| description "BFD augmentation for LAG"; | description "BFD augmentation for LAG"; | |||
| skipping to change at page 45, line 25 ¶ | skipping to change at page 45, line 28 ¶ | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description "Member link on which BFD is running"; | description "Member link on which BFD is running"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.18. BFD over MPLS YANG Module | 2.18. BFD over MPLS YANG Module | |||
| <CODE BEGINS> file "ietf-bfd-mpls@2017-10-30.yang" | <CODE BEGINS> file "ietf-bfd-mpls@2018-01-11.yang" | |||
| module ietf-bfd-mpls { | module ietf-bfd-mpls { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; | |||
| // replace with IANA namespace when assigned | // replace with IANA namespace when assigned | |||
| prefix "bfd-mpls"; | prefix "bfd-mpls"; | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| } | } | |||
| skipping to change at page 46, line 27 ¶ | skipping to change at page 46, line 29 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; | reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| identity encap-gach { | identity encap-gach { | |||
| base bfd-types:encap-type; | base bfd-types:encap-type; | |||
| description | description | |||
| skipping to change at page 48, line 39 ¶ | skipping to change at page 48, line 41 ¶ | |||
| "Destination address as per RFC5884. | "Destination address as per RFC5884. | |||
| Needed if IP encapsulation is used"; | Needed if IP encapsulation is used"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.19. BFD over MPLS-TE YANG Module | 2.19. BFD over MPLS-TE YANG Module | |||
| <CODE BEGINS> file "ietf-bfd-mpls-te@2017-10-30.yang" | <CODE BEGINS> file "ietf-bfd-mpls-te@2018-01-11.yang" | |||
| module ietf-bfd-mpls-te { | module ietf-bfd-mpls-te { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls-te"; | |||
| // replace with IANA namespace when assigned | // replace with IANA namespace when assigned | |||
| prefix "bfd-mpls-te"; | prefix "bfd-mpls-te"; | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| } | } | |||
| import ietf-bfd { | import ietf-bfd { | |||
| prefix "bfd"; | prefix "bfd"; | |||
| } | } | |||
| import ietf-bfd-mpls { | import ietf-bfd-mpls { | |||
| prefix "bfd-mpls"; | prefix "bfd-mpls"; | |||
| } | } | |||
| import ietf-te { | import ietf-te { | |||
| prefix "te"; | prefix "te"; | |||
| } | } | |||
| skipping to change at page 49, line 46 ¶ | skipping to change at page 49, line 47 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; | reference "RFC XXXX: A YANG data model for BFD over MPLS-TE"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/bfd:bfd" { | + "rt:control-plane-protocol/bfd:bfd" { | |||
| description "BFD augmentation for MPLS-TE"; | description "BFD augmentation for MPLS-TE"; | |||
| container mpls-te { | container mpls-te { | |||
| description "BFD MPLS-TE top level container"; | description "BFD MPLS-TE top level container"; | |||
| container egress { | container egress { | |||
| description "Egress configuration"; | description "Egress configuration"; | |||
| uses bfd-types:client-cfg-parms; | uses bfd-types:client-cfg-parms; | |||
| skipping to change at page 54, line 48 ¶ | skipping to change at page 54, line 48 ¶ | |||
| 3.2. Informative References | 3.2. Informative References | |||
| [I-D.dsdt-nmda-guidelines] | [I-D.dsdt-nmda-guidelines] | |||
| Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Guidelines for YANG Module Authors | and R. Wilton, "Guidelines for YANG Module Authors | |||
| (NMDA)", draft-dsdt-nmda-guidelines-01 (work in progress), | (NMDA)", draft-dsdt-nmda-guidelines-01 (work in progress), | |||
| May 2017. | May 2017. | |||
| [I-D.ietf-lime-yang-connectionless-oam] | [I-D.ietf-lime-yang-connectionless-oam] | |||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | |||
| "Generic YANG Data Model for Operations, Administration, | "Generic YANG Data Model for the Management of Operations, | |||
| and Maintenance(OAM) protocols for Connectionless | Administration, and Maintenance (OAM) Protocols that use | |||
| networks", draft-ietf-lime-yang-connectionless-oam-13 | Connectionless Communications", draft-ietf-lime-yang- | |||
| (work in progress), October 2017. | connectionless-oam-18 (work in progress), November 2017. | |||
| [I-D.ietf-mpls-base-yang] | [I-D.ietf-mpls-base-yang] | |||
| Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., | Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., | |||
| Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data | Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data | |||
| Model for MPLS Base", draft-ietf-mpls-base-yang-05 (work | Model for MPLS Base", draft-ietf-mpls-base-yang-05 (work | |||
| in progress), July 2017. | in progress), July 2017. | |||
| [I-D.ietf-netmod-schema-mount] | [I-D.ietf-netmod-schema-mount] | |||
| Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | |||
| ietf-netmod-schema-mount-08 (work in progress), October | ietf-netmod-schema-mount-08 (work in progress), October | |||
| 2017. | 2017. | |||
| [I-D.ietf-rtgwg-device-model] | [I-D.ietf-rtgwg-device-model] | |||
| Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, | Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, | |||
| "Network Device YANG Logical Organization", draft-ietf- | "Network Device YANG Logical Organization", draft-ietf- | |||
| rtgwg-device-model-02 (work in progress), March 2017. | rtgwg-device-model-02 (work in progress), March 2017. | |||
| [I-D.ietf-rtgwg-lne-model] | [I-D.ietf-rtgwg-lne-model] | |||
| Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | |||
| Liu, "YANG Logical Network Elements", draft-ietf-rtgwg- | Liu, "YANG Logical Network Elements", draft-ietf-rtgwg- | |||
| lne-model-04 (work in progress), September 2017. | lne-model-05 (work in progress), December 2017. | |||
| [I-D.ietf-rtgwg-ni-model] | [I-D.ietf-rtgwg-ni-model] | |||
| Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | |||
| Liu, "YANG Network Instances", draft-ietf-rtgwg-ni- | Liu, "YANG Network Instances", draft-ietf-rtgwg-ni- | |||
| model-04 (work in progress), September 2017. | model-05 (work in progress), December 2017. | |||
| [I-D.ietf-teas-yang-te] | [I-D.ietf-teas-yang-te] | |||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and | Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and | |||
| I. Bryskin, "A YANG Data Model for Traffic Engineering | I. Bryskin, "A YANG Data Model for Traffic Engineering | |||
| Tunnels and Interfaces", draft-ietf-teas-yang-te-08 (work | Tunnels and Interfaces", draft-ietf-teas-yang-te-10 (work | |||
| in progress), July 2017. | in progress), December 2017. | |||
| [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | |||
| Zhang, "YANG Data Model for Key Chains", RFC 8177, | Zhang, "YANG Data Model for Key Chains", RFC 8177, | |||
| DOI 10.17487/RFC8177, June 2017, <https://www.rfc- | DOI 10.17487/RFC8177, June 2017, <https://www.rfc- | |||
| editor.org/info/rfc8177>. | editor.org/info/rfc8177>. | |||
| Appendix A. Echo function configuration example | Appendix A. Echo function configuration example | |||
| The following intervals are added for the echo function (if | The following intervals are added for the echo function (if | |||
| supported): | supported): | |||
| skipping to change at page 56, line 8 ¶ | skipping to change at page 56, line 8 ¶ | |||
| desired-min-echo-tx-interval | desired-min-echo-tx-interval | |||
| This is the minimum interval that the local system would like | This is the minimum interval that the local system would like | |||
| to use when transmitting BFD echo packets. If 0, the echo | to use when transmitting BFD echo packets. If 0, the echo | |||
| function as defined in BFD [RFC5880] is disabled. | function as defined in BFD [RFC5880] is disabled. | |||
| required-min-echo-rx-interval | required-min-echo-rx-interval | |||
| This is the Required Min Echo RX Interval as defined in BFD | This is the Required Min Echo RX Interval as defined in BFD | |||
| [RFC5880]. | [RFC5880]. | |||
| module: example-bfd-echo | module: example-bfd-echo | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols/rt:control-plane-proto | |||
| /rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh | col/bfd:bfd/bfd-ip-sh:ip-sh/bfd-ip-sh:sessions: | |||
| /bfd-ip-sh:sessions: | ||||
| +--rw echo {bfd-types:echo-mode}? | +--rw echo {bfd-types:echo-mode}? | |||
| +--rw desired-min-echo-tx-interval? uint32 | +--rw desired-min-echo-tx-interval? uint32 | |||
| +--rw required-min-echo-rx-interval? uint32 | +--rw required-min-echo-rx-interval? uint32 | |||
| A.1. Example YANG module for BFD echo function | A.1. Example YANG module for BFD echo function | |||
| module example-bfd-echo { | module example-bfd-echo { | |||
| namespace "tag:example.com,2017:example-bfd-echo"; | namespace "tag:example.com,2017:example-bfd-echo"; | |||
| prefix "example-bfd-echo"; | prefix "example-bfd-echo"; | |||
| skipping to change at page 57, line 18 ¶ | skipping to change at page 57, line 18 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG data model example augmentation for BFD echo | "RFC XXXX: A YANG data model example augmentation for BFD echo | |||
| function"; | function"; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| /* | /* | |||
| skipping to change at page 58, line 27 ¶ | skipping to change at page 58, line 27 ¶ | |||
| grouping client-cfg-parms. | grouping client-cfg-parms. | |||
| module: example-bfd-client | module: example-bfd-client | |||
| +--rw area* [area-id] | +--rw area* [area-id] | |||
| +--rw area-id uint32 | +--rw area-id uint32 | |||
| +--rw bfd | +--rw bfd | |||
| | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw local-multiplier? multiplier | | +--rw local-multiplier? multiplier | |||
| | +--rw (interval-config-type)? | | +--rw (interval-config-type)? | |||
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals) | |||
| | | +--rw desired-min-tx-interval uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw required-min-rx-interval uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(single-interval) | | +--:(single-interval) | |||
| | +--rw min-interval uint32 | | +--rw min-interval? uint32 | |||
| +--rw interface* [interface] | +--rw interface* [interface] | |||
| +--rw interface if:interface-ref | +--rw interface if:interface-ref | |||
| +--rw bfd | +--rw bfd | |||
| +--rw enable? boolean | +--rw enable? boolean | |||
| +--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier | |||
| +--rw (interval-config-type)? | +--rw (interval-config-type)? | |||
| +--:(tx-rx-intervals) | +--:(tx-rx-intervals) | |||
| | +--rw desired-min-tx-interval uint32 | | +--rw desired-min-tx-interval? uint32 | |||
| | +--rw required-min-rx-interval uint32 | | +--rw required-min-rx-interval? uint32 | |||
| +--:(single-interval) | +--:(single-interval) | |||
| +--rw min-interval uint32 | +--rw min-interval? uint32 | |||
| B.1. Example YANG module for BFD client | B.1. Example YANG module for BFD client | |||
| module example-bfd-client { | module example-bfd-client { | |||
| namespace "tag:example.com,2017:example-bfd-client"; | namespace "tag:example.com,2017:example-bfd-client"; | |||
| prefix "example-bfd-client"; | prefix "example-bfd-client"; | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| skipping to change at page 59, line 38 ¶ | skipping to change at page 59, line 38 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2017-10-30 { | revision 2018-01-11 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG data model example for BFD client."; | "RFC XXXX: A YANG data model example for BFD client."; | |||
| } | } | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | // note | |||
| feature routing-app-bfd { | feature routing-app-bfd { | |||
| description "BFD configuration under routing-app"; | description "BFD configuration under routing-app"; | |||
| skipping to change at page 60, line 42 ¶ | skipping to change at page 60, line 42 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Appendix C. Change log | Appendix C. Change log | |||
| RFC Editor: Remove this section upon publication as an RFC. | RFC Editor: Remove this section upon publication as an RFC. | |||
| C.1. Changes between versions -06 and -07 | C.1. Changes between versions -07 and -08 | |||
| o Timer intervals in client-cfg-parms are not mandatory anymore. | ||||
| o Added list of interfaces under "ip-sh" node for authentication | ||||
| parameters. | ||||
| o Renamed replay-protection to meticulous. | ||||
| C.2. Changes between versions -06 and -07 | ||||
| o New ietf-bfd-types module. | o New ietf-bfd-types module. | |||
| o Grouping for BFD clients to have BFD multiplier and interval | o Grouping for BFD clients to have BFD multiplier and interval | |||
| values. | values. | |||
| o Change in ietf-bfd-mpls-te since MPLS-TE model changed. | o Change in ietf-bfd-mpls-te since MPLS-TE model changed. | |||
| o Removed bfd- prefix from many names. | o Removed bfd- prefix from many names. | |||
| C.2. Changes between versions -05 and -06 | C.3. Changes between versions -05 and -06 | |||
| o Adhere to NMDA-guidelines. | o Adhere to NMDA-guidelines. | |||
| o Echo function config moved to appendix as example. | o Echo function config moved to appendix as example. | |||
| o Added IANA YANG modules. | o Added IANA YANG modules. | |||
| o Addressed various comments. | o Addressed various comments. | |||
| C.3. Changes between versions -04 and -05 | C.4. Changes between versions -04 and -05 | |||
| o "bfd" node in augment of control-plane-protocol as per A YANG Data | o "bfd" node in augment of control-plane-protocol as per A YANG Data | |||
| Model for Routing Management [RFC8022]. | Model for Routing Management [RFC8022]. | |||
| o Removed augment of network-instance. Replaced by schema-mount. | o Removed augment of network-instance. Replaced by schema-mount. | |||
| o Added information on interaction with other YANG modules. | o Added information on interaction with other YANG modules. | |||
| C.4. Changes between versions -03 and -04 | C.5. Changes between versions -03 and -04 | |||
| o Updated author information. | o Updated author information. | |||
| o Fixed YANG compile error in ietf-bfd-lag.yang which was due to | o Fixed YANG compile error in ietf-bfd-lag.yang which was due to | |||
| incorrect when statement. | incorrect when statement. | |||
| C.5. Changes between versions -02 and -03 | C.6. Changes between versions -02 and -03 | |||
| o Fixed YANG compilation warning due to incorrect revision date in | o Fixed YANG compilation warning due to incorrect revision date in | |||
| ietf-bfd-ip-sh module. | ietf-bfd-ip-sh module. | |||
| C.6. Changes between versions -01 and -02 | C.7. Changes between versions -01 and -02 | |||
| o Replace routing-instance, which has been removed from A YANG Data | o Replace routing-instance, which has been removed from A YANG Data | |||
| Model for Routing Management [RFC8022], with network-instance from | Model for Routing Management [RFC8022], with network-instance from | |||
| YANG Network Instances [I-D.ietf-rtgwg-ni-model] | YANG Network Instances [I-D.ietf-rtgwg-ni-model] | |||
| C.7. Changes between versions -00 and -01 | C.8. Changes between versions -00 and -01 | |||
| o Remove BFD configuration parameters from BFD clients, all BFD | o Remove BFD configuration parameters from BFD clients, all BFD | |||
| configuration parameters in BFD | configuration parameters in BFD | |||
| o YANG module split in multiple YANG modules (one per type of | o YANG module split in multiple YANG modules (one per type of | |||
| forwarding path) | forwarding path) | |||
| o For BFD over MPLS-TE we augment MPLS-TE model | o For BFD over MPLS-TE we augment MPLS-TE model | |||
| o For BFD authentication we now use YANG Data Model for Key Chains | o For BFD authentication we now use YANG Data Model for Key Chains | |||
| [RFC8177] | [RFC8177] | |||
| Authors' Addresses | Authors' Addresses | |||
| Reshad Rahman (editor) | Reshad Rahman (editor) | |||
| Cisco Systems | Cisco Systems | |||
| Canada | Canada | |||
| Email: rrahman@cisco.com | Email: rrahman@cisco.com | |||
| End of changes. 95 change blocks. | ||||
| 186 lines changed or deleted | 201 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||