Re: [netmod] system configuration sync mechanism

"Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com> Mon, 09 August 2021 21:51 UTC

Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0B2A3A1A33 for <netmod@ietfa.amsl.com>; Mon, 9 Aug 2021 14:51:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.352
X-Spam-Level:
X-Spam-Status: No, score=-2.352 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.452, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ynPRKiXvfHWE for <netmod@ietfa.amsl.com>; Mon, 9 Aug 2021 14:51:45 -0700 (PDT)
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2114.outbound.protection.outlook.com [40.107.237.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6C09D3A1A2E for <netmod@ietf.org>; Mon, 9 Aug 2021 14:51:45 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h4sa++qQOKPBo7vDRwAGksikEPUjzz0oX9ki7OKd0N+dlFYElDZ4NVWZKao83cJPf3AnQTGzbEP2LlKR7FbFNgkqggAkgXF8QK3qtwBxtM/PjY6EOUa5WwMrFPxRMLrBhOZTflCPGjo7danwlXqbBizj7h4Q8gBYOAZ9l1jCG+DSDYfHDYcNjehajMXiqZNcV9B3STAjE/sGBhdJosaZqkOYo2X0ttCHy2iGrKl+AE+3Im8hc008TdRgtmLla/Hz53udSeEyD37ZgLaQzgtZPw3vZUaEJIUWS0J/C3JIz7k1Pt3psq5pxhFd3Fdpw3W1R4en6+cGjzgMZtHiYFnsSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JlK3qMWOkEA8ikuRLKgAtZOXzYAuehTG2tMmDZkjNIY=; b=bqm4GjaAn/O3v+V8jfZvFdkLPcuCCskOqoexi6ts7yODXk37FGvLmwA6OMqJdW3YR3Hmkv+emhBVOZKEogsFlsbnoM4cEjMzczh6rQWYk6z/jnXmsS6wEHmBH4YJ1dgc3Eb1q0k2X4eUeqKSle+C9A71Mrpthbz9RVzjhiVE0iDLZ1lz22qIhYwXqTlF8K1Q95uSfq2JtCu4SRs0+4K0WQiJNm/LELyXhL6iLfNSmPMdFZamLXsHEh1xHU2tP1fUy9H5yMlMX/Khmh5la0VntOj2Rbiz+bdlphP/IvvzE5ogS6UC6wJYLykBnT5cHxTimQAlstYtrz4pZqGa3s66/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JlK3qMWOkEA8ikuRLKgAtZOXzYAuehTG2tMmDZkjNIY=; b=TJheLLTjUW1fjlGvF3qY6K4WOlaC6zsyCYffOk/rPcuAaCVHe9a9zvT7DY+etw5i8fGkN/7m64P0u6XeICfdU5Pc6FXXY1pt/z73m+n0mYaOcCSPPElvIpiJYlJcx8BGu6L4FIVd4QzIlfsvA12c+cFNIe7D5uphTHvfnkxJxoo=
Received: from BN7PR08MB5073.namprd08.prod.outlook.com (2603:10b6:408:28::30) by BN3PR0801MB2339.namprd08.prod.outlook.com (2a01:111:e400:7bb2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.17; Mon, 9 Aug 2021 21:51:42 +0000
Received: from BN7PR08MB5073.namprd08.prod.outlook.com ([fe80::68f7:304e:8786:ead2]) by BN7PR08MB5073.namprd08.prod.outlook.com ([fe80::68f7:304e:8786:ead2%4]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 21:51:42 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: Andy Bierman <andy@yumaworks.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Kent Watsen <kent@watsen.net>, NetMod WG <netmod@ietf.org>
Thread-Topic: [netmod] system configuration sync mechanism
Thread-Index: AQHXiTj1ANBqfgbXY0OJQ2APDweat6truCeg
Date: Mon, 09 Aug 2021 21:51:42 +0000
Message-ID: <BN7PR08MB50739BBC55241126003EBC399BF69@BN7PR08MB5073.namprd08.prod.outlook.com>
References: <CABCOCHR+E7uh5EOxXaMaFEBb-Oi0U_4G41Z=Jwk3mUAcodnAPg@mail.gmail.com> <0100017b1128b30f-fe4c9258-3392-476a-ae21-604d2a80f523-000000@email.amazonses.com> <20210804133956.p73si5f63t4esmcj@anna.jacobs.jacobs-university.de> <CABCOCHSmHOQnSXwfHVr8p=2Xx8ERThtAtVk8iWgYObqNuqfo4Q@mail.gmail.com>
In-Reply-To: <CABCOCHSmHOQnSXwfHVr8p=2Xx8ERThtAtVk8iWgYObqNuqfo4Q@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: yumaworks.com; dkim=none (message not signed) header.d=none;yumaworks.com; dmarc=none action=none header.from=nokia.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e9fa9002-ca9e-4e55-398a-08d95b7fe008
x-ms-traffictypediagnostic: BN3PR0801MB2339:
x-microsoft-antispam-prvs: <BN3PR0801MB2339B7387A28EAE0ECF8A6579BF69@BN3PR0801MB2339.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 6uTf/yPmVm1HPKmDF7aD0uTvWgdwGvQEg1dMS2g5rJ8lXrwLfGqEF5PZ3Z/u+AQ8hya4cSZNpYMbkB8Y+UyzU6W/Gt15wSQmjpZeIkwCTjFedVCvMYlTLAlszvlsZRh8xyf3pKt1dBUnxe8H1e+GfjCgTDQNWTXCikMtFKvP065KLcwypVy6KeDh/0ulo5OKUxou37Y1bl0bhm0FsnCek8GkyCRN8m7leP72S4vMJ4yDfmvDvVuCXiGcoNMCr+Y0MgGYn5PPIJOrgSq8Z9lFNx6K/S1jfdcLD4i4h96tt4DlrCtnUIrJdykPqscQ0eUkbI9wAfQaMaahW/vEmxZC3/QXKgg3FWcgqzLa4hnfZvdKlKDlBGe2OTo6+vO6GuKx/viyChQrUIH2zH/nYsCoLQnwFanBUwSqfbcv/W5LKvx7bEL8sl27WZr6XLElqi4SRLdo1kJyAr969YYnQZgTNg5IMge6pTyqeYdfX/Q0g+DoJFi7V9SB+2tDixhyJeDAsLfRUv9Uou+XIH4sT98TprlW+oSTR9ABE6iExkAnTSMKpRKzvXdNuX7w990ZZKzUAyotCkjXsQxU0eHfUEVVNFKkvRvBL1olw+7q1k6fGUiP1EGg/Sc9FlYAIVdgzSQH/S9Xx4tBlBj+vcBqCAENRmywwxEhe+x9BB6VWJMXPUIRSkBZy2k5PKIl6BEQsEi1IeKhJqg7IIPRxjAjG4JV/nRgVkqKym1oX0Or7NoHtDQvgXQWPOzxBgwxjlv367fG8gR613f31H/HaOpQuo5MH1MaDUw5zpPKCGW0u0u7iuU4adn4v91Typv/crQzlWohCjZnhQ6UKitji5LtxvaENg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR08MB5073.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(8936002)(186003)(316002)(110136005)(76116006)(66946007)(55016002)(8676002)(5660300002)(9686003)(66476007)(66556008)(64756008)(53546011)(6506007)(2906002)(66446008)(26005)(52536014)(83380400001)(33656002)(966005)(66574015)(86362001)(38070700005)(508600001)(38100700002)(7696005)(166002)(71200400001)(122000001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: WqZbm7hvrPQtyr1aplmCFTrYUGbQ0LymCJYvTHoDPcGQ2UQ4mJPev1y/NNM88sFiAzNaQyXUmAvShfPyqJQXscdNyvpye0Fuc/s00iCeZBmaDxCtGpviyRuwN7l9/x/5KhAvvXqQeEBtn5gfJrHb6wkB/MXl0aVf/NGJVlcwmqvjJSbjX2hkCjSngqod2nsaRDVOiZTt+fgd/rO+MqSlVbcuZJnay0pDfaXxDggRyo/xw6fQqDU3DOlBABn+J0OgAMnXWWa9TnFPCn9vdighp4TnPAWURz77Q8/HTT9skTidnYY3QumRA30spcUfcB/XjeiugWehYhcZSTlS4oB+cYaN+EyyqBcNfqlXs7SQ9HrVBxjIIny6//yu9r8dodqPeafzpo0vRA2ePBsQaM8evT3n8TI/4bh6H0i4YfzWUJkF4ECTUgDbgnr/Q+3yqYigMK8O9vO1GjK4R848jkZHWzHXQVPcBjxadHvOb7DDl8mhEApz4pdTxJr4vHmpnSlq8I2H7cprBCedgWTENwny1CVSmGY3hj7oLzMnjTCTawLsA2uaWDnYho6jo2Seo9ix71IW2zZ+oY5W7c43OiROrSvnv6YhdZ0rA085aycAQ3B21WbwSZWH6hiF7owEZoIWVn5yH720PuV86KUumg6AyHC8csV4p8V1knKBdxYb/dGbpCUTt0gHVesoXjroj9XAdW1k+PDAB37QdpNazbRRTIz33UUtfU2IIq5y47m2i6ZtJ3NCQmVKaippziQtV4q3zfCCJVXrh6noFmsMKIsrwAOBJ+OAolnF8SCZ25Icey+oSJeeg+N8iEfGWVXEhqImlmQcbSzSfkOyiI4c0qqS6hDJWumZsoUtHuYkuesxss6UjKaD8HEEwerPi8+vRBk+2TTQL26JSsuPKD+zWGSvqloBNdqmaJ6zGR5lwRmNQj6z8jm3VEmbBBvjRNTIwbUgi8vAM9oXyMyJuQfu52aAxlcHETfESupawDObM1XtllC+cZ12bWAu+DJ1N6qu4jvHSM1HltQaxykuNZCaH3xqMJ+Zx4hjYQdK/FsbHK693nWdOTmE4YkuM14vk54kogUVfiID+1AvfsOVIdFVxJA4ly5sQO/oocTjLcsJd4XEdNz+wt2murxH5MUDWJEZ4SD9DMNUic60kRlXethfcoNQ1/FrKVJaDsBvt/BgOykyyrhIMWxMBQZvyal8rNH54k8esZood+X7Ob6GZgXkLmEIVBVpteMkpStDtOX6DSmt4UL2YtyIaAw0LHfu+1Q9aGHqAoj8cuJEdwu08irwmaVkFyzuMXcDEmRfwjo8L0ddH1/cxnxjiFX68Bk6Ps6llv6l
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_BN7PR08MB50739BBC55241126003EBC399BF69BN7PR08MB5073namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN7PR08MB5073.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e9fa9002-ca9e-4e55-398a-08d95b7fe008
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Aug 2021 21:51:42.5036 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GYL63kQwQCeqhZ0BbBZdcsBnpvgkN6QeucwWvenjbIiKXGCay4wRI0C6tJbXGsKMtRJESS88DXgFiISv9HJ02g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0801MB2339
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/RvfG2yle_kfogvhahy7lA_9wTfg>
Subject: Re: [netmod] system configuration sync mechanism
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Aug 2021 21:51:52 -0000

Hi guys,

I'm late to the game on this thread but I did read through the entire thing (whew - can't promise I absorbed every nuance though). I am familiar with this issue. I've been dealing with it from the server implementation side (some clients *do* complain if there are references to missing "system config" list entries).

One of the pretty fundamental issues IMO is whether we want good ol' standard <running> to always be valid (including for an offline client or tool to be able to validate instance data retrieved from a server against the YANG models). Even without this "system config" topic, we already have a looming problem with config templates & expansion.  Servers with YANG models that document a lot of constraints (e.g. leafrefs, mandatory statements, etc) are more likely to hit this issue of an invalid running config (offline).

I'm doubtful that it is easy for a client to know how templates are expanded for all given servers. Unless that expansion is fully standardized (which would be challenging given multiple different shipping implementations in the industry), there can be some subtle corner cases and it can be complex (multiple levels of template application, exclusion rules, etc).

I agree there can be dynamically added system config (e.g. create a new qos policy, and some queue list entries are automatically created inside that policy).

Note that config added by the system could be deletable or non-deletable. For deletable items there were some previous discussions a few years ago that those list entries could be simply a default config that is populated if the startup datastore is empty at boot time.

The system config list entries could also have leafs that are modifiable and leafs that are immutable. For the modifiable objects I think this is basically the system merging the explicit config with the system config (with the explicit taking precedence).

Perhaps a lot of this system config is a legacy hold over from human-driven CLIs. For machine interfaces maybe it's reasonable to have clients explicitly define their config *if* they need offline validation of <running> to succeed (i.e. allow clients to explicitly configure any of the system config policies they are actually using & referencing).  In many cases, users want the "master" view of the config to live up in the client/OSS side and just push it down to the server (without having the server touch the contents of the running, i.e. a read-back should return identically what was sent).

It might be good to set up a virtual interim or call of some sort to discuss this one. It is pretty complex.

Jason


From: netmod <netmod-bounces@ietf.org> On Behalf Of Andy Bierman
Sent: Wednesday, August 4, 2021 9:59 AM
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>; Kent Watsen <kent@watsen.net>; Andy Bierman <andy@yumaworks.com>; NetMod WG <netmod@ietf.org>
Subject: Re: [netmod] system configuration sync mechanism



On Wed, Aug 4, 2021 at 6:39 AM Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de<mailto:j.schoenwaelder@jacobs-university.de>> wrote:
The figure in RFC 8342 section 5 documents what was agreed upon
before. System configuration flows into <operational> but not upwards
into <running>. Over the years, we discussed several corner cases
(including things like configuring a new user and the system
automatically assigns an unused uid, which afterwards needs to be kept
stable). While there are for sure tricky corner cases, I am not
convinced that the model defined in RFC 8342 for the general cases is
wrong and that merging a new system datastore into <running> is the
right approach. If people want to change the model documented in RFC
8342, then they should make an explicit statement about this and
provide strong reasons that the model is flawed or incomplete.

Note that the model does allow having a system client merging config
into <running> (ideally controlled by an ACM so that such a client can
be turned off if it leads to surprises).


This is a solved problem in proprietary ways.  It is simple to treat system config
as an access control issue.

I am quite concerned that NMDA is getting extended in ways that lead to
confusion and poor interoperability.  Adding a new datastore is very serious.
IMO ANY new datastore (even factory default) should be standardized in
a new version of NMDA (replacing RFC 8342).

A datastore has a lot of baggage
   - YANG library
   - YANG XPath evaluation
   - subtree and XPath filtered retrieval
   - usage in RPC operations (ds:datastore data type parameter)

Every time a datastore is added, all the existing RPC operations that use
datastores need to be clarified wrt/ support for the new datastore.
(Of course this is never done, leading to lots of interoperability issues)

I am quite confused by the XPath discussions because XPath can only
access existing nodes (i.e. the "accessible tree")
https://datatracker.ietf.org/doc/html/rfc7950#section-6.4.1

So what does it mean for the system datastore to contain possible values that
cannot be represented in <operational>? The accessible tree cannot include
these values, so XPath-based validation cannot use them.



/js


Andy


On Wed, Aug 04, 2021 at 12:34:45PM +0000, Kent Watsen wrote:
>
> I am confused by the confusion  ;)
>
> You all know that JUNOS implemented this concept before YANG was even a thing, right?
>
> Admittedly, it’s not a “datastore“, but flexing the NMDA is where we can do better.
>
> A “with-system” mechanism could also work.  The only downside is the inability for a client to get only the system configuration, without the rest of <running>.
>
> Please stop stating/suggesting “config true” nodes are referencing “config false” nodes,  or that config is referencing operational state.  There is no intention to break either of these tenants here.
>
> I think that some folks just joined the conversation and may have missed out when we covered all this before.
>
> The draft needs to be updated to more clearly identify the goals.
>
> K.
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org<mailto:netmod@ietf.org>
> https://www.ietf.org/mailman/listinfo/netmod

--
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>