Re: [L3sm] RFC 8049 on YANG Data Model for L3VPN Service Delivery

Martin Bjorklund <mbj@tail-f.com> Thu, 09 March 2017 12:55 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: l3sm@ietfa.amsl.com
Delivered-To: l3sm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E183129587 for <l3sm@ietfa.amsl.com>; Thu, 9 Mar 2017 04:55:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 zvultyVVRPgi for <l3sm@ietfa.amsl.com>; Thu, 9 Mar 2017 04:55:26 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 461FF1295A8 for <l3sm@ietf.org>; Thu, 9 Mar 2017 04:55:23 -0800 (PST)
Received: from localhost (unknown [50.225.114.198]) by mail.tail-f.com (Postfix) with ESMTPSA id 91E161AE02A7; Thu, 9 Mar 2017 13:55:19 +0100 (CET)
Date: Thu, 09 Mar 2017 13:55:18 +0100
Message-Id: <20170309.135518.1376708618323584683.mbj@tail-f.com>
To: janl@tail-f.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <860CA141-2DDB-4BDA-B256-B824B9D0C10B@tail-f.com>
References: <D6747A53-4855-43CF-97DA-46B5C7F4A551@tail-f.com> <af3c4ff8-41e3-3077-e3af-636fc631738a@cisco.com> <860CA141-2DDB-4BDA-B256-B824B9D0C10B@tail-f.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/l3sm/s-Nq6zHz8KbjW0yB-q_vYbVLdGM>
Cc: bclaise@cisco.com, l3sm@ietf.org, adrian@olddog.co.uk
Subject: Re: [L3sm] RFC 8049 on YANG Data Model for L3VPN Service Delivery
X-BeenThere: l3sm@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: L3VPN Service YANG Model discussion group <l3sm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/l3sm>, <mailto:l3sm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/l3sm/>
List-Post: <mailto:l3sm@ietf.org>
List-Help: <mailto:l3sm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/l3sm>, <mailto:l3sm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Mar 2017 12:55:27 -0000

Hi,

Jan Lindblad <janl@tail-f.com> wrote:
> Benoît, all,
> 
> > On 9 Mar 2017, at 20:09, Benoit Claise <bclaise@cisco.com> wrote:
> > 
> > Dear all,
> > 
> > It seems like Jan discovered a bug.
> > Can the authors confirm?

I'm not an author, but I agree with Jan.

[...]

> #1)
> 
> 1995: grouping site-devices /l3vpn-svc/sites/site
>   container devices {
>    must "/l3vpn-svc/sites/site/management/type = "+
>     "'provider-managed' or "+
>     "/l3vpn-svc/sites/site/management/type ="+
>     "'co-managed'" {
> 
> To me, it appears that the author intended to say that the "container
> device" configuration is only applicable when the current site
> management type is 'provider-managed' or 'co-managed'. That would make
> sense.
> 
> The use of "must" and the use of the absolute paths above changes the
> meaning in YANG to "as soon as any l3vpn is configured, there must be
> at least one l3vpn (not necessarily the current one) that is
> 'provider-managed' or 'co-managed'." One implication would be that it
> would not be legal to have a collection of only 'customer-managed'
> vpns. What would be legal, though, is to have one 'provider-managed'
> l3vpn with no device configuration and another 'customer-managed' with
> devices configured. I expect this was not the intention.
> 
> I think an expression that reflects the intent would be
> 
>   container devices {
>    when "../management/type = "+
>     "'provider-managed' or "+
>     "/l3vpn-svc/sites/site/management/type ="+
>     "'co-managed'" {

It needs one more modification:

   container devices {
    when "../management/type = 'provider-managed' or "
       + "../management/type = 'co-managed'" {

> This would make the container only exist when the management type of
> this site specifically is 'provider-managed' or 'co-managed'.


/martin