Re: [netconf] Adoptation of NETCONF in the field of industrial automation

Kent Watsen <kent+ietf@watsen.net> Wed, 19 October 2022 14:19 UTC

Return-Path: <01000183f09d1f27-140fbae7-5122-4ba6-9d68-c9fee803e05b-000000@amazonses.watsen.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B4DD7C14CE29 for <netconf@ietfa.amsl.com>; Wed, 19 Oct 2022 07:19:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazonses.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b4ayBasBdDor for <netconf@ietfa.amsl.com>; Wed, 19 Oct 2022 07:19:34 -0700 (PDT)
Received: from a8-83.smtp-out.amazonses.com (a8-83.smtp-out.amazonses.com [54.240.8.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2C31CC14CE3B for <netconf@ietf.org>; Wed, 19 Oct 2022 07:19:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1666189172; h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:In-Reply-To:Cc:To:References:Feedback-ID; bh=hG4ftrv3WqfqmfjSCoIcilfn5nYWb9V4Ysx/CBa/5NE=; b=OlDcLVJcmOcKp/bhjo+WPqri8IjBI1YKd+yKQ9gUyDUdSXySSkZUKO/7RHfIhDhb pdw6szuiPdFVZjMf5IFjDOnS/hiqwNA2yraH86wC7HNbpP3Qg+Y0un6CN4SbguKuc+S 0f8nzDZ0iGMTIMRiSpD6GRUTAVBbJ1lwli5v0Ark=
From: Kent Watsen <kent+ietf@watsen.net>
Message-ID: <01000183f09d1f27-140fbae7-5122-4ba6-9d68-c9fee803e05b-000000@email.amazonses.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_7021DC17-4366-44F8-8538-CF76FF6FA02C"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
Date: Wed, 19 Oct 2022 14:19:32 +0000
In-Reply-To: <AS8PR10MB44698B047C1D3175CF01F278992B9@AS8PR10MB4469.EURPRD10.PROD.OUTLOOK.COM>
Cc: "netconf@ietf.org" <netconf@ietf.org>
To: "Stamenic, Nemanja" <nemanja.stamenic@siemens.com>
References: <AS8PR10MB44698B047C1D3175CF01F278992B9@AS8PR10MB4469.EURPRD10.PROD.OUTLOOK.COM>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
X-SES-Outgoing: 2022.10.19-54.240.8.83
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/zuf7taGt5d6D_g12caMMyu7msuU>
Subject: Re: [netconf] Adoptation of NETCONF in the field of industrial automation
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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>
X-List-Received-Date: Wed, 19 Oct 2022 14:19:35 -0000

Hi Nemanja,

> On Oct 19, 2022, at 8:02 AM, Stamenic, Nemanja <nemanja.stamenic@siemens.com> wrote:
> 
> WG,
>  
> In the scope of the work on “IEC/IEEE 60802 TSN Profile for Industrial Automation” we bumped into some open questions regarding NETCONF/YANG. We would like to ask the NETwork CONFiguration Working Group for support in our effort to adoptNETCONF/YANG in the field of industrial automation. 
>  
> Our use case includes the situation in which multiple clients request to write to the <candidate> Datastore concurrently. A global lock on the <candidate> Datastore, which refuses the requests from other clients and expects the clients to retry after unknown period of time is not acceptable. We are looking for a solution for this problem which ensures consistency (no race conditions) .

Have you checked partial locks (RFC 5717) or optimistic locking (draft-lindblad-netconf-transaction-id)?   Also, be advised that the WG may define support for private candidate datastores.


> How  would you solve this problem?
I don't understand the use-case well enough.  For instance, is the client-data overlapping?  How long are the clients holding the lock for?


> What is the best practice to keep the data consistent (working with “config-true” nodes) in such use cases?
The global lock is used in practice (partial-lock never took off, AFAIK).  RESTCONF uses an optimistic lock, which some prefer.


> Does the Pipelining (RFC 6241, Section 4.5.) apply to multiple NETCONF sessions or only to calls coming from a single session?
Pipelining is for each session.
 
> Let’s assume that the problem can be solved by defining custom RPCs (RFC 7950, Section 7.14) or actions (RFC 7950, Section 7.15):
> Does the Pipelining (RFC 6241, Section 4.5.) apply to them?
> For write operations only?
> For read and write operations?
> Do the same rules apply for  single NETCONF session and for multiple sessions?

Pipelining applies to all RPCs in each NETCONF session.

> Does the <lock> operation (RFC 6241, Section 7.5.) prevent custom RPCs (RFC 7950, Section 7.14) from writing to the Datastore
> In case of “config true” nodes?
> In case of “config false” nodes?

Yes, for "config true" nodes.  It is not possible for a client to write "config false" nodes.

> Is there a mechanism within NETCONF that makes sure that “config-false” data stays consistent in the case of concurrent write operations?
> In case of custom RPCs or actions?
> In case of system local write accesses?
> In case of custom RPCs or actions and system local write accesses?

Implementation detail, per the server's backend database(s).

 
> Thank you and best regards,
> Nemanja Stamenic
> Siemens AG

Kent // contributor