Re: [netmod] draft-bjorklund-netmod-structural-mount: Namespace issues

Ladislav Lhotka <lhotka@nic.cz> Thu, 24 March 2016 12:06 UTC

Return-Path: <lhotka@nic.cz>
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 0045112DADB for <netmod@ietfa.amsl.com>; Thu, 24 Mar 2016 05:06:11 -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] autolearn=unavailable autolearn_force=no
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 DJsNeYo4H1jh for <netmod@ietfa.amsl.com>; Thu, 24 Mar 2016 05:06:09 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 01CEC12DA8E for <netmod@ietf.org>; Thu, 24 Mar 2016 04:56:41 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 36B181CC035D; Thu, 24 Mar 2016 12:56:40 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20160323.220116.2259282208531577772.mbj@tail-f.com>
References: <1458566013189.55874@pantheon.tech> <m2h9fxmd0i.fsf@birdie.labs.nic.cz> <20160323.220116.2259282208531577772.mbj@tail-f.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Thu, 24 Mar 2016 12:56:40 +0100
Message-ID: <m2k2kst7gn.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7vEimFNvImckfOrmdFux_f_JUY4>
Cc: netmod@ietf.org
Subject: Re: [netmod] draft-bjorklund-netmod-structural-mount: Namespace issues
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
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: Thu, 24 Mar 2016 12:06:11 -0000

Martin Bjorklund <mbj@tail-f.com> writes:

> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi Anton,
>> 
>> Anton Tkáčik <anton.tkacik@pantheon.tech> writes:
>> 
>> > Hi,
>> >
>> > if I understand correctly netmod-structural-mount inlines "mounted" data directly to container / list which is used,
>> >
>> > which brings up following issues:
>> >
>> >
>> > 1. It is possible to have identifier conflict between data from model
>> > defining mount and mounted data (if mounted schema
>> 
>> I think we need to eliminate all kinds of recursive mount, so this
>> should not happen. 
>> 
>> >
>> > contains same model).
>> >
>> > e.g.
>> >
>> >       module mount-under-mount {
>> >
>> >              container mounts {
>> >
>> >                    list mount {
>> >
>> >                        key name;
>> >
>> >                        leaf name;
>> >
>> >                               container mounts {
>> >
>> >                                     // List of discovered remote mounts
>> >
>> >                               }
>> >
>> >                               mnt:mount-point data;
>> >
>> >                    }
>> >
>> >              }?
>> >
>> >       }
>> >
>> >
>> > 2. Expanding data directly under container / list may be problematic
>> > for clients which do not support netmod-structural-mount.
>> 
>> I don't think it can work if the client doesn't support the mount mechanism.
>> 
>> >
>> >
>> > I believe both can be solved elegantly by requiring mount-point
>> > extension to be used inside anydata element, which signifies
>> 
>> This has been already discussed in the mailing list. IMO, the biggest
>> problem of anydata (as it is currently defined, at least) is that it
>> permits really anything, i.e. not only stuff contributed by the mounted
>> modules.
>
> The fact that anydata can represent "really anything" does not mean
> that every server MUST allow the client to create "really anything"
> for all anydata config nodes.  It will depend on the semantics of each
> particular anydata node.

Schema validation is effectively disabled for anydata nodes. This may be
a problem especially for implementations that perform validation as a
separate step, perhaps automatically from the data model.

And with schema validation out of the way, it is easier to exploit
potential bugs in the server.

>
> I think that using mount-point as a substatement to anydata is in fact
> the only really safe option to mount.  Both the proposed solutions in

Well, if safe means (partial) compatibility of old clients - and I am
not even convinced about this. Otherwise it is IMO less safe because the
schema is loosened.

> the current structural mount and ysdl drafts are unsafe for clients
> that don't understand the mount.

True.

Lada

>
>
> /martin

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C