| < draft-ietf-netmod-nmda-diff-04.txt | draft-ietf-netmod-nmda-diff-05.txt > | |||
|---|---|---|---|---|
| Network Working Group A. Clemm | Network Working Group A. Clemm | |||
| Internet-Draft Y. Qu | Internet-Draft Y. Qu | |||
| Intended status: Standards Track Futurewei | Intended status: Standards Track Futurewei | |||
| Expires: January 14, 2021 J. Tantsura | Expires: March 19, 2021 J. Tantsura | |||
| Apstra | Apstra | |||
| A. Bierman | A. Bierman | |||
| YumaWorks | YumaWorks | |||
| July 13, 2020 | September 15, 2020 | |||
| Comparison of NMDA datastores | Comparison of NMDA datastores | |||
| draft-ietf-netmod-nmda-diff-04 | draft-ietf-netmod-nmda-diff-05 | |||
| Abstract | Abstract | |||
| This document defines an RPC operation to compare management | This document defines an RPC operation to compare management | |||
| datastores that comply with the NMDA architecture. | datastores that comply with the NMDA architecture. | |||
| 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 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 January 14, 2021. | This Internet-Draft will expire on March 19, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Key Words . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Key Words . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Definitions and Acronyms . . . . . . . . . . . . . . . . . . 3 | 3. Definitions and Acronyms . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Data Model Overview . . . . . . . . . . . . . . . . . . . . . 4 | 4. Data Model Overview . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5. YANG Data Model . . . . . . . . . . . . . . . . . . . . . . . 6 | 5. YANG Data Model . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 6. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. Performance Considerations . . . . . . . . . . . . . . . . . 13 | 7. Performance Considerations . . . . . . . . . . . . . . . . . 13 | |||
| 8. Possible Future Extensions . . . . . . . . . . . . . . . . . 14 | 8. Possible Future Extensions . . . . . . . . . . . . . . . . . 14 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9.1. Updates to the IETF XML Registry . . . . . . . . . . . . 14 | 9.1. Updates to the IETF XML Registry . . . . . . . . . . . . 14 | |||
| 9.2. Updates to the YANG Module Names Registry . . . . . . . . 15 | 9.2. Updates to the YANG Module Names Registry . . . . . . . . 14 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 17 | 12.2. Informative References . . . . . . . . . . . . . . . . . 17 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 1. Introduction | 1. Introduction | |||
| The revised Network Management Datastore Architecture (NMDA) | The revised Network Management Datastore Architecture (NMDA) | |||
| [RFC8342] introduces a set of new datastores that each hold YANG- | [RFC8342] introduces a set of new datastores that each hold YANG- | |||
| defined data [RFC7950] and represent a different "viewpoint" on the | defined data [RFC7950] and represent a different "viewpoint" on the | |||
| data that is maintained by a server. New YANG datastores that are | data that is maintained by a server. New YANG datastores that are | |||
| skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 7 ¶ | |||
| +--ro target target-resource-offset | +--ro target target-resource-offset | |||
| +--ro point? target-resource-offset | +--ro point? target-resource-offset | |||
| +--ro where? enumeration | +--ro where? enumeration | |||
| +--ro value? | +--ro value? | |||
| +--ro source-value? | +--ro source-value? | |||
| Structure of ietf-nmda-compare | Structure of ietf-nmda-compare | |||
| 5. YANG Data Model | 5. YANG Data Model | |||
| <CODE BEGINS> file "ietf-nmda-compare@2019-11-04.yang" | <CODE BEGINS> file "ietf-nmda-compare@2020-09-15.yang" | |||
| module ietf-nmda-compare { | module ietf-nmda-compare { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-nmda-compare"; | namespace "urn:ietf:params:xml:ns:yang:ietf-nmda-compare"; | |||
| prefix cp; | prefix cmp; | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| reference "RFC 6991: Common YANG Data Types"; | ||||
| } | } | |||
| import ietf-datastores { | import ietf-datastores { | |||
| prefix ds; | prefix ds; | |||
| reference "RFC 8342: Network Management Datastore | ||||
| Architecture (NMDA)"; | ||||
| } | } | |||
| import ietf-yang-patch { | import ietf-yang-patch { | |||
| prefix ypatch; | prefix ypatch; | |||
| reference "RFC 8072: YANG Patch Media Type"; | ||||
| } | } | |||
| import ietf-netconf { | import ietf-netconf { | |||
| prefix nc; | prefix nc; | |||
| reference "RFC6241: Network Configuration Protocol (NETCONF)"; | ||||
| } | } | |||
| organization "IETF"; | organization "IETF"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/netconf/> | "WG Web: <http://tools.ietf.org/wg/netconf/> | |||
| WG List: <mailto:netconf@ietf.org> | WG List: <mailto:netconf@ietf.org> | |||
| Author: Alexander Clemm | Author: Alexander Clemm | |||
| <mailto:ludwig@clemm.org> | <mailto:ludwig@clemm.org> | |||
| skipping to change at page 7, line 19 ¶ | skipping to change at page 7, line 24 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
| the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
| forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
| RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| revision 2019-11-04 { | revision 2020-09-15 { | |||
| description | description | |||
| "Initial revision"; | "Initial revision"; | |||
| reference | reference | |||
| "RFC XXXX: Comparison of NMDA datastores"; | "RFC XXXX: Comparison of NMDA datastores"; | |||
| } | } | |||
| /* RPC */ | /* RPC */ | |||
| rpc compare { | rpc compare { | |||
| description | description | |||
| "NMDA compare operation."; | "NMDA compare operation."; | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at page 8, line 41 ¶ | |||
| target datastore to retrieve."; | target datastore to retrieve."; | |||
| reference "RFC 6241, Section 6."; | reference "RFC 6241, Section 6."; | |||
| } | } | |||
| leaf xpath-filter { | leaf xpath-filter { | |||
| if-feature nc:xpath; | if-feature nc:xpath; | |||
| type yang:xpath1.0; | type yang:xpath1.0; | |||
| description | description | |||
| "This parameter contains an XPath expression | "This parameter contains an XPath expression | |||
| identifying the portions of the target | identifying the portions of the target | |||
| datastore to retrieve."; | datastore to retrieve."; | |||
| reference "RFC 6021: Common YANG Data Types"; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| output { | output { | |||
| choice compare-response { | choice compare-response { | |||
| description | description | |||
| "Comparison results."; | "Comparison results."; | |||
| leaf no-matches { | leaf no-matches { | |||
| type empty; | type empty; | |||
| description | description | |||
| skipping to change at page 9, line 24 ¶ | skipping to change at page 9, line 29 ¶ | |||
| when "../operation = 'delete'" | when "../operation = 'delete'" | |||
| + "or ../operation = 'merge'" | + "or ../operation = 'merge'" | |||
| + "or ../operation = 'move'" | + "or ../operation = 'move'" | |||
| + "or ../operation = 'replace'" | + "or ../operation = 'replace'" | |||
| + "or ../operation = 'remove'"; | + "or ../operation = 'remove'"; | |||
| description | description | |||
| "The anydata 'value' is only used for 'delete', | "The anydata 'value' is only used for 'delete', | |||
| 'move', 'merge', 'replace', and 'remove' | 'move', 'merge', 'replace', and 'remove' | |||
| operations."; | operations."; | |||
| } | } | |||
| reference "RFC 8072: YANG Patch Media Type"; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 6. Example | 6. Example | |||
| The following example compares the difference between <operational> | The following example compares the difference between <operational> | |||
| and <intended> for a subtree under "interfaces". The subtree | and <intended> for a subtree under "interfaces". The subtree | |||
| contains objects that are defined in a YANG data model for the | contains a subset of objects that are defined in a YANG data model | |||
| management of interfaces defined in [RFC8343]. The excerpt of the | for the management of interfaces defined in [RFC8343]. The excerpt | |||
| data model whose instantiation is basis of the comparison is as | of the data model whose instantiation is basis of the comparison is | |||
| follows: | as follows: | |||
| container interfaces { | container interfaces { | |||
| description | description | |||
| "Interface parameters."; | "Interface parameters."; | |||
| list interface { | list interface { | |||
| key "name"; | key "name"; | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| description | description | |||
| "The name of the interface". | "The name of the interface". | |||
| skipping to change at page 10, line 32 ¶ | skipping to change at page 10, line 32 ¶ | |||
| default "true"; | default "true"; | |||
| description | description | |||
| "This leaf contains the configured, desired state of the | "This leaf contains the configured, desired state of the | |||
| interface.";" | interface.";" | |||
| } | } | |||
| } | } | |||
| } | } | |||
| The contents of <intended> and <operational> datastores: | The contents of <intended> and <operational> datastores: | |||
| <interfaces xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin" | //INTENDED | |||
| or:origin="or:intended"> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
| <interface> | <interface> | |||
| <name>eth0</name> | <name>eth0</name> | |||
| <enabled>false</enabled> | <enabled>false</enabled> | |||
| <description>ip interface</description> | <description>ip interface</description> | |||
| </interface> | </interface> | |||
| </interfa | </interfaces> | |||
| <interfaces xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin" | ||||
| or:origin="or:operational"> | //OPERATIONAL | |||
| <interface> | <interfaces | |||
| xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" | ||||
| xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"> | ||||
| <interface or:origin="or:learned"> | ||||
| <name>eth0</name> | <name>eth0</name> | |||
| <enabled>true</enabled> | <enabled>true</enabled> | |||
| </interface> | ||||
| </interfaces> | ||||
| <operational> contains one object that was not contained in | </interface> | |||
| <intended>, "preference". Another object, "explicit-router-id", has | </interfaces> | |||
| differences in values. A third object, "enable", is the same in both | <operational> does not contain object "description" that is contained | |||
| cases. | in <intended>. Another object, "enabled", has differences in values, | |||
| being "true" in <operational> and "false" in <intended>. A third | ||||
| object, "name", is the same in both cases. The origin of the objects | ||||
| in <operational> is "learned", which may help explain the | ||||
| discrepancies. | ||||
| RPC request to compare <operational< (source of the comparison) with | RPC request to compare <operational> (source of the comparison) with | |||
| <intended>(target of the comparison): | <intended>(target of the comparison): | |||
| <rpc message-id="101" | <rpc message-id="101" | |||
| xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
| <compare xmlns="urn:ietf:params:xml:ns:yang:ietf-nmda-compare" | <compare xmlns="urn:ietf:params:xml:ns:yang:ietf-nmda-compare" | |||
| xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"> | xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"> | |||
| <source>ds:operational</source> | <source>ds:operational</source> | |||
| <target>ds:intended</target> | <target>ds:intended</target> | |||
| <xpath-filter | <xpath-filter | |||
| xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces">\ | xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
| /if:interfaces\ | /if:interfaces | |||
| </xpath-filter> | </xpath-filter> | |||
| </compare> | </compare> | |||
| </rpc> | </rpc> | |||
| RPC reply, when a difference is detected: | RPC reply, when a difference is detected: | |||
| <rpc-reply | <rpc-reply | |||
| xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" | xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" | |||
| message-id="101"> | message-id="101"> | |||
| <differences | <differences | |||
| xmlns="urn:ietf:params:xml:ns:yang:ietf-nmda-compare" | xmlns="urn:ietf:params:xml:ns:yang:ietf-nmda-compare" | |||
| xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"> | xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"> | |||
| <yang-patch> | <yang-patch> | |||
| <patch-id>interface status</patch-id> | <patch-id>interface status</patch-id> | |||
| <comment>diff between operational and intended</comment> | <comment> | |||
| diff between operational (source) and intended (target) | ||||
| </comment> | ||||
| <edit> | <edit> | |||
| <edit-id>1</edit-id> | <edit-id>1</edit-id> | |||
| <operation>replace</operation> | <operation>replace</operation> | |||
| <target>/ietf-interfaces:interface=eth0/enabled</target> | <target>/ietf-interfaces:interface=eth0/enabled</target> | |||
| <value> | <value> | |||
| <if:enabled | <if:enabled>false<if:enabled> | |||
| or:origin="or:system">true<enabled> | ||||
| </value> | </value> | |||
| <source-value> | <source-value> | |||
| <if:enabled | <if:enabled or:origin="or:learned">true</if:enabled> | |||
| or:origin="or:intended">false<enabled> | ||||
| </source-value> | </source-value> | |||
| <edit-id>2</edit-id> | <edit-id>2</edit-id> | |||
| <operation>create</operation> | <operation>create</operation> | |||
| <target>/ietf-interfaces:interface=eth0/description</target> | <target>/ietf-interfaces:interface=eth0/description</target> | |||
| <value> | <value> | |||
| <if:description | <if:description>ip interface<description> | |||
| or:origin="or:system">ip interface<description> | ||||
| </value> | </value> | |||
| </edit> | </edit> | |||
| </yang-patch> | </yang-patch> | |||
| </differences> | </differences> | |||
| </rpc-reply> | </rpc-reply> | |||
| The same request in RESTCONF (using JSON format): | The same request in RESTCONF (using JSON format): | |||
| POST /restconf/operations/ietf-nmda-compare:compare HTTP/1.1 | POST /restconf/operations/ietf-nmda-compare:compare HTTP/1.1 | |||
| Host: example.com | Host: example.com | |||
| Content-Type: application/yang-data+json | Content-Type: application/yang-data+json | |||
| Accept: application/yang-d | Accept: application/yang-d | |||
| { "ietf-nmda-compare:input" { | { "ietf-nmda-compare:input" { | |||
| "source" : "ietf-datastores:operational", | "source" : "ietf-datastores:operational" | |||
| "target" : "ietf-datastores:intended". | "target" : "ietf-datastores:intended" | |||
| "xpath-filter" : \ | "xpath-filter" : \ | |||
| "/ietf-interfaces:interfaces" | "/ietf-interfaces:interfaces" | |||
| } | } | |||
| } | } | |||
| The same response in RESTCONF (using JSON format): | The same response in RESTCONF (using JSON format): | |||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Date: Thu, 26 Jan 2019 20:56:30 GMT | Date: Thu, 26 Jan 2019 20:56:30 GMT | |||
| Server: example-server | Server: example-server | |||
| Content-Type: application/yang-d | Content-Type: application/yang-d | |||
| { "ietf-nmda-compare:output" : { | { "ietf-nmda-compare:output" : { | |||
| "differences" : { | "differences" : { | |||
| "ietf-yang-patch:yang-patch" : { | "ietf-yang-patch:yang-patch" : { | |||
| "patch-id" : "interface status", | "patch-id" : "interface status", | |||
| "comment" : "diff between operational and intended", | "comment" : "diff between intended (source) and operational", | |||
| "edit" : [ | "edit" : [ | |||
| { | { | |||
| "edit-id" : "1", | "edit-id" : "1", | |||
| "operation" : "replace", | "operation" : "replace", | |||
| "target" : "/ietf-interfaces:interface=eth0/enabled", | "target" : "/ietf-interfaces:interface=eth0/enabled", | |||
| "value" : { | "value" : { | |||
| "ietf-interfaces:interface/enabled" : "true" | ||||
| "@ietf-interfaces:interface/enabled" : { | ||||
| "ietf-origin:origin" : "ietf-origin:system" | ||||
| } | ||||
| "source-value" : { | ||||
| "ietf-interfaces:interface/enabled" : "false" | "ietf-interfaces:interface/enabled" : "false" | |||
| }, | ||||
| "source-value" : { | ||||
| "ietf-interfaces:interface/enabled" : "true", | ||||
| "@ietf-interfaces:interface/enabled" : { | "@ietf-interfaces:interface/enabled" : { | |||
| "ietf-origin:origin" : "ietf-origin:intended" | "ietf-origin:origin" : "ietf-origin:learned" | |||
| } | } | |||
| } | ||||
| "edit-id" : "2", | "edit-id" : "2", | |||
| "operation" : "create", | "operation" : "create", | |||
| "target" : "/ietf-interfaces:interface=eth0/description", | "target" : "/ietf-interfaces:interface=eth0/description", | |||
| "value" : { | "value" : { | |||
| "ietf-interface:interface/description" : "ip interface" | "ietf-interface:interface/description" : "ip interface" | |||
| "@ietf-interface:interfaces/description" : { | } | |||
| "ietf-origin:origin" : "ietf-origin:intended" | ||||
| } | ||||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| 7. Performance Considerations | 7. Performance Considerations | |||
| The compare operation can be computationally expensive. While | The compare operation can be computationally expensive. While | |||
| responsible client applications are expected to use the operation | responsible client applications are expected to use the operation | |||
| responsibly and sparingly only when warranted, implementations need | responsibly and sparingly only when warranted, implementations need | |||
| to be aware of the fact that excessive invocation of this operation | to be aware of the fact that excessive invocation of this operation | |||
| will burden system resources and need to ensure that system | will burden system resources and need to ensure that system | |||
| performance will not be adversely impacted. One possibility for an | performance will not be adversely impacted. One possibility for an | |||
| implementation to mitigate against such a possibility is to limit the | implementation to mitigate against such a possibility is to limit the | |||
| number of requests that is served to a client in any one time | number of requests that is served to a client, or to any number of | |||
| interval, rejecting requests made at a higher frequency than the | clients, in any one time interval, rejecting requests made at a | |||
| implementation can reasonably sustain. | higher frequency than the implementation can reasonably sustain. | |||
| 8. Possible Future Extensions | 8. Possible Future Extensions | |||
| It is conceivable to extend the compare operation with a number of | It is conceivable to extend the compare operation with a number of | |||
| possible additional features in the future. | possible additional features in the future. | |||
| Specifically, it is possible to define an extension with an optional | Specifically, it is possible to define an extension with an optional | |||
| feature for dampening. This will allow clients to specify a minimum | feature for dampening. This will allow clients to specify a minimum | |||
| time period for which a difference must persist for it to be | time period for which a difference must persist for it to be | |||
| reported. This will enable clients to distinguish between | reported. This will enable clients to distinguish between | |||
| skipping to change at page 15, line 12 ¶ | skipping to change at page 15, line 4 ¶ | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| 9.2. Updates to the YANG Module Names Registry | 9.2. Updates to the YANG Module Names Registry | |||
| This document registers a YANG module in the YANG Module Names | This document registers a YANG module in the YANG Module Names | |||
| registry [RFC7950]. Following the format in [RFC7950], the following | registry [RFC7950]. Following the format in [RFC7950], the following | |||
| registration is requested: | registration is requested: | |||
| name: ietf-nmda-compare | name: ietf-nmda-compare | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-nmda-compare | namespace: urn:ietf:params:xml:ns:yang:ietf-nmda-compare | |||
| prefix: cp | prefix: cmp | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 10. Security Considerations | 10. Security Considerations | |||
| The YANG module specified in this document defines a schema for data | The YANG module specified in this document defines a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| skipping to change at page 16, line 8 ¶ | skipping to change at page 15, line 44 ¶ | |||
| ways. For one, they can implement the NETCONF access control model | ways. For one, they can implement the NETCONF access control model | |||
| in order to require proper authorization for requests to be made. | in order to require proper authorization for requests to be made. | |||
| Second, server implementations can limit the number of requests that | Second, server implementations can limit the number of requests that | |||
| they serve to a client in any one time interval, rejecting requests | they serve to a client in any one time interval, rejecting requests | |||
| made at a higher frequency than the implementation can reasonably | made at a higher frequency than the implementation can reasonably | |||
| sustain. | sustain. | |||
| 11. Acknowledgments | 11. Acknowledgments | |||
| We thank Rob Wilton, Martin Bjorklund, Mahesh Jethanandani, Lou | We thank Rob Wilton, Martin Bjorklund, Mahesh Jethanandani, Lou | |||
| Berger, Kent Watsen, Phil Shafer, Ladislav Lhotka, and Tim Carey for | Berger, Kent Watsen, Phil Shafer, Ladislav Lhotka, Tim Carey, and | |||
| valuable feedback and suggestions. | Reshad Rahman for valuable feedback and suggestions. | |||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.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, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-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, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [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 | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | ||||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | ||||
| <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>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8072] Bierman, A., Bjorklund, M., and K. Watsen, "YANG Patch | [RFC8072] Bierman, A., Bjorklund, M., and K. Watsen, "YANG Patch | |||
| Media Type", RFC 8072, DOI 10.17487/RFC8072, February | Media Type", RFC 8072, DOI 10.17487/RFC8072, February | |||
| End of changes. 39 change blocks. | ||||
| 56 lines changed or deleted | 66 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/ | ||||