Re: [netmod] 答复: 答复: system configuration sync mechanism

Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de> Tue, 03 August 2021 12:33 UTC

Return-Path: <J.Schoenwaelder@jacobs-university.de>
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 5910F3A21A6 for <netmod@ietfa.amsl.com>; Tue, 3 Aug 2021 05:33:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, MSGID_FROM_MTA_HEADER=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=jacobsuniversity.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 v0HimNgLdnri for <netmod@ietfa.amsl.com>; Tue, 3 Aug 2021 05:33:26 -0700 (PDT)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2045.outbound.protection.outlook.com [40.107.22.45]) (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 B50443A21A4 for <netmod@ietf.org>; Tue, 3 Aug 2021 05:33:25 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ld2Z+oce8GNOQUOgHPExzhExiA7lgiT8T7Nt44NY03Ad2N1o6JkQAcP6x8Gs9tCgUIGQF0S/bPzoNAF2SlA5h12A/+u4cpkD3PhI2gavJznZrZEHaYV1GnN+rYZDm3Ggii4+D21/SU7VckPL0+ovfHg4LPamW8uIUhTTSuEuf04jaslE6D2mkuEFZpcjT15HkAIDsTdyHPeE2RUihMJCtF6zfJQ7ZF3PEb+BsHBNi4T9aAscvwQUAEJn1RDqA1gCfTOsfnJZ+IroysNT4aCXcX4tnVdUEzfRObJ/JawLNGB/OJv3jZDzcUDgfydT975Ug9+4fQf5iR2NVP1jrhQxkg==
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=W0dKemNLH1dYXuusaUHWCVKxFOiQ0KpbkeuyHR4BHqQ=; b=Ra1CMPkwkHU/CjTxIGr9nXpe70bk/aafByUbbpeOsC01HycFdAUImELXbDalLogSoP4mGYIGIS6nVoMC+vbnUMmJYZQaYLVBKVe3z8hkJFJn/vCdaUfIK+EwH0ywG61BqeDQDpVQEBuYtauWZb6aIyXzDM/U1j7sdFlrIHOwmw9wJRt26nUqBdTOHdq/MTPQbM1qXzmRJUsw7WXXByHPOKajRHiTWMh9UPT+0ogNeS0KLQBUgnXm61SIum8YxWExrXLFEV9cn6mch6/3L/FwCZcIyUyVMOic3a024KIjJ4sxl7ijsNxEtcqEtMiG/4OwWuuCZjhBKJX0PfXzcAkXpA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W0dKemNLH1dYXuusaUHWCVKxFOiQ0KpbkeuyHR4BHqQ=; b=CmSOhyHiLeGc6sdbFqPGbK/+wWkglr1zHoyPDqnuECOChH5s8Y+pU0PWLwUJnP3XJUfv4GPrRGCYWhSL+D/aMwCLZRYfu2buOqqPJINcxj+DTwlRkcKSGQ67RCG2LG4b46NEbsQ02FNpO6QLz0wlTXoIDCTzZA7r17CAoIeNT/U=
Authentication-Results: huawei.com; dkim=none (message not signed) header.d=none;huawei.com; dmarc=none action=none header.from=jacobs-university.de;
Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by AM9P190MB1394.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:3b7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.18; Tue, 3 Aug 2021 12:33:22 +0000
Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::58c1:599a:1d3d:cdeb]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::58c1:599a:1d3d:cdeb%9]) with mapi id 15.20.4373.026; Tue, 3 Aug 2021 12:33:22 +0000
Date: Tue, 03 Aug 2021 14:33:21 +0200
From: Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de>
To: "Fengchong (frank)" <frank.fengchong@huawei.com>
Cc: Andy Bierman <andy@yumaworks.com>, Kent Watsen <kent+ietf@watsen.net>, Balázs Lengyel <balazs.lengyel=40ericsson.com@dmarc.ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Message-ID: <20210803123321.mflzkimb7yvcfwk5@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: "Fengchong (frank)" <frank.fengchong@huawei.com>, Andy Bierman <andy@yumaworks.com>, Kent Watsen <kent+ietf@watsen.net>, Balázs Lengyel <balazs.lengyel=40ericsson.com@dmarc.ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
References: <add2ee3bb9094e1da6a3160824d5fdff@huawei.com> <0100017aee17493f-6b9b747c-f0f1-4a70-b929-aaa0350a555f-000000@email.amazonses.com> <aa3dfdb471f0430aa50c4e35b9672fb1@huawei.com> <AM8PR07MB823008D0A83507EFCBD2DDA3F0ED9@AM8PR07MB8230.eurprd07.prod.outlook.com> <CABCOCHT6yGFj84ryK9wghFnO52uQoLydKm-OU9M5+gqqs4jAzA@mail.gmail.com> <0100017b08feb7ef-71cbbcaa-256f-4947-ab27-9fdd40f2993a-000000@email.amazonses.com> <CABCOCHT59+sf92vzj=qE0KPxic-h6Nix2+Mp5veforS02Xchgg@mail.gmail.com> <b4ead22f31c44b5296e51138befd6816@huawei.com> <20210803041523.vpq2ltompplxn53p@anna.jacobs.jacobs-university.de> <d9a7a4d5858f418c892225052e8b58f5@huawei.com>
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d9a7a4d5858f418c892225052e8b58f5@huawei.com>
X-ClientProxiedBy: PR3P191CA0056.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:55::31) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
Received: from localhost (212.201.44.244) by PR3P191CA0056.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:55::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.23 via Frontend Transport; Tue, 3 Aug 2021 12:33:22 +0000
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f16f0605-4cb4-4ded-4018-08d9567ae1d1
X-MS-TrafficTypeDiagnostic: AM9P190MB1394:
X-MS-Exchange-Transport-Forked: True
X-Microsoft-Antispam-PRVS: <AM9P190MB1394829C752E6F1BEFF975EBDEF09@AM9P190MB1394.EURP190.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: mSlFJ8DJM87Q2TKf2t1s/WWRCZsngIqg59AxRi/l62cY027EvVxFIjMTKigSa0VUAjzEBqgvIFB3AHA9Fts8vQkXMuremWHFBi+iaS1vlRQZzwZf4LHqcHdeIU19/x4Wz+W97ZPNguhxnMywD2wd2uIpi8Z6UkH4Xr5Sqop0wXCYz5/LOnq7O8K890czPdNcIjMVPRdKdQ3SUFijQ6ny190uNIuf/SO2Hj2E9ICgVgq9ciC8c90xo9s9mcjcyeeIHWglLt3SjIMdkTgkIsy9UPyrzQ9E6q8VOzkvVwbe23OCfO0rMRDRZqdx46kRr0u6FHyV+waTcZHYevK7okUE+XBZI0V+2EPerOxoj6FOmp4U9h11GVOzOOcrNhKkBS7yHPZZU9nYCSZXnOKj7PrbFYF29xwqSDjzdpk57uJNjzIUDRxH3JrpSJZx3KaEZgltj8C/ms2JZcRAN2l5ppY/b7T0ZuKHvh2u71LDsJQ4RhwO41UWyTDCqPGHuiwxHfe2dEyruRNzxHcV7P6Bd3lWUcXkZbOs9pAQ9gMDZWGWhXF7URVEK8cnjMZZYBT8MJf9OyHcgTJBXtGTieGQm9d5/xtuCZ1NMtZErWqmxMho9S8pe0hlmCO6Yo4I6+rlMVVnV85zM7wIHK7xrvJPRVAWIP7PEmFrh9p2HmLPe5agvhvkS7pdMuLEK57gl/9IneKXQIlJkj5sBwA8EqNfNUeIEg3XQ8nwU9qzyuTlUJFV14Zt41KPo1343uhZJY4F8JCfIbpzRp35BWPsErDVzJLzgUe+5aikimiRds45K7zD2kc=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(39850400004)(346002)(136003)(376002)(366004)(396003)(83380400001)(8936002)(66574015)(6486002)(2906002)(5660300002)(85182001)(1076003)(26005)(956004)(186003)(66946007)(54906003)(224303003)(85202003)(66476007)(66556008)(6916009)(4326008)(52116002)(3450700001)(86362001)(38100700002)(316002)(6496006)(478600001)(786003)(38350700002); DIR:OUT; SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: faNeZ5nU5EaC+j5l01qBnKArHti0T5yBNPtjNwOscChWXMIuZJnh2ZOdSDD0mRjImEOSLMjT4Dgt6SbC+6KF0HXuRlPdHAIVOb02IvJfg3FAJdAr2VEn4/UsWuphW3n+hq8UegsQikBxoH4l6PAdL+sjjWSF+ZlNXiisXqrIxtsHUyXQVPoA4a+SvcOSNNvYelCn7IphXHALodKEXOaqbuRioZPaxZHFXHojf0A5dn75/coZhT+iK3QePYSdVzh4MxP6dy0fE6hp3MZLHU6HMZlnCgg3U06q6vqQUohktHDLg5vARpNkcRpxc9wndk7cqqjiVaGCqYa8pe/bOBsO4RDOvjVd3GlBWOrpaMk3HbdW3uY2tsiNn+REn9Enr9EWVsqq3AugTvHYVAhiQ1TsgYnZJlEx19ArrMBWriJBDoPx+jmw0d2BeaNGOBpMJMF6g24ettFCOPaNbab2Kkutz2QHET1yGr6wZOsNGQzN3WCQ62rZPTpvJLigSpZq3/VsEM5m/x3gb1gbo7pxYysL9Ih8DeDnOywy6QGOwnCaMNKnNLrhVBgD/qCrP02UAVdtPpSICFs3mvuB8uN5RFKuogJx4kWFAGNdRruhmgzXTtKQVyMYEL/rSb3u8y5lrAevZ13pJmOPMp2V1JsOtVbUA65lwzbJezlvF1jPpRbKxGv8szauEsdnIWxQdbywN13bF+r7J4x2IOfLI5F6FPUSQ0Bm326fDUbzkZ3H81RjPgGRsCnJGSvunnufoUhXyw2QHLJtidAhIoDSiLlZL6JlzaUgz61P6PVCd7IfAR7vGK+ONIBzyIa6dFMVR/42Lqoi4vGXMbeDVjMHEG7H8OT30Gp+ZUF0GLbqlM2aP3h+IZEk7u0sMhgyWTt6i44hk8KCqeEEXoFQ5zA/MAsCIxBjpKOH/6NzVScsSRB7E9n1nRERUyuloX+Awnj6JUSl7JbxRg6CRcHgrneEgqi6s8N9iuKsyuTfoIUGqU9hUnVthuKhC63LWlu7YtaBfm0bhM5Le8W/ikpscsJ+EyJ4LmyglY82qttMvdsxwn69PMBHNen5fRKbpPXkzW6vBi/+erZf7YNQPNTaHAYef0OuzYBGIXVn+6frMM83ivxrX4iggEXGxFLmafAh6k55zEU7M3/rj3B1+HY2g9k7IvNgRmqbXMnposmbHgbD65vFdmKQF+CvWV+ZmcKbQX0guf0AasL5oWYLu3227rmHsfvnjlK84X9XAiXIoHUmLvZY/tErhAPIAYZPS/etV2xrSLUSC5pBMFKjpAafqKhpBvgr6to2NYKYzu4wXk7RP2DWWtZf+SGkEBw1nEmSR42g58k4eaFE
X-OriginatorOrg: jacobs-university.de
X-MS-Exchange-CrossTenant-Network-Message-Id: f16f0605-4cb4-4ded-4018-08d9567ae1d1
X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2021 12:33:22.5316 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 80zPTUsK0NBHQbZR6U0Tise974sCV7ntC2Ay0vRMeVvPtz+Wp8TjRiEpAQddUPqF1pUJC654os8eBrho6aBfHUi9Vk/YXSSia/l0S/ZAx+Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9P190MB1394
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/iqdi_2qOcEnCpsMCEfSsljBe5_c>
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: Tue, 03 Aug 2021 12:33:31 -0000

