draft-ietf-i2rs-ephemeral-state-15.txt | draft-ietf-i2rs-ephemeral-state-16.txt | |||
---|---|---|---|---|
I2RS working group J. Haas | I2RS working group J. Haas | |||
Internet-Draft Juniper | Internet-Draft Juniper | |||
Intended status: Standards Track S. Hares | Intended status: Standards Track S. Hares | |||
Expires: January 22, 2017 Huawei | Expires: March 2, 2017 Huawei | |||
July 21, 2016 | August 29, 2016 | |||
I2RS Ephemeral State Requirements | I2RS Ephemeral State Requirements | |||
draft-ietf-i2rs-ephemeral-state-15 | draft-ietf-i2rs-ephemeral-state-16 | |||
Abstract | Abstract | |||
This document covers requests to the NETMOD and NETCONF Working | This document covers requests to the NETMOD and NETCONF Working | |||
Groups for functionality to support the ephemeral state requirements | Groups for functionality to support the ephemeral state requirements | |||
to implement the I2RS architecture. | to implement the I2RS 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 | |||
skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 33 ¶ | |||
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 January 22, 2017. | This Internet-Draft will expire on March 2, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
2. Review of Requirements from I2RS architecture document . . . 3 | 2. Review of Requirements from I2RS architecture document . . . 3 | |||
3. Ephemeral State Requirements . . . . . . . . . . . . . . . . 5 | 3. Ephemeral State Requirements . . . . . . . . . . . . . . . . 5 | |||
3.1. Persistence . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Persistence . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.2. Constraints . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Constraints . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.3. Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.4. Ephemeral Configuration overlapping Local Configuration . 6 | 3.4. Ephemeral Configuration overlapping Local Configuration . 6 | |||
4. YANG Features for Ephemeral State . . . . . . . . . . . . . . 6 | 4. YANG Features for Ephemeral State . . . . . . . . . . . . . . 6 | |||
5. NETCONF Features for Ephemeral State . . . . . . . . . . . . 6 | 5. NETCONF Features for Ephemeral State . . . . . . . . . . . . 6 | |||
6. RESTCONF Features for Ephemeral State . . . . . . . . . . . . 6 | 6. RESTCONF Features for Ephemeral State . . . . . . . . . . . . 6 | |||
7. Requirements regarding Supporting Multi-Head Control via | 7. Requirements regarding Supporting Multi-Head Control via | |||
Client Priority . . . . . . . . . . . . . . . . . . . . . . . 7 | client Priority . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
8. Multiple Message Transactions . . . . . . . . . . . . . . . . 8 | 8. Multiple Message Transactions . . . . . . . . . . . . . . . . 8 | |||
9. Pub/Sub Requirements Expanded for Ephemeral State . . . . . . 8 | 9. Pub/Sub Requirements Expanded for Ephemeral State . . . . . . 8 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
13.1. Normative References: . . . . . . . . . . . . . . . . . 10 | 13.1. Normative References: . . . . . . . . . . . . . . . . . 10 | |||
13.2. Informative References . . . . . . . . . . . . . . . . . 10 | 13.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
1. Introduction | 1. Introduction | |||
The Interface to the Routing System (I2RS) Working Group is chartered | The Interface to the Routing System (I2RS) Working Group is chartered | |||
with providing architecture and mechanisms to inject into and | with providing architecture and mechanisms to inject into and | |||
retrieve information from the routing system. The I2RS Architecture | retrieve information from the routing system. The I2RS Architecture | |||
document [I-D.ietf-i2rs-architecture] abstractly documents a number | document [RFC7921] abstractly documents a number of requirements for | |||
of requirements for implementing the I2RS requirements. Section 2 | implementing the I2RS requirements. Section 2 reviews 10 key | |||
reviews 10 key requirements related to ephemeral state. | requirements related to ephemeral state. | |||
The I2RS Working Group has chosen to use the YANG data modeling | The I2RS Working Group has chosen to use the YANG data modeling | |||
language [RFC6020] as the basis to implement its mechanisms. | language [RFC6020] as the basis to implement its mechanisms. | |||
Additionally, the I2RS Working group has chosen to re-use two | Additionally, the I2RS Working group has chosen to re-use two | |||
existing protocols, NETCONF [RFC6241] and its similar but lighter- | existing protocols, NETCONF [RFC6241] and its similar but lighter- | |||
weight relative RESTCONF [I-D.ietf-netconf-restconf], as the | weight relative RESTCONF [I-D.ietf-netconf-restconf], as the | |||
protocols for carrying I2RS. | protocols for carrying I2RS. | |||
What does re-use of a protocol mean? Re-use means that while YANG, | What does re-use of a protocol mean? Re-use means that while YANG, | |||
skipping to change at page 3, line 30 ¶ | skipping to change at page 3, line 30 ¶ | |||
section 4), NETCONF additions (see section 5), and RESTCONF additions | section 4), NETCONF additions (see section 5), and RESTCONF additions | |||
(see section 6). | (see section 6). | |||
Sections 7-9 provide details that expand upon the changes in sections | Sections 7-9 provide details that expand upon the changes in sections | |||
3-6 to clarify requirements discussed by the I2RS and NETCONF working | 3-6 to clarify requirements discussed by the I2RS and NETCONF working | |||
groups. Sections 7 provide additional requirements that detail how | groups. Sections 7 provide additional requirements that detail how | |||
write-conflicts should be resolved if two I2RS client write the same | write-conflicts should be resolved if two I2RS client write the same | |||
data. Section 8 provides an additional requirement that details on | data. Section 8 provides an additional requirement that details on | |||
I2RS support of multiple message transactions. Section 9 highlights | I2RS support of multiple message transactions. Section 9 highlights | |||
two requirements in the I2RS publication/subscription requirements | two requirements in the I2RS publication/subscription requirements | |||
[I-D.ietf-i2rs-pub-sub-requirements] that must be expanded for | [RFC7923] that must be expanded for ephemeral state. | |||
ephemeral state. | ||||
1.1. Requirements Language | 1.1. 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 | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
2. Review of Requirements from I2RS architecture document | 2. Review of Requirements from I2RS architecture document | |||
The I2RS architecture defines important high-level requirements for | The I2RS architecture defines important high-level requirements for | |||
the I2RS protocol. The following are ten requirements that | the I2RS protocol. The following are ten requirements that [RFC7921] | |||
[I-D.ietf-i2rs-architecture] contains which provide context for the | contains which provide context for the ephemeral data state | |||
ephemeral data state requirements given in sections 3-8: | requirements given in sections 3-8: | |||
1. The I2RS protocol SHOULD support highly reliable notifications | 1. The I2RS protocol SHOULD support highly reliable notifications | |||
(but not perfectly reliable notifications) from an I2RS agent to | (but not perfectly reliable notifications) from an I2RS agent to | |||
an I2RS client. | an I2RS client. | |||
2. The I2RS protocol SHOULD support a high bandwidth, asynchronous | 2. The I2RS protocol SHOULD support a high bandwidth, asynchronous | |||
interface, with real-time guarantees on getting data from an | interface, with real-time guarantees on getting data from an | |||
I2RS agent by an I2RS client. | I2RS agent by an I2RS client. | |||
3. The I2RS protocol will operate on data models which MAY be | 3. The I2RS protocol will operate on data models which MAY be | |||
protocol independent or protocol dependent. | protocol independent or protocol dependent. | |||
4. I2RS Agent MUST record the client identity when a node is | 4. I2RS agent MUST record the client identity when a node is | |||
created or modified. The I2RS Agent SHOULD to be able to read | created or modified. The I2RS agent SHOULD to be able to read | |||
the client identity of a node and use the client identity's | the client identity of a node and use the client identity's | |||
associated priority to resolve conflicts. The secondary | associated priority to resolve conflicts. The secondary | |||
identity is useful for traceability and may also be recorded. | identity is useful for traceability and may also be recorded. | |||
5. Client identity MUST have only one priority for the client's | 5. client identity MUST have only one priority for the client's | |||
identifier. A collision on writes is considered an error, but | identifier. A collision on writes is considered an error, but | |||
the priority associated with each client identifier is utilized | the priority associated with each client identifier is utilized | |||
to compare requests from two different clients in order to | to compare requests from two different clients in order to | |||
modify an existing node entry. Only an entry from a client | modify an existing node entry. Only an entry from a client | |||
which is higher priority can modify an existing entry (First | which is higher priority can modify an existing entry (First | |||
entry wins). Priority only has meaning at the time of use. | entry wins). Priority only has meaning at the time of use. | |||
6. The Agent identity and the Client identity SHOULD be passed | 6. The agent identity and the client identity SHOULD be passed | |||
outside of the I2RS protocol in a authentication and | outside of the I2RS protocol in a authentication and | |||
authorization protocol (AAA). Client priority may be passed in | authorization protocol (AAA). client priority may be passed in | |||
the AAA protocol. The values of identities are originally set | the AAA protocol. The values of identities are originally set | |||
by operators, and not standardized. | by operators, and not standardized. | |||
7. An I2RS Client and I2RS Agent MUST mutually authenticate each | 7. An I2RS client and I2RS agent MUST mutually authenticate each | |||
other based on pre-established authenticated identities. | other based on pre-established authenticated identities. | |||
8. Secondary identity data is read-only meta-data that is recorded | 8. Secondary identity data is read-only meta-data that is recorded | |||
by the I2RS agent associated with a data model's node is | by the I2RS agent associated with a data model's node is | |||
written, updated or deleted. Just like the primary identity, | written, updated or deleted. Just like the primary identity, | |||
the secondary identity SHOULD only be recorded when the data | the secondary identity SHOULD only be recorded when the data | |||
node is written or updated or deleted | node is written or updated or deleted | |||
9. I2RS agent MAY have a lower priority I2RS client attempting to | 9. I2RS agent MAY have a lower priority I2RS client attempting to | |||
modify a higher priority client's entry in a data model. The | modify a higher priority client's entry in a data model. The | |||
skipping to change at page 5, line 8 ¶ | skipping to change at page 5, line 8 ¶ | |||
10. The I2RS protocol MUST support the use of a secure transport. | 10. The I2RS protocol MUST support the use of a secure transport. | |||
However, certain functions such as notifications MAY use a non- | However, certain functions such as notifications MAY use a non- | |||
secure transport. Each model or service (notification, logging) | secure transport. Each model or service (notification, logging) | |||
must define within the model or service the valid uses of a non- | must define within the model or service the valid uses of a non- | |||
secure transport. | secure transport. | |||
3. Ephemeral State Requirements | 3. Ephemeral State Requirements | |||
In requirements Ephemeral-REQ-01 to Ephemeral-15, Ephemeral state is | In requirements Ephemeral-REQ-01 to Ephemeral-15, Ephemeral state is | |||
defined as potentially including both ephemeral configured state and | defined as potentially including in a data model ephemeral | |||
operational state. | configuration and operational state which is flagged as ephemeral. | |||
3.1. Persistence | 3.1. Persistence | |||
Ephemeral-REQ-01: I2RS requires ephemeral state; i.e. state that does | Ephemeral-REQ-01: I2RS requires ephemeral state; i.e. state that does | |||
not persist across reboots. If state must be restored, it should be | not persist across reboots. If state must be restored, it should be | |||
done solely by replay actions from the I2RS client via the I2RS | done solely by replay actions from the I2RS client via the I2RS | |||
agent. | agent. | |||
While at first glance this may seem equivalent to the writable- | While at first glance this may seem equivalent to the writable- | |||
running data store in NETCONF, running-config can be copied to a | running data store in NETCONF, running-config can be copied to a | |||
skipping to change at page 5, line 35 ¶ | skipping to change at page 5, line 35 ¶ | |||
Ephemeral-REQ-02: Non-ephemeral state MUST NOT refer to ephemeral | Ephemeral-REQ-02: Non-ephemeral state MUST NOT refer to ephemeral | |||
state for constraint purposes; it SHALL be considered a validation | state for constraint purposes; it SHALL be considered a validation | |||
error if it does. | error if it does. | |||
Ephemeral-REQ-03: Ephemeral state MUST be able to have constraints | Ephemeral-REQ-03: Ephemeral state MUST be able to have constraints | |||
that refer to operational state, this includes potentially fast | that refer to operational state, this includes potentially fast | |||
changing or short lived operational state nodes, such as MPLS LSP-ID | changing or short lived operational state nodes, such as MPLS LSP-ID | |||
or a BGP IN-RIB. Ephemeral state constraints should be assessed when | or a BGP IN-RIB. Ephemeral state constraints should be assessed when | |||
the ephemeral state is written, and if any of the constraints change | the ephemeral state is written, and if any of the constraints change | |||
to make the constraints invalid after that time the I2RS agent should | to make the constraints invalid after that time the I2RS agent should | |||
notify the I2RS Client. | notify the I2RS client. | |||
Ephemeral-REQ-04: Ephemeral state MUST be able to refer to non- | Ephemeral-REQ-04: Ephemeral state MUST be able to refer to non- | |||
ephemeral state as a constraint. Non-ephemeral state can be | ephemeral state as a constraint. Non-ephemeral state can be | |||
configuration state or operational state. | configuration state or operational state. | |||
Ephemeral-REQ-05: I2RS pub-sub, logging, RPC or other mechanisms may | Ephemeral-REQ-05: I2RS pub-sub [RFC7923], logging, RPC or other | |||
lead to undesirable or unsustainable resource consumption on a system | mechanisms may lead to undesirable or unsustainable resource | |||
implementing an I2RS Agent. It is RECOMMENDED that mechanisms be | consumption on a system implementing an I2RS agent. It is | |||
made available to permit prioritization of I2RS operations, when | RECOMMENDED that mechanisms be made available to permit | |||
appropriate, to permit implementations to shed work load when | prioritization of I2RS operations, when appropriate, to permit | |||
operating under constrained resources. An example of such a work | implementations to shed work load when operating under constrained | |||
shedding mechanism is rate-limiting. | resources. An example of such a work shedding mechanism is rate- | |||
limiting. | ||||
3.3. Hierarchy | 3.3. Hierarchy | |||
Ephemeral-REQ-06: YANG MUST have the ability to: | Ephemeral-REQ-06: YANG MUST have the ability to do the following: | |||
1. to define a YANG module or submodule schema that only contains | 1. to define a YANG module or submodule schema that only contains | |||
data nodes with the property of being ephemeral, and | data nodes with the property of being ephemeral, and | |||
2. to augment a YANG data model with additional YANG schema nodes | 2. to augment a YANG data model with additional YANG schema nodes | |||
that have the property of being ephemeral. | that have the property of being ephemeral. | |||
3.4. Ephemeral Configuration overlapping Local Configuration | 3.4. Ephemeral Configuration overlapping Local Configuration | |||
Ephemeral-REQ-07: Local configuration MUST have a priority that is | Ephemeral-REQ-07: Local configuration MUST have a priority that is | |||
comparable with individual I2RS client priorities for making changes. | comparable with individual I2RS client priorities for making changes. | |||
This priority will determine whether local configuration changes or | This priority will determine whether local configuration changes or | |||
individual ephemeral configuration changes take precedence as | individual ephemeral configuration changes take precedence as | |||
described in RFC7921. The I2RS protocol MUST support his mechanism. | described in RFC7921. The I2RS protocol MUST support this mechanism. | |||
4. YANG Features for Ephemeral State | 4. YANG Features for Ephemeral State | |||
Ephemeral-REQ-08:In addition to config true/false, there MUST be a | Ephemeral-REQ-08:In addition to config true/false, there MUST be a | |||
way to indicate that YANG schema nodes represent ephemeral state. It | way to indicate that YANG schema nodes represent ephemeral state. It | |||
is desirable to allow for, and have to way to indicate, config false | is desirable to allow for, and have to way to indicate, config false | |||
YANG schema nodes that are writable operational state. | YANG schema nodes that are writable operational state. | |||
5. NETCONF Features for Ephemeral State | 5. NETCONF Features for Ephemeral State | |||
skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 5 ¶ | |||
Ephemeral-REQ-10: The conceptual changes to RESTCONF are: | Ephemeral-REQ-10: The conceptual changes to RESTCONF are: | |||
1. Support for communication mechanisms to enable an I2RS client to | 1. Support for communication mechanisms to enable an I2RS client to | |||
determine that an I2RS agent supports the mechanisms needed for | determine that an I2RS agent supports the mechanisms needed for | |||
I2RS operation. | I2RS operation. | |||
2. The ephemeral state must support notification of write conflicts | 2. The ephemeral state must support notification of write conflicts | |||
using the priority requirements defined in section 7 below in | using the priority requirements defined in section 7 below in | |||
requirements Ephemeral-REQ-11 through Ephemeral-REQ-14). | requirements Ephemeral-REQ-11 through Ephemeral-REQ-14). | |||
7. Requirements regarding Supporting Multi-Head Control via Client | 7. Requirements regarding Supporting Multi-Head Control via client | |||
Priority | Priority | |||
To support Multi-Headed Control, I2RS requires that there be a | To support Multi-Headed Control, I2RS requires that there be a | |||
decidable means of arbitrating the correct state of data when | decidable means of arbitrating the correct state of data when | |||
multiple clients attempt to manipulate the same piece of data. This | multiple clients attempt to manipulate the same piece of data. This | |||
is done via a priority mechanism with the highest priority winning. | is done via a priority mechanism with the highest priority winning. | |||
This priority is per-client. | This priority is per-client. | |||
Ephemeral-REQ-11: The I2RS Protocol (e.g. NETCONF/RESTCONF + yang) | Ephemeral-REQ-11: The I2RS Protocol (e.g. NETCONF/RESTCONF + yang) | |||
MUST be able to support | MUST be able to support | |||
o the data nodes MAY store I2RS client identity and not the | o the data nodes MAY store I2RS client identity and not the | |||
effective priority at the time the data node is stored. | effective priority at the time the data node is stored. | |||
o Per SEC-REQ-07 in section 3.1 of | o Per SEC-REQ-07 in section 3.1 of | |||
[I-D.ietf-i2rs-protocol-security-requirements], an identifier MUST | [I-D.ietf-i2rs-protocol-security-requirements], an identifier MUST | |||
have just one priority. The I2RS protocol MUST support the | have just one priority. The I2RS protocol MUST support the | |||
ability to have data nodes MAY store I2RS client identity and not | ability to have data nodes store I2RS client identity and not the | |||
the effective priority of the I2RS client at the time the data | effective priority of the I2RS client at the time the data node is | |||
node is stored. | stored. | |||
o The priority MAY be dynamically changed by AAA, but the exact | o The priority MAY be dynamically changed by AAA, but the exact | |||
actions are part of the protocol definition as long as collisions | actions are part of the protocol definition as long as collisions | |||
are handled as described in Ephemeral-REQ-12, Ephemeral-REQ-13, | are handled as described in Ephemeral-REQ-12, Ephemeral-REQ-13, | |||
and Ephemeral-REQ-14. | and Ephemeral-REQ-14. | |||
Ephemeral-REQ-12: When a collision occurs as two clients are trying | Ephemeral-REQ-12: When a collision occurs as two clients are trying | |||
to write the same data node, this collision is considered an error | to write the same data node, this collision is considered an error | |||
and priorities were created to give a deterministic result. When | and priorities were created to give a deterministic result. When | |||
there is a collision, a notification (which includes indicating data | there is a collision, a notification (which includes indicating data | |||
skipping to change at page 8, line 14 ¶ | skipping to change at page 8, line 14 ¶ | |||
Ephemeral-REQ-14: A deterministic conflict resolution mechanism MUST | Ephemeral-REQ-14: A deterministic conflict resolution mechanism MUST | |||
be provided to handle the error scenario that two clients, with the | be provided to handle the error scenario that two clients, with the | |||
same priority, update the same configuration data node. The I2RS | same priority, update the same configuration data node. The I2RS | |||
architecture gives one way that this could be achieved, by specifying | architecture gives one way that this could be achieved, by specifying | |||
that the first update wins. Other solutions, that prevent | that the first update wins. Other solutions, that prevent | |||
oscillation of the config data node, are also acceptable. | oscillation of the config data node, are also acceptable. | |||
8. Multiple Message Transactions | 8. Multiple Message Transactions | |||
Ephemeral-REQ-15: Section 7.9 of the [I-D.ietf-i2rs-architecture] | Ephemeral-REQ-15: Section 7.9 of the [RFC7921] states the I2RS | |||
states the I2RS architecture does not include multi-message atomicity | architecture does not include multi-message atomicity and roll-back | |||
and roll-back mechanisms. The I2RS protocol implementation MUST not | mechanisms. The I2RS protocol implementation MUST not require the | |||
require the support of these features. As part of this requirement, | support of these features. As part of this requirement, the I2RS | |||
the I2SR protocol should support: | protocol should support: | |||
multiple operations in one or more messages handling can handle | multiple operations in one or more messages; though errors in | |||
errors within the set of operations in many ways. | message or operation will have no effect on other messages or | |||
commands even they are related. | ||||
No multi-message commands SHOULD cause errors to be inserted into | No multi-message commands SHOULD cause errors to be inserted into | |||
the I2RS ephemeral state. | the I2RS ephemeral state. | |||
9. Pub/Sub Requirements Expanded for Ephemeral State | 9. Pub/Sub Requirements Expanded for Ephemeral State | |||
I2RS clients require the ability to monitor changes to ephemeral | I2RS clients require the ability to monitor changes to ephemeral | |||
state. While subscriptions are well defined for receiving | state. While subscriptions are well defined for receiving | |||
notifications, the need to create a notification set for all | notifications, the need to create a notification set for all | |||
ephemeral configuration state may be overly burdensome to the user. | ephemeral configuration state may be overly burdensome to the user. | |||
There is thus a need for a general subscription mechanism that can | There is thus a need for a general subscription mechanism that can | |||
provide notification of changed state, with sufficient information to | provide notification of changed state, with sufficient information to | |||
permit the client to retrieve the impacted nodes. This should be | permit the client to retrieve the impacted nodes. This should be | |||
doable without requiring the notifications to be created as part of | doable without requiring the notifications to be created as part of | |||
every single I2RS module. | every single I2RS module. | |||
The publication/subscription requirements for I2RS are in | The publication/subscription requirements for I2RS are in [RFC7923], | |||
[I-D.ietf-i2rs-pub-sub-requirements], and the following general | and the following general requirements SHOULD be understood to be | |||
requirements SHOULD be understood to be expanded to to include | expanded to include ephemeral state: | |||
ephemeral state: | ||||
o Pub-Sub-REQ-01: The Subscription Service MUST support | o Pub-Sub-REQ-01: The Subscription Service MUST support | |||
subscriptions against ephemeral state in operational data stores, | subscriptions against ephemeral state in operational data stores, | |||
configuration data stores or both. | configuration data stores or both. | |||
o Pub-Sub-REQ-02: The Subscription Service MUST support filtering so | o Pub-Sub-REQ-02: The Subscription Service MUST support filtering so | |||
that subscribed updates under a target node might publish only | that subscribed updates under a target node might publish only | |||
ephemeral state in operational data or configuration data, or | ephemeral state in operational data or configuration data, or | |||
publish both ephemeral and operational data. | publish both ephemeral and operational data. | |||
skipping to change at page 10, line 6 ¶ | skipping to change at page 10, line 6 ¶ | |||
o Juergen Schoenwaelder | o Juergen Schoenwaelder | |||
o Kent Watsen | o Kent Watsen | |||
o Robert Wilton | o Robert Wilton | |||
13. References | 13. References | |||
13.1. Normative References: | 13.1. Normative References: | |||
[I-D.ietf-i2rs-architecture] | ||||
Atlas, A., Halpern, J., Hares, S., Ward, D., and T. | ||||
Nadeau, "An Architecture for the Interface to the Routing | ||||
System", draft-ietf-i2rs-architecture-15 (work in | ||||
progress), April 2016. | ||||
[I-D.ietf-i2rs-protocol-security-requirements] | [I-D.ietf-i2rs-protocol-security-requirements] | |||
Hares, S., Migault, D., and J. Halpern, "I2RS Security | Hares, S., Migault, D., and J. Halpern, "I2RS Security | |||
Related Requirements", draft-ietf-i2rs-protocol-security- | Related Requirements", draft-ietf-i2rs-protocol-security- | |||
requirements-06 (work in progress), May 2016. | requirements-09 (work in progress), August 2016. | |||
[I-D.ietf-i2rs-pub-sub-requirements] | ||||
Voit, E., Clemm, A., and A. Prieto, "Requirements for | ||||
Subscription to YANG Datastores", draft-ietf-i2rs-pub-sub- | ||||
requirements-09 (work in progress), May 2016. | ||||
[I-D.ietf-i2rs-security-environment-reqs] | [I-D.ietf-i2rs-security-environment-reqs] | |||
Migault, D., Halpern, J., and S. Hares, "I2RS Environment | Migault, D., Halpern, J., and S. Hares, "I2RS Environment | |||
Security Requirements", draft-ietf-i2rs-security- | Security Requirements", draft-ietf-i2rs-security- | |||
environment-reqs-01 (work in progress), April 2016. | environment-reqs-01 (work in progress), April 2016. | |||
[I-D.ietf-i2rs-traceability] | ||||
Clarke, J., Salgueiro, G., and C. Pignataro, "Interface to | ||||
the Routing System (I2RS) Traceability: Framework and | ||||
Information Model", draft-ietf-i2rs-traceability-11 (work | ||||
in progress), May 2016. | ||||
[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-15 (work in | Protocol", draft-ietf-netconf-restconf-16 (work in | |||
progress), July 2016. | progress), August 2016. | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc6241>. | <http://www.rfc-editor.org/info/rfc6241>. | |||
[RFC7921] Atlas, A., Halpern, J., Hares, S., Ward, D., and T. | ||||
Nadeau, "An Architecture for the Interface to the Routing | ||||
System", RFC 7921, DOI 10.17487/RFC7921, June 2016, | ||||
<http://www.rfc-editor.org/info/rfc7921>. | ||||
[RFC7922] Clarke, J., Salgueiro, G., and C. Pignataro, "Interface to | ||||
the Routing System (I2RS) Traceability: Framework and | ||||
Information Model", RFC 7922, DOI 10.17487/RFC7922, June | ||||
2016, <http://www.rfc-editor.org/info/rfc7922>. | ||||
[RFC7923] Voit, E., Clemm, A., and A. Gonzalez Prieto, "Requirements | ||||
for Subscription to YANG Datastores", RFC 7923, | ||||
DOI 10.17487/RFC7923, June 2016, | ||||
<http://www.rfc-editor.org/info/rfc7923>. | ||||
13.2. Informative References | 13.2. Informative References | |||
[I-D.hares-i2rs-protocol-strawman] | [I-D.hares-i2rs-protocol-strawman] | |||
Hares, S. and a. amit.dass@ericsson.com, "I2RS protocol | Hares, S. and a. amit.dass@ericsson.com, "I2RS protocol | |||
strawman", draft-hares-i2rs-protocol-strawman-03 (work in | strawman", draft-hares-i2rs-protocol-strawman-03 (work in | |||
progress), July 2016. | progress), July 2016. | |||
[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, | |||
End of changes. 27 change blocks. | ||||
66 lines changed or deleted | 64 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |