Re: [L3sm] New Version Notification for draft-wu-l3sm-rfc8049bis-03.txt

David Ball <daviball@cisco.com> Mon, 09 October 2017 13:50 UTC

Return-Path: <daviball@cisco.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 1267F134220 for <l3sm@ietfa.amsl.com>; Mon, 9 Oct 2017 06:50:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: YES
X-Spam-Score: 5.6
X-Spam-Level: *****
X-Spam-Status: Yes, score=5.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_SBL=20, URIBL_SBL_A=0.1, USER_IN_DEF_DKIM_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 FIDQtQ_rwyha for <l3sm@ietfa.amsl.com>; Mon, 9 Oct 2017 06:50:57 -0700 (PDT)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B77A126C0F for <l3sm@ietf.org>; Mon, 9 Oct 2017 06:50:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=47523; q=dns/txt; s=iport; t=1507557056; x=1508766656; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=kWjnYmQTM07ehSd1TecwECSZwkndmpYY2vaTxXp8qaA=; b=QUGlzOl/efO/OgAlOipgdvT4PLbM1EbPesfuleoZrca6K8guawKTmm2s kLxJd3SdYPrFdyolRjLeybC14p5lJ0L2XQsK/TQVp0D22rq0ZYQGjO2uq W0m6IXakD1CiLmdUVzBGNM8823yxuPfYlPcQrNAJbcd3wTd2gNXBlYaB1 s=;
X-IronPort-AV: E=Sophos;i="5.42,500,1500940800"; d="scan'208,217";a="656248892"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Oct 2017 13:50:54 +0000
Received: from [10.63.23.143] (dhcp-ensft1-uk-vla370-10-63-23-143.cisco.com [10.63.23.143]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id v99Dos1W021634; Mon, 9 Oct 2017 13:50:54 GMT
To: Qin Wu <bill.wu@huawei.com>
Cc: "Jan Lindblad (jlindbla)" <jlindbla@cisco.com>, l3sm <l3sm@ietf.org>
References: <B8F9A780D330094D99AF023C5877DABA9AB378D8@nkgeml513-mbs.china.huawei.com>
From: David Ball <daviball@cisco.com>
Message-ID: <c5269278-b3a4-a12e-a911-0af20d7baa21@cisco.com>
Date: Mon, 9 Oct 2017 14:50:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <B8F9A780D330094D99AF023C5877DABA9AB378D8@nkgeml513-mbs.china.huawei.com>
Content-Type: multipart/alternative; boundary="------------A1E0F3893139D6704D013421"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/l3sm/wBstoPwZ_RHsgnrKEiBlSjdAejM>
Subject: Re: [L3sm] New Version Notification for draft-wu-l3sm-rfc8049bis-03.txt
X-BeenThere: l3sm@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 09 Oct 2017 13:50:59 -0000

Hi Qin,

A few minor comments on the changes in the latest version:

 1. In the flow definition grouping, the 'must' statements that have
    been added for l4-src-port, l4-src-port-range/lower-port and
    l4-src-port-range/upper-port mean, I think, that if all three of
    these exist, they must all have the same value (since l4-src-port <=
    lower-port, lower-port <= upper-port and upper-port <=
    l4-src-port).  Was that the intent?  Or was the 'must' statement on
    l4-src-port supposed to have an 'or' instead of an 'and' in it? 
    Given that (according the the description for l4-src-port-range)
    when only the lower-port is present, it represents a single port,
    perhaps the separate l4-src-port leaf is not needed and could be
    removed?
 2. Same applies to dst-port
 3. The range for guaranteed-bw-percent is given as 0..255 - if this is
    a percentage, shouldn't the range be 0..100?
 4. In grouping site-attachment-ip-connection, I think the 'must'
    statement for leaf ipv4/address-allocation-type has been inverted. 
    It used to say (in draft-04): "current() != 'slaac' and current() !=
    'provider-dhcp-slaac'", which was the correct logic since SLAAC
    doesn't apply to IPv4.  Now (in draft-05) it says:
    "derived-from-or-self(current(), 'l3vpn-svc:slaac') or
    derived-from-or-self(current(), 'l3vpn-svc:provider-dhcp-slaac')" -
    which I think means the value for IPv4 must be slaac or
    provider-dhcp-slaac.  I don't think that's the intent!


Thanks,


     David


On 16/09/2017 04:14, Qin Wu wrote:
>
> Update is done based on your comments:
>
> https://www.ietf.org/rfcdiff?url2=draft-wu-l3sm-rfc8049bis-05
>
> -Qin
>
> *发件人:*L3sm [mailto:l3sm-bounces@ietf.org] *代表 *Qin Wu
> *发送时间:*2017年9月14日9:12
> *收件人:*Jan Lindblad (jlindbla) <jlindbla@cisco.com>;; Benoit Claise 
> (bclaise) <bclaise@cisco.com>;
> *抄送:*l3sm <l3sm@ietf.org>;; adrian <adrian@olddog.co.uk>;; David Ball -X 
> (daviball - ENSOFT LIMITED at Cisco) <daviball@cisco.com>;
> *主题:*Re: [L3sm] New Version Notification for 
> draft-wu-l3sm-rfc8049bis-03.txt
>
> Thank Jan for all YANG related comments, since we are back and forth 
> on choosing between mandatory and optional, definitely some piece in 
> the model need to be cleaned up.
>
> I will address your comments as part of IETF LC review. Thanks again.
>
> -Qin
>
> *发件人:*Jan Lindblad (jlindbla) [mailto:jlindbla@cisco.com]
> *发送时间:*2017年9月13日21:32
> *收件人:*Benoit Claise (bclaise); Qin Wu
> *抄送:*David Ball -X (daviball - ENSOFT LIMITED at Cisco); l3sm; adrian
> *主题:*Re: [L3sm] New Version Notification for 
> draft-wu-l3sm-rfc8049bis-03.txt
>
> I saw the -04 was released now, but I had a quick review of the YANG 
> model in -03. I think it has improved a great deal from a YANG 
> perspective since my last look. I'd say it's in good shape, but of 
> course I have some nits and comments still.
>
> - The indentation is off, which needs to be fixed before publication.
>
> - There are still many optional elements with no default or obvious 
> behavior specified in the description for when they are absent. It's a 
> lot better now than it has been, but work remains.
>
> - A few literal comparisons with identity values are still there. The 
> move to YANG 1.1 helps a lot, but we could improve the correctness and 
> flexibility of the model by changing them to use appropriate XPATH 
> functions.
>
> #1)
>
> 579 choice list-flavor
>
> No default, and not mandatory. What does it mean if the operator does 
> not choose any of permit-any, deny-any-except, permit-any-except?
>
> #2)
>
> 1064 leaf l4-src-port vs. l4-src-port-range/lower-port
>
> What would it mean if l4-src-port and l4-src-port-range/lower-port and 
> higher-port are set at the same time? What if only lower-port or only 
> higher-port are set?
>
> 1094 Same question again for dst-port.
>
> #3)
>
> 1300 leaf rate-limit { type uint8; units percent;
>
> What happens if rate-limit is configured with a value >100%. Is that 
> the same as 100%, or would 200% actually mean double the configured 
> rate? Maybe introduce a range 0..100 ?
>
> 1362 Same question again for guaranteed-bw-percent
>
> #4)
>
> 1415 encryption/layer mandatory even if encryption/enabled = 'false'
>
> Maybe add a must statement to require a value when enabled is true?
>
> #5)
>
> 1734 identityref with string compare
>
>      must "current() != 'slaac' and current() != 'provider-dhcp-slaac'" {
>
> is missing the prefixes, so will always allow slaac. Instead of simply 
> adding the prefix, I suggest the more flexible
>
>      must "derived-from-or-self(current(), 'l3vpn-svc:slaac') or 
> derived-from-or-self(current(), 'l3vpn-svc:provider-dhcp-slaac')" {
>
> #6)
>
> 1747 container provider-dhcp: provider-address and mask
>
> Both of these are optional. What does it mean to leave 
> provider-address blank? What if no mask? What if mask but no 
> provider-address?
>
> Maybe add a description to the provider-address and a must statement 
> to the mask (if mask specified, address has to as well)
>
> 1810 Same question fot dhcp-relay
>
> 1886 Same question for ipv6/provider-dhcp
>
> 1949 Same question for ipv6/dhcp-relay
>
> #7)
>
> 1763 number-of-dynamic-address
>
> Modeled as an uint8. For ipv4 I understand it's hard to imagine anyone 
> asking for more than 255 addresses. But should the number be limited 
> by the choice of integer size?
>
> 1898 Same question for ipv6. Perhaps more relevant there. Is 255 an 
> astronomically large number here? ;-)
>
> #8)
>
> 1774 group-id description
>
> The description says "Group-id the list of start-to-end address 
> belongs to." I beg your pardon.
>
> #9)
>
> 1842 container addresses: provider-address, customer-address, mask
>
> The provider-address and mask are marked mandatory. customer-address 
> optional. Is the mask for provider-, customer-address or perhaps both?
>
> 1981 Same question for ipv6
>
> #10)
>
> 1880 identityref with string compare
>
>         when "../address-allocation-type = 'l3vpn-svc:provider-dhcp' "+
>
>         "or ../address-allocation-type "+"= 
> 'l3vpn-svc:provider-dhcp-slaac'" {
>
> has the right prefixes, so this one works. Still, for the same reason 
> as 1734, I suggest the more flexible
>
>         when "derived-from-or-self(../address-allocation-type, 
> 'l3vpn-svc:provider-dhcp') "+
>
>         "or derived-from-or-self(../address-allocation-type, 
> 'l3vpn-svc:provider-dhcp-slaac')" {
>
> #11)
>
> 1918 list address-group: start-address and end-address
>
> Both are optional. What if you don't give either one, or if you give 
> start but not end, or vice versa?
>
> #12)
>
> 2024 container bfd: fixed-value
>
> Optional and has no default value, but is selected by default, so what 
> is the BFD holdtime if not set?
>
> #13)
>
> 2184 address-family and address both optional
>
> What if you set address but not address-family, or vice versa?
>
> I did not check any of the examples this time.
>
> Thanks,
>
> /jan
>
>     Dear all,
>
>     I was about the click the "IETF LC" call button, but I understand
>     from Qin that a new document version will be produced.
>     I'll then click this button when the next version is posted.
>
>     Regards, B.
>
>         Completely agree.  In the case in question
>         (address-allocation-type leaves), no value means "IPv4/IPv6 is
>         not enabled for this site-network-access".
>
>             David
>
>         On 12/09/2017 07:54, Jan Lindblad (jlindbla) wrote:
>
>             Qin, team,
>
>                  *
>
>
>                     For the address-allocation-type leaves, I saw you
>                     removed the default (as agreed) but also added
>                     'mandatory true' (which was not discussed). 
>                     Making these leaves mandatory does not address the
>                     problem - if anything, it makes it worse.  (Issue
>                     15 from draft-02)
>
>                 [Qin]: Fine to me, it looks we need to seek balance
>                 between making all parameters mandatory and making all
>                 parameters optional. I hope Jan will be happy with
>                 these changes.
>
>             Sometimes mandatory true is needed to make a sane model,
>             but mandatory elements also tend to make a model clunky,
>             examples large etc. So I generally like optional elements.
>             The problem with optional elements is people tend to
>             forget that it may not be obvious what a system is
>             supposed to do when there is no value specified. Adding a
>             default or text in the description is therefore important.
>             At the end of the day, we're writing a contract. For
>             interoperability to happen, there must be no holes in the
>             contract that are open to (differing) interpretation.
>
>             So sure, you can have optional elements (this should even
>             be the normal case), and they don't need to have a default
>             statement. But if so, *describe* what it means; what the
>             system is supposed to do. No value is also a value.
>
>             Best,
>
>             /jan
>
>         -- 
>
>         David Ball
>
>         <daviball@cisco.com>; <mailto:daviball@cisco.com>
>
>
>
> _______________________________________________
> L3sm mailing list
> L3sm@ietf.org
> https://www.ietf.org/mailman/listinfo/l3sm

-- 
David Ball
<daviball@cisco.com>;