Re: [netmod] system configuration sync mechanism

"Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com> Fri, 27 August 2021 21:55 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 B7DDD3A1B8A for <netmod@ietfa.amsl.com>; Fri, 27 Aug 2021 14:55:32 -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 K175ul7jZzVZ for <netmod@ietfa.amsl.com>; Fri, 27 Aug 2021 14:55:25 -0700 (PDT)
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2100.outbound.protection.outlook.com [40.107.223.100]) (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 9ED313A1B85 for <netmod@ietf.org>; Fri, 27 Aug 2021 14:55:25 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UyCnnvkqhrhVwOh64MfGl1XWUr+Vu9kbCA9yWnkYgCF9IRiu28ClSRdhdLBd3iVwD00ZpGvSZbOHf+NwusMrHWixUyG2dm7+OmzdirP/jqeuiiaosaBUNrMAEXs1P0rcWw6VWuJFSDI4NOvsivS45UKiAvvAVUaXaOttmzvnVp9nBLw7Jrkrx+oqIjpJjaVSAmez+dzS/Sv0OcVssb09ThHGG83k112ctwz6ai1tISLgnEHyUOw6wLeSO5ccwYRhkXP/B8mKxW/u3GQAnFHmqj10aA5DJw/UI8UXCl0/7NEA2tPTHtPEJxKbiMmHKd5JCaiyo7Sk139I9pYWTdXBYA==
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=tYiE7RtIwIQn0/TBP3EI6Bj82Buwh4kT7TuiQi/As8k=; b=SX6BtWvrBaeDkAn8GkE9i4gM1FBYbGewAkDdBRBKOhDw4quPGWX6ib/nqGeJmdl8xybRWb1FXNAoHvURcDH4RR25Nsbt2Z+pV+TNv7Ay1R6IzKaaO5g3C5Te6rScHyqeES87NveAEDR49IYCPz7dbhXvbCcojqjtqfIhttPNsHRDqTMqz5AcoqHm8dhBosqQ2Li1yDEc7PBtFh3of913PhqMlKNScY4f79i6dQdIYp/n1NNni8EOSVVJb8SrdUTHn3RzeHzUetzBtWEbJWqq2OpqdK7ODjsLSVQj/s1uVbHaYKvCzAY5Q8draM5soS3Zo3FJzucejZT34VxcBYLcig==
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=tYiE7RtIwIQn0/TBP3EI6Bj82Buwh4kT7TuiQi/As8k=; b=l/SqNdS0DAcmf8EGBN6sngeShY3Igvb3RtRwr67U8nwPm5NQqbvFhKBhO0s8fHX2zJ1HYe0zhALAA+k0Yp6uL2GIL06k8sc0RQKjLWICQ9oky2s0Gin6mkjqCsNkjYCG8w1fLN1O9Zrf3lp3uk1CgOndsdWfVKh86zEa6JiEyoY=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM5PR08MB2410.namprd08.prod.outlook.com (2603:10b6:3:77::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.23; Fri, 27 Aug 2021 21:55:22 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::34fb:92d2:cb94:e3be]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::34fb:92d2:cb94:e3be%7]) with mapi id 15.20.4436.027; Fri, 27 Aug 2021 21:55:22 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "Jan Lindblad (jlindbla)" <jlindbla@cisco.com>, Andy Bierman <andy@yumaworks.com>
CC: Kent Watsen <kent+ietf@watsen.net>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] system configuration sync mechanism
Thread-Index: AdeS/smIORNkTLFjSz+tOLhWazMEpwAleMCAAArzqAABEwmggADgCHywAABNWwA=
Date: Fri, 27 Aug 2021 21:55:22 +0000
Message-ID: <DM6PR08MB508408E3BF1725E52436C0559BC89@DM6PR08MB5084.namprd08.prod.outlook.com>
References: <ad7ec21e0d3d477b91bebdfdeec01303@huawei.com> <0100017b5558ab9d-43cdec2f-59c4-4ff0-97e2-3b90cfca869d-000000@email.amazonses.com> <CABCOCHQkJWtJLaGQGOiK73KOFdQJY4PGy5daZSj4ToZPqPubZQ@mail.gmail.com> <AF3746F4-F2C4-43FB-BE47-E040D8C385CB@cisco.com> <DM6PR08MB50848890EEF0A59DA2015AC69BC89@DM6PR08MB5084.namprd08.prod.outlook.com>
In-Reply-To: <DM6PR08MB50848890EEF0A59DA2015AC69BC89@DM6PR08MB5084.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: cisco.com; dkim=none (message not signed) header.d=none;cisco.com; dmarc=none action=none header.from=nokia.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1edbc571-4792-48e7-57a3-08d969a55e5b
x-ms-traffictypediagnostic: DM5PR08MB2410:
x-microsoft-antispam-prvs: <DM5PR08MB2410E6AEA449BEA6C8BFDA5D9BC89@DM5PR08MB2410.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: CgdnORAPMZXVbZPlwAir7WEFgb0UuvUYlsICJPs6S6vDTzd+ulCJyP/LF7ATxrTyHTFlWRyGdJW1ARPnPrjCYMCgQIRa4BApaHyrPIlZSyumNu0VI3411SgdxBQwp0XszByHf375ePugTeTSylS/o/+I4J9MQCYa81qGcE6qWCnasKZUJa3j66VTNyKEPEcOsaLAIJUNEIQAet/5eJVC9Kra4AHu3uAEjam5unaCcdkZy5P+wWXTuUgdTlY9fKzQDFW+5eXl+wy/akXtPUsRwQ2HS3ho+SESrplhM1usiHmzlieM7cx0XxWbY/EutXv7jDYZRJYeUybFbo+MW3NsoRmW08E7kio3lCRPt7kqJGYaaQaOG0OeBtIei2yjwJu23qDaDueAG33Wn8rDitg6l33IvLBE3JaS/OiwETnv142HzD/kkIUaxCTEKYWOyi+poV+hT+ve6/C4TAq0Hd+CXPBu6irTvcTwTTMi8pBRItqBiOk/Whjd4vp/Y0vXqn7oWq4N38nAgRLvt2Whk0Y/3BWiKxwC2lu0KAorGeFArcDOYtbCCh1VTb6lv6PLePhvB9U9XeIFZrs4uZQcrZTcJfdYRByEiqFtX9zuNHUsca/lsRaiAEli69ejf4A10KE9lC1Sj4A3fJv8YF1l6Mc/maaI4Q+B2BUzUuZa6+/FuPUxpVoKOic8f6KTH5L4ior3yrFqoGMwOrQ+zfdtLEd1jxsSVTJ+YWDmyDqrrRwzxkquGVdOSFpQValA73yc2LxUY7Ijj2UIGdR3NEsg2ox38AxZm7gn47rNG9COcPo+/02nOOsy91qNAQsaJKpAeb8zgM1T7dWwr+YSDeZPsI2Z1g==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(376002)(366004)(396003)(39860400002)(346002)(9686003)(26005)(66446008)(5660300002)(66556008)(66476007)(71200400001)(52536014)(66946007)(4326008)(186003)(316002)(76116006)(110136005)(64756008)(83380400001)(2906002)(122000001)(55016002)(38070700005)(54906003)(38100700002)(2940100002)(478600001)(33656002)(966005)(86362001)(8676002)(6506007)(8936002)(53546011)(166002)(7696005); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: +xMWxZniEa21C7GUJ6A9x/LgfuOSZiwjl/fNB7EYCvcinoT0L4xqNKTUNndBES2aahdSXWD5e1ccyjbiSkDUG+CzXa0GFJGXxU07iKV2D/GJYflS/88iZT661wym+5udfM84T8oIheB+djjAbC1kRg9SZ++HprOiWz1Mk/6pQsxie9eamCLH4kTqYXqtTY2+/psAp2kwXUY0wylsTXgfmnFF0TSJK0W8iyoNn2Tj7NvqAbfwW6ft5Tqce8kcR3WqbLdcMuIVm2hg+ukMlz1Dd95lHSCVt6JOTJfgs7fZMYZx5WbTnBuWyuqp2iILX/jCDBk7x1nyw4wjcmizPISnXjOUDuguLg4g550Ih/NVMs/ocifcIdhIJbOqys0IyTPaVd6AlKNztlsJm/7+NC+ONF0Oo2ezuk+RF36KtGNfwhzm7XUr75ZWvtloPzeTeRlmObe2BsLIiA3z6yHITfzPi1Vi+CpaVWBO/pGOL0B0vfGKZRmhQO2C8FLKznfdgre3v9LIqa6CQB9WdgmzZN9XPybyb6qEEpnkeXL4UNxZYiaMfU6fxyEN1YJQYZiFoLvVo9Ol8OFec0R58YVYSjNjM+hJYAujcpXBPRrfXJiy3UZ4X12v5Oam3ie6HaNBNq6xiKGAi3v2G9/OfCZ+2tMYpXwK+V/JAidGxIEDgAbLxNBXV/WvIWPCyl/X5yypW3b/XAFedXfyOY4gyu/d/eaoXYpsTukcQvjPF9yCzKfu6AESCCxdPHQOrA7cA1URHbljlMWrlbi/hd60mNnFxk0bY9e9C0Wj1NiTFCaK/uKVZml77G+ZSkw6GdrbpqPoOVttx9GqvqJ4PG+GCyav/JcMHl2KnPrHDY9IGaJ7pCbs/lqzWcBxqJMewYFiMmi2rs+yNOgO2HQb7fXOQxZ7HuQ8/VqNp/BEwqo3FC0gaXhUO4UxtUNx2Ot0UvszDyblDcCW3STI23oiqhh1fmPJQ0NyIiMeyVbzrL+iXCB3FMUfjJtgrtA74ImU37z20EvaqwehWQ0gRU619KXWwT2NB9JGAa5o3vRyqCZiwo+1KPvRDaPA0apQMZ3iy+GEhLiJl+VsQvfwpa6jqZhbavYrdhie2YHQn37/CFjD93coqBUIuN4xkywWYxzZf9VOrxl+dnwGK6TmFW/v72YcGyUCdHLbfHAYEx8yk5eDa6j249MZgg0nr+o5CWEveA7GeZe/1m4hWs/jxvkdjF7O0DpSVQqxiExeilMmxkyRMhqqFnQUGcb00hLMpD7dWv+mVjUqToGM0TAX4gxOI+wj1NLfefQepF89jQ37gSeacGPI2LCze+Ko1zs1/Kc6UnEJO+cS492M
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB508408E3BF1725E52436C0559BC89DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1edbc571-4792-48e7-57a3-08d969a55e5b
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2021 21:55:22.1591 (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: IuN4MGvWAyG4r6XLa4bX9dpyk/ZbmsR5A3vZCUDh6A65YqH7o1VYkIT12wHtwvlI4iGFrMv/LS7F2nlCNiCKZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR08MB2410
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/L_W79wE-ZAvrQUdewaLZBCIzWyU>
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: Fri, 27 Aug 2021 21:55:33 -0000

And then maybe it is useful to have a standard mechanism to see what system config is available in a server. That could perhaps just be a read from operational with system config annotated with a new origin.
(or perhaps a read from intended, or a read from a new DS)

Jason

From: Sterne, Jason (Nokia - CA/Ottawa)
Sent: Friday, August 27, 2021 5:53 PM
To: 'Jan Lindblad (jlindbla)' <jlindbla@cisco.com>; Andy Bierman <andy@yumaworks.com>
Cc: Kent Watsen <kent+ietf@watsen.net>; netmod@ietf.org
Subject: RE: [netmod] system configuration sync mechanism

Hi Jan,

I like your examples of U and L systems.

For the overall purpose of the draft -> I think it comes back to some servers wanting to have some sort of "built in" list entries (invisible in <running> today) that can be referenced in other parts of the (user explicitly created) config.  So the operator doesn't have to actually create "qos-policy 1" but they can reference that built in system qos policy in some interface config for example. The reference is a leafref. So now what do we do about the fact that the leafref constraint is violated ? Do we care ?  (yes if we want a valid running datastore).

A server can just accept the config (which references a qos policy that isn't visible in a <get-config> of <running>). That's how some systems behave today.  And that's all fine for that server.

But in some cases an operator may have a client, OSS, or workflow that requires offline validation of the config.  IMO, in those cases, the operator should have to explicitly define any qos policies they are referencing (if they want offline validity of <running>). The server could allow the user to explicitly configure qos-policy 1 (even though it already exists under the hood) and then it would always return that policy in a <get-config>, making the leafref valid.

Jason


From: Jan Lindblad (jlindbla) <jlindbla@cisco.com<mailto:jlindbla@cisco.com>>
Sent: Monday, August 23, 2021 6:50 AM
To: Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>; Sterne, Jason (Nokia - CA/Ottawa) <jason.sterne@nokia.com<mailto:jason.sterne@nokia.com>>
Cc: Kent Watsen <kent+ietf@watsen.net<mailto:kent+ietf@watsen.net>>; netmod@ietf.org<mailto:netmod@ietf.org>
Subject: Re: [netmod] system configuration sync mechanism

Hi,

Sorry for getting late into this already unwieldy thread. Similar discussions have been flaring up regularly for as long as this work group has existed, and we have never been able to put it to final rest. At the heart of the issue is the age old division between "unpredictable" and "lazy" managed systems (NETCONF servers).

Unpredictable systems: systems that modify and extend their running configuration spontaneously (outside standards)
Lazy systems: systems that treat running as sacred scriptures of the gods (operator community and management systems)

There are NETCONF servers out there of both types (and across the spectrum in between), with huge implementation investments and future aspirations. Nothing is going to remove either approach from the market any time soon. My point is that when new protocol extensions are presented, such as the system datastore, their implications need to be evaluated for both categories of systems.

There has been a large number of point questions discussed in this thread, and I don't envy the draft authors to try to make sense of it all. An interim call, as suggested by Jason, may be the best answer, if the draft team can put together a material with decision points to cover.

Jason made several important points that I'd like to underscore imho:

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).

I find this an essential concept for running. Much depends on this tenet.

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).

This is the defining trait of "unpredictable" systems, and there are many of those. There are also many "lazy" systems, which would never allow this.

Best Regards,
/jan



TL;DR defining typical "unpredictable" (U) and "lazy" (L) NETCONF server behavior.

+ Factory reset
U: creates a default user, scans the hardware and injects default line card configs in running
L: creates a default user, scans the hardware and injects default line card configs in running

+ Insert new line card
U: creates a default config for inserted line card and interfaces, maybe adds a suitable default speed leaf depending on hardware type
L: no change of running, but reflects insertion in operational and maybe with a notification

+ Configure parameters of interface on inserted line card
U: only changed parameters need to be written as running already has the interface
L: entire interface needs to be created in running with desired parameters

+ Remove that line card
U: removes the config for the ejected line card
L: no change of running, but operational now reflects the interface state as [hardware missing]

+ Reinsert the line card
U: creates a default config for inserted line card, maybe adds a suitable default speed leaf depending on hardware type
L: no change of running, but interface comes back on line as previously configured and operational now reflects the interface state as [up]

+ Reconfigure the interface type of existing interface
U: rejected
L: accepted, but operational state now reflects the interface state as [hardware mismatch]

+ Reconfigure the name of an interface
U: rejected
L: accepted if the name could be valid for this device, but operational state now reflects the interface state as [hardware missing]

+ Install backup
U: If the set of interfaces in the backup is a subset of currently present hardware, it is activated, otherwise rejected
L: accepted. If any hardware is currently missing as configured in the backup, their operational state is shown as [hardware missing]

A variant that falls between U and L might be a system that considers the insertion of a line card an "act of configuration". Hardware manipulation could be considered a kind of (so far proprietary) protocol with defined configuration semantics. The behavior of such a system might be exactly like a "lazy" system except in the "Configure parameters of interface on inserted line card" use case, where it behaves like an "unpredictable" system when there is no prior config for the card.

Thanks for reading the TLDR.
/jan


On 18 Aug 2021, at 01:34, Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>> wrote:

Hi,

I guess I do not agree with the premise of the draft, which is that the client
needs to take over control of the system-controlled configuration.  I will
wait for a draft update and see if that helps understand it better.


Andy

On Tue, Aug 17, 2021 at 11:21 AM Kent Watsen <kent+ietf@watsen.net<mailto:kent%2Bietf@watsen.net>> wrote:

>IMO this draft overlaps the factory-default datastore.
>Unfortunately, RFC 8808 does not document NMDA, Appendix A3 details
>https://datatracker.ietf.org/doc/html/rfc8342#appendix-A.3
>It does not say if <factory-default> datastore feeds into <running> or into <intended>.
>It is not clear how <system> would interact with other datastores.
[Qin]: As described in Appendix-A.3, two ways to interact with other datastore are discussed, one is interact implicitly, the other is to use
RPC to trigger application of the datastore's data, in factory default setting case, <factory-reset> rpc will reset the contents of all relevant datastores to factory default state.
The extreme case of factory default state is no configuration at all for each datastore.

Right.  Also, the word “flow” doesn’t seem quite right…at least in my mind, it suggests an ongoing relationship, whereas <factory-default> is really for one-time initializations.

From https://datatracker.ietf.org/doc/html/rfc8808#section-3:

   Management operations:  The contents of the datastore is set by the
      server in an implementation-dependent manner.  The contents cannot
      be changed by management operations via the Network Configuration
      Protocol (NETCONF), RESTCONF, the CLI, etc., unless specialized,
      dedicated operations are provided.  The datastore can be read
      using the standard NETCONF/RESTCONF protocol operations.  The
      "factory-reset" operation copies the factory default contents to
      <running> and, if present, <startup> and/or <candidate>.  The
      contents of these datastores is then propagated automatically to
      any other read-only datastores, e.g., <intended> and
      <operational>.


>It is not clear why it is even needed since <factory-default> contains only system settings.
[Qin]: I agree <factory-default> could have system setting. But unspecified for some reasons.
Based on earlier discussion on factory default, what content is included in <factory-default> and how to format this content, e.g., YANG instance file format
Have been ruled out of the scope. See the diff in v-07
https://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-factory-default-07.txt


Regardless, <factory-default> cannot be used for immutable “system" defined objects, since it’s contents initialize client-editable datastores.


K.


_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod