[Netconf] candidate config details

Andy Bierman <andy@netconfcentral.com> Thu, 16 October 2008 17:48 UTC

Return-Path: <netconf-bounces@ietf.org>
X-Original-To: netconf-archive@ietf.org
Delivered-To: ietfarch-netconf-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CD7493A6A04; Thu, 16 Oct 2008 10:48:18 -0700 (PDT)
X-Original-To: netconf@core3.amsl.com
Delivered-To: netconf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0CD483A63D3 for <netconf@core3.amsl.com>; Thu, 16 Oct 2008 10:48:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.265
X-Spam-Level:
X-Spam-Status: No, score=-2.265 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XiiVNKlDwC1m for <netconf@core3.amsl.com>; Thu, 16 Oct 2008 10:48:16 -0700 (PDT)
Received: from smtp125.sbc.mail.sp1.yahoo.com (smtp125.sbc.mail.sp1.yahoo.com [69.147.65.184]) by core3.amsl.com (Postfix) with SMTP id 3D2ED3A6A04 for <netconf@ietf.org>; Thu, 16 Oct 2008 10:48:16 -0700 (PDT)
Received: (qmail 46327 invoked from network); 16 Oct 2008 17:49:18 -0000
Received: from unknown (HELO ?127.0.0.1?) (andy@67.125.157.90 with plain) by smtp125.sbc.mail.sp1.yahoo.com with SMTP; 16 Oct 2008 17:49:16 -0000
X-YMail-OSG: DVf.brAVM1k148dghoZHCiBtyTq55mnCtgRsgTHIEdz6uZmp6zXXUWHWLU0BsZHMZbg_XBHpfiRuvmF3E9Ns62iMujjHv63ozYcsF4pSRWp.nMZ8TbFL7cVdhevPJeCJKWE-
X-Yahoo-Newman-Property: ymail-3
Message-ID: <48F77E9B.90705@netconfcentral.com>
Date: Thu, 16 Oct 2008 10:49:15 -0700
From: Andy Bierman <andy@netconfcentral.com>
User-Agent: Thunderbird 2.0.0.17 (Windows/20080914)
MIME-Version: 1.0
To: NETCONF <netconf@ietf.org>
Subject: [Netconf] candidate config details
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/netconf>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: netconf-bounces@ietf.org
Errors-To: netconf-bounces@ietf.org

Hi,

I'm looking closely at the NETCONF specs wrt/ the candidate config.

It is not obvious from the text that anybody can invoke
discard-changes and/or commit if locks are not used.
The original session which neglected to use the lock
will continue to write to the <candidate> until
another session locks it, and probably try to commit it as well.

So use locking! And lock the candidate and running,
plus startup if :startup capability advertised.
The candidate lock controls edit-config and discard-changes.
The running lock controls 'commit'.
The startup lock controls 'copy-config <running> to <startup>'.

*** Questions about partial locking draft: ***

If partial locking is used, and some dirty nodes are locked,
but other dirty nodes are not, does a discard-changes by
a 3rd party session work (a) at all, (b)only on the unlocked nodes,
or (c) up to the agent to decide (a) or (b)?

Same question for commit?

*** Comments on partial locking draft: ***

It may seem that the manager can ignore the <running>
config and just lock the subtree in the <candidate>
(since writes to the <running> are not allowed).
But if some other session takes out a a global or a partial
<running> lock covering your subtree, you control only
the <candidate> version, and can not commit your changes.

Sec. 2.4.1, para 4 of partial-lock-03 says:

    A <partial-lock> operation MUST be handled atomically by the NETCONF
    server.  The server either locks all requested parts of the data
    store or none; I.e. if during the operation one of the requested
    parts cannot be locked the server MUST unlock all parts that have
    been already locked during that operation.

Clearly, getting all the locks you need at once is important,
and simplifies implementation for the manager.  However, this
is not supported in NETCONF <lock> or <partial-lock>.

IMO, the 'target' parameter should be a leaf-list, not a leaf.
If not a leaf-list, then a 'bits' parameter, since the URL form
is not allowed anyway.

The most common use case is going to be a partial-lock
of the same subtrees in both the <candidate> and <running>
configs.


Andy


_______________________________________________
Netconf mailing list
Netconf@ietf.org
https://www.ietf.org/mailman/listinfo/netconf