Subject: [Netconf] [Editorial Errata Reported] RFC6241 (5596)

From: RFC Errata System <[email-masked]>
Date: Wed, 9 Jan 2019 01:05:32 -0800 (PST)

The following errata report has been submitted for RFC6241,
"Network Configuration Protocol (NETCONF)".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata/eid5596

--------------------------------------
Type: Editorial
Reported by: Jonathan Hansford <[email-masked]>

Section: 7.5

Original Text
-------------
      The duration of the lock is defined as beginning when the lock is
      acquired and lasting until either the lock is released or the
      NETCONF session closes.  The session closure can be explicitly
      performed by the client, or implicitly performed by the server
      based on criteria such as failure of the underlying transport,
      simple inactivity timeout, or detection of abusive behavior on the
      part of the client.  These criteria are dependent on the
      implementation and the underlying transport.

Corrected Text
--------------
      The duration of the lock is defined as beginning when the lock is
      acquired and lasting until either the lock is released or the
      NETCONF session closes.  The session closure can be explicitly
      performed by the client, or implicitly performed by the server
      based on criteria such as failure of the underlying transport,
      simple inactivity timeout, or detection of abusive behavior on the
      part of the client.  These criteria are dependent on the
      implementation and the underlying transport. Note that a lock
      associated with a persistent confirmed commit will be released if
      the NETCONF session closes and, if required, a new lock will have
      to be acquired.

Notes
-----
A persistent confirmed commit can survive a session termination, however any lock on that same session cannot. If a new session is established between the client and server, the client will need to acquire new locks if it wishes to protect the ongoing persistent confirmed commit.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6241 (draft-ietf-netconf-4741bis-10)
--------------------------------------
Title               : Network Configuration Protocol (NETCONF)
Publication Date    : June 2011
Author(s)           : R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed., A. Bierman, Ed.
Category            : PROPOSED STANDARD
Source              : Network Configuration
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG

---

From: Martin Bjorklund <[email-masked]>
Date: Wed, 09 Jan 2019 13:13:45 +0100 (CET)

Hi,

> "Network Configuration Protocol (NETCONF)".

The errata adds the last sentence.  I don't think that this sentence
is necessary; there is no text that indicates that a lock will somehow
be kept if the session terminates - in fact it is clear from section
7.5 what happens:

      A lock will be released by the system if the session holding the
      lock is terminated for any reason.

Also, note that the proposed text is not quite correct; a lock is not
associated with a persistent confirmed commit, but with a session.

(There might be other issues with the text around lock and persist, as
indicated in your email to the list though, but I think that this
specific errata is not needed.)

/martin

---

From: Jonathan <[email-masked]>
Date: Wed, 9 Jan 2019 13:30:31 +0000

At least the erratum got a response, which is more than the original email did!

Unlike locks, a persistent confirmed commit isn't aborted if the NETCONF session terminates and Appendix E, though non-normative, uses locks and optionally the candidate configuration datastore. If a persistent confirmed commit is designed not to abort on session termination, what is the correct client behaviour for handling locks should, for example, either the client or server reboot?

Another client could <discard-changes> and acquire a lock on the candidate configuration datastore while being locked out of the running configuration datastore until the confirmed commit times out because, according to section 7.5, "a lock MUST NOT be granted if … the target configuration is <running>, and another NETCONF session has an ongoing confirmed commit".

Jonathan xx

=O)