|
draft-ietf-netconf-partial-lock-08.txt |
|
draft-ietf-netconf-partial-lock-09.txt |
|
|
|
|
|
|
|
NETCONF B. Lengyel |
|
NETCONF B. Lengyel |
|
|
Internet-Draft Ericsson |
|
Internet-Draft Ericsson |
|
|
Intended status: Standards Track M. Bjorklund |
|
Intended status: Standards Track M. Bjorklund |
|
|
|
Expires: December 5, 2009
Tail-f Systems |
|
Expires: December 13, 2009
Tail-f Systems |
|
|
June 03, 2009 |
|
June 11, 2009 |
|
|
|
|
|
|
|
Partial Lock RPC for NETCONF |
|
Partial Lock RPC for NETCONF |
|
|
|
draft-ietf-netconf-partial-lock-08 |
|
draft-ietf-netconf-partial-lock-09 |
|
|
|
|
|
|
|
Status of this Memo |
|
Status of this Memo |
|
|
|
|
|
|
|
This Internet-Draft is submitted to IETF in full
conformance with the |
|
This Internet-Draft is submitted to IETF in full
conformance with the |
|
|
|
provisions of BCP 78 and BCP 79. |
|
provisions of BCP 78 and BCP 79. This document may contain material |
|
|
|
|
from IETF Documents or IETF
Contributions published or made publicly |
|
|
|
|
available before November 10, 2008.
The person(s) controlling the |
|
|
|
|
copyright in some of this material
may not have granted the IETF |
|
|
|
|
Trust the right to allow
modifications of such material outside the |
|
|
|
|
IETF Standards Process. Without
obtaining an adequate license from |
|
|
|
|
the person(s) controlling the
copyright in such materials, this |
|
|
|
|
document may not be modified outside
the IETF Standards Process, and |
|
|
|
|
derivative works of it may not be
created outside the IETF Standards |
|
|
|
|
Process, except to format it for
publication as an RFC or to |
|
|
|
|
translate it into languages other
than English. |
|
|
|
|
|
|
|
Internet-Drafts are working documents of the Internet
Engineering |
|
Internet-Drafts are working documents of the Internet
Engineering |
|
|
Task Force (IETF), its areas, and its working groups.
Note that |
|
Task Force (IETF), its areas, and its working groups.
Note that |
|
|
other groups may also distribute working documents as
Internet- |
|
other groups may also distribute working documents as
Internet- |
|
|
Drafts. |
|
Drafts. |
|
|
|
|
|
|
|
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." |
|
|
|
|
|
|
|
The list of current Internet-Drafts can be accessed at |
|
The list of current Internet-Drafts can be accessed
at |
|
|
http://www.ietf.org/ietf/1id-abstracts.txt. |
|
http://www.ietf.org/ietf/1id-abstracts.txt. |
|
|
|
|
|
|
|
The list of Internet-Draft Shadow Directories can be
accessed at |
|
The list of Internet-Draft Shadow Directories can be
accessed at |
|
|
http://www.ietf.org/shadow.html. |
|
http://www.ietf.org/shadow.html. |
|
|
|
|
|
|
|
|
This Internet-Draft will expire on December 5, 2009. |
|
This Internet-Draft will expire on December 13, 2009. |
|
|
|
|
|
|
|
Copyright Notice |
|
Copyright Notice |
|
|
|
|
|
|
|
Copyright (c) 2009 IETF Trust and the persons identified
as the |
|
Copyright (c) 2009 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 in effect on the
date of |
|
Provisions Relating to IETF Documents in effect on the
date of |
|
|
publication of this document (http://trustee.ietf.org/license-info). |
|
publication of this document (http://trustee.ietf.org/license-info). |
|
|
Please review these documents carefully, as they describe
your rights |
|
Please review these documents carefully, as they
describe your rights |
|
|
|
|
|
|
|
skipping to change at page 2,
line 10 |
|
skipping to change at page 3,
line 7 |
|
|
Abstract |
|
Abstract |
|
|
|
|
|
|
|
The NETCONF protocol defines the lock and unlock RPCs,
used to lock |
|
The NETCONF protocol defines the lock and unlock RPCs,
used to lock |
|
|
entire configuration datastores. In some situations, a
way to lock |
|
entire configuration datastores. In some situations, a
way to lock |
|
|
only parts of a configuration datastore is required. This
document |
|
only parts of a configuration datastore is required.
This document |
|
|
defines a capability-based extension to the NETCONF
protocol for |
|
defines a capability-based extension to the NETCONF
protocol for |
|
|
locking portions of a configuration datastore. |
|
locking portions of a configuration datastore. |
|
|
|
|
|
|
|
Table of Contents |
|
Table of Contents |
|
|
|
|
|
|
|
|
1. Introduction . . . . . . . . . . . . . . . . . . . .
. . . . . 3 |
|
1. Introduction . . . . . . . . . . . . . . . . . . . .
. . . . . 4 |
|
|
1.1. Definition of Terms . . . . . . . . . . . . . . .
. . . . 3 |
|
1.1. Definition of Terms . . . . . . . . . . . . . . .
. . . . 4 |
|
|
2. Partial Locking Capability . . . . . . . . . . . . .
. . . . . 3 |
|
2. Partial Locking Capability . . . . . . . . . . . . .
. . . . . 4 |
|
|
2.1. Overview . . . . . . . . . . . . . . . . . . . . .
. . . . 3 |
|
2.1. Overview . . . . . . . . . . . . . . . . . . . . .
. . . . 4 |
|
|
2.1.1. Usage Scenarios . . . . . . . . . . . . . . . .
. . . 4 |
|
2.1.1. Usage Scenarios . . . . . . . . . . . . . . . .
. . . 5 |
|
|
2.2. Dependencies . . . . . . . . . . . . . . . . . . .
. . . . 6 |
|
2.2. Dependencies . . . . . . . . . . . . . . . . . . .
. . . . 7 |
|
|
2.3. Capability Identifier . . . . . . . . . . . . . .
. . . . 6 |
|
2.3. Capability Identifier . . . . . . . . . . . . . .
. . . . 7 |
|
|
2.4. New Operations . . . . . . . . . . . . . . . . . .
. . . . 6 |
|
2.4. New Operations . . . . . . . . . . . . . . . . . .
. . . . 7 |
|
|
2.4.1. <partial-lock> . . . . . . . . . . . . . .
. . . . . . 6 |
|
2.4.1. <partial-lock> . . . . . . . . . . . . . .
. . . . . . 7 |
|
|
2.4.2. <partial-unlock> . . . . . . . . . . . . .
. . . . . . 11 |
|
2.4.2. <partial-unlock> . . . . . . . . . . . . .
. . . . . . 12 |
|
|
2.5. Modifications to Existing Operations . . . . . . .
. . . . 11 |
|
2.5. Modifications to Existing Operations . . . . . . .
. . . . 13 |
|
|
2.6. Interactions with Other Capabilities . . . . . . .
. . . . 12 |
|
2.6. Interactions with Other Capabilities . . . . . . .
. . . . 14 |
|
|
2.6.1. Candidate Configuration Capability . . . . . . .
. . . 12 |
|
2.6.1. Candidate Configuration Capability . . . . . . .
. . . 14 |
|
|
2.6.2. Confirmed Commit Capability . . . . . . . . . .
. . . 12 |
|
2.6.2. Confirmed Commit Capability . . . . . . . . . .
. . . 14 |
|
|
2.6.3. Distinct Startup Capability . . . . . . . . . .
. . . 12 |
|
2.6.3. Distinct Startup Capability . . . . . . . . . .
. . . 14 |
|
|
3. Security Considerations . . . . . . . . . . . . . .
. . . . . 12 |
|
3. Security Considerations . . . . . . . . . . . . . .
. . . . . 14 |
|
|
4. IANA Considerations . . . . . . . . . . . . . . . .
. . . . . 13 |
|
4. IANA Considerations . . . . . . . . . . . . . . . .
. . . . . 15 |
|
|
5. Appendix A - XML Schema for Partial Locking
(normative) . . 15 |
|
5. Appendix A - XML Schema for Partial Locking
(normative) . . 16 |
|
|
6. Appendix B - YANG Module for Partial Locking |
|
6. Appendix B - YANG Module for Partial Locking |
|
|
|
(non-normative) . . . . . . . . . . . . . . . . . . . .
. . . 19 |
|
(non-normative) . . . . . . . . . . . . . . . . . . . .
. . . 20 |
|
|
7. Appendix C - Usage Example - Reserving nodes for
future |
|
7. Appendix C - Usage Example - Reserving nodes for
future |
|
|
|
editing (non-normative) . . . . . . . . . . . . . . . .
. . . 22 |
|
editing (non-normative) . . . . . . . . . . . . . . . .
. . . 23 |
|
|
8. Appendix D - Change Log . . . . . . . . . . . . . .
. . . . 27 |
|
8. Appendix D - Change Log . . . . . . . . . . . . . .
. . . . 28 |
|
|
8.1. 07-08 . . . . . . . . .
. . . . . . . . . . . . . . . . . 27 |
|
8.1. 08-09 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
|
8.2. 06-07 . . . . . . . . .
. . . . . . . . . . . . . . . . . 27 |
|
8.2. 07-08 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
|
8.3. 05-06 . . . . . . . . .
. . . . . . . . . . . . . . . . . 27 |
|
8.3. 06-07 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
|
8.4. 04-05 . . . . . . . . .
. . . . . . . . . . . . . . . . . 27 |
|
8.4. 05-06 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
|
8.5. 03-04 . . . . . . . . .
. . . . . . . . . . . . . . . . . 27 |
|
8.5. 04-05 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
|
8.6. 02-03 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
8.6. 03-04 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
|
8.7. 01-02 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
8.7. 02-03 . . . . . . . . .
. . . . . . . . . . . . . . . . . 29 |
|
|
8.8. 00-01 . . . . . . . . .
. . . . . . . . . . . . . . . . . 28 |
|
8.8. 01-02 . . . . . . . . .
. . . . . . . . . . . . . . . . . 29 |
|
|
8.9. -00 . . . . . . . . . . . . . . . . . . . . . . .
. . . . 28 |
|
8.9. 00-01 . . . . . . . . . . . . .
. . . . . . . . . . . . . 29 |
|
|
9. Acknowledgements . . . . . . . . . . . . . . . . . .
. . . . . 29 |
|
8.10. -00 . . . . . . . . . .
. . . . . . . . . . . . . . . . . 29 |
|
|
10. References . . . . . . . . . . . . . . . . . . . .
. . . . . . 30 |
|
9. Acknowledgements . . . . . . . . . . . . . . . . . .
. . . . . 30 |
|
|
10.1. Normative References . . . . . . . . . . . . . .
. . . . . 30 |
|
10. References . . . . . . . . . . . . . . . . . . . .
. . . . . . 31 |
|
|
10.2. Informative References . . . . . . . . . . . . .
. . . . . 30 |
|
10.1. Normative References . . . . . . . . . . . . . .
. . . . . 31 |
|
|
Authors' Addresses . . . . . . . . . . . . . . . . . .
. . . . . . 31 |
|
10.2. Informative References . . . . . . . . . . . . .
. . . . . 31 |
|
|
|
|
Authors' Addresses . . . . . . . . . . . . . . . . . .
. . . . . . 32 |
|
|
|
|
|
|
|
1. Introduction |
|
1. Introduction |
|
|
|
|
|
|
|
The [NETCONF] protocol describes the lock and unlock
operations that |
|
The [NETCONF] protocol describes the lock and unlock
operations that |
|
|
operate on entire configuration datastores. Often,
multiple |
|
operate on entire configuration datastores. Often,
multiple |
|
|
management sessions need to be able to modify the
configuration of a |
|
management sessions need to be able to modify the
configuration of a |
|
|
managed device in parallel. In these cases, locking only
parts of a |
|
managed device in parallel. In these cases, locking only
parts of a |
|
|
configuration datastore is needed. This document defines
a |
|
configuration datastore is needed. This document defines
a |
|
|
capability based extension to the NETCONF protocol to
support partial |
|
capability based extension to the NETCONF protocol to
support partial |
|
|
locking of NETCONF datastores using a mechanism based on
the existing |
|
locking of NETCONF datastores using a mechanism based on
the existing |
|
|
|
|
|
|
|
skipping to change at page 3,
line 36 |
|
skipping to change at page 4,
line 36 |
|
|
node in the conceptual XML datastore. It contains an
absolute |
|
node in the conceptual XML datastore. It contains an
absolute |
|
|
path _expression_ in abbreviated syntax, where predicates
are used |
|
path _expression_ in abbreviated syntax, where predicates
are used |
|
|
only to specify values for nodes defined as keys to
distinguish |
|
only to specify values for nodes defined as keys to
distinguish |
|
|
multiple instances. |
|
multiple instances. |
|
|
|
|
|
|
|
o Scope of the lock: initially the set of nodes returned
by the |
|
o Scope of the lock: initially the set of nodes returned
by the |
|
|
XPath expressions in a successful partial-lock operation.
The set |
|
XPath expressions in a successful partial-lock
operation. The set |
|
|
might be modified if some of the nodes are deleted. |
|
might be modified if some of the nodes are deleted. |
|
|
|
|
|
|
|
o Protected area: the set of nodes that are protected
from |
|
o Protected area: the set of nodes that are protected
from |
|
|
|
modification by the lock. This consist of nodes in the scope of |
|
modification by the lock. This set
consists of nodes in the scope |
|
|
the lock and nodes in subtrees under them. |
|
of the lock and nodes in subtrees under them. |
|
|
|
|
|
|
|
2. Partial Locking Capability |
|
2. Partial Locking Capability |
|
|
|
|
|
|
|
2.1. Overview |
|
2.1. Overview |
|
|
|
|
|
|
|
The :partial-lock capability indicates that the device
supports the |
|
The :partial-lock capability indicates that the device
supports the |
|
|
locking of its configuration with a more limited scope
than a |
|
locking of its configuration with a more limited scope
than a |
|
|
complete configuration datastore. The scope to be locked
is |
|
complete configuration datastore. The scope to be locked
is |
|
|
specified by using restricted or full XPath expressions.
Partial |
|
specified by using restricted or full XPath expressions.
Partial |
|
|
locking only affects configuration data. |
|
locking only affects configuration data. |
|
|
|
|
|
|
|
skipping to change at page 4,
line 27 |
|
skipping to change at page 5,
line 27 |
|
|
2.1.1. Usage Scenarios |
|
2.1.1. Usage Scenarios |
|
|
|
|
|
|
|
In the following we describe a few scenarios for partial
locking. |
|
In the following we describe a few scenarios for partial
locking. |
|
|
Partial locking is primarily useful towards the
running |
|
Partial locking is primarily useful towards the
running |
|
|
configuration. However it can be used to lock a candidate
datastore |
|
configuration. However it can be used to lock a
candidate datastore |
|
|
as well. While scenarios using the running datastore are
seen as the |
|
as well. While scenarios using the running datastore are
seen as the |
|
|
most important, as an example a scenario involving the
candidate |
|
most important, as an example a scenario involving the
candidate |
|
|
datastore is also presented. Besides the three described
here, there |
|
datastore is also presented. Besides the three described
here, there |
|
|
are many other usage scenarios possible. |
|
are many other usage scenarios possible. |
|
|
|
|
|
|
|
|
2.1.1.1. Multiple managers handling the writable
running datastore |
|
2.1.1.1. Multiple managers handling the writable
running datastore with |
|
|
|
|
overlapping sections |
|
|
|
|
|
|
|
Multiple managers are handling the same NETCONF agent
simultaneously. |
|
Multiple managers are handling the same NETCONF agent
simultaneously. |
|
|
The agent is handled via the writable running datastore.
Each |
|
The agent is handled via the writable running datastore.
Each |
|
|
manager has his or her own task, which might involve the
modification |
|
manager has his or her own task, which might involve the
modification |
|
|
of overlapping sections of the datastore. |
|
of overlapping sections of the datastore. |
|
|
|
|
|
|
|
After collecting and analyzing input and preparing the
NETCONF |
|
After collecting and analyzing input and preparing the
NETCONF |
|
|
operations off-line, the manager locks the areas that are
important |
|
operations off-line, the manager locks the areas that
are important |
|
|
for his task using one single <partial-lock>
operation. The manager |
|
for his task using one single <partial-lock>
operation. The manager |
|
|
executes a number of <edit-config> operations to
modify the |
|
executes a number of <edit-config> operations to
modify the |
|
|
configuration, then releases the partial-lock. The lock
should be |
|
configuration, then releases the partial-lock. The lock
should be |
|
|
|
held for only a short time
(seconds rather then minutes). The |
|
held for the shortest
possible time (e.g. seconds rather
then |
|
|
manager should collect all human input before locking
anything. As |
|
minutes). The manager should collect all human input
before locking |
|
|
each manager locks only a part of the data model,
usually multiple |
|
anything. As each manager locks only a part of the data
model, |
|
|
operators can execute the <edit-config>
operations simultaneously. |
|
usually multiple operators can execute the
<edit-config> operations |
|
|
|
|
simultaneously. |
|
|
|
|
|
|
|
2.1.1.2. Multiple managers handling the writable running
datastore, |
|
2.1.1.2. Multiple managers handling the writable running
datastore, |
|
|
distinct management areas |
|
distinct management areas |
|
|
|
|
|
|
|
Multiple managers are handling the same NETCONF agent
simultaneously. |
|
Multiple managers are handling the same NETCONF agent
simultaneously. |
|
|
The agent is handled via the writable running datastore.
The agent's |
|
The agent is handled via the writable running datastore.
The agent's |
|
|
data model contains a number of well defined separate
areas that can |
|
data model contains a number of well defined separate
areas that can |
|
|
be configured without impacting other areas. An example
can be a |
|
be configured without impacting other areas. An example
can be a |
|
|
server with multiple applications running on it, or a
number of a |
|
server with multiple applications running on it, or a
number of a |
|
|
network elements with a common NETCONF agent for
management. |
|
network elements with a common NETCONF agent for
management. |
|
|
|
|
|
|
|
Each manager has his or her own task, which does not
involve the |
|
Each manager has his or her own task, which does not
involve the |
|
|
modification of overlapping sections of the datastore. |
|
modification of overlapping sections of the
datastore. |
|
|
|
|
|
|
|
The manager locks his area with a <partial-lock>
operation, uses a |
|
The manager locks his area with a <partial-lock>
operation, uses a |
|
|
number of <edit-config> commands to modify it,
later releases the |
|
number of <edit-config> commands to modify it,
later releases the |
|
|
lock. As each manager has his functional area assigned to
him, and |
|
lock. As each manager has his functional area assigned
to him, and |
|
|
he locks only that area, multiple managers can edit the
configuration |
|
he locks only that area, multiple managers can edit the
configuration |
|
|
|
simultaneously. Locks can be held for extended periods
(minutes, |
|
simultaneously. Locks can be held for extended periods
(e.g. |
|
|
hours), as this will not hinder other managers. |
|
minutes, hours), as this will
not hinder other managers. |
|
|
|
|
|
|
|
This scenario assumes, that the global lock operation
from [NETCONF] |
|
This scenario assumes, that the global lock operation
from [NETCONF] |
|
|
is not used. |
|
is not used. |
|
|
|
|
|
|
|
2.1.1.3. Multiple managers handling the candidate
datastore in a semi- |
|
2.1.1.3. Multiple managers handling the candidate
datastore in a semi- |
|
|
coordinated work mode |
|
coordinated work mode |
|
|
|
|
|
|
|
Multiple managers are handling the same NETCONF agent
simultaneously. |
|
Multiple managers are handling the same NETCONF agent
simultaneously. |
|
|
The agent is handled via the candidate datastore. Each
manager has |
|
The agent is handled via the candidate datastore. Each
manager has |
|
|
his or her own task which might involve the modification
of |
|
his or her own task which might involve the modification
of |
|
|
overlapping sections of the datastore. |
|
overlapping sections of the datastore. |
|
|
|
|
|
|
|
After collecting and analyzing input and preparing the
NETCONF |
|
After collecting and analyzing input and preparing the
NETCONF |
|
|
operations off-line, the manager locks the areas that are
important |
|
operations off-line, the manager locks the areas that
are important |
|
|
for his task using one single <partial-lock>
operation in both the |
|
for his task using one single <partial-lock>
operation in both the |
|
|
candidate and the running datastore. He executes a number
of <edit- |
|
candidate and the running datastore. He executes a
number of <edit- |
|
|
config> operations to modify the configuration, then
releases the |
|
config> operations to modify the configuration, then
releases the |
|
|
|
partial-lock. The lock should be held for only a short time (seconds |
|
partial-lock. The lock should only be held for the shortest
possible |
|
|
rather then minutes). |
|
time (e.g. seconds rather
then minutes). |
|
|
|
|
|
|
|
Operators coordinate with each other. When all of them
finish their |
|
Operators coordinate with each other. When all of them
finish their |
|
|
tasks one of them orders commit. If any of the operators
are still |
|
tasks one of them orders commit. If any of the operators
are still |
|
|
working, and holds a lock, the commit will fail, and will
need to be |
|
working, and holds a lock, the commit will fail, and
will need to be |
|
|
repeated after all managers finish. |
|
repeated after all managers finish. |
|
|
|
|
|
|
|
Warning: When multiple managers use the candidate
configuration in |
|
Warning: When multiple managers use the candidate
configuration in |
|
|
parallel, there is a risk that the interaction of access
control |
|
parallel, there is a risk that the interaction of access
control |
|
|
(which is still implementation specific at the time of
this writing) |
|
(which is still implementation specific at the time of
this writing) |
|
|
and the commit operation might result in a dead-lock, as
illustrated |
|
and the commit operation might result in a dead-lock, as
illustrated |
|
|
|
|
|
|
|
skipping to change at page 8,
line 15 |
|
skipping to change at page 9,
line 17 |
|
|
The <partial-lock> operation is designed for
simplicity, so when a |
|
The <partial-lock> operation is designed for
simplicity, so when a |
|
|
partial lock is executed you get what you asked for: a
set of nodes |
|
partial lock is executed you get what you asked for: a
set of nodes |
|
|
that are locked for writing. As a consequence users must
observe the |
|
that are locked for writing. As a consequence users must
observe the |
|
|
following: |
|
following: |
|
|
|
|
|
|
|
o Locking does not affect read operations. |
|
o Locking does not affect read operations. |
|
|
|
|
|
|
|
o If part of a datastore is locked, this has no effect on
any |
|
o If part of a datastore is locked, this has no effect
on any |
|
|
unlocked parts of the datastore. If this is a problem
(e.g., |
|
unlocked parts of the datastore. If this is a problem
(e.g., |
|
|
changes depend on data values or nodes outside the
protected part |
|
changes depend on data values or nodes outside the
protected part |
|
|
|
of the datastore), these nodes should be included in the protected |
|
of the datastore), these nodes SHOULD be included in the protected |
|
|
area of the lock. |
|
area of the lock. |
|
|
|
|
|
|
|
o Configuration data can be edited both inside and
outside the |
|
o Configuration data can be edited both inside and
outside the |
|
|
protected area of a lock. It is the responsibility of the
NETCONF |
|
protected area of a lock. It is the responsibility of
the NETCONF |
|
|
client application to lock all relevant parts of a
datastore that |
|
client application to lock all relevant parts of a
datastore that |
|
|
are crucial for a specific management action. |
|
are crucial for a specific management action. |
|
|
|
|
|
|
|
Note: The <partial-lock> operation does not modify
the global <lock> |
|
Note: The <partial-lock> operation does not modify
the global <lock> |
|
|
operation defined in the base NETCONF Protocol [NETCONF].
If part of |
|
operation defined in the base NETCONF Protocol
[NETCONF]. If part of |
|
|
a datastore is already locked by <partial-lock>,
then a global lock |
|
a datastore is already locked by <partial-lock>,
then a global lock |
|
|
|
|
|
|
|
skipping to change at page 10,
line 46 |
|
skipping to change at page 12,
line 35 |
|
|
not an Instance Identifier, the <error-tag> is
'invalid-value', the |
|
not an Instance Identifier, the <error-tag> is
'invalid-value', the |
|
|
<error-app-tag> is 'invalid-lock-specification'. |
|
<error-app-tag> is
'invalid-lock-specification'. |
|
|
|
|
|
|
|
If access control denies the partial lock, the
<error-tag> is |
|
If access control denies the partial lock, the
<error-tag> is |
|
|
'access-denied'. |
|
'access-denied'. |
|
|
|
|
|
|
|
2.4.1.2. Deadlock Avoidance |
|
2.4.1.2. Deadlock Avoidance |
|
|
|
|
|
|
|
As with most locking systems, it is possible that two
management |
|
As with most locking systems, it is possible that two
management |
|
|
sessions trying to lock different parts of the
configuration could |
|
sessions trying to lock different parts of the
configuration could |
|
|
|
become dead-locked. To avoid this situation, clients
should lock |
|
become dead-locked. To avoid this situation, clients
SHOULD lock |
|
|
everything they need in one operation. If locking fails,
the client |
|
everything they need in one operation. If locking fails,
the client |
|
|
|
should back-off, release any
previously acquired locks, and retry the |
|
MUST back-off, release any
previously acquired locks, and SHOULD |
|
|
procedure after waiting some randomized time
interval. |
|
retry the procedure after waiting some randomized time
interval. |
|
|
|
|
|
|
|
2.4.2. <partial-unlock> |
|
2.4.2. <partial-unlock> |
|
|
|
|
|
|
|
The operation unlocks the parts of the datastores that
were |
|
The operation unlocks the parts of the datastores that
were |
|
|
previously locked using <partial-lock> during the
same session. |
|
previously locked using <partial-lock> during the
same session. |
|
|
|
|
|
|
|
Parameters: |
|
Parameters: |
|
|
|
|
|
|
|
lock-id: Identity of the lock to be unlocked. This
lock-id MUST |
|
lock-id: Identity of the lock to be unlocked. This
lock-id MUST |
|
|
have been received as a response to a lock request by the
manager |
|
have been received as a response to a lock request by
the manager |
|
|
|
|
|
|
|
skipping to change at page 13,
line 29 |
|
skipping to change at page 15,
line 19 |
|
|
users's sessions. |
|
users's sessions. |
|
|
|
|
|
|
|
The NETCONF server may log partial lock requests in an
audit |
|
The NETCONF server may log partial lock requests in an
audit |
|
|
trail. |
|
trail. |
|
|
|
|
|
|
|
A lock that is hung for some reason (e.g., a broken TCP
connection |
|
A lock that is hung for some reason (e.g., a broken TCP
connection |
|
|
that the server has not yet recognised) can be released
using another |
|
that the server has not yet recognised) can be released
using another |
|
|
NETCONF session by explicitly killing the session owning
that lock |
|
NETCONF session by explicitly killing the session owning
that lock |
|
|
using the <kill-session> operation. |
|
using the <kill-session> operation. |
|
|
|
|
|
|
|
|
Partial locking is NOT an
authorization mechanism; it SHOULD NOT be |
|
Partial locking is not an
authorization mechanism; it SHOULD NOT be |
|
|
used to provide security or access control. Partial
locking SHOULD |
|
used to provide security or access control. Partial
locking SHOULD |
|
|
only be used as a mechanism for providing consistency
when multiple |
|
only be used as a mechanism for providing consistency
when multiple |
|
|
managers are trying to configure the node. It is vital
that users |
|
managers are trying to configure the node. It is vital
that users |
|
|
easily understand the exact scope of a lock. This is why
the scope |
|
easily understand the exact scope of a lock. This is why
the scope |
|
|
is determined when granting a lock and is not modified
thereafter. |
|
is determined when granting a lock and is not modified
thereafter. |
|
|
|
|
|
|
|
4. IANA Considerations |
|
4. IANA Considerations |
|
|
|
|
|
|
|
This document registers two URIs for the NETCONF XML
namespace in the |
|
This document registers two URIs for the NETCONF XML
namespace in the |
|
|
IETF XML registry [RFC3688]. Note that the capability URN
is |
|
IETF XML registry [RFC3688]. Note that the capability
URN is |
|
|
|
|
|
|
|
skipping to change at page 27,
line 7 |
|
skipping to change at page 28,
line 7 |
|
|
<nc:rpc
xmlns="urn:ietf:params:xml:ns:netconf:partial-lock:1.0" |
|
<nc:rpc
xmlns="urn:ietf:params:xml:ns:netconf:partial-lock:1.0" |
|
|
xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" |
|
xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" |
|
|
message-id="105"> |
|
message-id="105"> |
|
|
<partial-unlock> |
|
<partial-unlock> |
|
|
<lock-id>1</lock-id> |
|
<lock-id>1</lock-id> |
|
|
</partial-unlock> |
|
</partial-unlock> |
|
|
</nc:rpc> |
|
</nc:rpc> |
|
|
|
|
|
|
|
8. Appendix D - Change Log |
|
8. Appendix D - Change Log |
|
|
|
|
|
|
|
|
8.1. 07-08 |
|
8.1. 08-09 |
|
|
|
|
|
|
|
Clarifications |
|
Clarifications |
|
|
|
|
|
|
|
|
8.2. 06-07 |
|
8.2. 07-08 |
|
|
|
|
|
|
|
|
|
Clarifications |
|
|
|
|
|
|
|
|
|
8.3. 06-07 |
|
|
|
|
|
|
|
Changed XSD and YANG to allow additional proprietary
datastores to be |
|
Changed XSD and YANG to allow additional proprietary
datastores to be |
|
|
locked. |
|
locked. |
|
|
|
|
|
|
|
|
8.3. 05-06 |
|
8.4. 05-06 |
|
|
|
|
|
|
|
Added usage example |
|
Added usage example |
|
|
|
|
|
|
|
Clarified error messages |
|
Clarified error messages |
|
|
|
|
|
|
|
Clarified interaction with edit-config
continue-on-error |
|
Clarified interaction with edit-config
continue-on-error |
|
|
|
|
|
|
|
Improved YANG: indentation, canonical order, contact
info |
|
Improved YANG: indentation, canonical order, contact
info |
|
|
|
|
|
|
|
Added usage example in appendix C |
|
Added usage example in appendix C |
|
|
|
|
|
|
|
Synchronized YANG and XSD |
|
Synchronized YANG and XSD |
|
|
|
|
|
|
|
|
8.4. 04-05 |
|
8.5. 04-05 |
|
|
|
|
|
|
|
Language and editorial updates |
|
Language and editorial updates |
|
|
|
|
|
|
|
all app-tags are with dashes without spaces |
|
all app-tags are with dashes without spaces |
|
|
|
|
|
|
|
Added usage scenarios |
|
Added usage scenarios |
|
|
|
|
|
|
|
Changed encoding |
|
Changed encoding |
|
|
|
|
|
|
|
Clarified definitions, separated scope of lock and
protected area |
|
Clarified definitions, separated scope of lock and
protected area |
|
|
|
|
|
|
|
|
8.5. 03-04 |
|
8.6. 03-04 |
|
|
|
|
|
|
|
Minor clarifications |
|
Minor clarifications |
|
|
|
|
|
|
|
Added list of locked-nodes to the output of
partial-lock. |
|
Added list of locked-nodes to the output of
partial-lock. |
|
|
|
|
|
|
|
Added <target> wrapper around datastore names. |
|
Added <target> wrapper around datastore names. |
|
|
|
|
|
|
|
Allowed atomic/one operation locking of datastore parts
in multiple |
|
Allowed atomic/one operation locking of datastore parts
in multiple |
|
|
datastores. |
|
datastores. |
|
|
|
|
|
|
|
Improved English (hopefully) |
|
Improved English (hopefully) |
|
|
|
|
|
|
|
Removed the <data> element from rpc-reply following
the text of |
|
Removed the <data> element from rpc-reply
following the text of |
|
|
rfc4741. |
|
rfc4741. |
|
|
|
|
|
|
|
|
8.6. 02-03 |
|
8.7. 02-03 |
|
|
|
|
|
|
|
Minor clarifications |
|
Minor clarifications |
|
|
|
|
|
|
|
Same descriptions in XSD and YANG. |
|
Same descriptions in XSD and YANG. |
|
|
|
|
|
|
|
|
8.7. 01-02 |
|
8.8. 01-02 |
|
|
|
|
|
|
|
Made XSD normative |
|
Made XSD normative |
|
|
|
|
|
|
|
Clarified that no specific access control is assumed. |
|
Clarified that no specific access control is assumed. |
|
|
|
|
|
|
|
Clarified that non-existing nodes are NOT covered by the
lock, even |
|
Clarified that non-existing nodes are NOT covered by the
lock, even |
|
|
if they where existing and covered by the lock when it
was originally |
|
if they where existing and covered by the lock when it
was originally |
|
|
granted. |
|
granted. |
|
|
|
|
|
|
|
Some rewording |
|
Some rewording |
|
|
|
|
|
|
|
Added app-tags for two of the error cases. |
|
Added app-tags for two of the error cases. |
|
|
|
|
|
|
|
Made YANG an informative reference |
|
Made YANG an informative reference |
|
|
|
|
|
|
|
Enhanced security considerations. |
|
Enhanced security considerations. |
|
|
|
|
|
|
|
|
8.8. 00-01 |
|
8.9. 00-01 |
|
|
|
|
|
|
|
Added YANG module. |
|
Added YANG module. |
|
|
|
|
|
|
|
|
8.9. -00 |
|
8.10. -00 |
|
|
|
|
|
|
|
Created from draft-lengyel-ngo-partial-lock-01.txt |
|
Created from draft-lengyel-ngo-partial-lock-01.txt |
|
|
|
|
|
|
|
9. Acknowledgements |
|
9. Acknowledgements |
|
|
|
|
|
|
|
Thanks to Andy Bierman, Sharon Chisholm, Phil Shafer ,
David |
|
Thanks to Andy Bierman, Sharon Chisholm, Phil Shafer ,
David |
|
|
Harrington, Mehmet Ersue, Wes Hardaker, Juergen
Schoenwaelder, Washam |
|
Harrington, Mehmet Ersue, Wes Hardaker, Juergen
Schoenwaelder, Washam |
|
|
Fan and many other members of the NETCONF WG for
providing important |
|
Fan and many other members of the NETCONF WG for
providing important |
|
|
input to this document. |
|
input to this document. |
|
|
|
|
|
|
|
|
|
|
|
| End of changes. 25 change
blocks. |
|
65 lines changed or deleted |
|
82 lines changed or added |
|
This html diff was produced
by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/
|