| draft-ietf-i2rs-ephemeral-state-17.txt | draft-ietf-i2rs-ephemeral-state-17.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: Informational S. Hares | |||
| Expires: March 24, 2017 Huawei | Expires: March 24, 2017 Huawei | |||
| September 20, 2016 | September 20, 2016 | |||
| I2RS Ephemeral State Requirements | I2RS Ephemeral State Requirements | |||
| draft-ietf-i2rs-ephemeral-state-17 | draft-ietf-i2rs-ephemeral-state-17 | |||
| Abstract | Abstract | |||
| The I2RS (interface to routing system) Architecture document | The I2RS (interface to routing system) Architecture document | |||
| (RFC7920) abstractly describes a number of requirements for ephemeral | (RFC7920) abstractly describes a number of requirements for ephemeral | |||
| skipping to change at page 3, line 30 | skipping to change at page 3, line 30 | |||
| Support for ephemeral state is an I2RS protocol requirement that | Support for ephemeral state is an I2RS protocol requirement that | |||
| requires datastore changes (see section 3), YANG additions (see | requires datastore changes (see section 3), YANG additions (see | |||
| 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. Section 7 provided additional requirements that detail how | groups. Section 7 provided 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 details an additional requirement that details on | data. Section 8 details an additional requirement that describes | |||
| 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 | |||
| [RFC7923] that must be expanded for ephemeral state. | [RFC7923] that must be expanded for 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]. | |||
| skipping to change at page 5, line 7 | skipping to change at page 5, line 7 | |||
| agent. | agent. | |||
| 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-REQ-15, Ephemeral state | |||
| defined as potentially including in a data model ephemeral | is defined as potentially including in a data model ephemeral | |||
| configuration and operational state which is flagged as ephemeral. | 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- | |||
| skipping to change at page 5, line 34 | skipping to change at page 5, line 34 | |||
| 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 [RFC7923], tracing ([RFC7922], RPC or | Ephemeral-REQ-05: I2RS pub-sub [RFC7923], tracing [RFC7922], RPC or | |||
| other mechanisms may lead to undesirable or unsustainable resource | other mechanisms may lead to undesirable or unsustainable resource | |||
| consumption on a system implementing an I2RS agent. It is | consumption on a system implementing an I2RS agent. It is | |||
| RECOMMENDED that mechanisms be made available to permit | RECOMMENDED that mechanisms be made available to permit | |||
| prioritization of I2RS operations, when appropriate, to permit | prioritization of I2RS operations, when appropriate, to permit | |||
| implementations to shed work load when operating under constrained | implementations to shed work load when operating under constrained | |||
| resources. An example of such a work shedding mechanism is rate- | resources. An example of such a work shedding mechanism is rate- | |||
| limiting. | limiting. | |||
| 3.3. Hierarchy | 3.3. Hierarchy | |||
| skipping to change at page 8, line 14 | skipping to change at page 8, line 14 | |||
| processing of the configuration change for two I2RS clients must | processing of the configuration change for two I2RS clients must | |||
| detect an I2RS collision and resolve the collision using the priority | detect an I2RS collision and resolve the collision using the priority | |||
| mechanism. | mechanism. | |||
| Ephemeral-REQ-13: Multi-headed control is required for collisions and | Ephemeral-REQ-13: Multi-headed control is required for collisions and | |||
| the priority resolution of collisions. Multi-headed control is not | the priority resolution of collisions. Multi-headed control is not | |||
| tied to ephemeral state. I2RS protocol MUST NOT mandate the internal | tied to ephemeral state. I2RS protocol MUST NOT mandate the internal | |||
| mechanism for how AAA protocols (E.g. Radius or Diameter) or | mechanism for how AAA protocols (E.g. Radius or Diameter) or | |||
| mechanisms distribute priority per identity except that any AAA | mechanisms distribute priority per identity except that any AAA | |||
| protocols MUST operate over a secure transport layer (See Radius | protocols MUST operate over a secure transport layer (See Radius | |||
| [RFC6614] and Diameter [RFC6733]. distribute priority per identity. | [RFC6614] and Diameter [RFC6733]). Mechanisms that prevent | |||
| Mechanisms which prevent collisions of two clients trying to modify | collisions of two clients trying to modify the same node of data are | |||
| the same node of data are the focus. | the focus. | |||
| 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 | |||
| skipping to change at page 10, line 12 | skipping to change at page 10, line 12 | |||
| o Joel Halpern, | o Joel Halpern, | |||
| o Thomas Nadeau, | o Thomas Nadeau, | |||
| o Juergen Schoenwaelder, | o Juergen Schoenwaelder, | |||
| o Kent Watsen, | o Kent Watsen, | |||
| o Robert Wilton, and | o Robert Wilton, and | |||
| o Joe Clark, | o Joe Clarke | |||
| 13. References | 13. References | |||
| 13.1. Normative References: | 13.1. Normative References: | |||
| [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-11 (work in progress), September 2016. | requirements-11 (work in progress), September 2016. | |||
| End of changes. 7 change blocks. | ||||
| 10 lines changed or deleted | 10 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||