| < draft-ietf-rtgwg-yang-vrrp-08.txt | draft-ietf-rtgwg-yang-vrrp-09.txt > | |||
|---|---|---|---|---|
| Network Working Group X. Liu, Ed. | Network Working Group X. Liu, Ed. | |||
| Internet-Draft A. Kyparlis | Internet-Draft A. Kyparlis | |||
| Intended status: Standards Track Jabil | Intended status: Standards Track Jabil | |||
| Expires: June 18, 2018 R. Parikh | Expires: July 13, 2018 R. Parikh | |||
| VMware | VMware | |||
| A. Lindem | A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| M. Zhang | M. Zhang | |||
| Huawei Technologies | Huawei Technologies | |||
| December 15, 2017 | January 9, 2018 | |||
| A YANG Data Model for Virtual Router Redundancy Protocol (VRRP) | A YANG Data Model for Virtual Router Redundancy Protocol (VRRP) | |||
| draft-ietf-rtgwg-yang-vrrp-08 | draft-ietf-rtgwg-yang-vrrp-09 | |||
| Abstract | Abstract | |||
| This document describes a data model for Virtual Router Redundancy | This document describes a data model for Virtual Router Redundancy | |||
| Protocol (VRRP). Both version 2 and version 3 of VRRP are covered. | Protocol (VRRP). Both version 2 and version 3 of VRRP are covered. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
| 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 June 18, 2018. | This Internet-Draft will expire on July 13, 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 | |||
| skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 | 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Scope of the Model . . . . . . . . . . . . . . . . . . . 3 | 2.1. Scope of the Model . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.2. Relations with Interface Model and IP Model . . . . . . . 4 | 2.2. Relations with Interface Model and IP Model . . . . . . . 4 | |||
| 2.3. Protocol Configuration . . . . . . . . . . . . . . . . . 5 | 2.3. Protocol Configuration . . . . . . . . . . . . . . . . . 5 | |||
| 2.4. Protocol States . . . . . . . . . . . . . . . . . . . . . 6 | 2.4. Protocol States . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 7 | 2.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 31 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 32 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 32 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 33 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 33 | 6.2. Informative References . . . . . . . . . . . . . . . . . 35 | |||
| Appendix A. Complete Model Tree Structure . . . . . . . . . . . 34 | Appendix A. Complete Model Tree Structure . . . . . . . . . . . 36 | |||
| Appendix B. Data Tree Example . . . . . . . . . . . . . . . . . 36 | Appendix B. Data Tree Example . . . . . . . . . . . . . . . . . 38 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
| 1. Introduction | 1. Introduction | |||
| This document introduces a YANG [RFC6020][RFC7950] data model for | This document introduces a YANG [RFC6020][RFC7950] data model for | |||
| Virtual Router Redundancy Protocol (VRRP) [RFC3768][RFC5798]. VRRP | Virtual Router Redundancy Protocol (VRRP) [RFC3768] [RFC5798]. VRRP | |||
| provides higher resiliency by specifying an election protocol that | provides higher resiliency by specifying an election protocol that | |||
| dynamically assigns responsibility for a virtual router to one of the | dynamically assigns responsibility for a virtual router to one of the | |||
| VRRP routers on a LAN. | VRRP routers on a LAN. | |||
| This YANG model supports both version 2 and version 3 of VRRP. VRRP | This YANG model supports both version 2 and version 3 of VRRP. VRRP | |||
| version 2 defined in [RFC3768] supports IPv4. VRRP version 3 defined | version 2 defined in [RFC3768] supports IPv4. VRRP version 3 defined | |||
| in [RFC5798] supports both IPv4 and IPv6. | in [RFC5798] supports both IPv4 and IPv6. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| skipping to change at page 3, line 22 ¶ | skipping to change at page 3, line 22 ¶ | |||
| defined in [I-D.ietf-netmod-yang-tree-diagrams]. | defined in [I-D.ietf-netmod-yang-tree-diagrams]. | |||
| 1.3. Prefixes in Data Node Names | 1.3. Prefixes in Data Node Names | |||
| In this document, names of data nodes, actions, and other data model | In this document, names of data nodes, actions, and other data model | |||
| objects are often used without a prefix, as long as it is clear from | objects are often used without a prefix, as long as it is clear from | |||
| the context in which YANG module each name is defined. Otherwise, | the context in which YANG module each name is defined. Otherwise, | |||
| names are prefixed using the standard prefix associated with the | names are prefixed using the standard prefix associated with the | |||
| corresponding YANG module, as shown in Table 1. | corresponding YANG module, as shown in Table 1. | |||
| +--------+-----------------+-----------------------------------+ | +--------+-----------------+------------------------------+ | |||
| | Prefix | YANG module | Reference | | | Prefix | YANG module | Reference | | |||
| +--------+-----------------+-----------------------------------+ | +--------+-----------------+------------------------------+ | |||
| | yang | ietf-yang-types | [RFC6991] | | | yang | ietf-yang-types | [RFC6991] | | |||
| | inet | ietf-inet-types | [RFC6991] | | | inet | ietf-inet-types | [RFC6991] | | |||
| | if | ietf-interfaces | [I-D.bjorklund-netmod-rfc7223bis] | | | if | ietf-interfaces | [I-D.ietf-netmod-rfc7223bis] | | |||
| | ip | ietf-ip | [I-D.bjorklund-netmod-rfc7277bis] | | | ip | ietf-ip | [I-D.ietf-netmod-rfc7277bis] | | |||
| +--------+-----------------+-----------------------------------+ | +--------+-----------------+------------------------------+ | |||
| Table 1: Prefixes and Corresponding YANG Modules | Table 1: Prefixes and Corresponding YANG Modules | |||
| 2. Design of the Data Model | 2. Design of the Data Model | |||
| 2.1. Scope of the Model | 2.1. Scope of the Model | |||
| The model covers VRRP version 2 [RFC3768] and VRRP version 3 | The model covers VRRP version 2 [RFC3768] and VRRP version 3 | |||
| [RFC5798] protocols. The model is designed to be implemented on a | [RFC5798] protocols. The model is designed to be implemented on a | |||
| device where VRRP version 2 or version 3 is implemented. With the | device where VRRP version 2 or version 3 is implemented. With the | |||
| skipping to change at page 4, line 8 ¶ | skipping to change at page 4, line 8 ¶ | |||
| o Manage the protocol operational behavior. | o Manage the protocol operational behavior. | |||
| o Retrieve the protocol operational status. | o Retrieve the protocol operational status. | |||
| o Receive the protocol notifications. | o Receive the protocol notifications. | |||
| 2.2. Relations with Interface Model and IP Model | 2.2. Relations with Interface Model and IP Model | |||
| This model augments the interface data model "ietf-interfaces" | This model augments the interface data model "ietf-interfaces" | |||
| [I-D.bjorklund-netmod-rfc7223bis] and the IP management model "ietf- | [I-D.ietf-netmod-rfc7223bis] and the IP management model "ietf-ip" | |||
| ip" [I-D.bjorklund-netmod-rfc7277bis]. The augmentation relations | [I-D.ietf-netmod-rfc7277bis]. The augmentation relations are shown | |||
| are shown as follows: | as follows: | |||
| module: ietf-interfaces | module: ietf-interfaces | |||
| +--rw interfaces | +--rw interfaces | |||
| +--rw interface* [name] | +--rw interface* [name] | |||
| ... | ... | |||
| +--rw ip:ipv4! | +--rw ip:ipv4! | |||
| | +--rw ip:address* [ip] | | +--rw ip:address* [ip] | |||
| ... | ... | |||
| | +--rw vrrp:vrrp | | +--rw vrrp:vrrp | |||
| | +--rw vrrp:vrrp-instance* [vrid] | | +--rw vrrp:vrrp-instance* [vrid] | |||
| skipping to change at page 5, line 9 ¶ | skipping to change at page 5, line 9 ¶ | |||
| The IP addresses on the augmented interface are the real addresses | The IP addresses on the augmented interface are the real addresses | |||
| through which the VRRP router operates. The IPv4 or IPv6 address(es) | through which the VRRP router operates. The IPv4 or IPv6 address(es) | |||
| associated with a virtual router (described in Section 1 of | associated with a virtual router (described in Section 1 of | |||
| [RFC5798]) are modeled as a list of IPv4 or IPv6 addresses under the | [RFC5798]) are modeled as a list of IPv4 or IPv6 addresses under the | |||
| vrrp-instance. | vrrp-instance. | |||
| 2.3. Protocol Configuration | 2.3. Protocol Configuration | |||
| The model structure for the protocol configuration is as shown below: | The model structure for the protocol configuration is as shown below: | |||
| augment /if:interfaces/if:interface/ip:ipv4: | augment /if:interfaces/if:interface/ip:ipv4: | |||
| +--rw vrrp | +--rw vrrp | |||
| +--rw vrrp-instance* [vrid] | +--rw vrrp-instance* [vrid] | |||
| +--rw vrid uint8 | +--rw vrid uint8 | |||
| | ... | | ... | |||
| +--rw track | +--rw track | |||
| | +--rw interfaces | | +--rw interfaces | |||
| | | +--rw interface* [interface] | | | +--rw interface* [interface] | |||
| | | +--rw interface if:interface-ref | | | +--rw interface if:interface-ref | |||
| | | ... | | | ... | |||
| | +--rw networks | | +--rw networks | |||
| | +--rw network* [prefix] | | +--rw network* [prefix] | |||
| | +--rw prefix inet:ipv4-prefix | | +--rw prefix inet:ipv4-prefix | |||
| | ... | | ... | |||
| +--rw virtual-ipv4-addresses | +--rw virtual-ipv4-addresses | |||
| +--rw virtual-ipv4-address* [ipv4-address] | +--rw virtual-ipv4-address* [ipv4-address] | |||
| +--rw ipv4-address inet:ipv4-address | +--rw ipv4-address inet:ipv4-address | |||
| augment /if:interfaces/if:interface/ip:ipv6: | augment /if:interfaces/if:interface/ip:ipv6: | |||
| +--rw vrrp | +--rw vrrp | |||
| +--rw vrrp-instance* [vrid] | +--rw vrrp-instance* [vrid] | |||
| +--rw vrid uint8 | +--rw vrid uint8 | |||
| | ... | | ... | |||
| +--rw track | +--rw track | |||
| | +--rw interfaces | | +--rw interfaces | |||
| | | +--rw interface* [interface] | | | +--rw interface* [interface] | |||
| | | +--rw interface if:interface-ref | | | +--rw interface if:interface-ref | |||
| | | ... | | | ... | |||
| | +--rw networks | | +--rw networks | |||
| | +--rw network* [prefix] | | +--rw network* [prefix] | |||
| | +--rw prefix inet:ipv6-prefix | | +--rw prefix inet:ipv6-prefix | |||
| | ... | | ... | |||
| +--rw virtual-ipv6-addresses | +--rw virtual-ipv6-addresses | |||
| +--rw virtual-ipv6-address* [ipv6-address] | +--rw virtual-ipv6-address* [ipv6-address] | |||
| +--rw ipv6-address inet:ipv6-address | +--rw ipv6-address inet:ipv6-address | |||
| The model allows to configure the following protocol entities: | The model allows to configure the following protocol entities: | |||
| o VRRP instance (version 2 or version 3), representing a VRRP | o VRRP instance (version 2 or version 3), representing a VRRP | |||
| router. | router. | |||
| o Virtual IPv4 or IPv6 address associated with a virtual router. | o Virtual IPv4 or IPv6 address associated with a virtual router. | |||
| o Tracking interface, to detect interface connectivity failures. | o Tracking interface, to detect interface connectivity failures. | |||
| o Tracking network, to detect interface connectivity failures. | o Tracking network, to detect interface connectivity failures. | |||
| 2.4. Protocol States | 2.4. Protocol States | |||
| The model structure for the protocol states is as shown below: | The model structure for the protocol states is as shown below: | |||
| module: ietf-vrrp | module: ietf-vrrp | |||
| +--ro vrrp | +--ro vrrp | |||
| +--ro <global operational states> | | // global operational states | |||
| +--ro statistics | +--ro virtual-routers? uint32 | |||
| +--ro discontinuity-datetime? yang:date-and-time | +--ro interfaces? uint32 | |||
| +--ro <global statistics> | +--ro statistics // global statistics | |||
| +--ro discontinuity-datetime? yang:date-and-time | ||||
| augment /if:interfaces/if:interface/ip:ipv4: | +--ro checksum-errors? yang:counter64 | |||
| +--rw vrrp | +--ro version-errors? yang:counter64 | |||
| +--rw vrrp-instance* [vrid] | +--ro vrid-errors? yang:counter64 | |||
| +--rw vrid uint8 | +--ro ip-ttl-errors? yang:counter64 | |||
| | ... | ||||
| +--rw track | ||||
| | +--rw interfaces | ||||
| | | +--rw interface* [interface] | ||||
| | | +--rw interface if:interface-ref | ||||
| | | ... | ||||
| | +--rw networks | ||||
| | +--rw network* [prefix] | ||||
| | +--rw prefix inet:ipv4-prefix | ||||
| | ... | ||||
| +--rw virtual-ipv4-addresses | ||||
| | +--rw virtual-ipv4-address* [ipv4-address] | ||||
| | +--rw ipv4-address inet:ipv4-address | ||||
| | | ||||
| +--ro <per instance operational states> | ||||
| +--ro statistics | ||||
| +--ro <per instance statistics> | ||||
| augment /if:interfaces/if:interface/ip:ipv6: | augment /if:interfaces/if:interface/ip:ipv4: | |||
| +--rw vrrp | +--rw vrrp | |||
| +--rw vrrp-instance* [vrid] | +--rw vrrp-instance* [vrid] | |||
| +--rw vrid uint8 | +--rw vrid uint8 | |||
| + ... | | ... | |||
| +--rw track | +--rw track | |||
| | +--rw interfaces | | +--rw interfaces | |||
| | | +--rw interface* [interface] | | | +--rw interface* [interface] | |||
| | | +--rw interface if:interface-ref | | | +--rw interface if:interface-ref | |||
| | | ... | | | ... | |||
| | +--rw networks | ||||
| | +--rw network* [prefix] | ||||
| | +--rw prefix inet:ipv4-prefix | ||||
| | ... | ||||
| +--rw virtual-ipv4-addresses | ||||
| | +--rw virtual-ipv4-address* [ipv4-address] | ||||
| | +--rw ipv4-address inet:ipv4-address | ||||
| | | ||||
| | // per instance operational states | ||||
| +--ro state? identityref | ||||
| +--ro is-owner? boolean | ||||
| +--ro last-adv-source? inet:ip-address | ||||
| +--ro up-datetime? yang:date-and-time | ||||
| +--ro master-down-interval? uint32 | ||||
| +--ro skew-time? uint32 | ||||
| +--ro last-event? identityref | ||||
| +--ro new-master-reason? new-master-reason-type | ||||
| +--ro statistics // per instance statistics | ||||
| +--ro discontinuity-datetime? yang:date-and-time | ||||
| +--ro master-transitions? yang:counter32 | ||||
| +--ro advertisement-recv? yang:counter64 | ||||
| +--ro advertisement-sent? yang:counter64 | ||||
| +--ro interval-errors? yang:counter64 | ||||
| | {validate-interval-errors}? | ||||
| +--ro priority-zero-pkts-rcvd? yang:counter64 | ||||
| +--ro priority-zero-pkts-sent? yang:counter64 | ||||
| +--ro invalid-type-pkts-rcvd? yang:counter64 | ||||
| +--ro address-list-errors? yang:counter64 | ||||
| | {validate-address-list-errors}? | ||||
| +--ro packet-length-errors? yang:counter64 | ||||
| | +--rw networks | augment /if:interfaces/if:interface/ip:ipv6: | |||
| | +--rw network* [prefix] | +--rw vrrp | |||
| | +--rw prefix inet:ipv6-prefix | +--rw vrrp-instance* [vrid] | |||
| | ... | +--rw vrid uint8 | |||
| +--rw virtual-ipv6-addresses | + ... | |||
| | +--rw virtual-ipv6-address* [ipv6-address] | +--rw track | |||
| | +--rw ipv6-address inet:ipv6-address | | +--rw interfaces | |||
| | | | | +--rw interface* [interface] | |||
| +--ro <per instance operational states> | | | +--rw interface if:interface-ref | |||
| +--ro statistics | | | ... | |||
| +--ro <per instance statistics> | | +--rw networks | |||
| | +--rw network* [prefix] | ||||
| | +--rw prefix inet:ipv6-prefix | ||||
| | ... | ||||
| +--rw virtual-ipv6-addresses | ||||
| | +--rw virtual-ipv6-address* [ipv6-address] | ||||
| | +--rw ipv6-address inet:ipv6-address | ||||
| | | ||||
| | // per instance operational states | ||||
| +--ro state? identityref | ||||
| +--ro is-owner? boolean | ||||
| +--ro last-adv-source? inet:ip-address | ||||
| +--ro up-datetime? yang:date-and-time | ||||
| +--ro master-down-interval? uint32 | ||||
| +--ro skew-time? uint32 | ||||
| +--ro last-event? identityref | ||||
| +--ro new-master-reason? new-master-reason-type | ||||
| +--ro statistics // per instance statistics | ||||
| +--ro discontinuity-datetime? yang:date-and-time | ||||
| +--ro master-transitions? yang:counter32 | ||||
| +--ro advertisement-recv? yang:counter64 | ||||
| +--ro advertisement-sent? yang:counter64 | ||||
| +--ro interval-errors? yang:counter64 | ||||
| | {validate-interval-errors}? | ||||
| +--ro priority-zero-pkts-rcvd? yang:counter64 | ||||
| +--ro priority-zero-pkts-sent? yang:counter64 | ||||
| +--ro invalid-type-pkts-rcvd? yang:counter64 | ||||
| +--ro address-list-errors? yang:counter64 | ||||
| | {validate-address-list-errors}? | ||||
| +--ro packet-length-errors? yang:counter64 | ||||
| This model conforms to the Network Management Datastore Architecture | This model conforms to the Network Management Datastore Architecture | |||
| (NMDA) [I-D.ietf-netmod-revised-datastores]. The operational state | (NMDA) [I-D.ietf-netmod-revised-datastores]. The operational state | |||
| data is combined with the associated configuration data in the same | data is combined with the associated configuration data in the same | |||
| hierarchy [I-D.ietf-netmod-rfc6087bis]. When protocol states are | hierarchy [I-D.ietf-netmod-rfc6087bis]. When protocol states are | |||
| retrieved from the NMDA operational state datastore, the returned | retrieved from the NMDA operational state datastore, the returned | |||
| states cover all "config true" (rw) and "config false" (ro) nodes | states cover all "config true" (rw) and "config false" (ro) nodes | |||
| defined in the schema. | defined in the schema. | |||
| The model allows to retrieve protocol states at the following levels: | The model allows to retrieve protocol states at the following levels: | |||
| skipping to change at page 8, line 38 ¶ | skipping to change at page 9, line 38 ¶ | |||
| vrrp-protocol-error-event | vrrp-protocol-error-event | |||
| VRRP protocol error event for a message that fails to reach a VRRP | VRRP protocol error event for a message that fails to reach a VRRP | |||
| instance to be processed. | instance to be processed. | |||
| vrrp-virtual-router-error-event | vrrp-virtual-router-error-event | |||
| VRRP virtual router error event for a message processed on a VRRP | VRRP virtual router error event for a message processed on a VRRP | |||
| instance. | instance. | |||
| In addition to the notifications specified above, the mechanism | In addition to the notifications specified above, the mechanism | |||
| defined in [I-D.ietf-netconf-yang-push] and | defined in [I-D.ietf-netconf-subscribed-notifications] and | |||
| [I-D.ietf-netconf-rfc5277bis] can be used for other general | [I-D.ietf-netconf-yang-push] can be used for other general | |||
| notifications. This mechanism currently allows the user to: | notifications. This mechanism currently allows the user to: | |||
| o Subscribe notifications on a per client basis. | o Subscribe notifications on a per client basis. | |||
| o Specify subtree filters or xpath filters so that only interested | o Specify subtree filters or xpath filters so that only interested | |||
| contents will be sent. | contents will be sent. | |||
| o Specify either periodic or on-demand notifications. | o Specify either periodic or on-demand notifications. | |||
| 3. YANG Module | 3. YANG Module | |||
| <CODE BEGINS> file "ietf-vrrp@2017-12-15.yang" | <CODE BEGINS> file "ietf-vrrp@2018-01-09.yang" | |||
| module ietf-vrrp { | module ietf-vrrp { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-vrrp"; | namespace "urn:ietf:params:xml:ns:yang:ietf-vrrp"; | |||
| prefix "vrrp"; | prefix "vrrp"; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| skipping to change at page 9, line 35 ¶ | skipping to change at page 10, line 35 ¶ | |||
| import ietf-ip { | import ietf-ip { | |||
| prefix "ip"; | prefix "ip"; | |||
| } | } | |||
| organization | organization | |||
| "IETF Routing Area Working Group (RTGWG)"; | "IETF Routing Area Working Group (RTGWG)"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/rtgwg/> | "WG Web: <https://datatracker.ietf.org/wg/rtgwg/> | |||
| WG List: <mailto:rtgwg@ietf.org> | WG List: <mailto:rtgwg@ietf.org> | |||
| WG Chair: Jeff Tantsura | ||||
| <mailto:jefftant.ietf@gmail.com> | ||||
| WG Chair: Chris Bowers | ||||
| <mailto:cbowers@juniper.net> | ||||
| Editor: Xufeng Liu | Editor: Xufeng Liu | |||
| <mailto:Xufeng_Liu@jabil.com> | <mailto:Xufeng_Liu@jabil.com> | |||
| Editor: Athanasios Kyparlis | Editor: Athanasios Kyparlis | |||
| <mailto:Athanasios_Kyparlis@jabil.com> | <mailto:Athanasios_Kyparlis@jabil.com> | |||
| Editor: Ravi Parikh | Editor: Ravi Parikh | |||
| <mailto:parikhr@vmware.com> | <mailto:parikhr@vmware.com> | |||
| Editor: Acee Lindem | Editor: Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Editor: Mingui Zhang | Editor: Mingui Zhang | |||
| <mailto:zhangmingui@huawei.com>"; | <mailto:zhangmingui@huawei.com>"; | |||
| description | description | |||
| "This YANG module defines a model for managing Virtual Router | "This YANG module defines a model for managing Virtual Router | |||
| Redundancy Protocol (VRRP) version 2 and version 3."; | Redundancy Protocol (VRRP) version 2 and version 3. | |||
| revision 2017-12-15 { | Copyright (c) 2018 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 2018-01-09 { | ||||
| description "Initial revision"; | description "Initial revision"; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Virtual Router Redundancy | "RFC XXXX: A YANG Data Model for Virtual Router Redundancy | |||
| Protocol (VRRP). | Protocol (VRRP). | |||
| RFC 2787: Definitions of Managed Objects for the Virtual | RFC 2787: Definitions of Managed Objects for the Virtual | |||
| Router Redundancy Protocol. | Router Redundancy Protocol. | |||
| RFC 3768: Virtual Router Redundancy Protocol (VRRP). | RFC 3768: Virtual Router Redundancy Protocol (VRRP). | |||
| RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3. | RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3. | |||
| RFC 6527: Definitions of Managed Objects for the Virtual | RFC 6527: Definitions of Managed Objects for the Virtual | |||
| Router Redundancy Protocol Version 3 (VRRPv3)."; | Router Redundancy Protocol Version 3 (VRRPv3)."; | |||
| skipping to change at page 31, line 31 ¶ | skipping to change at page 32, line 36 ¶ | |||
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | |||
| name: ietf-vrrp | name: ietf-vrrp | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-vrrp | namespace: urn:ietf:params:xml:ns:yang:ietf-vrrp | |||
| prefix: vrrp | prefix: vrrp | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | |||
| 5. Security Considerations | 5. Security Considerations | |||
| The configuration, state, and action data defined in this document | The YANG module specified in this document defines a schema for data | |||
| are designed to be accessed via a management protocol with a secure | that is designed to be accessed via network management protocols such | |||
| transport layer, such as NETCONF [RFC6241]. The NETCONF access | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| control model [RFC6536] provides the means to restrict access for | is the secure transport layer, and the mandatory-to-implement secure | |||
| particular NETCONF users to a preconfigured subset of all available | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| NETCONF protocol operations and contents. | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC5246]. | ||||
| A number of configuration data nodes defined in this document are | The NETCONF access control model [RFC6536] provides the means to | |||
| writable/creatable/deletable (i.e., "config true" in YANG terms, | restrict access for particular NETCONF or RESTCONF users to a | |||
| which is the default). These data nodes may be considered sensitive | preconfigured subset of all available NETCONF or RESTCONF protocol | |||
| or vulnerable in some network environments. Write operations to | operations and content. | |||
| these data nodes, such as "edit-config" in NETCONF, can have negative | ||||
| effects on the network if the protocol operations are not properly | There are a number of data nodes defined in this YANG module that are | |||
| protected. The vulnerable "config true" parameters and subtrees are | writable/creatable/deletable (i.e., config true, which is the | |||
| the following: | default). These data nodes may be considered sensitive or vulnerable | |||
| in some network environments. Write operations (e.g., edit-config) | ||||
| to these data nodes without proper protection can have a negative | ||||
| effect on network operations. These are the subtrees and data nodes | ||||
| and their sensitivity/vulnerability: | ||||
| /if:interfaces/if:interface/ip:ipv4/vrrp:vrrp/vrrp:vrrp-instance | /if:interfaces/if:interface/ip:ipv4/vrrp:vrrp/vrrp:vrrp-instance | |||
| /if:interfaces/if:interface/ip:ipv6/vrrp:vrrp/vrrp:vrrp-instance | /if:interfaces/if:interface/ip:ipv6/vrrp:vrrp/vrrp:vrrp-instance | |||
| Unauthorized access to any node of these can adversely affect the | Unauthorized access to any data node of these subtrees can adversely | |||
| routing subsystem of both the local device and the network. This may | affect the routing subsystem of both the local device and the | |||
| lead to network malfunctions, delivery of packets to inappropriate | network. This may lead to network malfunctions, delivery of packets | |||
| destinations, and other problems. | to inappropriate destinations, and other problems. | |||
| Implementers should review all the nodes for security concerns. | Some of the readable data nodes in this YANG module may be considered | |||
| sensitive or vulnerable in some network environments. It is thus | ||||
| important to control read access (e.g., via get, get-config, or | ||||
| notification) to these data nodes. These are the subtrees and data | ||||
| nodes and their sensitivity/vulnerability: | ||||
| /ietf-vrrp:vrrp | ||||
| /if:interfaces/if:interface/ip:ipv4/vrrp:vrrp/vrrp:vrrp-instance | ||||
| /if:interfaces/if:interface/ip:ipv6/vrrp:vrrp/vrrp:vrrp-instance | ||||
| Unauthorized access to any data node of these subtrees can disclose | ||||
| the operational state information of VRRP on this device. | ||||
| 6. References | 6. References | |||
| 6.1. Normative References | 6.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, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | |||
| editor.org/info/rfc3688>. | editor.org/info/rfc3688>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | ||||
| (TLS) Protocol Version 1.2", RFC 5246, | ||||
| DOI 10.17487/RFC5246, August 2008, <https://www.rfc- | ||||
| editor.org/info/rfc5246>. | ||||
| [RFC5798] Nadas, S., Ed., "Virtual Router Redundancy Protocol (VRRP) | [RFC5798] Nadas, S., Ed., "Virtual Router Redundancy Protocol (VRRP) | |||
| Version 3 for IPv4 and IPv6", RFC 5798, | Version 3 for IPv4 and IPv6", RFC 5798, | |||
| DOI 10.17487/RFC5798, March 2010, <https://www.rfc- | DOI 10.17487/RFC5798, March 2010, <https://www.rfc- | |||
| editor.org/info/rfc5798>. | editor.org/info/rfc5798>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | |||
| editor.org/info/rfc6020>. | editor.org/info/rfc6020>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| 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, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | ||||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6242>. | ||||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Protocol (NETCONF) Access Control Model", RFC 6536, | ||||
| DOI 10.17487/RFC6536, March 2012, <https://www.rfc- | ||||
| editor.org/info/rfc6536>. | ||||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
| <https://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [I-D.bjorklund-netmod-rfc7223bis] | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8040>. | ||||
| [I-D.ietf-netmod-rfc7223bis] | ||||
| Bjorklund, M., "A YANG Data Model for Interface | Bjorklund, M., "A YANG Data Model for Interface | |||
| Management", draft-bjorklund-netmod-rfc7223bis-00 (work in | Management", draft-ietf-netmod-rfc7223bis-02 (work in | |||
| progress), August 2017. | progress), January 2018. | |||
| [I-D.bjorklund-netmod-rfc7277bis] | [I-D.ietf-netmod-rfc7277bis] | |||
| Bjorklund, M., "A YANG Data Model for IP Management", | Bjorklund, M., "A YANG Data Model for IP Management", | |||
| draft-bjorklund-netmod-rfc7277bis-00 (work in progress), | draft-ietf-netmod-rfc7277bis-02 (work in progress), | |||
| August 2017. | January 2018. | |||
| [I-D.ietf-netmod-revised-datastores] | [I-D.ietf-netmod-revised-datastores] | |||
| Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Network Management Datastore | and R. Wilton, "Network Management Datastore | |||
| Architecture", draft-ietf-netmod-revised-datastores-07 | Architecture", draft-ietf-netmod-revised-datastores-09 | |||
| (work in progress), November 2017. | (work in progress), December 2017. | |||
| 6.2. Informative References | 6.2. Informative References | |||
| [RFC3768] Hinden, R., Ed., "Virtual Router Redundancy Protocol | [RFC3768] Hinden, R., Ed., "Virtual Router Redundancy Protocol | |||
| (VRRP)", RFC 3768, DOI 10.17487/RFC3768, April 2004, | (VRRP)", RFC 3768, DOI 10.17487/RFC3768, April 2004, | |||
| <https://www.rfc-editor.org/info/rfc3768>. | <https://www.rfc-editor.org/info/rfc3768>. | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Protocol (NETCONF) Access Control Model", RFC 6536, | ||||
| DOI 10.17487/RFC6536, March 2012, <https://www.rfc- | ||||
| editor.org/info/rfc6536>. | ||||
| [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
| RFC 7951, DOI 10.17487/RFC7951, August 2016, | RFC 7951, DOI 10.17487/RFC7951, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7951>. | <https://www.rfc-editor.org/info/rfc7951>. | |||
| [I-D.ietf-netconf-rfc5277bis] | [I-D.ietf-netconf-subscribed-notifications] | |||
| Clemm, A., Prieto, A., Voit, E., Nilsen-Nygaard, E., | Voit, E., Clemm, A., Prieto, A., Nilsen-Nygaard, E., and | |||
| Tripathy, A., Chisholm, S., and H. Trevino, "Subscribing | A. Tripathy, "Custom Subscription to Event Streams", | |||
| to Event Notifications", draft-ietf-netconf-rfc5277bis-01 | draft-ietf-netconf-subscribed-notifications-08 (work in | |||
| (work in progress), October 2016. | progress), December 2017. | |||
| [I-D.ietf-netconf-yang-push] | [I-D.ietf-netconf-yang-push] | |||
| Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | |||
| Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore | Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore | |||
| Subscription", draft-ietf-netconf-yang-push-11 (work in | Subscription", draft-ietf-netconf-yang-push-12 (work in | |||
| progress), October 2017. | progress), December 2017. | |||
| [I-D.ietf-netmod-rfc6087bis] | [I-D.ietf-netmod-rfc6087bis] | |||
| Bierman, A., "Guidelines for Authors and Reviewers of YANG | Bierman, A., "Guidelines for Authors and Reviewers of YANG | |||
| Data Model Documents", draft-ietf-netmod-rfc6087bis-14 | Data Model Documents", draft-ietf-netmod-rfc6087bis-15 | |||
| (work in progress), September 2017. | (work in progress), December 2017. | |||
| [I-D.ietf-netmod-yang-tree-diagrams] | [I-D.ietf-netmod-yang-tree-diagrams] | |||
| Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- | Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- | |||
| ietf-netmod-yang-tree-diagrams-02 (work in progress), | ietf-netmod-yang-tree-diagrams-04 (work in progress), | |||
| October 2017. | December 2017. | |||
| Appendix A. Complete Model Tree Structure | Appendix A. Complete Model Tree Structure | |||
| The VRRP YANG data model defined in this document has the following | The VRRP YANG data model defined in this document has the following | |||
| tree structure: | tree structure: | |||
| module: ietf-vrrp | module: ietf-vrrp | |||
| +--ro vrrp | +--ro vrrp | |||
| +--ro virtual-routers? uint32 | +--ro virtual-routers? uint32 | |||
| +--ro interfaces? uint32 | +--ro interfaces? uint32 | |||
| skipping to change at page 35, line 14 ¶ | skipping to change at page 37, line 14 ¶ | |||
| +--ro skew-time? uint32 | +--ro skew-time? uint32 | |||
| +--ro last-event? identityref | +--ro last-event? identityref | |||
| +--ro new-master-reason? | +--ro new-master-reason? | |||
| new-master-reason-type | new-master-reason-type | |||
| +--ro statistics | +--ro statistics | |||
| +--ro discontinuity-datetime? yang:date-and-time | +--ro discontinuity-datetime? yang:date-and-time | |||
| +--ro master-transitions? yang:counter32 | +--ro master-transitions? yang:counter32 | |||
| +--ro advertisement-recv? yang:counter64 | +--ro advertisement-recv? yang:counter64 | |||
| +--ro advertisement-sent? yang:counter64 | +--ro advertisement-sent? yang:counter64 | |||
| +--ro interval-errors? yang:counter64 | +--ro interval-errors? yang:counter64 | |||
| {validate-interval-errors}? | | {validate-interval-errors}? | |||
| +--ro priority-zero-pkts-rcvd? yang:counter64 | +--ro priority-zero-pkts-rcvd? yang:counter64 | |||
| +--ro priority-zero-pkts-sent? yang:counter64 | +--ro priority-zero-pkts-sent? yang:counter64 | |||
| +--ro invalid-type-pkts-rcvd? yang:counter64 | +--ro invalid-type-pkts-rcvd? yang:counter64 | |||
| +--ro address-list-errors? yang:counter64 | +--ro address-list-errors? yang:counter64 | |||
| {validate-address-list-errors}? | | {validate-address-list-errors}? | |||
| +--ro packet-length-errors? yang:counter64 | +--ro packet-length-errors? yang:counter64 | |||
| augment /if:interfaces/if:interface/ip:ipv6: | augment /if:interfaces/if:interface/ip:ipv6: | |||
| +--rw vrrp | +--rw vrrp | |||
| +--rw vrrp-instance* [vrid] | +--rw vrrp-instance* [vrid] | |||
| +--rw vrid uint8 | +--rw vrid uint8 | |||
| +--rw version identityref | +--rw version identityref | |||
| +--rw log-state-change? boolean | +--rw log-state-change? boolean | |||
| +--rw preempt | +--rw preempt | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw hold-time? uint16 | | +--rw hold-time? uint16 | |||
| skipping to change at page 36, line 12 ¶ | skipping to change at page 38, line 12 ¶ | |||
| +--ro skew-time? uint32 | +--ro skew-time? uint32 | |||
| +--ro last-event? identityref | +--ro last-event? identityref | |||
| +--ro new-master-reason? | +--ro new-master-reason? | |||
| new-master-reason-type | new-master-reason-type | |||
| +--ro statistics | +--ro statistics | |||
| +--ro discontinuity-datetime? yang:date-and-time | +--ro discontinuity-datetime? yang:date-and-time | |||
| +--ro master-transitions? yang:counter32 | +--ro master-transitions? yang:counter32 | |||
| +--ro advertisement-recv? yang:counter64 | +--ro advertisement-recv? yang:counter64 | |||
| +--ro advertisement-sent? yang:counter64 | +--ro advertisement-sent? yang:counter64 | |||
| +--ro interval-errors? yang:counter64 | +--ro interval-errors? yang:counter64 | |||
| {validate-interval-errors}? | | {validate-interval-errors}? | |||
| +--ro priority-zero-pkts-rcvd? yang:counter64 | +--ro priority-zero-pkts-rcvd? yang:counter64 | |||
| +--ro priority-zero-pkts-sent? yang:counter64 | +--ro priority-zero-pkts-sent? yang:counter64 | |||
| +--ro invalid-type-pkts-rcvd? yang:counter64 | +--ro invalid-type-pkts-rcvd? yang:counter64 | |||
| +--ro address-list-errors? yang:counter64 | +--ro address-list-errors? yang:counter64 | |||
| {validate-address-list-errors}? | | {validate-address-list-errors}? | |||
| +--ro packet-length-errors? yang:counter64 | +--ro packet-length-errors? yang:counter64 | |||
| notifications: | notifications: | |||
| +---n vrrp-new-master-event | +---n vrrp-new-master-event | |||
| | +--ro master-ip-address inet:ip-address | | +--ro master-ip-address inet:ip-address | |||
| | +--ro new-master-reason new-master-reason-type | | +--ro new-master-reason new-master-reason-type | |||
| +---n vrrp-protocol-error-event | +---n vrrp-protocol-error-event | |||
| | +--ro protocol-error-reason identityref | | +--ro protocol-error-reason identityref | |||
| +---n vrrp-virtual-router-error-event | +---n vrrp-virtual-router-error-event | |||
| +--ro interface if:interface-ref | +--ro interface if:interface-ref | |||
| +--ro (ip-version) | +--ro (ip-version) | |||
| | +--:(ipv4) | | +--:(ipv4) | |||
| | | +--ro ipv4 | | | +--ro ipv4 | |||
| | | +--ro vrid -> /if:interfaces/interface[if:name = | | | +--ro vrid leafref | |||
| current()/../../vrrp:interface]/ip:ipv4/vrrp:vrrp/vrrp-instance/vrid | ||||
| | +--:(ipv6) | | +--:(ipv6) | |||
| | +--ro ipv6 | | +--ro ipv6 | |||
| | +--ro vrid -> /if:interfaces/interface[if:name = | | +--ro vrid leafref | |||
| current()/../../vrrp:interface]/ip:ipv6/vrrp:vrrp/vrrp-instance/vrid | ||||
| +--ro virtual-router-error-reason identityref | +--ro virtual-router-error-reason identityref | |||
| Appendix B. Data Tree Example | Appendix B. Data Tree Example | |||
| This section contains an example of an instance data tree in the JSON | This section contains an example of an instance data tree in the JSON | |||
| encoding [RFC7951], containing both configuration and state data. | encoding [RFC7951], containing both configuration and state data. | |||
| Virtual router IP address: 192.0.2.1 | Virtual router IP address: 192.0.2.1 | |||
| +-----------------+ +-----------------+ | +-----------------+ +-----------------+ | |||
| | | | | | | | | | | |||
| End of changes. 41 change blocks. | ||||
| 171 lines changed or deleted | 249 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/ | ||||