On Tue, Aug 03, 2021 at 07:34:12AM +0000, Fengchong (frank) wrote:
> Hi juergen,
>   Please see my comments inline.
> 
>   /frank
> 
> -----邮件原件-----
> 发件人: Jürgen Schönwälder [mailto:j.schoenwaelder@jacobs-university.de] 
> 发送时间: 2021年8月3日 12:15
> 收件人: Fengchong (frank) <frank.fengchong@huawei.com>
> 抄送: Andy Bierman <andy@yumaworks.com>; Kent Watsen <kent+ietf@watsen.net>; Balázs Lengyel <balazs.lengyel=40ericsson.com@dmarc.ietf.org>; netmod@ietf.org
> 主题: Re: [netmod] 答复: system configuration sync mechanism
> 
> On Tue, Aug 03, 2021 at 01:45:40AM +0000, Fengchong (frank) wrote:
> > Hi andy and all.
> > 
> > I don’t think get-data with origin can solve the issues below:
> > 
> > 
> > 1.       Some leafs like interface type CAN NOT be modified by user, but can be referenced by other config nodes(e.g. using leafref or occur in when/must). The validation will be fail if these leafs are not be configured by user now explicitly (we assume these leafs are optional and no default value).
> 
> The interface type in the RFC 8343 module is config true. YANG does not allow you to refer to config false nodes in constraints that apply to config true nodes. A core principle is that the content of a configuration datastore can be validated without knowing the actual state of the system.
>  
> Frank: yes, interface type is a config node, but it isn't allow to be modified. If a config node reference if-type, in order to validate data successfully ,user must have to config if-type with determined value again. For example, user must config if-type with 'ethernet' for ethernet0/0/1. I don't think it makes sense. The if-type has been created by system, when running config is merged to <operational>, it can work and the validation is successful. If you think running datastore is self-contained, I will think the system configuration should be imported to running datastore automatically to ensure successful validation

