| < draft-ietf-bfd-yang-04.txt | draft-ietf-bfd-yang-05.txt > | |||
|---|---|---|---|---|
| Network Working Group L. Zheng, Ed. | Network Working Group R. Rahman, Ed. | |||
| Internet-Draft Huawei Technologies | Internet-Draft Cisco Systems | |||
| Intended status: Standards Track R. Rahman, Ed. | Intended status: Standards Track L. Zheng, Ed. | |||
| Expires: July 12, 2017 Cisco Systems | Expires: September 11, 2017 Huawei Technologies | |||
| S. Pallagatti | S. Pallagatti | |||
| M. Jethanandani | M. Jethanandani | |||
| Cisco Systems | Cisco Systems | |||
| G. Mirsky | G. Mirsky | |||
| Ericsson | ZTE Corporation | |||
| January 8, 2017 | March 10, 2017 | |||
| Yang Data Model for Bidirectional Forwarding Detection (BFD) | Yang Data Model for Bidirectional Forwarding Detection (BFD) | |||
| draft-ietf-bfd-yang-04.txt | draft-ietf-bfd-yang-05.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 July 12, 2017. | This Internet-Draft will expire on September 11, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
| skipping to change at page 2, line 29 ¶ | skipping to change at page 2, line 29 ¶ | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Contributors . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Contributors . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. Design of Configuration Model . . . . . . . . . . . . . . 4 | 2.1. Design of Configuration Model . . . . . . . . . . . . . . 4 | |||
| 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 . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 6 | 2.1.4. MPLS Traffic Engineering Tunnels . . . . . . . . . . 7 | |||
| 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 7 | 2.1.5. MPLS Label Switched Paths . . . . . . . . . . . . . . 7 | |||
| 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 7 | 2.1.6. Link Aggregation Groups . . . . . . . . . . . . . . . 7 | |||
| 2.2. Design of Operational Model . . . . . . . . . . . . . . . 7 | 2.2. Design of Operational Model . . . . . . . . . . . . . . . 8 | |||
| 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 8 | 2.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 8 | 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 8 | 2.5. BFD top level hierarchy . . . . . . . . . . . . . . . . . 9 | |||
| 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 9 | 2.6. BFD IP single-hop hierarchy . . . . . . . . . . . . . . . 9 | |||
| 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 . . . . . . . . . . . . . . 15 | 2.9. BFD over MPLS LSPs hierarchy . . . . . . . . . . . . . . 15 | |||
| 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 17 | 2.10. BFD over MPLS-TE hierarchy . . . . . . . . . . . . . . . 17 | |||
| 2.11. Examples . . . . . . . . . . . . . . . . . . . . . . . . 19 | 2.11. Examples . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 2.12. Interaction with other YANG modules . . . . . . . . . . . 19 | 2.12. Interaction with other YANG modules . . . . . . . . . . . 19 | |||
| 2.13. BFD top-level Yang Module . . . . . . . . . . . . . . . . 19 | 2.12.1. Module ietf-interfaces . . . . . . . . . . . . . . . 19 | |||
| 2.14. BFD IP single-hop Yang Module . . . . . . . . . . . . . . 31 | 2.12.2. Module ietf-ip . . . . . . . . . . . . . . . . . . . 19 | |||
| 2.15. BFD IP multi-hop Yang Module . . . . . . . . . . . . . . 34 | 2.12.3. Module ietf-mpls . . . . . . . . . . . . . . . . . . 20 | |||
| 2.16. BFD over LAG Yang Module . . . . . . . . . . . . . . . . 37 | 2.12.4. Module ietf-te . . . . . . . . . . . . . . . . . . . 20 | |||
| 2.17. BFD over MPLS Yang Module . . . . . . . . . . . . . . . . 41 | 2.13. BFD top-level Yang Module . . . . . . . . . . . . . . . . 20 | |||
| 2.18. BFD over MPLS-TE Yang Module . . . . . . . . . . . . . . 44 | 2.14. BFD IP single-hop Yang Module . . . . . . . . . . . . . . 32 | |||
| 2.19. Security Considerations . . . . . . . . . . . . . . . . . 47 | 2.15. BFD IP multi-hop Yang Module . . . . . . . . . . . . . . 35 | |||
| 2.20. IANA Considerations . . . . . . . . . . . . . . . . . . . 47 | 2.16. BFD over LAG Yang Module . . . . . . . . . . . . . . . . 38 | |||
| 2.21. Acknowledgements . . . . . . . . . . . . . . . . . . . . 47 | 2.17. BFD over MPLS Yang Module . . . . . . . . . . . . . . . . 42 | |||
| 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 | 2.18. BFD over MPLS-TE Yang Module . . . . . . . . . . . . . . 45 | |||
| 3.1. Normative References . . . . . . . . . . . . . . . . . . 47 | 2.19. Security Considerations . . . . . . . . . . . . . . . . . 48 | |||
| 3.2. Informative References . . . . . . . . . . . . . . . . . 48 | 2.20. IANA Considerations . . . . . . . . . . . . . . . . . . . 48 | |||
| Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 49 | 2.21. Acknowledgements . . . . . . . . . . . . . . . . . . . . 48 | |||
| A.1. Changes between versions -03 and -04 . . . . . . . . . . 49 | 3. References . . . . . . . . . . . . . . . . . . . . . . . . . 49 | |||
| A.2. Changes between versions -02 and -03 . . . . . . . . . . 49 | 3.1. Normative References . . . . . . . . . . . . . . . . . . 49 | |||
| A.3. Changes between versions -01 and -02 . . . . . . . . . . 49 | 3.2. Informative References . . . . . . . . . . . . . . . . . 50 | |||
| A.4. Changes between versions -00 and -01 . . . . . . . . . . 50 | Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 51 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 | A.1. Changes between versions -04 and -05 . . . . . . . . . . 51 | |||
| A.2. Changes between versions -03 and -04 . . . . . . . . . . 52 | ||||
| A.3. Changes between versions -02 and -03 . . . . . . . . . . 52 | ||||
| A.4. Changes between versions -01 and -02 . . . . . . . . . . 52 | ||||
| A.5. Changes between versions -00 and -01 . . . . . . . . . . 52 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 52 | ||||
| 1. Introduction | 1. Introduction | |||
| YANG [RFC6020] is a data definition language that was introduced to | YANG [RFC6020] is a data definition language that was introduced to | |||
| define the contents of a conceptual data store that allows networked | define the contents of a conceptual data store that allows networked | |||
| devices to be managed using NETCONF [RFC6241]. YANG is proving | devices to be managed using NETCONF [RFC6241]. YANG is proving | |||
| relevant beyond its initial confines, as bindings to other interfaces | relevant beyond its initial confines, as bindings to other interfaces | |||
| (e.g RESTCONF [I-D.ietf-netconf-restconf]) and encodings other than | (e.g RESTCONF [I-D.ietf-netconf-restconf]) and encodings other than | |||
| XML (e.g JSON) are being defined. Furthermore, YANG data models can | XML (e.g JSON) are being defined. Furthermore, YANG data models can | |||
| be used as the basis of implementation for other interfaces, such as | be used as the basis of implementation for other interfaces, such as | |||
| skipping to change at page 4, line 20 ¶ | skipping to change at page 4, line 23 ¶ | |||
| paths, there is no uniform key to identify a BFD session. So the BFD | paths, there is no uniform key to identify a BFD session. So the BFD | |||
| data model is split in multiple YANG modules where each module | data model is split in multiple YANG modules where each module | |||
| corresponds to one type of forwarding path. For example, BFD for IP | corresponds to one type of forwarding path. For example, BFD for IP | |||
| single-hop is in one YANG module and BFD for MPLS-TE is in another | single-hop is in one YANG module and BFD for MPLS-TE is in another | |||
| YANG module. The main difference between these modules is how a BFD | YANG module. The main difference between these modules is how a BFD | |||
| session is uniquely identified, i.e the key for the list containing | session is uniquely identified, i.e the key for the list containing | |||
| the BFD sessions for that forwarding path. To avoid duplication of | the BFD sessions for that forwarding path. To avoid duplication of | |||
| BFD definitions, we have common types and groupings which are used by | BFD definitions, we have common types and groupings which are used by | |||
| all the modules. | all the modules. | |||
| The new top-level container "bfd" is augmented by all the YANG | A new control-plane protocol "bfdv1" is defined and a "bfd" container | |||
| modules for their respective specific information. | is created under control-plane-protocol as specified in [RFC8022]. | |||
| This new "bfd" node is augmented by all the YANG modules for their | ||||
| respective specific information. Each BFD YANG module which augments | ||||
| the "bfd" node contains a "config" node and an "oper" node. | ||||
| The "network-instance" data node in [I-D.ietf-rtgwg-ni-model] has | BFD can operate in the following contexts: | |||
| been augmented with the "bfd" data node. Where appropriate for | ||||
| specific types of forwarding path, the respective BFD YANG modules | ||||
| follow a VRF-centric model by augmenting that new "bfd" node under | ||||
| "network-instance". | ||||
| Each node in every "bfd" sub-tree has a "config" node and an "oper" | 1. Network devices as described in [I-D.ietf-rtgwg-device-model] | |||
| node. | ||||
| 2. Logical Network Elements as described in | ||||
| [I-D.ietf-rtgwg-lne-model] | ||||
| 3. Network instances as described in [I-D.ietf-rtgwg-ni-model] | ||||
| The approach taken is to do a schema-mount (see | ||||
| [I-D.ietf-netmod-schema-mount]) of the BFD model in the appropriate | ||||
| locations. For example, if an implementation supports BFD IP multi- | ||||
| hop in network instances, the implementation would do schema-mount of | ||||
| the BFD IP multi-hop model in a mount-point which resides in a | ||||
| network instance. | ||||
| 2.1. Design of Configuration Model | 2.1. Design of Configuration Model | |||
| The configuration model consists mainly of the parameters specified | The configuration model consists mainly of the parameters specified | |||
| in [RFC5880]. Some examples are desired minimum transmit interval, | in [RFC5880]. Some examples are desired minimum transmit interval, | |||
| required minimum receive interval, detection multiplier, etc | required minimum receive interval, detection multiplier, etc | |||
| Some implementations have BFD session configuration under the BFD | Some implementations have BFD session configuration under the BFD | |||
| clients. For example, BFD session configuration is under routing | clients. For example, BFD session configuration is under routing | |||
| applications such as OSPF, IS-IS, BGP etc. Other implementations | applications such as OSPF, IS-IS, BGP etc. Other implementations | |||
| have BFD session configuration centralized under BFD, i.e. outside | have BFD session configuration centralized under BFD, i.e. outside | |||
| the multiple BFD clients. | the multiple BFD clients. | |||
| The BFD parameters of interest to a BFD client are mainly the | The BFD parameters of interest to a BFD client are mainly the | |||
| multiplier and interval(s) since those parameters impact the | multiplier and interval(s) since those parameters impact the | |||
| convergence time of the BFD clients when a failure occurs. Other | convergence time of the BFD clients when a failure occurs. Other | |||
| parameters such as BFD authentication are not specific to the | parameters such as BFD authentication are not specific to the | |||
| skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 21 ¶ | |||
| [I-D.ietf-rtgwg-yang-key-chain]. The keys, cryptographic | [I-D.ietf-rtgwg-yang-key-chain]. The keys, cryptographic | |||
| algotihms, key lifetime etc are all defined in the key-chain | algotihms, key lifetime etc are all defined in the key-chain | |||
| model. | model. | |||
| replay-protection | replay-protection | |||
| This specifies meticulous v/s non-meticulous mode as per | This specifies meticulous v/s non-meticulous mode as per | |||
| [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 under | For single-hop IP, there is an augment of the "bfd" data node in | |||
| "network-instance" in Section 2. We have a list of IP single-hop | Section 2. We have a list of IP single-hop sessions where each | |||
| sessions where each session is uniquely identified by the interface | session is uniquely identified by the interface and destination | |||
| and destination address pair. For the configuration parameters we | address pair. For the configuration parameters we use what is | |||
| use what is defined in Section 2.1.1 | defined in Section 2.1.1 | |||
| 2.1.3. Multi-hop IP | 2.1.3. Multi-hop IP | |||
| For multi-hop IP, there is an augment of the "bfd" data node under | For multi-hop IP, there is an augment of the "bfd" data node in | |||
| "network-instance" in Section 2. | Section 2. | |||
| We have a list for BFD sessions over multi-hop IP. The key consists | We have a list for BFD sessions over multi-hop IP. The key consists | |||
| of: | of: | |||
| source address | source address | |||
| Address belonging to the local system as per [RFC5883] | Address belonging to the local system as per [RFC5883] | |||
| destination address | destination address | |||
| Address belonging to the remote system as per [RFC5883] | Address belonging to the remote system as per [RFC5883] | |||
| Since we are following a VRF-centric model we do not need a VRF field | ||||
| in the key. | ||||
| For the configuration parameters we use what is defined in | For the configuration parameters we use what is defined in | |||
| Section 2.1.1 | Section 2.1.1 | |||
| Here are some extra parameters: | Here are some extra parameters: | |||
| tx-ttl | tx-ttl | |||
| TTL of outgoing BFD control packets. | TTL of outgoing BFD control packets. | |||
| rx-ttl | rx-ttl | |||
| Minimum TTL of incoming BFD control packets. | Minimum TTL of incoming BFD control packets. | |||
| skipping to change at page 7, line 9 ¶ | skipping to change at page 7, line 22 ¶ | |||
| of a BFD session failure, these parameters will be defined in the | of a BFD session failure, these parameters will be defined in the | |||
| YANG model of the MPLS-TE application. | YANG model of the MPLS-TE application. | |||
| On top of the usual BFD parameters, we have the following per MPLS-TE | On top of the usual BFD parameters, we have the following per MPLS-TE | |||
| tunnel: | tunnel: | |||
| encap | encap | |||
| Encapsulation for the BFD packets: choice between IP, G-ACh | Encapsulation for the BFD packets: choice between IP, G-ACh | |||
| and IP with G-ACh as per [RFC5586] | and IP with G-ACh as per [RFC5586] | |||
| For general MPLS-TE data, "mpls-te" data node is added under the top- | For general MPLS-TE data, "mpls-te" data node is added under the | |||
| level "bfd" node in Section 2. Since some MPLS-TE tunnels are uni- | "bfd" node in Section 2. Since some MPLS-TE tunnels are uni- | |||
| directional there is no MPLS-TE configuration for these tunnels on | directional there is no MPLS-TE configuration for these tunnels on | |||
| the egress node (note that this does not apply to bi-directional | the egress node (note that this does not apply to bi-directional | |||
| MPLS-TP tunnels). The BFD parameters for the egress node are added | MPLS-TP tunnels). The BFD parameters for the egress node are added | |||
| under "mpls-te". | under "mpls-te". | |||
| 2.1.5. MPLS Label Switched Paths | 2.1.5. MPLS Label Switched Paths | |||
| Here we address MPLS LSPs whose FEC is an IP address. The top-level | Here we address MPLS LSPs whose FEC is an IP address. The "bfd" node | |||
| "bfd" node in Section 2 is augmented with "mpls" which contains a | in Section 2 is augmented with "mpls" which contains a list of | |||
| list of sessions uniquely identified by an IP address. | sessions uniquely identified by an IP address. | |||
| Since these LSPs are uni-directional there is no LSP configuration on | Since these LSPs are uni-directional there is no LSP configuration on | |||
| the egress node. The BFD parameters for the egress node are added | the egress node. The BFD parameters for the egress node are added | |||
| under "mpls". | under "mpls". | |||
| 2.1.6. Link Aggregation Groups | 2.1.6. Link Aggregation Groups | |||
| Per [RFC7130], configuring BFD on LAG consists of having micro-BFD | Per [RFC7130], configuring BFD on LAG consists of having micro-BFD | |||
| sessions on each LAG member link. Since the BFD parameters are an | sessions on each LAG member link. Since the BFD parameters are an | |||
| attribute of the LAG, they should be under the LAG. However there is | attribute of the LAG, they should be under the LAG. However there is | |||
| no LAG YANG model which we can augment. So a "lag" data node is | no LAG YANG model which we can augment. So a "lag" data node is | |||
| added to the top-level "bfd" node in Section 2, the configuration is | added to the "bfd" node in Section 2, the configuration is per-LAG: | |||
| per-LAG: we have a list of LAGs. The destination IP address of the | we have a list of LAGs. The destination IP address of the micro-BFD | |||
| micro-BFD sessions is configured per-LAG and per address-family (IPv4 | sessions is configured per-LAG and per address-family (IPv4 and IPv6) | |||
| and IPv6) | ||||
| 2.2. Design of Operational Model | 2.2. Design of Operational Model | |||
| The operational model contains both the overall statistics of BFD | The operational model contains both the overall statistics of BFD | |||
| sessions running on the device and the per session operational | sessions running on the device and the per session operational | |||
| information. | information. | |||
| The overall statistics of BFD sessions consist of number of BFD | The overall statistics of BFD sessions consist of number of BFD | |||
| sessions, number of BFD sessions up etc. This information is | sessions, number of BFD sessions up etc. This information is | |||
| available globally (i.e. for all BFD sessions) under the top level | available globally (i.e. for all BFD sessions) under the "bfd" node | |||
| "bfd" node in Section 2 and also per type of forwarding path. | in Section 2 and also per type of forwarding path. | |||
| For each BFD session, mainly three categories of operational items | For each BFD session, mainly three categories of operational items | |||
| are shown. The fundamental information of a BFD session such as the | are shown. The fundamental information of a BFD session such as the | |||
| local discriminator, remote discriminator and the capability of | local discriminator, remote discriminator and the capability of | |||
| supporting demand detect mode are shown in the first category. The | supporting demand detect mode are shown in the first category. The | |||
| 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 | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at page 9, line 11 ¶ | |||
| 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 | |||
| common information. | common information. | |||
| 2.4. RPC Operations | 2.4. RPC Operations | |||
| TBD | TBD | |||
| 2.5. BFD top level hierarchy | 2.5. BFD top level hierarchy | |||
| At the top level there is no configuration data, only operational | At the "bfd" node under control-plane-protocol, there is no | |||
| data. The operational data consist of overall BFD session statistics | configuration data, only operational data. The operational data | |||
| globally and per network-instance | consist of overall BFD session statistics, i.e. for BFD on all types | |||
| of forwarding paths. The "bfd" node under control-plane-protocol can | ||||
| be mounted in a network device (top-level), in an LNE or in a network | ||||
| instance. | ||||
| module: ietf-bfd | module: ietf-bfd | |||
| +--rw bfd! | augment /rt:routing/rt:control-plane-protocols | |||
| +--rw config | /rt:control-plane-protocol: | |||
| +--ro oper | +--rw bfd | |||
| +--ro bfd-session-statistics | ||||
| +--ro session-count? uint32 | ||||
| +--ro session-up-count? uint32 | ||||
| +--ro session-down-count? uint32 | ||||
| +--ro session-admin-down-count? uint32 | ||||
| augment /ni:network-instances/ni:network-instance: | ||||
| +--rw bfd! | ||||
| +--rw config | +--rw config | |||
| +--ro oper | +--ro oper | |||
| +--ro bfd-session-statistics | +--ro bfd-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 | |||
| 2.6. BFD IP single-hop hierarchy | 2.6. BFD IP single-hop hierarchy | |||
| An "ip-sh" node is added under "bfd" node in control-plane-protocol. | ||||
| The configuration and operational data for each BFD IP single-hop | The configuration and operational data for each BFD IP single-hop | |||
| session is under "ip-sh" node under network-instance. Overall BFD IP | session is under this "ip-sh" node. The "ip-sh" node can be mounted | |||
| single-hop session statistics are available per network-instance and | in a network device (top-level), in an LNE or in a network instance. | |||
| globally (for all network instances). | ||||
| module: ietf-bfd-ip-sh | module: ietf-bfd-ip-sh | |||
| augment /bfd:bfd: | augment /rt:routing/rt:control-plane-protocols | |||
| +--rw ip-sh | /rt:control-plane-protocol/bfd:bfd: | |||
| +--rw config | +--rw ip-sh | |||
| +--ro oper | +--rw config | |||
| +--ro bfd-session-statistics | | +--rw session-cfg | |||
| +--ro session-count? uint32 | | +--rw sessions* [interface dest-addr] | |||
| +--ro session-up-count? uint32 | | +--rw interface if:interface-ref | |||
| +--ro session-down-count? uint32 | | +--rw dest-addr inet:ip-address | |||
| +--ro session-admin-down-count? uint32 | | +--rw source-addr? inet:ip-address | |||
| augment /ni:network-instances/ni:network-instance/bfd:bfd: | | +--rw local-multiplier? bfd-multiplier | |||
| +--rw ip-sh | | +--rw (interval-config-type)? | |||
| +--rw config | | | +--:(tx-rx-intervals) | |||
| | +--rw session-cfg | | | | +--rw desired-min-tx-interval uint32 | |||
| | +--rw sessions* [interface dest-addr] | | | | +--rw required-min-rx-interval uint32 | |||
| | +--rw interface if:interface-ref | | | +--:(single-interval) | |||
| | +--rw dest-addr inet:ip-address | | | +--rw min-interval uint32 | |||
| | +--rw source-addr? inet:ip-address | | +--rw demand-enabled? boolean | |||
| | +--rw local-multiplier? bfd-multiplier | | +--rw admin-down? boolean | |||
| | +--rw (interval-config-type)? | | +--rw authentication-parms! {bfd-authentication}? | |||
| | | +--:(tx-rx-intervals) | | | +--rw key-chain? kc:key-chain-ref | |||
| | | | +--rw desired-min-tx-interval uint32 | | | +--rw replay-protection? identityref | |||
| | | | +--rw required-min-rx-interval uint32 | | +--rw desired-min-echo-tx-interval? uint32 | |||
| | | +--:(single-interval) | | +--rw required-min-echo-rx-interval? uint32 | |||
| | | +--rw min-interval uint32 | +--ro oper | |||
| | +--rw demand-enabled? boolean | +--ro bfd-session-statistics | |||
| | +--rw admin-down? boolean | | +--ro session-count? uint32 | |||
| | +--rw authentication-parms! {bfd-authentication}? | | +--ro session-up-count? uint32 | |||
| | | +--rw key-chain? kc:key-chain-ref | | +--ro session-down-count? uint32 | |||
| | | +--rw replay-protection? identityref | | +--ro session-admin-down-count? uint32 | |||
| | +--rw desired-min-echo-tx-interval? uint32 | +--ro sessions* [interface dest-addr] | |||
| | +--rw required-min-echo-rx-interval? uint32 | +--ro interface if:interface-ref | |||
| +--ro oper | +--ro dest-addr inet:ip-address | |||
| +--ro bfd-session-statistics | +--ro source-addr? inet:ip-address | |||
| | +--ro session-count? uint32 | +--ro path-type? identityref | |||
| | +--ro session-up-count? uint32 | +--ro local-discriminator? bfd-discriminator | |||
| | +--ro session-down-count? uint32 | +--ro remote-discriminator? bfd-discriminator | |||
| | +--ro session-admin-down-count? uint32 | +--ro remote-multiplier? bfd-multiplier | |||
| +--ro sessions* [interface dest-addr] | +--ro out-interface? if:interface-ref | |||
| +--ro interface if:interface-ref | +--ro demand-capability? boolean | |||
| +--ro dest-addr inet:ip-address | +--ro source-port? inet:port-number | |||
| +--ro source-addr? inet:ip-address | +--ro dest-port? inet:port-number | |||
| +--ro path-type? identityref | +--ro session-running | |||
| +--ro local-discriminator? bfd-discriminator | | +--ro session-index? uint32 | |||
| +--ro remote-discriminator? bfd-discriminator | | +--ro local-state? bfd-state | |||
| +--ro remote-multiplier? bfd-multiplier | | +--ro remote-state? bfd-state | |||
| +--ro out-interface? if:interface-ref | | +--ro local-diagnostic? bfd-diagnostic | |||
| +--ro demand-capability? boolean | | +--ro remote-diagnostic? bfd-diagnostic | |||
| +--ro source-port? inet:port-number | | +--ro detection-mode? enumeration | |||
| +--ro dest-port? inet:port-number | | +--ro negotiated-tx-interval? uint32 | |||
| +--ro session-running | | +--ro negotiated-rx-interval? uint32 | |||
| | +--ro session-index? uint32 | | +--ro echo-tx-interval-in-use? uint32 | |||
| | +--ro local-state? bfd-state | | +--ro detection-time? uint32 | |||
| | +--ro remote-state? bfd-state | +--ro sesssion-statistics | |||
| | +--ro local-diagnostic? bfd-diagnostic | +--ro create-time? yang:date-and-time | |||
| | +--ro remote-diagnostic? bfd-diagnostic | +--ro last-down-time? yang:date-and-time | |||
| | +--ro detection-mode? enumeration | +--ro last-up-time? yang:date-and-time | |||
| | +--ro negotiated-tx-interval? uint32 | +--ro down-count? uint32 | |||
| | +--ro negotiated-rx-interval? uint32 | +--ro admin-down-count? uint32 | |||
| | +--ro echo-tx-interval-in-use? uint32 | +--ro receive-packet-count? uint64 | |||
| | +--ro detection-time? uint32 | +--ro send-packet-count? uint64 | |||
| +--ro sesssion-statistics | +--ro receive-bad-packet? uint64 | |||
| +--ro create-time? yang:date-and-time | +--ro send-failed-packet? uint64 | |||
| +--ro last-down-time? yang:date-and-time | notifications: | |||
| +--ro last-up-time? yang:date-and-time | ||||
| +--ro down-count? uint32 | +---n bfd-singlehop-notification | |||
| +--ro admin-down-count? uint32 | +--ro local-discr? bfd-discriminator | |||
| +--ro receive-packet-count? uint64 | +--ro remote-discr? bfd-discriminator | |||
| +--ro send-packet-count? uint64 | +--ro new-state? bfd-state | |||
| +--ro receive-bad-packet? uint64 | +--ro state-change-reason? string | |||
| +--ro send-failed-packet? uint64 | +--ro time-in-previous-state? string | |||
| notifications: | +--ro dest-addr? inet:ip-address | |||
| +---n bfd-singlehop-notification | +--ro source-addr? inet:ip-address | |||
| +--ro local-discr? bfd-discriminator | +--ro session-index? uint32 | |||
| +--ro remote-discr? bfd-discriminator | +--ro path-type? identityref | |||
| +--ro new-state? bfd-state | +--ro interface? if:interface-ref | |||
| +--ro state-change-reason? string | +--ro echo-enabled? boolean | |||
| +--ro time-in-previous-state? string | ||||
| +--ro dest-addr? inet:ip-address | ||||
| +--ro source-addr? inet:ip-address | ||||
| +--ro session-index? uint32 | ||||
| +--ro path-type? identityref | ||||
| +--ro interface? if:interface-ref | ||||
| +--ro echo-enabled? boolean | ||||
| 2.7. BFD IP multi-hop hierarchy | 2.7. BFD IP multi-hop hierarchy | |||
| The configuration and operational data for each BFD IP multi-hop | An "ip-mh" node is added under the "bfd" node in cntrol-plane- | |||
| session is under "ip-mh" node under network-instance. In the | protocol. The configuration and operational data for each BFD IP | |||
| operational model we support multiple BFD multi-hop sessions per | multi-hop session is under this "ip-mh" node. In the operational | |||
| remote address (ECMP), the local discriminator is used as key. | model we support multiple BFD multi-hop sessions per remote address | |||
| Overall BFD IP multi-hop session statistics are available per | (ECMP), the local discriminator is used as key. The "ip-mh" node can | |||
| network-instance and globally (for all network instances). | be mounted in a network device (top-level), in an LNE or in a network | |||
| instance. | ||||
| module: ietf-bfd-ip-mh | module: ietf-bfd-ip-mh | |||
| augment /bfd:bfd: | augment /rt:routing/rt:control-plane-protocols | |||
| +--rw ip-mh | /rt:control-plane-protocol/bfd:bfd: | |||
| +--rw config | ||||
| +--ro oper | ||||
| +--ro bfd-session-statistics | ||||
| +--ro session-count? uint32 | ||||
| +--ro session-up-count? uint32 | ||||
| +--ro session-down-count? uint32 | ||||
| +--ro session-admin-down-count? uint32 | ||||
| augment /ni:network-instances/ni:network-instance/bfd:bfd: | ||||
| +--rw ip-mh | +--rw ip-mh | |||
| +--rw config | +--rw config | |||
| | +--rw session-cfg | | +--rw session-cfg | |||
| | +--rw sessions* [source-addr dest-addr] | | +--rw sessions* [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? bfd-multiplier | | +--rw local-multiplier? bfd-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 | |||
| skipping to change at page 12, line 13 ¶ | skipping to change at page 12, line 4 ¶ | |||
| | | +--rw min-interval uint32 | | | +--rw min-interval uint32 | |||
| | +--rw demand-enabled? boolean | | +--rw demand-enabled? boolean | |||
| | +--rw admin-down? boolean | | +--rw admin-down? boolean | |||
| | +--rw authentication-parms! {bfd-authentication}? | | +--rw authentication-parms! {bfd-authentication}? | |||
| | | +--rw key-chain? kc:key-chain-ref | | | +--rw key-chain? kc:key-chain-ref | |||
| | | +--rw replay-protection? identityref | | | +--rw replay-protection? identityref | |||
| | +--rw tx-ttl? bfd:ttl | | +--rw tx-ttl? bfd:ttl | |||
| | +--rw rx-ttl bfd:ttl | | +--rw rx-ttl bfd:ttl | |||
| +--ro oper | +--ro oper | |||
| +--ro bfd-session-statistics | +--ro bfd-session-statistics | |||
| | +--ro bfd-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 | ||||
| +--ro session-group* [source-addr dest-addr] | +--ro session-group* [source-addr dest-addr] | |||
| +--ro source-addr inet:ip-address | +--ro source-addr inet:ip-address | |||
| +--ro dest-addr inet:ip-address | +--ro dest-addr inet:ip-address | |||
| +--ro sessions* [local-discriminator] | +--ro sessions* [local-discriminator] | |||
| +--ro ttl? bfd:ttl | +--ro ttl? bfd:ttl | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro local-discriminator bfd-discriminator | +--ro local-discriminator bfd-discriminator | |||
| +--ro remote-discriminator? bfd-discriminator | +--ro remote-discriminator? bfd-discriminator | |||
| +--ro remote-multiplier? bfd-multiplier | +--ro remote-multiplier? bfd-multiplier | |||
| +--ro out-interface? if:interface-ref | +--ro out-interface? if:interface-ref | |||
| skipping to change at page 13, line 4 ¶ | skipping to change at page 12, line 42 ¶ | |||
| +--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 | |||
| notifications: | notifications: | |||
| +---n bfd-multihop-notification | +---n bfd-multihop-notification | |||
| +--ro local-discr? bfd-discriminator | +--ro local-discr? bfd-discriminator | |||
| +--ro remote-discr? bfd-discriminator | +--ro remote-discr? bfd-discriminator | |||
| +--ro new-state? bfd-state | +--ro new-state? bfd-state | |||
| +--ro state-change-reason? string | +--ro state-change-reason? string | |||
| +--ro time-in-previous-state? string | +--ro time-in-previous-state? string | |||
| +--ro dest-addr? inet:ip-address | +--ro dest-addr? inet:ip-address | |||
| +--ro source-addr? inet:ip-address | +--ro source-addr? inet:ip-address | |||
| +--ro session-index? uint32 | +--ro session-index? uint32 | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro network-instance? string | ||||
| 2.8. BFD over LAG hierarchy | 2.8. BFD over LAG hierarchy | |||
| A "lag" node is added under the "bfd" node in control-plane-protocol. | ||||
| The configuration and operational data for each BFD LAG session is | The configuration and operational data for each BFD LAG session is | |||
| under "lag" node. Overall BFD LAG session statistics are available | under this "lag" node. The "lag" node can be mounted in a network | |||
| globally. | device (top-level), in an LNE or in a network instance. | |||
| module: ietf-bfd-lag | module: ietf-bfd-lag | |||
| augment /bfd:bfd: | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/bfd:bfd: | ||||
| +--rw lag | +--rw lag | |||
| +--rw config | +--rw config | |||
| | +--rw session-cfg | | +--rw session-cfg | |||
| | +--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? bfd-multiplier | | +--rw local-multiplier? bfd-multiplier | |||
| | +--rw (interval-config-type)? | | +--rw (interval-config-type)? | |||
| | | +--:(tx-rx-intervals) | | | +--:(tx-rx-intervals) | |||
| skipping to change at page 15, line 43 ¶ | skipping to change at page 15, line 34 ¶ | |||
| +--ro time-in-previous-state? string | +--ro time-in-previous-state? string | |||
| +--ro dest-addr? inet:ip-address | +--ro dest-addr? inet:ip-address | |||
| +--ro source-addr? inet:ip-address | +--ro source-addr? inet:ip-address | |||
| +--ro session-index? uint32 | +--ro session-index? uint32 | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro lag-name? if:interface-ref | +--ro lag-name? if:interface-ref | |||
| +--ro member-link? if:interface-ref | +--ro member-link? if:interface-ref | |||
| 2.9. BFD over MPLS LSPs hierarchy | 2.9. BFD over MPLS LSPs hierarchy | |||
| The configuration is per MPLS FEC under "mpls". In the operational | An "mpls" node is added under the "bfd" node in control-plane- | |||
| model we support multiple BFD sessions per MPLS FEC (ECMP), the local | protocol. The configuration is per MPLS FEC under this "mpls" node. | |||
| discriminator is used as key. | In the operational model we support multiple BFD sessions per MPLS | |||
| FEC (ECMP), the local discriminator is used as key. The "mpls" node | ||||
| can be mounted in a network device (top-level), in an LNE or in a | ||||
| network instance. | ||||
| module: ietf-bfd-mpls | ||||
| module: ietf-bfd-mpls | module: ietf-bfd-mpls | |||
| augment /bfd:bfd: | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/bfd:bfd: | ||||
| +--rw mpls | +--rw mpls | |||
| +--rw config | +--rw config | |||
| | +--rw egress | | +--rw egress | |||
| | +--rw local-multiplier? bfd-multiplier | | | +--rw local-multiplier? bfd-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! {bfd-authentication}? | | | +--rw authentication-parms! {bfd-authentication}? | |||
| | +--rw key-chain? kc:key-chain-ref | | | +--rw key-chain? kc:key-chain-ref | |||
| | +--rw replay-protection? identityref | | | +--rw replay-protection? identityref | |||
| +--ro oper | ||||
| +--ro bfd-session-statistics | ||||
| +--ro session-count? uint32 | ||||
| +--ro session-up-count? uint32 | ||||
| +--ro session-down-count? uint32 | ||||
| +--ro session-admin-down-count? uint32 | ||||
| augment /ni:network-instances/ni:network-instance/bfd:bfd: | ||||
| +--rw mpls | ||||
| +--rw config | ||||
| | +--rw session-cfg | | +--rw session-cfg | |||
| | +--rw sessions* [mpls-fec] | | +--rw sessions* [mpls-fec] | |||
| | +--rw mpls-fec inet:ip-address | | +--rw mpls-fec inet:ip-address | |||
| | +--rw local-multiplier? bfd-multiplier | | +--rw local-multiplier? bfd-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 | |||
| skipping to change at page 17, line 41 ¶ | skipping to change at page 17, line 26 ¶ | |||
| +---n bfd-mpls-notification | +---n bfd-mpls-notification | |||
| +--ro local-discr? bfd-discriminator | +--ro local-discr? bfd-discriminator | |||
| +--ro remote-discr? bfd-discriminator | +--ro remote-discr? bfd-discriminator | |||
| +--ro new-state? bfd-state | +--ro new-state? bfd-state | |||
| +--ro state-change-reason? string | +--ro state-change-reason? string | |||
| +--ro time-in-previous-state? string | +--ro time-in-previous-state? string | |||
| +--ro dest-addr? inet:ip-address | +--ro dest-addr? inet:ip-address | |||
| +--ro source-addr? inet:ip-address | +--ro source-addr? inet:ip-address | |||
| +--ro session-index? uint32 | +--ro session-index? uint32 | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro network-instance? string | ||||
| +--ro mpls-dest-address? inet:ip-address | +--ro mpls-dest-address? inet:ip-address | |||
| 2.10. BFD over MPLS-TE hierarchy | 2.10. BFD over MPLS-TE hierarchy | |||
| The MPLS-TE YANG model [I-D.ietf-teas-yang-te] is augmented. BFD is | The MPLS-TE YANG model [I-D.ietf-teas-yang-te] is augmented. BFD is | |||
| configured per MPLS-TE tunnel, and BFD session operational data is | configured per MPLS-TE tunnel, and BFD session operational data is | |||
| provided per MPLS-TE LSP. | provided per MPLS-TE LSP. | |||
| module: ietf-bfd-mpls-te | module: ietf-bfd-mpls-te | |||
| augment /bfd:bfd: | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/bfd:bfd: | ||||
| +--rw mpls-te | +--rw mpls-te | |||
| +--rw config | +--rw config | |||
| | +--rw egress | | +--rw egress | |||
| | +--rw local-multiplier? bfd-multiplier | | +--rw local-multiplier? bfd-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 | |||
| skipping to change at page 19, line 38 ¶ | skipping to change at page 19, line 23 ¶ | |||
| +--ro source-addr? inet:ip-address | +--ro source-addr? inet:ip-address | |||
| +--ro session-index? uint32 | +--ro session-index? uint32 | |||
| +--ro path-type? identityref | +--ro path-type? identityref | |||
| +--ro mpls-dest-address? inet:ip-address | +--ro mpls-dest-address? inet:ip-address | |||
| +--ro tunnel-name? string | +--ro tunnel-name? string | |||
| 2.11. Examples | 2.11. Examples | |||
| 2.12. Interaction with other YANG modules | 2.12. Interaction with other YANG modules | |||
| TBD. | [I-D.ietf-lime-yang-connectionless-oam] describes how the LIME | |||
| connectionless OAM model could be extended to support BFD. | ||||
| Also, the operation of the BFD data model depends on configuration | ||||
| parameters that are defined in other YANG modules. | ||||
| 2.12.1. Module ietf-interfaces | ||||
| The following boolean configuration is defined in the "ietf- | ||||
| interfaces" YANG module [RFC7223]: | ||||
| /if:interfaces/if:interface/if:enabled | ||||
| If this configuration is set to "false", no BFD packets can | ||||
| be transmitted or received on that interface. | ||||
| 2.12.2. Module ietf-ip | ||||
| The following boolean configuration is defined in the "ietf-ip" YANG | ||||
| module [RFC7277]: | ||||
| /if:interfaces/if:interface/ip:ipv4/ip:enabled | ||||
| If this configuration is set to "false", no BFD IPv4 packets | ||||
| can be transmitted or received on that interface. | ||||
| /if:interfaces/if:interface/ip:ipv4/ip:forwarding | ||||
| If this configuration is set to "false", no BFD IPv4 packets | ||||
| can be transmitted or received on that interface. | ||||
| /if:interfaces/if:interface/ip:ipv6/ip:enabled | ||||
| If this configuration is set to "false", no BFD IPv6 packets | ||||
| can be transmitted or received on that interface. | ||||
| /if:interfaces/if:interface/ip:ipv6/ip:forwarding | ||||
| If this configuration is set to "false", no BFD IPv6 packets | ||||
| can be transmitted or received on that interface. | ||||
| 2.12.3. Module ietf-mpls | ||||
| The following boolean configuration is defined in the "ietf-mpls" | ||||
| YANG module [I-D.ietf-mpls-base-yang]: | ||||
| /rt:routing/mpls:mpls/mpls:interface/mpls:config/mpls:enabled | ||||
| If this configuration is set to "false", no BFD MPLS packets | ||||
| can be transmitted or received on that interface. | ||||
| 2.12.4. Module ietf-te | ||||
| The following configuration is defined in the "ietf-te" YANG module | ||||
| [I-D.ietf-teas-yang-te]: | ||||
| /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel/ietf-te:config/ietf- | ||||
| te:admin-status | ||||
| If this configuration is not set to "state-up", no BFD MPLS | ||||
| packets can be transmitted or received on that tunnel. | ||||
| 2.13. BFD top-level Yang Module | 2.13. BFD top-level Yang Module | |||
| <CODE BEGINS> file "ietf-bfd@2016-07-04.yang" | <CODE BEGINS> file "ietf-bfd@2017-03-07.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"; | |||
| // replace with IANA namespace when assigned | // replace with IANA namespace when assigned | |||
| prefix "bfd"; | prefix "bfd"; | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix "yang"; | prefix "yang"; | |||
| } | } | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| } | ||||
| import ietf-network-instance { | ||||
| prefix "ni"; | ||||
| } | } | |||
| import ietf-key-chain { | import ietf-key-chain { | |||
| prefix "kc"; | prefix "kc"; | |||
| } | } | |||
| organization "IETF BFD Working Group"; | organization "IETF BFD Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/bfd> | "WG Web: <http://tools.ietf.org/wg/bfd> | |||
| WG List: <rtg-bfd@ietf.org> | WG List: <rtg-bfd@ietf.org> | |||
| WG Chair: Jeff Haas | WG Chair: Jeff Haas | |||
| WG Chair: Reshad Rahman | WG Chair: Reshad Rahman | |||
| Editor: Lianshu Zheng and Reshad Rahman"; | Editor: Lianshu Zheng and Reshad Rahman"; | |||
| description | description | |||
| "This module contains the YANG definition for BFD parameters as | "This module contains the YANG definition for BFD parameters as | |||
| per RFC5880."; | per RFC5880. | |||
| revision 2016-07-04 { | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or | ||||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices."; | ||||
| revision 2017-03-07 { | ||||
| description "Initial revision."; | description "Initial revision."; | |||
| reference "RFC XXXX: A YANG data model for BFD"; | reference "RFC XXXX: A YANG data model for BFD"; | |||
| } | } | |||
| identity bfd { | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| base "rt:routing-protocol"; | // note | |||
| description "BFD protocol"; | ||||
| identity bfdv1 { | ||||
| base "rt:control-plane-protocol"; | ||||
| description "BFD protocol version 1 as per RFC5880."; | ||||
| } | } | |||
| typedef bfd-discriminator { | typedef bfd-discriminator { | |||
| type uint32 { | type uint32 { | |||
| range 1..4294967295; | range 1..4294967295; | |||
| } | } | |||
| description "BFD discriminator"; | description "BFD discriminator"; | |||
| } | } | |||
| typedef bfd-diagnostic { | typedef bfd-diagnostic { | |||
| type enumeration { | type enumeration { | |||
| enum none { | enum none { | |||
| value 0; | value 0; | |||
| description "None"; | description "None"; | |||
| } | } | |||
| enum controlExpiry { | enum controlExpiry { | |||
| value 1; | value 1; | |||
| skipping to change at page 30, line 49 ¶ | skipping to change at page 32, line 4 ¶ | |||
| leaf session-index { | leaf session-index { | |||
| type uint32; | type uint32; | |||
| description "An index used to uniquely identify BFD sessions"; | description "An index used to uniquely identify BFD sessions"; | |||
| } | } | |||
| leaf path-type { | leaf path-type { | |||
| type identityref { | type identityref { | |||
| base bfd-path-type; | base bfd-path-type; | |||
| } | } | |||
| description "BFD path type"; | description "BFD path type"; | |||
| } | } | |||
| } | } | |||
| augment "/ni:network-instances/ni:network-instance" { | ||||
| augment "/rt:routing/rt:control-plane-protocols/" | ||||
| + "rt:control-plane-protocol" { | ||||
| when "rt:type = 'bfd:bfdv1'" { | ||||
| description | ||||
| "This augmentation is only valid for a control-plane protocol | ||||
| instance of BFD (type 'bfdv1')."; | ||||
| } | ||||
| description "BFD augmentation."; | description "BFD augmentation."; | |||
| container bfd { | container bfd { | |||
| presence "BFD"; | ||||
| description "BFD top level container"; | description "BFD top level container"; | |||
| container config { | container config { | |||
| description "BFD configuration container"; | description "BFD configuration container"; | |||
| } | } | |||
| container oper { | container oper { | |||
| config "false"; | config "false"; | |||
| description | description "BFD operational container."; | |||
| "BFD operational container for this routing instance"; | ||||
| uses bfd-session-statistics; | uses bfd-session-statistics; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container bfd { | ||||
| presence "BFD"; | ||||
| description "BFD top level container"; | ||||
| container config { | ||||
| description "BFD configuration container"; | ||||
| } | ||||
| container oper { | ||||
| config "false"; | ||||
| description "BFD operational container."; | ||||
| uses bfd-session-statistics; | ||||
| } | ||||
| } | ||||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.14. BFD IP single-hop Yang Module | 2.14. BFD IP single-hop Yang Module | |||
| <CODE BEGINS> file "ietf-bfd-ip-sh@2016-07-04.yang" | <CODE BEGINS> file "ietf-bfd-ip-sh@2017-03-07.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"; | |||
| // replace with IANA namespace when assigned | // replace with IANA namespace when assigned | |||
| prefix "bfd-ip-sh"; | prefix "bfd-ip-sh"; | |||
| import ietf-bfd { | import ietf-bfd { | |||
| prefix "bfd"; | prefix "bfd"; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-routing { | ||||
| import ietf-network-instance { | prefix "rt"; | |||
| prefix "ni"; | ||||
| } | } | |||
| organization "IETF BFD Working Group"; | organization "IETF BFD Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/bfd> | "WG Web: <http://tools.ietf.org/wg/bfd> | |||
| WG List: <rtg-bfd@ietf.org> | WG List: <rtg-bfd@ietf.org> | |||
| WG Chair: Jeff Haas | WG Chair: Jeff Haas | |||
| WG Chair: Reshad Rahman | WG Chair: Reshad Rahman | |||
| Editor: Lianshu Zheng and Reshad Rahman"; | Editor: Lianshu Zheng and Reshad Rahman"; | |||
| description | description | |||
| "This module contains the YANG definition for BFD IP single-hop | "This module contains the YANG definition for BFD IP single-hop | |||
| as per RFC5881."; | as per RFC5881. | |||
| revision 2016-07-04 { | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or | ||||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices."; | ||||
| revision 2017-03-07 { | ||||
| 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"; | |||
| } | } | |||
| augment "/bfd:bfd" { | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | ||||
| augment "/rt:routing/rt:control-plane-protocols/" | ||||
| + "rt:control-plane-protocol/bfd:bfd" { | ||||
| description "BFD augmentation for IP single-hop"; | description "BFD augmentation for IP single-hop"; | |||
| container ip-sh { | container ip-sh { | |||
| description "BFD IP single-hop top level container"; | description "BFD IP single-hop top level container"; | |||
| container config { | container config { | |||
| description "BFD IP single-hop configuration container"; | description "BFD IP single-hop configuration container"; | |||
| } | ||||
| container oper { | ||||
| config "false"; | ||||
| description "BFD IP single-hop operational container"; | ||||
| uses bfd:bfd-session-statistics; | ||||
| } | ||||
| } | ||||
| } | ||||
| augment "/ni:network-instances/ni:network-instance/bfd:bfd" { | ||||
| description "BFD augmentation for IP single-hop."; | ||||
| container ip-sh { | ||||
| description "BFD IP single-hop container"; | ||||
| container config { | ||||
| description "BFD configuration"; | ||||
| container session-cfg { | container session-cfg { | |||
| description "BFD IP single-hop session configuration"; | description "BFD IP single-hop session configuration"; | |||
| list sessions { | list sessions { | |||
| key "interface dest-addr"; | key "interface dest-addr"; | |||
| description "List of IP single-hop sessions"; | description "List of IP single-hop sessions"; | |||
| leaf interface { | leaf interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Interface on which the BFD session is running."; | "Interface on which the BFD session is running."; | |||
| } | } | |||
| leaf dest-addr { | leaf dest-addr { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| skipping to change at page 33, line 37 ¶ | skipping to change at page 34, line 30 ¶ | |||
| uses bfd:bfd-grouping-common-cfg-parms; | uses bfd:bfd-grouping-common-cfg-parms; | |||
| uses bfd:bfd-grouping-echo-cfg-parms; | uses bfd:bfd-grouping-echo-cfg-parms; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container oper { | container oper { | |||
| config "false"; | config "false"; | |||
| description "BFD operational container"; | description "BFD IP single-hop operational container"; | |||
| uses bfd:bfd-session-statistics; | uses bfd:bfd-session-statistics; | |||
| list sessions { | list sessions { | |||
| key "interface dest-addr"; | key "interface dest-addr"; | |||
| description "BFD IP single-hop sessions"; | description "BFD IP single-hop sessions"; | |||
| leaf interface { | leaf interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Interface on which the BFD session is running."; | "Interface on which the BFD session is running."; | |||
| skipping to change at page 34, line 41 ¶ | skipping to change at page 35, line 34 ¶ | |||
| type boolean; | type boolean; | |||
| description "Was echo enabled for BFD"; | description "Was echo enabled for BFD"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.15. BFD IP multi-hop Yang Module | 2.15. BFD IP multi-hop Yang Module | |||
| <CODE BEGINS> file "ietf-bfd-ip-mh@2016-07-04.yang" | <CODE BEGINS> file "ietf-bfd-ip-mh@2017-03-07.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 { | import ietf-bfd { | |||
| prefix "bfd"; | prefix "bfd"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| skipping to change at page 35, line 4 ¶ | skipping to change at page 35, line 46 ¶ | |||
| 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 { | import ietf-bfd { | |||
| prefix "bfd"; | prefix "bfd"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-network-instance { | import ietf-routing { | |||
| prefix "ni"; | prefix "rt"; | |||
| } | } | |||
| organization "IETF BFD Working Group"; | organization "IETF BFD Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/bfd> | "WG Web: <http://tools.ietf.org/wg/bfd> | |||
| WG List: <rtg-bfd@ietf.org> | WG List: <rtg-bfd@ietf.org> | |||
| WG Chair: Jeff Haas | WG Chair: Jeff Haas | |||
| WG Chair: Reshad Rahman | WG Chair: Reshad Rahman | |||
| Editor: Lianshu Zheng and Reshad Rahman"; | Editor: Lianshu Zheng and Reshad Rahman"; | |||
| description | description | |||
| "This module contains the YANG definition for BFD IP multi-hop | "This module contains the YANG definition for BFD IP multi-hop | |||
| asper RFC5883."; | as per RFC5883. | |||
| revision 2016-07-04 { | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or | ||||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices."; | ||||
| revision 2017-03-07 { | ||||
| 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"; | |||
| } | } | |||
| augment "/bfd:bfd" { | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | ||||
| augment "/rt:routing/rt:control-plane-protocols/" | ||||
| + "rt:control-plane-protocol/bfd:bfd" { | ||||
| description "BFD augmentation for IP multi-hop"; | description "BFD augmentation for IP multi-hop"; | |||
| container ip-mh { | container ip-mh { | |||
| description "BFD IP multi-hop top level container"; | description "BFD IP multi-hop top level container"; | |||
| container config { | container config { | |||
| description "BFD IP multi-hop configuration container"; | description "BFD IP multi-hop configuration container"; | |||
| } | ||||
| container oper { | ||||
| config "false"; | ||||
| description "BFD IP multi-hop operational container"; | ||||
| uses bfd:bfd-session-statistics; | ||||
| } | ||||
| } | ||||
| } | ||||
| augment "/ni:network-instances/ni:network-instance/bfd:bfd" { | ||||
| description "BFD augmentation for IP multi-hop."; | ||||
| container ip-mh { | ||||
| description "BFD IP multi-hop container"; | ||||
| container config { | ||||
| description "BFD configuration"; | ||||
| container session-cfg { | container session-cfg { | |||
| description "BFD IP multi-hop session configuration"; | description "BFD IP multi-hop session configuration"; | |||
| list sessions { | list sessions { | |||
| key "source-addr dest-addr"; | key "source-addr dest-addr"; | |||
| description "List of IP multi-hop sessions"; | description "List of IP multi-hop sessions"; | |||
| leaf source-addr { | leaf source-addr { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| skipping to change at page 36, line 37 ¶ | skipping to change at page 37, line 30 ¶ | |||
| leaf rx-ttl { | leaf rx-ttl { | |||
| type bfd:ttl; | type bfd:ttl; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Minimum allowed TTL value for incoming BFD control | "Minimum allowed TTL value for incoming BFD control | |||
| packets"; | packets"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container oper { | container oper { | |||
| config "false"; | config "false"; | |||
| description "BFD operational container"; | ||||
| container bfd-session-statistics { | description "BFD IP multi-hop operational container"; | |||
| description "BFD session counters"; | ||||
| uses bfd:bfd-session-statistics; | uses bfd:bfd-session-statistics; | |||
| } | ||||
| list session-group { | list session-group { | |||
| key "source-addr dest-addr"; | key "source-addr dest-addr"; | |||
| description | description | |||
| "BFD IP multi-hop group of sessions. A group of " + | "BFD IP multi-hop group of sessions. A group of " + | |||
| "sessions is between 1 source and 1 destination, " + | "sessions is between 1 source and 1 destination, " + | |||
| "each session has a different field in UDP/IP hdr for " + | "each session has a different field in UDP/IP hdr for " + | |||
| "ECMP."; | "ECMP."; | |||
| leaf source-addr { | leaf source-addr { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| skipping to change at page 37, line 38 ¶ | skipping to change at page 38, line 28 ¶ | |||
| } | } | |||
| } | } | |||
| notification bfd-multihop-notification { | notification bfd-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:bfd-notification-parms; | uses bfd:bfd-notification-parms; | |||
| leaf network-instance { | ||||
| type string; | ||||
| description "Network instance"; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 2.16. BFD over LAG Yang Module | 2.16. BFD over LAG Yang Module | |||
| <CODE BEGINS> file "ietf-bfd-lag@2017-01-07.yang" | <CODE BEGINS> file "ietf-bfd-lag@2017-03-07.yang" | |||
| 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 { | import ietf-bfd { | |||
| prefix "bfd"; | prefix "bfd"; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-routing { | ||||
| prefix "rt"; | ||||
| } | ||||
| organization "IETF BFD Working Group"; | organization "IETF BFD Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/bfd> | "WG Web: <http://tools.ietf.org/wg/bfd> | |||
| WG List: <rtg-bfd@ietf.org> | WG List: <rtg-bfd@ietf.org> | |||
| WG Chair: Jeff Haas | WG Chair: Jeff Haas | |||
| WG Chair: Reshad Rahman | WG Chair: Reshad Rahman | |||
| Editor: Lianshu Zheng and Reshad Rahman"; | Editor: Lianshu Zheng and Reshad Rahman"; | |||
| description | description | |||
| "This module contains the YANG definition for BFD over LAG | "This module contains the YANG definition for BFD over LAG | |||
| interfaces as per RFC7130."; | interfaces as per RFC7130. | |||
| revision 2017-01-07 { | Copyright (c) 2017 IETF Trust and the persons | |||
| description | identified as authors of the code. All rights reserved. | |||
| "* Update author information | ||||
| * Fixed error with when use-ipv4/use-ipv6 statements | ||||
| "; | ||||
| reference "RFC XXXX: A YANG data model for BFD over LAG"; | ||||
| } | ||||
| revision 2016-02-17 { | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices."; | ||||
| revision 2017-03-07 { | ||||
| 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"; | |||
| } | } | |||
| augment "/bfd:bfd" { | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | ||||
| augment "/rt:routing/rt:control-plane-protocols/" | ||||
| + "rt:control-plane-protocol/bfd:bfd" { | ||||
| description "BFD augmentation for LAG"; | description "BFD augmentation for LAG"; | |||
| container lag { | container lag { | |||
| description "BFD over LAG top level container"; | description "BFD over LAG top level container"; | |||
| container config { | container config { | |||
| description "BFD over LAG configuration container"; | description "BFD over LAG configuration container"; | |||
| container session-cfg { | container session-cfg { | |||
| description "BFD over LAG session configuration"; | description "BFD over LAG session configuration"; | |||
| list sessions { | list sessions { | |||
| key "lag-name"; | key "lag-name"; | |||
| skipping to change at page 41, line 6 ¶ | skipping to change at page 42, line 4 ¶ | |||
| "Notification for BFD over LAG session state change. " + | "Notification for BFD over LAG session state change. " + | |||
| "An implementation may rate-limit notifications, e.g. when a" + | "An implementation may rate-limit notifications, e.g. when a" + | |||
| "session is continuously changing state."; | "session is continuously changing state."; | |||
| uses bfd:bfd-notification-parms; | uses bfd:bfd-notification-parms; | |||
| leaf lag-name { | leaf lag-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description "LAG interface name"; | description "LAG interface name"; | |||
| } | } | |||
| leaf member-link { | leaf member-link { | |||
| 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.17. BFD over MPLS Yang Module | 2.17. BFD over MPLS Yang Module | |||
| <CODE BEGINS> file "ietf-bfd-mpls@2016-07-04.yang" | <CODE BEGINS> file "ietf-bfd-mpls@2017-03-07.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 { | import ietf-bfd { | |||
| prefix "bfd"; | prefix "bfd"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-network-instance { | import ietf-routing { | |||
| prefix "ni"; | prefix "rt"; | |||
| } | } | |||
| organization "IETF BFD Working Group"; | organization "IETF BFD Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/bfd> | "WG Web: <http://tools.ietf.org/wg/bfd> | |||
| WG List: <rtg-bfd@ietf.org> | WG List: <rtg-bfd@ietf.org> | |||
| WG Chair: Jeff Haas | WG Chair: Jeff Haas | |||
| WG Chair: Reshad Rahman | WG Chair: Reshad Rahman | |||
| Editor: Lianshu Zheng and Reshad Rahman"; | Editor: Lianshu Zheng and Reshad Rahman"; | |||
| description | description | |||
| "This module contains the YANG definition for BFD parameters for | "This module contains the YANG definition for BFD parameters for | |||
| MPLS LSPs as per RFC5884."; | MPLS LSPs as per RFC5884. | |||
| revision 2016-07-04 { | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or | ||||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices."; | ||||
| revision 2017-03-07 { | ||||
| 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 | ||||
| // note | ||||
| identity bfd-encap-gach { | identity bfd-encap-gach { | |||
| base bfd:bfd-encap-type; | base bfd:bfd-encap-type; | |||
| description | description | |||
| "BFD with G-ACh encapsulation as per RFC5586."; | "BFD with G-ACh encapsulation as per RFC5586."; | |||
| } | } | |||
| identity bfd-encap-ip-gach { | identity bfd-encap-ip-gach { | |||
| base bfd:bfd-encap-type; | base bfd:bfd-encap-type; | |||
| description | description | |||
| "BFD with IP and G-ACh encapsulation as per RFC5586."; | "BFD with IP and G-ACh encapsulation as per RFC5586."; | |||
| skipping to change at page 42, line 38 ¶ | skipping to change at page 44, line 4 ¶ | |||
| grouping bfd-mpls-dest-address { | grouping bfd-mpls-dest-address { | |||
| description "Destination address as per RFC5884"; | description "Destination address as per RFC5884"; | |||
| leaf mpls-dest-address { | leaf mpls-dest-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| config "false"; | config "false"; | |||
| description | description | |||
| "Destination address as per RFC5884. | "Destination address as per RFC5884. | |||
| Needed if IP encapsulation is used"; | Needed if IP encapsulation is used"; | |||
| } | } | |||
| } | } | |||
| augment "/bfd:bfd" { | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/bfd:bfd" { | ||||
| description "BFD augmentation for MPLS"; | description "BFD augmentation for MPLS"; | |||
| container mpls { | container mpls { | |||
| description "BFD MPLS top level container"; | description "BFD MPLS top level container"; | |||
| container config { | container config { | |||
| description "BFD MPLS configuration container"; | description "BFD MPLS configuration container"; | |||
| container egress { | container egress { | |||
| description "Egress configuration"; | description "Egress configuration"; | |||
| uses bfd:bfd-grouping-base-cfg-parms; | uses bfd:bfd-grouping-base-cfg-parms; | |||
| uses bfd:bfd-auth-parms; | uses bfd:bfd-auth-parms; | |||
| } | } | |||
| } | ||||
| container oper { | ||||
| config "false"; | ||||
| description "BFD MPLS operational container"; | ||||
| uses bfd:bfd-session-statistics; | ||||
| } | ||||
| } | ||||
| } | ||||
| augment "/ni:network-instances/ni:network-instance/bfd:bfd" { | ||||
| description "BFD augmentation for MPLS."; | ||||
| container mpls { | ||||
| description "BFD MPLS container"; | ||||
| container config { | ||||
| description "BFD MPLS configuration container"; | ||||
| container session-cfg { | container session-cfg { | |||
| description "BFD MPLS session configuration"; | description "BFD MPLS session configuration"; | |||
| list sessions { | list sessions { | |||
| key "mpls-fec"; | key "mpls-fec"; | |||
| description "List of BFD MPLS sessions"; | description "List of BFD MPLS sessions"; | |||
| leaf mpls-fec { | leaf mpls-fec { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description "MPLS FEC"; | description "MPLS FEC"; | |||
| } | } | |||
| skipping to change at page 44, line 20 ¶ | skipping to change at page 45, line 20 ¶ | |||
| key "local-discriminator"; | key "local-discriminator"; | |||
| description | description | |||
| "The BFD sessions for an MPLS FEC. Local " + | "The BFD sessions for an MPLS FEC. Local " + | |||
| "discriminator is unique for each session in the " + | "discriminator is unique for each session in the " + | |||
| "group."; | "group."; | |||
| uses bfd:bfd-all-session; | uses bfd:bfd-all-session; | |||
| uses bfd-mpls:bfd-mpls-dest-address; | uses bfd-mpls:bfd-mpls-dest-address; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| notification bfd-mpls-notification { | notification bfd-mpls-notification { | |||
| description | description | |||
| "Notification for BFD over MPLS FEC session state change. " + | "Notification for BFD over MPLS FEC session state change. " + | |||
| "An implementation may rate-limit notifications, e.g. when a" + | "An implementation may rate-limit notifications, e.g. when a" + | |||
| "session is continuously changing state."; | "session is continuously changing state."; | |||
| uses bfd:bfd-notification-parms; | uses bfd:bfd-notification-parms; | |||
| leaf network-instance { | ||||
| type string; | ||||
| description "Network instance"; | ||||
| } | ||||
| leaf mpls-dest-address { | leaf mpls-dest-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "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.18. BFD over MPLS-TE Yang Module | 2.18. BFD over MPLS-TE Yang Module | |||
| <CODE BEGINS> file "ietf-bfd-mpls-te@2016-02-04.yang" | <CODE BEGINS> file "ietf-bfd-mpls-te@2017-03-07.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 { | 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"; | |||
| } | } | |||
| import ietf-routing { | ||||
| prefix "rt"; | ||||
| } | ||||
| organization "IETF BFD Working Group"; | organization "IETF BFD Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/bfd> | "WG Web: <http://tools.ietf.org/wg/bfd> | |||
| WG List: <rtg-bfd@ietf.org> | WG List: <rtg-bfd@ietf.org> | |||
| WG Chair: Jeff Haas | WG Chair: Jeff Haas | |||
| WG Chair: Reshad Rahman | WG Chair: Reshad Rahman | |||
| Editor: Lianshu Zheng and Reshad Rahman"; | Editor: Lianshu Zheng and Reshad Rahman"; | |||
| description | description | |||
| "This module contains the YANG definition for BFD parameters for | "This module contains the YANG definition for BFD parameters for | |||
| MPLS Traffic Engineering as per RFC5884."; | MPLS Traffic Engineering as per RFC5884. | |||
| revision 2016-02-04 { | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or | ||||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices."; | ||||
| revision 2017-03-07 { | ||||
| 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"; | |||
| } | } | |||
| augment "/bfd:bfd" { | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
| // note | ||||
| augment "/rt:routing/rt:control-plane-protocols/" | ||||
| + "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 config { | container config { | |||
| description "BFD MPLS-TE configuration container"; | description "BFD MPLS-TE configuration container"; | |||
| container egress { | container egress { | |||
| description "Egress configuration"; | description "Egress configuration"; | |||
| skipping to change at page 47, line 33 ¶ | skipping to change at page 48, line 48 ¶ | |||
| The IANA is requested to as assign a new new namespace URI from the | The IANA is requested to as assign a new new namespace URI from the | |||
| IETF XML registry. | IETF XML registry. | |||
| URI:TBD | URI:TBD | |||
| 2.21. Acknowledgements | 2.21. Acknowledgements | |||
| We would also like to thank Nobo Akiya and Jeff Haas for their | We would also like to thank Nobo Akiya and Jeff Haas for their | |||
| encouragement on this work. We would also like to thank Rakesh | encouragement on this work. We would also like to thank Rakesh | |||
| Gandhi and Tarek Saad for their help on the MPLS-TE model. | Gandhi and Tarek Saad for their help on the MPLS-TE model. We would | |||
| also like to thank Acee Lindem for his guidance. | ||||
| 3. References | 3. References | |||
| 3.1. Normative References | 3.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 48, line 46 ¶ | skipping to change at page 50, line 16 ¶ | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <http://www.rfc-editor.org/info/rfc6241>. | <http://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., | [RFC7130] Bhatia, M., Ed., Chen, M., Ed., Boutros, S., Ed., | |||
| Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional | Binderberger, M., Ed., and J. Haas, Ed., "Bidirectional | |||
| Forwarding Detection (BFD) on Link Aggregation Group (LAG) | Forwarding Detection (BFD) on Link Aggregation Group (LAG) | |||
| Interfaces", RFC 7130, DOI 10.17487/RFC7130, February | Interfaces", RFC 7130, DOI 10.17487/RFC7130, February | |||
| 2014, <http://www.rfc-editor.org/info/rfc7130>. | 2014, <http://www.rfc-editor.org/info/rfc7130>. | |||
| [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | ||||
| Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | ||||
| <http://www.rfc-editor.org/info/rfc7223>. | ||||
| [RFC7277] Bjorklund, M., "A YANG Data Model for IP Management", | ||||
| RFC 7277, DOI 10.17487/RFC7277, June 2014, | ||||
| <http://www.rfc-editor.org/info/rfc7277>. | ||||
| [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | ||||
| Management", RFC 8022, DOI 10.17487/RFC8022, November | ||||
| 2016, <http://www.rfc-editor.org/info/rfc8022>. | ||||
| 3.2. Informative References | 3.2. Informative References | |||
| [I-D.ietf-lime-yang-connectionless-oam] | ||||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | ||||
| "Generic YANG Data Model for Connectionless Operations, | ||||
| Administration, and Maintenance(OAM) protocols", draft- | ||||
| ietf-lime-yang-connectionless-oam-04 (work in progress), | ||||
| February 2017. | ||||
| [I-D.ietf-mpls-base-yang] | ||||
| Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., | ||||
| Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data | ||||
| Model for MPLS Base", draft-ietf-mpls-base-yang-02 (work | ||||
| in progress), March 2017. | ||||
| [I-D.ietf-netconf-restconf] | [I-D.ietf-netconf-restconf] | |||
| Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", draft-ietf-netconf-restconf-18 (work in | Protocol", draft-ietf-netconf-restconf-18 (work in | |||
| progress), October 2016. | progress), October 2016. | |||
| [I-D.ietf-netmod-routing-cfg] | [I-D.ietf-netmod-routing-cfg] | |||
| Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
| Management", draft-ietf-netmod-routing-cfg-25 (work in | Management", draft-ietf-netmod-routing-cfg-25 (work in | |||
| progress), November 2016. | progress), November 2016. | |||
| [I-D.ietf-netmod-schema-mount] | ||||
| Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | ||||
| ietf-netmod-schema-mount-04 (work in progress), March | ||||
| 2017. | ||||
| [I-D.ietf-rtgwg-device-model] | ||||
| Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, | ||||
| "Network Device YANG Organizational Models", draft-ietf- | ||||
| rtgwg-device-model-01 (work in progress), October 2016. | ||||
| [I-D.ietf-rtgwg-lne-model] | ||||
| Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic, | ||||
| "YANG Logical Network Elements", draft-ietf-rtgwg-lne- | ||||
| model-01 (work in progress), October 2016. | ||||
| [I-D.ietf-rtgwg-ni-model] | [I-D.ietf-rtgwg-ni-model] | |||
| Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic, | Berger, L., Hopps, C., Lindem, A., and D. Bogdanovic, | |||
| "YANG Network Instances", draft-ietf-rtgwg-ni-model-01 | "YANG Network Instances", draft-ietf-rtgwg-ni-model-01 | |||
| (work in progress), October 2016. | (work in progress), October 2016. | |||
| [I-D.ietf-rtgwg-yang-key-chain] | [I-D.ietf-rtgwg-yang-key-chain] | |||
| Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. | Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. | |||
| Yang, "Routing Key Chain YANG Data Model", draft-ietf- | Yang, "Routing Key Chain YANG Data Model", draft-ietf- | |||
| rtgwg-yang-key-chain-11 (work in progress), November 2016. | rtgwg-yang-key-chain-15 (work in progress), February 2017. | |||
| [I-D.ietf-teas-yang-te] | [I-D.ietf-teas-yang-te] | |||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., | Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., | |||
| 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 Traffic Engineering Tunnels and Interfaces", | Model for Traffic Engineering Tunnels and Interfaces", | |||
| draft-ietf-teas-yang-te-05 (work in progress), October | draft-ietf-teas-yang-te-05 (work in progress), October | |||
| 2016. | 2016. | |||
| Appendix A. Change log | Appendix A. Change log | |||
| RFC Editor: Remove this section upon publication as an RFC. | RFC Editor: Remove this section upon publication as an RFC. | |||
| A.1. Changes between versions -03 and -04 | A.1. Changes between versions -04 and -05 | |||
| o "bfd" node in augment of control-plane-protocol as per [RFC8022]. | ||||
| o Removed augment of network-instance. Replaced by schema-mount. | ||||
| o Added information on interaction with other YANG modules. | ||||
| A.2. 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. | |||
| A.2. Changes between versions -02 and -03 | A.3. 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. | |||
| A.3. Changes between versions -01 and -02 | A.4. Changes between versions -01 and -02 | |||
| o Replace routing-instance, which has been removed from | o Replace routing-instance, which has been removed from | |||
| [I-D.ietf-netmod-routing-cfg], with network-instance from | [I-D.ietf-netmod-routing-cfg], with network-instance from | |||
| [I-D.ietf-rtgwg-ni-model] | [I-D.ietf-rtgwg-ni-model] | |||
| A.4. Changes between versions -00 and -01 | A.5. 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 key-chain in | o For BFD authentication we now use key-chain in | |||
| [I-D.ietf-rtgwg-yang-key-chain] | [I-D.ietf-rtgwg-yang-key-chain] | |||
| Authors' Addresses | Authors' Addresses | |||
| Lianshu Zheng (editor) | ||||
| Huawei Technologies | ||||
| China | ||||
| Email: vero.zheng@huawei.com | ||||
| Reshad Rahman (editor) | Reshad Rahman (editor) | |||
| Cisco Systems | Cisco Systems | |||
| Canada | Canada | |||
| Email: rrahman@cisco.com | Email: rrahman@cisco.com | |||
| Lianshu Zheng (editor) | ||||
| Huawei Technologies | ||||
| China | ||||
| Email: vero.zheng@huawei.com | ||||
| Santosh Pallagatti | Santosh Pallagatti | |||
| India | India | |||
| Email: santosh.pallagatti@gmail.com | Email: santosh.pallagatti@gmail.com | |||
| Mahesh Jethanandani | Mahesh Jethanandani | |||
| Cisco Systems | Cisco Systems | |||
| Email: mjethanandani@gmail.com | Email: mjethanandani@gmail.com | |||
| Greg Mirsky | Greg Mirsky | |||
| Ericsson | ZTE Corporation | |||
| Email: gregimirsky@gmail.com | Email: gregimirsky@gmail.com | |||
| End of changes. 109 change blocks. | ||||
| 361 lines changed or deleted | 474 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/ | ||||