Re: [netmod] explicit mount

Robert Wilton <rwilton@cisco.com> Thu, 25 February 2016 16:35 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 168131B2D08 for <netmod@ietfa.amsl.com>; Thu, 25 Feb 2016 08:35:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.507
X-Spam-Level:
X-Spam-Status: No, score=-14.507 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.006, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
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 611jKiTfuE1P for <netmod@ietfa.amsl.com>; Thu, 25 Feb 2016 08:35:48 -0800 (PST)
Received: from aer-iport-1.cisco.com (aer-iport-1.cisco.com [173.38.203.51]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 31CB11B2D04 for <netmod@ietf.org>; Thu, 25 Feb 2016 08:35:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3046; q=dns/txt; s=iport; t=1456418148; x=1457627748; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=LV7ZP/NlHekyBGP0Q4EqoTyBZLHB0WIal56FQScVjTM=; b=cNOABpSzmcqJzaKOnLDE2VtB9OdUxXnAyPaUhjK8hoPG4GnzcAbEZbN0 QnEopHoUrogeKAP/l4yJu0tnQ18/7NVnLM90QgHW8vpV4QI82otB6R/qH xAomW2r68ypw6FcqcjYq4ZIVSVZjMf2SBb6vKDic69n/zNirmSR4TPKSs E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CoBADSLM9W/xbLJq1ehHm6S4Fmhg0CgXoTAQEBAQEBAWQnhEIBAQQ4QAEQCw4CCAkWDwkDAgECAUUGDQYCAQEXiAS+GAEBAQEBAQEBAQEBAQEBAQEBAQEXhhKEOohvAQSNKolejV+JJIVQjkkhAUCDZDwuiBgBAQE
X-IronPort-AV: E=Sophos;i="5.22,498,1449532800"; d="scan'208";a="649554242"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Feb 2016 16:35:46 +0000
Received: from [10.63.23.69] (dhcp-ensft1-uk-vla370-10-63-23-69.cisco.com [10.63.23.69]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id u1PGZjQ4015113; Thu, 25 Feb 2016 16:35:46 GMT
To: Martin Bjorklund <mbj@tail-f.com>
References: <20160224223913.GA18519@elstar.local> <20160225.092357.799424283049856775.mbj@tail-f.com> <20160225083228.GB19366@elstar.local> <20160225.094334.1498092398680350689.mbj@tail-f.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <56CF2D5F.6060009@cisco.com>
Date: Thu, 25 Feb 2016 16:35:43 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
MIME-Version: 1.0
In-Reply-To: <20160225.094334.1498092398680350689.mbj@tail-f.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/baQV0kO2URKxLi5GeeZGJByF4Rg>
Cc: netmod@ietf.org
Subject: Re: [netmod] explicit mount
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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, 25 Feb 2016 16:35:50 -0000


On 25/02/2016 08:43, Martin Bjorklund wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> On Thu, Feb 25, 2016 at 09:23:57AM +0100, Martin Bjorklund wrote:
>>
>>>> I think the use cases are rather obvious. I build a device and I like
>>>> to rearrange existing models into a beautiful hierarchy (for some
>>>> definition of beauty).
>>> This would be pretty complicated.  Suppose I define my own beautiful
>>> structure like this:
>>>
>>>    container my-interfaces {
>>>      x:mount-point "if" {
>>>        x:mount-module "ietf-interfaces";
>>>      }
>>>    }
>>>    container my-routing {
>>>      x:mount-point "rtr" {
>>>        x:mount-module "ietf-routing";
>>>      }
>>>    }
>>>
>>> Note that with the mount-point defined in my draft, each mount-point
>>> becomes itw own "jailed" or "chrooted" tree.  So references cannot
>>> cross mount points.
>> Could be the same here.
>>   
>>> In this case, we have references between ietf-routing and
>>> ietf-interfaces.  How would they work?
>> How do they work in your solution? If interfaces is jailed and routing
>> is jailed, how does routing refer to the interfaces?
> My solution does not support "name module mount".  It only supports
> mouting of a "complete" set of modules (that are chrooted) - simply
> because this is what we understand, have implemented, and have been
> running for the last ~5 years.  (The same goes for ODL, I believe).
I have been wondering whether "name module mount" is really about 
mounting only specific modules, or actually allowing the mounting schema 
to statically indicate which modules are guaranteed to be present.  I.e. 
specifically it doesn't explicitly prohibit other modules/data nodes 
from potentially also being mounted at the same path, but in the normal 
case you wouldn't expect them to be present.

My reasoning is that you don't want to have to statically specify in the 
mounting schema all augmentations, deviations and features.  But I also 
don't think that the mounting schema can guarantee that the mounted 
schema will always exactly implement the module(s) specified in the 
schema mount and all features without any augmentations or deviations.

So for this to be useful, it means that there has to be a dynamic 
mechanism to determine exactly what modules has been mounted (e.g. like 
the ietf-yang-structural-mount module or ysdl).

Given this, I think that you could possibly end up with just one "schema 
mount" with a couple of options:

The first option would be an explicit list of modules that are 
guaranteed to be mounted at that location (or "*" to indicate a 
"complete" set of modules (that are chrooted).

The second option would indicate where the runtime details of the 
mounted modules can be found: this option might indicate whether details 
of the mounted modules can be found inline in the data tree at the mount 
point using yang-library, or separately in the 
ietf-yang-structural-mount module/ysdl.

Rob