You are writing about system configuration and operational state as if
they are the same. I am not sure they are. Also note that interfaces
are not static by any means, they come and go on a modular system. Do
you consider plugging in an interface a system config change??
 
> > 2.       Some instances are generated by system, but these instances can be referenced by other config nodes. The validation must be fail if these instances are not be recreated by user explicitly now.
> 
> Yes, a configuration datastore is self-contained. If a client wants to configure the interface x, it has to define the interface x in the configuration. Note that this should not be confused with a system generating an interface x after probing the hardware. Note the difference between operational state, applied config, and running config.
> 
> Frank: for example , predefined policies are provided by system, user configuration can reference these predefined policy directly. but because predefined policies are not configured by user explicitly, the validation will be fail. If you want to get a successful validation , user MUST have to redefined the system predefined policies.

Referential integrity of a configuration does have benefits and hence
the config has to be there somehow. There was a strong desire to avoid
dangling references that may resolve or not.

> So, system predefined data are useless. I think it is unreasonable.
> 
> Let me add that the underlying model is that the client(s) have control over the configuration. A system making ad-hoc changes to the config (even with the best intentions) will be surprising. In this model, the only way to inject config into running on system boot is to have a client making changes to running following the normal procedures - at least conceptually. This means that conceptually the other clients need to be aware that there is a system client injecting configuration.
> 
> If you follow this logic, it seems wrong to define a system datastore that is somehow magically merged into running - and it is not needed.
> 
> Frank: system configuration not only includes some instances generated on reboot time, but also includes the configuration when hardware is plugged in, or a function is enabled (for example, in huawei's implementation, when QOS function is enabled, many qos predefined policies are created by system) or a user-created list instance is created, some leafs' value will be created by system. So , we need a system datastore to hold these configuration.

Or you have a system client that is going to merge config into running.

> > 3.       User may need know what the original system configuration is, if we get data from <operational>, you may get the modified system configuration.(for example, user modify or template is expanded, or only active instances)
> 
> If you have multiple clients managing shared configuration, then yes it is good if they are aware of what is going on. I am not sure yet that exposing other clients intentions via additional datastores and defining merge mechanisms and semantics is the way to go.
> 
> > I don’t care about whether system datastore is imported to running or intended datastores. But I think if a config node reference a system node, the validation (running or intended datastores) will be successful even if the system node is not configured by user explicitly.
> 
> I am concerned about having to define what "is imported" means precisely and whether moving to a model multiple datastores have to be merged before validation is the way to go. We already acknowledged that there are template expansions in some implementations without working out how they work.
> 
> > Especially on the client side,  if a client need validate all data retrieved from server, the validation SHOULD be successful. If system configuration are not imported to running, at a minimum, the client needs to know what the original system configuration is. Another way is adding with-system-used parameter to get-config operation to retrieved all user configuration and system configuration referenced by user configuration.
> 
> Let me repeat, in the original model, the running configuration datastore is self-contained and can be validated without knowing additional datastores.
> 
> /js
> 

/js

-- 
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/>