Re: [yang-doctors] Unsupported schema tree w/ cyclic dependencies + schema node identifier clarification
Ebben Aries <exa@arrcus.com> Fri, 22 March 2019 22:47 UTC
Return-Path: <exa@arrcus.com>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D050A1310C1 for <yang-doctors@ietfa.amsl.com>; Fri, 22 Mar 2019 15:47:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level:
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=netorgft1331857.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 v6qREBIOKPc7 for <yang-doctors@ietfa.amsl.com>; Fri, 22 Mar 2019 15:47:16 -0700 (PDT)
Received: from NAM05-CO1-obe.outbound.protection.outlook.com (mail-eopbgr720069.outbound.protection.outlook.com [40.107.72.69]) (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 5128D131058 for <yang-doctors@ietf.org>; Fri, 22 Mar 2019 15:47:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NETORGFT1331857.onmicrosoft.com; s=selector1-arrcus-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TEdlOYcly/GTYKDYeE/GX+MwyD6Ah08+RF+wnmMETYo=; b=FMW//Clmo84R0QmiAfHrZqpIu9Fzbw0fB5qLpivb+J17Bf3mAVftlwS0Bw4hBHhG9XxtkWif0hSmsO/q1WRJJDLT/cgbnkz/SFWE7xh84oijG7EKCgIWMuoXkSHRCqdcBXJfozwv8laLsY33JtgWOtwEP5DsRqWmZ75GB2iLaxA=
Received: from BYAPR18MB2375.namprd18.prod.outlook.com (20.179.90.216) by BYAPR18MB2629.namprd18.prod.outlook.com (20.179.93.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1730.16; Fri, 22 Mar 2019 22:47:13 +0000
Received: from BYAPR18MB2375.namprd18.prod.outlook.com ([fe80::718b:7ac3:17ca:c664]) by BYAPR18MB2375.namprd18.prod.outlook.com ([fe80::718b:7ac3:17ca:c664%3]) with mapi id 15.20.1730.017; Fri, 22 Mar 2019 22:47:13 +0000
From: Ebben Aries <exa@arrcus.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>
Thread-Topic: [yang-doctors] Unsupported schema tree w/ cyclic dependencies + schema node identifier clarification
Thread-Index: AQHU4EP5YYanB23cdUGtd1BYnLXijaYXXqoAgADjLYA=
Date: Fri, 22 Mar 2019 22:47:13 +0000
Message-ID: <20190322224711.sglgrvgfrqu7bosw@localhost>
References: <20190322001243.qek4neyeee4ezspl@localhost> <20190322.101406.1388195451706941171.mbj@tail-f.com>
In-Reply-To: <20190322.101406.1388195451706941171.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: BYAPR02CA0008.namprd02.prod.outlook.com (2603:10b6:a02:ee::21) To BYAPR18MB2375.namprd18.prod.outlook.com (2603:10b6:a03:12d::24)
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [2601:283:4600:80a0:bb8b:26e2:d8d4:bc07]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c32eb688-354e-4368-8b91-08d6af18536e
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020); SRVR:BYAPR18MB2629;
x-ms-traffictypediagnostic: BYAPR18MB2629:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=exa@arrcus.com;
x-microsoft-antispam-prvs: <BYAPR18MB2629E7F3B1172EF0840DDA38CD430@BYAPR18MB2629.namprd18.prod.outlook.com>
x-forefront-prvs: 09840A4839
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(7916004)(376002)(39830400003)(346002)(136003)(396003)(366004)(189003)(199004)(2906002)(97736004)(7736002)(305945005)(6916009)(99286004)(1076003)(8936002)(6116002)(71200400001)(5660300002)(446003)(8676002)(9686003)(6512007)(71190400001)(14454004)(53936002)(68736007)(33716001)(106356001)(102836004)(508600001)(316002)(4326008)(229853002)(86362001)(186003)(6246003)(105586002)(46003)(25786009)(6436002)(256004)(81166006)(81156014)(14444005)(76176011)(476003)(486006)(52116002)(6486002)(11346002)(386003)(6506007); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB2629; H:BYAPR18MB2375.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: arrcus.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: y+pCq8bA219PDvCZQAfU15Zb0wD8MlQTpS/2P561T3DCMfG2McowA8O3lXK6Et1sUaWVWQxuxXaoTrToOaHQRSCY+dony14tLihbBmS2OEZVrEnUKnlh0VzcfuE6V4U9KeFkqlQYuxxqNhBjgDF2mHmXGYP8WUspdJPC/8qdtfuebKaPz+D7HFG+vr0EcCaiwPcTJLoW1gOubBGXwCwAVZdituYvKoVNI4y6A+R71/qGadSabcWxtKmoHeJWtNkzNt+QbMD36i0wv23gCJLs7DMr75+RI3iWWDzA94Dw0nhkfP82D1gDbUPA8+bCidCyb/j0fWKgNwcBdcYp1hTJcwZW2BRP12NpbcASWK9iuBhC4rBXFfn49ahBsL8Jyz1X73k5opegYAd8yXxZbhWjQqvrcCZXSgHVwuIIX/O8FQ4=
Content-Type: text/plain; charset="us-ascii"
Content-ID: <FAE6E748133FE147997182A49BD7760F@namprd18.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: arrcus.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c32eb688-354e-4368-8b91-08d6af18536e
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2019 22:47:13.6485 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 697b3529-5c2b-40cf-a019-193eb78f6820
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2629
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/SxpMjvEihtpckd9BJwRSN1T9-2M>
Subject: Re: [yang-doctors] Unsupported schema tree w/ cyclic dependencies + schema node identifier clarification
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Mar 2019 22:47:19 -0000
Thx Martin - see inline... On Mar 22 10:14 AM, Martin Bjorklund wrote: > Hi, > > Ebben Aries <exa@arrcus.com> wrote: > > I have a few questions for the group that have surely come up before... > > but maybe I'm missing something... > > > > 1. How to handle cases where you only support a non-schema tree portion > > of a module where other non-schema statements have a cyclic dependency > > back to the schema tree > > Is this a separate question from 2 below? If so, I don't understand > the question. If it the same, please see below. > Yes, these were 2 separate questions - see below > > 2. Schema Node Identifier wording in RFC7950 > > > > > > For #1, Let's say you have module A that imports module B for use of an > > identity. Let's call the use of this an identityref to 'base b:foo' > > > > Module B contains typedefs, identities and schema tree and the > > implementation prefers to deviate the schema tree completely as > > 'not-supported' but needs to support this model for resolving imports > > and use of identities only (e.g. module A). > > The server would advertise module B as conformance-type = import in > the YANG library. > Yep - ok. So a 1.1 minimum to support this method of conveying and a client that must honor conformance-types when building schemas For any clients not using yang-library, we have a problem (e.g. OpenConfig gNMI or a static module cache) > > However if any of the typedefs in module B have leafrefs to it's own > > schema tree, you cannot deviate the entire tree as this breaks the > > contained leafref. > > I don't think there's an issue here. If a server doesn't implement > the target of a leafref in a typedef, it also cannot implement any > leaf that uses this typedef. The typedef itself is not a problem. > That is correct. My point was rather than you have a schema tree, a typedef and an identity in a module. You only import and use the identity and want to deviate the schema tree. You cannot deviate the typedef that has a leafref to the schema tree and thus the typedef cannot resolve (unless one were to relax checks on resolving). Essentially you only support the identity within this module. conformance-type==import would solve this from a library perspective but appears we cannot solve this solely w/ deviations today > > Since you cannot deviate on anything other than schema tree nodes [See > > #2] (e.g. the typedef) and module A is using an unrelated identity, this > > poses a bit of an issue (Assume you must not alter/deviate module A > > directly) > > > > Now, this makes me think that for this to not happen, a best practice > > would be to always separate out identities, typedefs, etc.. from where > > schema trees are defined for such very cases (e.g. types modules) .... > > or introduce a method to be able to deviate non-schema tree nodes as > > such > > > > ** ietf-interfaces is one such module where you can see the > > interface-ref/interface-state-ref dependencies back to it's own schema > > tree > > > > For #2 - The wording around the deviation statement's target node in > > 7.20.3 specifies that this be a node in the schema tree as referenced by > > Section 6.5. Maybe I'm missing something but I'm not seeing any > > wording around RPCs and Notifications as being part of the schema tree > > whereas other statements such as 'typedefs' are not. As a side effect, > > this means that an RPC, Notification or top-level node in the schema > > tree cannot have the same name and must remain unique in nomenclature > > (as this is how they are each identified per their schema node > > identifier) > > This was a separate yet related question on what consists of a 'schema node' that can be referenced in the schema node identifier. The reference back to the 'schema node' definition answers this but I find the wording is fragmented among what consists of a schema tree and what does not.
- [yang-doctors] Unsupported schema tree w/ cyclic … Ebben Aries
- Re: [yang-doctors] Unsupported schema tree w/ cyc… Martin Bjorklund
- Re: [yang-doctors] Unsupported schema tree w/ cyc… Ebben Aries
- Re: [yang-doctors] Unsupported schema tree w/ cyc… Martin Bjorklund
- Re: [yang-doctors] Unsupported schema tree w/ cyc… Ebben Aries
- Re: [yang-doctors] Unsupported schema tree w/ cyc… Martin Bjorklund
- Re: [yang-doctors] Unsupported schema tree w/ cyc… Ebben Aries
- Re: [yang-doctors] Unsupported schema tree w/ cyc… Juergen Schoenwaelder