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/ |