Re: [netmod] ?= ?==?utf-8?q? mandatory choice with non-presence container cas
"Rob Wilton (rwilton)" <rwilton@cisco.com> Tue, 25 June 2019 13:49 UTC
Return-Path: <rwilton@cisco.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 AC4C812008D for <netmod@ietfa.amsl.com>; Tue, 25 Jun 2019 06:49:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.499
X-Spam-Level:
X-Spam-Status: No, score=-14.499 tagged_above=-999 required=5 tests=[BAD_ENC_HEADER=0.001, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=FIymUCGG; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=osiamUwV
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 nQ2EnLg1Q1uL for <netmod@ietfa.amsl.com>; Tue, 25 Jun 2019 06:49:13 -0700 (PDT)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 92C6712003F for <netmod@ietf.org>; Tue, 25 Jun 2019 06:49:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=12678; q=dns/txt; s=iport; t=1561470553; x=1562680153; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=ODK+mamVhQX6JB6x12op99ldXwwkqD/y2Ge/Yu738k8=; b=FIymUCGGpHlrH36r0cg2tdEOqbocl9M9i3O5Q+ZDlvaH8cxXQPTy/Iok ApZp6DyMxgrZhGKaFVdZZjJjlkzmgTsETCUQTqe2sJYcB4GOl2E47sH6k 6T8U/Lgstd9OX4MxeX0cq1uR4fMhbWGDzd7Tbqz91mjiLLuk2JU6mpeS1 4=;
IronPort-PHdr: 9a23:ub/0OxVxIYm0R1Q6H8gOn4ZtE/nV8LGuZFwc94YnhrRSc6+q45XlOgnF6O5wiEPSA92J8OpK3uzRta2oGXcN55qMqjgjSNRNTFdE7KdehAk8GIiAAEz/IuTtankgA8VGSFhj13q6KkNSXs35Yg6arw==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AeAADdJBJd/49dJa0iQxkBAQEBAQEBAQEBAQEHAQEBAQEBgVYBAQEBAQELAYFDUANqVSAECygKhAyDRwOOYUyCD5c4glIDVAkBAQEMAQEYCwoCAQGDRTVGAheCXiM3Bg4BAwEBBAEBAgEFbYo3DIVKAQEBAQIBAQEQEREMAQEsDAsEAgEIEQQBAQECAiYCAgIlCxUICAIEARIIGoMBgWoDDg8BAgyaBAKBOIhfcYExgnkBAQWBNgKDSBiCEQMGgQwoAYtdF4FAP4FXgkw+gmEBAQIBgSoeGAUQI4JQMoImi3yCWIcglCQJAoIVhlCNNpdOjSiHNY9ZAgQCBAUCDgEBBYFmIoFYcBU7gmyCQVGDH4UUhT9yAQGBJ4wiK4EEAYEgAQE
X-IronPort-AV: E=Sophos;i="5.63,416,1557187200"; d="scan'208";a="576909128"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 25 Jun 2019 13:49:12 +0000
Received: from XCH-RCD-001.cisco.com (xch-rcd-001.cisco.com [173.37.102.11]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id x5PDnC2x004504 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 25 Jun 2019 13:49:12 GMT
Received: from xhs-aln-003.cisco.com (173.37.135.120) by XCH-RCD-001.cisco.com (173.37.102.11) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 25 Jun 2019 08:49:11 -0500
Received: from xhs-aln-003.cisco.com (173.37.135.120) by xhs-aln-003.cisco.com (173.37.135.120) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 25 Jun 2019 08:49:11 -0500
Received: from NAM01-SN1-obe.outbound.protection.outlook.com (173.37.151.57) by xhs-aln-003.cisco.com (173.37.135.120) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 25 Jun 2019 08:49:11 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ODK+mamVhQX6JB6x12op99ldXwwkqD/y2Ge/Yu738k8=; b=osiamUwVEbuhHoiDOHiIuw2SsUne2Z2NBwXQLcLoeXtM79zj4VpfK+fH/7zdp/tEWMEV61znV/Wuf9p1OaQghHp/T3FofRbpWVuFTW30ypjDUltQvc/EQPgYv93aJeBloImW94QRTIeno6OU1i7B99qI0laY4P9QH6nZPtgfq5M=
Received: from BYAPR11MB2631.namprd11.prod.outlook.com (52.135.227.28) by BYAPR11MB3767.namprd11.prod.outlook.com (20.178.238.205) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Tue, 25 Jun 2019 13:49:10 +0000
Received: from BYAPR11MB2631.namprd11.prod.outlook.com ([fe80::ed99:b6a8:d6fb:5045]) by BYAPR11MB2631.namprd11.prod.outlook.com ([fe80::ed99:b6a8:d6fb:5045%4]) with mapi id 15.20.2008.017; Tue, 25 Jun 2019 13:49:10 +0000
From: "Rob Wilton (rwilton)" <rwilton@cisco.com>
To: Ladislav Lhotka <lhotka@nic.cz>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] ?= ?==?utf-8?q? mandatory choice with non-presence container cas
Thread-Index: AQHVK1gFgQ5kUQYZeEyzTjzwclJSSqasYFpA
Date: Tue, 25 Jun 2019 13:49:10 +0000
Message-ID: <BYAPR11MB2631B1B25C323764194E7855B5E30@BYAPR11MB2631.namprd11.prod.outlook.com>
References: <BYAPR11MB263192DBFAA0F634DBCF0A85B5E30@BYAPR11MB2631.namprd11.prod.outlook.com> <791d-5d120380-25-51599d00@91535824> <20190625.135902.1021903277794682233.mbj@tail-f.com> <41409287f28be0e30e4bc29ef44f755434f6567f.camel@nic.cz>
In-Reply-To: <41409287f28be0e30e4bc29ef44f755434f6567f.camel@nic.cz>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=rwilton@cisco.com;
x-originating-ip: [173.38.220.41]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fa15530a-ff4b-410d-fde9-08d6f973e695
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:BYAPR11MB3767;
x-ms-traffictypediagnostic: BYAPR11MB3767:
x-ms-exchange-purlcount: 3
x-microsoft-antispam-prvs: <BYAPR11MB37677BC130AA176FB6EAF47EB5E30@BYAPR11MB3767.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0079056367
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(376002)(39860400002)(396003)(136003)(189003)(199004)(51444003)(13464003)(305945005)(2906002)(33656002)(76176011)(7736002)(66574012)(74316002)(26005)(110136005)(53546011)(7696005)(99286004)(66476007)(66946007)(52536014)(6506007)(102836004)(71200400001)(71190400001)(52036007)(478600001)(2501003)(66556008)(66446008)(64756008)(14454004)(53936002)(966005)(256004)(186003)(316002)(5660300002)(81166006)(86362001)(6436002)(229853002)(8936002)(446003)(6246003)(476003)(9686003)(6306002)(55016002)(66066001)(76116006)(68736007)(486006)(11346002)(25786009)(81156014)(8676002)(6116002)(3846002)(73956011)(14444005); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR11MB3767; H:BYAPR11MB2631.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: Ne/YQVh5IMxUAI0ZbUFrKWjhjmwSeKsff72LaAL1zxJbM5p88xbL06GNxkX+pz1Iyya+YbIr5RbKFmebMnxJ4UAIrRYiXN0nSJQqCb5iynEDuyxSg0aYIpxIT+EZv09RNgrWRMrdH0aIQpX9hXKBySKTwS2bJZIkgOPFPct/avoC237PLpF6ADLt2kYfARGJmJ6FSTnL5SliBfEMizt9SRlpy8rz6mpotUgwH0dT1q+B9Orv1aUdfwBqnfWD3HFkoWP4AsBZBHSwF5poT4CsF+UgfpvcyHwB16hzyR1/c8Wzlq/b6LhyuGUl3lBHn9WetNp3/M4q0RWU2jQCjcnrV/zm9SzwLP9Kdl7VSg3lRZ1q2bqAel2WypF1Ky0S/zcYTGQe22u67Nh0U38ueBdQGkt4meUK4wLDFHxcr++bE8Q=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: fa15530a-ff4b-410d-fde9-08d6f973e695
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jun 2019 13:49:10.3759 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: rwilton@cisco.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3767
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.11, xch-rcd-001.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Bm162NUVgcovufTLOk3xd72sFKo>
Subject: Re: [netmod] ?= ?==?utf-8?q? mandatory choice with non-presence container cas
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, 25 Jun 2019 13:49:17 -0000
> -----Original Message----- > From: netmod <netmod-bounces@ietf.org> On Behalf Of Ladislav Lhotka > Sent: 25 June 2019 14:14 > To: netmod@ietf.org > Subject: Re: [netmod] ?= ?==?utf-8?q? mandatory choice with non-presence > container cas > > On Tue, 2019-06-25 at 13:59 +0200, Martin Bjorklund wrote: > > Michal Vaško <mvasko@cesnet.cz> wrote: > > > Hi Rob, > > > actually, I have used model with the container TOP just for > > > simplification, I have encountered the issue while implementing > > > ietf-ssh-server model from its current draft. I have created the > > > container "users" [1] without any "user" list instances. Now, you > > > may argue that this is still not a valid use-case because there are > > > no users but I only tried to satisfy the condition. > > > > Yes, I think that this list (user) should have a "min-elements 1". I > > think that matches the i ntent. > > Interestingly, the "users" container actually becomes a P-container: its > presence indicates that the corresponding case is selected. I don't think that this makes it a P-container. It might make > sense for an admin to select this case even before any users are > configured. Sure, the "users" container could have been marked as having presence in the YANG model. > > This example also exposes the drawback of the XML representation - it > cannot distinguish between an empty list and nothing. In JSON, the > problems of this thread could potentially be circumvented by configuring > > "users" : { > "user" : [ > ] > } I don't think that an empty list "exists" in a configuration datastore, i.e. I don't think that it should impart any meaning, in that regard is seems somewhat like an NP-container. Thanks, Rob > > Lada > > > > > /martin > > > > > > > > > There are some users > > > on the system but they are generated into the configuration > > > on-demand when operational data is requested. > > > > > > Regards, > > > Michal > > > > > > [1] > > > https://tools.ietf.org/html/draft-ietf-netconf-ssh-client-server-14# > > > page-22 > > > > > > On Tuesday, June 25, 2019 11:08 CEST, "Rob Wilton (rwilton)" > > > <rwilton@cisco.com> wrote: > > > > > > > Hi Michal, > > > > > > > > It is not the printing of the data that makes it valid/invalid. > > > > > > > > I don't think that your input data was ever valid, because > > > > "container C" doesn't satisfy the mandatory statement because it > > > > isn't a real data node in the tree - it is instantiated when > > > > required and may be deleted when it is no longer required. > > > > > > > > I.e. your model has been designed such that it can never be > satisfied. > > > > > > > > > > > > If your model was instead: > > > > > > > > container TOP { > > > > leaf L { > > > > type empty; > > > > } > > > > choice A { > > > > mandatory true; > > > > container C { > > > > leaf L2 { > > > > type empty; > > > > } > > > > } > > > > } > > > > } > > > > > > > > > > > > Then this data is valid: > > > > > > > > <TOP> > > > > <L/> > > > > <C> > > > > <L2/> > > > > </C> > > > > </TOP> > > > > > > > > > > > > But this data is not: > > > > > > > > <TOP> > > > > <L/> > > > > </TOP> > > > > > > > > > > > > Nor is this, which is directly equivalent to the one above, > > > > because the <C/> container doesn't really exist if it doesn't have > > > > a child node present. > > > > > > > > <TOP> > > > > <L/> > > > > <C/> > > > > </TOP> > > > > > > > > Thanks, > > > > Rob > > > > > > > > > > > > > -----Original Message----- > > > > > From: Michal Vaško <mvasko@cesnet.cz> > > > > > Sent: 24 June 2019 18:15 > > > > > To: Andy Bierman <andy@yumaworks.com> > > > > > Cc: Rob Wilton (rwilton) <rwilton@cisco.com>; netmod > > > > > <netmod@ietf.org> > > > > > Subject: Re: [netmod] ?= mandatory choice with non-presence > > > > > container cas > > > > > > > > > > Hi Andy, > > > > > > > > > > On Monday, June 24, 2019 19:11 CEST, Andy Bierman > > > > > <andy@yumaworks.com> > > > > > wrote: > > > > > > > > > > > On Mon, Jun 24, 2019 at 10:01 AM Michal Vaško > > > > > > <mvasko@cesnet.cz> > > > > > > wrote: > > > > > > > > > > > > > Hi Rob, > > > > > > > I think there is a problem in the RFC because using only > > > > > > > allowed steps I got invalid data from initially valid data. > > > > > > > That cannot be > > > > > correct. > > > > > > No. See sec. 7.5.7 > > > > > > > > > > > > If a non-presence container does not have any child nodes, > the > > > > > > container may or may not be present in the XML encoding. > > > > > > > > > > > > > > > > > > Just because your retrieval does not contain the NP-container, > > > > > > that does not mean the NP-container was not present in the > > > > > > server for the mandatory-stmt validation. > > > > > > > > > > I agree, but these valid data were correctly printed into > > > > > invalid data. I do not think printing is allowed to change the > > > > > validity of data. > > > > > > > > > > Michal > > > > > > > > > > > Regards, > > > > > > > Michal > > > > > > > > > > > > > > > > > > > > Andy > > > > > > > > > > > > > > > > > > > On Monday, June 24, 2019 18:52 CEST, "Rob Wilton (rwilton)" > > > > > > > < rwilton@cisco.com> wrote: > > > > > > > > > > > > > > > Hi Michal, > > > > > > > > > > > > > > > > My thoughts: > > > > > > > > > > > > > > > > According to 7.5.1: > > > > > > > > > > > > > > > > In the first style, the container has no meaning of its > > > > > > > > own, > > > > > existing > > > > > > > > only to contain child nodes. In particular, the > > > > > > > > presence of the > > > > > > > > container node with no child nodes is semantically > > > > > > > > equivalent to > > > > > the > > > > > > > > absence of the container node. YANG calls this style a > > > > > > > > "non- > > > > > presence > > > > > > > > container". This is the default style. > > > > > > > > > > > > > > > > Hence your request (because the NP container does not have > > > > > > > > any > > > > > > > > children) > > > > > > > is equivalent to: > > > > > > > > <TOP> > > > > > > > > <L/> > > > > > > > > </TOP> > > > > > > > > > > > > > > > > which fails the "mandatory" check. > > > > > > > > > > > > > > > > Thanks, > > > > > > > > Rob > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > From: netmod <netmod-bounces@ietf.org> On Behalf Of > > > > > > > > > Michal Vaško > > > > > > > > > Sent: 24 June 2019 17:39 > > > > > > > > > To: netmod <netmod@ietf.org> > > > > > > > > > Subject: [netmod] mandatory choice with non-presence > > > > > > > > > container case > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > I have encountered a situation that I think is not > > > > > > > > > covered by RFC > > > > > > > 7950. My > > > > > > > > > specific use-case was as follows. > > > > > > > > > > > > > > > > > > model: > > > > > > > > > > > > > > > > > > container TOP { > > > > > > > > > leaf L { > > > > > > > > > type empty; > > > > > > > > > } > > > > > > > > > choice A { > > > > > > > > > mandatory true; > > > > > > > > > container C; > > > > > > > > > } > > > > > > > > > } > > > > > > > > > > > > > > > > > > data: > > > > > > > > > > > > > > > > > > <TOP> > > > > > > > > > <L/> > > > > > > > > > <C/> > > > > > > > > > </TOP> > > > > > > > > > > > > > > > > > > Parsing was successful, but printing these data back to > > > > > > > > > XML > > > > > produced: > > > > > > > > > <TOP> > > > > > > > > > <L/> > > > > > > > > > </TOP> > > > > > > > > > > > > > > > > > > and parsing this correctly failed with missing mandatory > choice. > > > > > > > According > > > > > > > > > to section 7.5.7 [1], I think the C container could be > > > > > > > > > omitted but the whole situation does not seem correct. > > > > > > > > > Thank you for any > > > > > input. > > > > > > > > > Regards, > > > > > > > > > Michal > > > > > > > > > > > > > > > > > > [1] https://tools.ietf.org/html/rfc7950#section-7.5.7 > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > > netmod mailing list > > > > > > > > > netmod@ietf.org > > > > > > > > > https://www.ietf.org/mailman/listinfo/netmod > > > > > > > > > > > > > > _______________________________________________ > > > > > > > netmod mailing list > > > > > > > netmod@ietf.org > > > > > > > https://www.ietf.org/mailman/listinfo/netmod > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > netmod mailing list > > > netmod@ietf.org > > > https://www.ietf.org/mailman/listinfo/netmod > > > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > -- > Ladislav Lhotka > Head, CZ.NIC Labs > PGP Key ID: 0xB8F92B08A9F76C67 > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod
- [netmod] mandatory choice with non-presence conta… Michal Vaško
- Re: [netmod] mandatory choice with non-presence c… Rob Wilton (rwilton)
- Re: [netmod] ?==?utf-8?q? mandatory choice with n… Michal Vaško
- Re: [netmod] ?==?utf-8?q? mandatory choice with n… Andy Bierman
- Re: [netmod] ?==?utf-8?q? ?==?utf-8?q? ?= mandato… Michal Vaško
- Re: [netmod] ?==?utf-8?q? mandatory choice with n… Qin Wu
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Kent Watsen
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Ladislav Lhotka
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Martin Bjorklund
- Re: [netmod] ?= mandatory choice with non-presenc… Rob Wilton (rwilton)
- Re: [netmod] ?==?utf-8?q? ?==?utf-8?q? ?= mandato… Michal Vaško
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Ladislav Lhotka
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Martin Bjorklund
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Ladislav Lhotka
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Rob Wilton (rwilton)
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Ladislav Lhotka
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Rob Wilton (rwilton)
- Re: [netmod] ?= ?==?utf-8?q? mandatory choice wit… Christian Hopps