Re: [Softwires] Yangdoctors early review of draft-ietf-softwire-dslite-yang-02

Mahesh Jethanandani <mjethanandani@gmail.com> Wed, 15 November 2017 23:59 UTC

Return-Path: <mjethanandani@gmail.com>
X-Original-To: softwires@ietfa.amsl.com
Delivered-To: softwires@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B42A1270AB; Wed, 15 Nov 2017 15:59:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 0GUm_cPcFxqO; Wed, 15 Nov 2017 15:59:44 -0800 (PST)
Received: from mail-pg0-x22a.google.com (mail-pg0-x22a.google.com [IPv6:2607:f8b0:400e:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BD0F1126CF6; Wed, 15 Nov 2017 15:59:44 -0800 (PST)
Received: by mail-pg0-x22a.google.com with SMTP id o7so19188157pgc.4; Wed, 15 Nov 2017 15:59:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc:message-id:references :to; bh=CbBXbmltH1dnyR2jBFeEfBAjlqMrqQVCSNGn4mqmRHA=; b=UGM9bcRSIglwCbx1s9b41XkRXAUL5tfYh0XUDuJi4npueLMvOsoOBqjurekkVbbDey Z95eWjJEUkfGnFi6DfZeokHgl3HHb2wNw7ii5ETRivcCLoiYBd2ErNnIUvQ2tZYDRsF7 x2Zzam9uZpZimc/+RTP6Ho+ahGyvRhvGdXtdqSGxwVkKAECsXsRVgq6n+ii/HaBSYfYe VbMCs8DCGVzy7scRSujHu9lUQoOq5QEAMmyvuqcOV5wJqYVXbrx9e8el/8YOqT15iMwE Thw/7EwDhl7yXg0FgUsLgV5obkqtHXTcEaW87ytWQFfaM5UAj3CXmugu/2X8kNal77wT 9idg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=CbBXbmltH1dnyR2jBFeEfBAjlqMrqQVCSNGn4mqmRHA=; b=sOm2i/KLNydffzstmBprz04zpGThH/CUrX0HoBucA6JlRKN4RYQPtWTspmQifxGCeS 5rym6W5h/CRjpxup0GcOgDrUW9lNXl6I7Hzu9eOwIGoMVv4eVWp4qVcCcYirZvuX2L3+ NDPxTtVFObnz8xdvB5G3vnoA2drJoErzLUDYS0rpn6Ix9sUWEVe0MnM0iBx1Zr02PyMV RMvduffi76656SkV4SOIRmP+yQ9AOemDj03zIXLsTm3oQT5nwXBLC+I/Q5JMN2zt2luo //F8/JImkqimdm2+r/DLvUnEvt2Q6CyrvDJgsYN0OoyqNEvZ+IH5pU/AT3wcw0BBcs/4 ED4A==
X-Gm-Message-State: AJaThX7Q92LRyuDjP/bO/KX+bsT+y+odh/AWJ0MC1hps72DXy3UXi3Wc NZhyQ9pSDZfzvxedEtScgA5ccwqNfkc=
X-Google-Smtp-Source: AGs4zMZj26NmvuNxM+syBWJFNBmzGyf293hg4Peck+sqsYQutnaCR3WpNbsXRX3RM/vC1OIdkHDGuQ==
X-Received: by 10.98.137.68 with SMTP id v65mr19354102pfd.170.1510790384239; Wed, 15 Nov 2017 15:59:44 -0800 (PST)
Received: from ?IPv6:2001:67c:1232:144:84e6:d693:52a1:2138? ([2001:67c:1232:144:84e6:d693:52a1:2138]) by smtp.gmail.com with ESMTPSA id w9sm42355391pfl.19.2017.11.15.15.59.41 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 15 Nov 2017 15:59:43 -0800 (PST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_E9C10E5C-125E-485C-969C-AB9EE58185AA"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Mahesh Jethanandani <mjethanandani@gmail.com>
In-Reply-To: <787AE7BB302AE849A7480A190F8B93300A07ACDC@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
Date: Thu, 16 Nov 2017 07:59:28 +0800
Cc: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "softwires@ietf.org" <softwires@ietf.org>, "draft-ietf-softwire-dslite-yang.all@ietf.org" <draft-ietf-softwire-dslite-yang.all@ietf.org>, NetMod WG Chairs <netmod-chairs@ietf.org>, Benoit Claise <bclaise@cisco.com>
Message-Id: <D500C3F8-A809-4553-89BA-319EBDA09BDE@gmail.com>
References: <787AE7BB302AE849A7480A190F8B93300A07ACDC@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
To: mohamed.boucadair@orange.com
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/softwires/e9n9FuwDFT6nk9nfJb2A5oFqrqE>
X-Mailman-Approved-At: Wed, 15 Nov 2017 18:12:00 -0800
Subject: Re: [Softwires] Yangdoctors early review of draft-ietf-softwire-dslite-yang-02
X-BeenThere: softwires@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: softwires wg discussion list <softwires.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/softwires>, <mailto:softwires-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/softwires/>
List-Post: <mailto:softwires@ietf.org>
List-Help: <mailto:softwires-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/softwires>, <mailto:softwires-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Nov 2017 23:59:48 -0000

Med,

See inline.

> On Nov 15, 2017, at 8:50 PM, mohamed.boucadair@orange.com wrote:
> 
> Hi Mahesh, 
> 
> Thank you for the feedback. 
> 
> Please see inline. 
> 
> Cheers,
> Med 
> 
>> -----Message d'origine-----
>> De : Mahesh Jethanandani [mailto:mjethanandani@gmail.com <mailto:mjethanandani@gmail.com>]
>> Envoyé : mardi 14 novembre 2017 23:59
>> À : BOUCADAIR Mohamed IMT/OLN
>> Cc : yang-doctors@ietf.org <mailto:yang-doctors@ietf.org>; softwires@ietf.org <mailto:softwires@ietf.org>; draft-ietf-softwire-
>> dslite-yang.all@ietf.org <mailto:dslite-yang.all@ietf.org>; NetMod WG Chairs; Benoit Claise
>> Objet : Re: Yangdoctors early review of draft-ietf-softwire-dslite-yang-02
>> 
>> Mohamed,
>> 
>> I realize that I am responding to an earlier thread than the one you asked
>> your question on, so let me address the question that you asked on that
>> thread first.
>> 
>> Yes, the netmod tree diagrams draft is not an RFC, and yang-doctors do
>> recommend that authors of drafts with YANG module reference the netmod
>> tree diagram draft rather than cut and paste description of the tree
>> symbols into their drafts. To the question of whether that reference can
>> be informative or does it have to be normative, I would agree that it has
>> to be normative. I realize that might impact the publication of the draft,
>> so I am including the chairs of NETMOD WG(and one of the authors) to get
>> an idea of when they think the draft could be published as an RFC.
>> 
> 
> [Med] We need guidance how to proceed given that we do have two drafts in the softwire WG that are impacted (this one passed the WGLC, while the second one will be on the WGLC soon). BTW, an argument I heard recently is that the netmod document can be cited as informative given that the tree structure itself is not normative. 

I did bring up the question yesterday in NETMOD, and yes the consensus in NETMOD is to move the tree diagram document from Standards Track to Informational, where it can then be cited as informational.

> 
>> But before you rush into publication, I took another look at the -08
>> version of the draft, and I have additional concerns about the draft and
>> the YANG module in it, that I believe warrant another look.
>> 
>> Minor comments
>> 
>> - Please remove reference to chairs in the YANG module. All we recommend
>> are the authors/editors.
> 
> [Med] Done.
> 
>> - Please add a note for the RFC editor to replace “RFC XXXX” with the RFC
>> number when the draft is published.
> 
> [Med] There is already this note in the draft: 
> 
> ===
> Editorial Note (To be removed by RFC Editor)
> 
>   Please update these statements with the RFC number to be assigned to
>   this document:
> 
>   o  "This version of this YANG module is part of RFC XXXX;"
> 
>   o  "RFC XXXX: YANG Data Modules for Dual-Stack Lite (DS-Lite)";
> 
>   o  "reference: RFC XXXX" 
> ===
> 
>> - The indentations in the YANG module are still not consistent. Please fix
>> them.
> 
> [Med] OK.
> 
>> 
>> Additional comments:
>> - The YANG module makes multiple references to subscriber-mask as a way to
>> uniquely identity a subscriber. That, as you say is derived from the NAT
>> module. But the NAT module has no subscriber-mask. It has subscriber-mask-
>> v6. Is that what you meant to refer to?
> 
> [Med] Yes. 

Please update the model/draft in that case.

> 
> Does it mean you need a
>> subscriber-mask for v6 only?
> 
> [Med] Yes. The two use cases for this mask are DS-Lite and NAT64, which involve IPv6 addresses.
> 
> The NAT YANG modules includes the following: 
> 
>            "The subscriber mask is an integer that indicates
>             the length of significant bits to be applied on
>             the source IPv6 address (internal side) to
>                        ^^^^^^^^^^^^
>             unambiguously identify a user device (e.g., CPE).
> 
> 
>> - Also, you augment the NAT module at the node nat:policy. But subscriber-
>> mask-v6 is a child of nat:nat-policy.
> 
> [Med] Is there any problem with this? 

Yes. To the extent that you cannot augment a node that does not exist in the tree. What is more troubling to me is that you say none of the tools have caught it. In the output you show below, it is not clear which NAT module you are using, and where it was fetched from.

> 
>> - And, nat:nat-policy is a list with a key of policy-id. But you have no
>> policy-id defined in your module. How do you reference the particular
>> nat:nat-policy without a key? Was this model compiled/validated against
>> the latest NAT module?
> 
> [Med] This is derived from the nat:napt44, which is augmented with DS-Lite specifics. 
> 
> I confirm that the module was successfully validated:
> 
> =========
> xym 0.4:
> Extracting 'ietf-dslite-aftr@2017-11-14.yang <mailto:ietf-dslite-aftr@2017-11-14.yang>'
>   Removed 0 empty lines
> Extracting 'ietf-dslite-b4@2017-11-13.yang <mailto:ietf-dslite-b4@2017-11-13.yang>'
>   Removed 0 empty lines
> 
> 
> ietf-dslite-b4@2017-11-13.yang <mailto:ietf-dslite-b4@2017-11-13.yang>:
> pyang 1.7.3: pyang --verbose --ietf -p {libs} {model}:
> No validation errors
> 
> yanglint 0.13.79: yanglint --verbose -p {rfclib} -p {draftlib} -p {tmplib} {model} -i:
> No validation errors
> 
> 
> ietf-dslite-aftr@2017-11-14.yang <mailto:ietf-dslite-aftr@2017-11-14.yang>:
> pyang 1.7.3: pyang --verbose --ietf -p {libs} {model}:
> No validation errors
> 
> yanglint 0.13.79: yanglint --verbose -p {rfclib} -p {draftlib} -p {tmplib} {model} -i:
> No validation errors
> ===========
> 
> I can add an explicit "when" statement that will look like:
> 
>    when "/nat:nat/nat:instances/nat:instance/nat:type='napt44'";
> 
> This will require updating the NAT YANG module to specify explicitly a NAT Type. 
> 
>> - You augment nat:mapping-entry, which is also a list with a key of
>> ‘index’. Where are you deriving ‘index’ from?
> 
> [Med] Idem as above.
> 
>> - b4-ipv4-address has a default value of 192.0.0.2, and you have a note
>> that the mask is /29. Are all ipv4 addresses configured with /29 mask? If
>> not, how is netmask indicated to the device?
> 
> [Med] This is about an IPv4 address. The mask is not required to be configured. This address can be picked from the /29 reserved block. 
> 
>> 
>> See additional comments inline.
>> 
>> Cheers.
>> 
>>> On Oct 9, 2017, at 3:34 PM, mohamed.boucadair@orange.com wrote:
>>> 
>>> Dear Mahesh,
>>> 
>>> Thank you very much for the detailed review. Much appreciated.
>>> 
>>> It seems that you reviewed -02 of the draft, while the latest version is
>> -06 (https://datatracker.ietf.org/doc/draft-ietf-softwire-dslite-yang/).
>>> 
>>> As you can see below, almost all the comments do not apply for -06.
>>> 
>>> Please see inline.
>>> 
>>> Cheers,
>>> Med
>>> 
>>>> -----Message d'origine-----
>>>> De : Mahesh Jethanandani [mailto:mjethanandani@gmail.com]
>>>> Envoyé : samedi 7 octobre 2017 02:17
>>>> À : yang-doctors@ietf.org
>>>> Cc : softwires@ietf.org; draft-ietf-softwire-dslite-yang.all@ietf.org;
>>>> ietf@ietf.org
>>>> Objet : Yangdoctors early review of draft-ietf-softwire-dslite-yang-02
>>>> 
>>>> Reviewer: Mahesh Jethanandani
>>>> Review result: On the Right Track
>>>> 
>>>> Document reviewed: draft-ietf-softwire-dslite-yang-02. Do not know why
>> I
>>>> was
>>>> assigned -02 version when I now notice that there are several 03
>> versions
>>>> submitted all the way up to -06.
>>>> 
>>>> Status: On the Right Track.
>>>> 
>>>> I am not an expert in DS-Lite. This review is looking at the draft from
>> a
>>>> YANG
>>>> perspective. With that said, I have marked it as “On the Right Track”
>>>> because
>>>> of some of the points discussed below. The authors are encouraged to
>> spend
>>>> time
>>>> looking at other models for examples on how to write the model, read
>>>> RFC6087,
>>>> Guidelines for YANG documents.
>>>> 
>>>> Summary:
>>>> 
>>>> This document defines a YANG data model for the DS-Lite Address Family
>>>> Transition Router (AFTR) and Basic Bridging BroadBand (B4) elements .
>>>> 
>>>> Overall Comments:
>>>> 
>>>> The draft should refer to YANG 1.1 (RFC 7950) instead of RFC6020.
>>> 
>>> [Med] Can fix this one.
>>> 
>>>> 
>>>> The draft is not NMDA compliant. It carries a separate -state container
>>>> that
>>>> needs to be collapsed into one single container. For example, it
>> carries
>>>> containers such as aftr-current-config which seems to be carrying state
>>>> information for the leafs in dslite-config.
>>> 
>>> [Med] There are no such containers in -06.
>>> 
>>>> 
>>>> Is it given that a server will implement both AFTR and B4?
>>> [Med] No.
>>> 
>>> If not, then
>>>> please
>>>> define feature statements and use if-feature for each part (AFTR and
>> B4),
>>>> so
>>>> implementors can choose what part of the model is implemented.
>> 
>> [mj] I do not see this comment addressed.
> 
> [Med] This is easy to fix. Actually, I interpreted no follow-up from your side as having separate modules is also fine with you. 

Features allow platforms to identify parts of the model that they are capable of supporting, while at the same time removing parts that are not supported. Platforms can deviate a model and say what they do not support parts of the model, but we usually reserve that for the case where there is no (hardware) support for a given feature. 

Mahesh Jethanandani
mjethanandani@gmail.com