Re: [Teas] Benjamin Kaduk's Discuss on draft-ietf-teas-yang-te-types-10: (with DISCUSS and COMMENT)

Tarek Saad <tsaad@juniper.net> Thu, 31 October 2019 05:29 UTC

Return-Path: <tsaad@juniper.net>
X-Original-To: teas@ietfa.amsl.com
Delivered-To: teas@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 33101120052; Wed, 30 Oct 2019 22:29:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.635
X-Spam-Level:
X-Spam-Status: No, score=0.635 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 76RgFXGonLnL; Wed, 30 Oct 2019 22:29:36 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8DD3712006E; Wed, 30 Oct 2019 22:29:36 -0700 (PDT)
Received: from pps.filterd (m0108163.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9V5QtN6012030; Wed, 30 Oct 2019 22:29:30 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=yCHBxWeiBVeOdy1bTiH4jjnJqcmsuIQ5qiWG4as1GSI=; b=gdBJaRObhgbAbpTdTLEaP1OZWdyP/N0GO3NsCBpW581Tjv6yCtVkp8Hj+5k1MyM70tf9 Vzzyq7ciR3eqgrutVtpQq2txHQSQ5hGUSYBrD42XWd92ca414SQS98OtnLrKonFMDZIZ oWN4lH9RTWbXVCYy2CIM4WBUZXZ+Gl0iZgLDrX2UNh8HYiHodP3qql/QyBZF7hNTlilq sZQXR/uceverCSkYYIkhrNFSVKvlfiZVqC7hz0GCBYy+SSRtt2XMrXAFvvqypeMIDIZ5 TRo+h3W679ojQUMZih5fG6wjpOXgweDc6Zt5YXoZoeTXbfTwoDKh1PhBiTxTRzFznwec VA==
Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp2054.outbound.protection.outlook.com [104.47.37.54]) by mx0b-00273201.pphosted.com with ESMTP id 2vy6q39sqv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 30 Oct 2019 22:29:29 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=egEjp4vNc7zp2IC7okNOgkRJUs4DG6jTmMMvl/ySfzWc5yHHE8Q1qd9EE/u6A+wyZZIGhrL7D95pxnAeilB1VGpM6lfxBNhDrA/bhkAvA9lx3ST+g/dxvfgtTdObrofGZ57OavNgjiU7OvMcDVxQiwrdS61cIaxKicJL6A1aJy6f6NkVCEWmzBFe3V9X7AvdwukEYWFLwe47dNdsHZFuVZ02PA6varBCQ+KCYRFV04Si1J9+eOnYHVsuFDUfblUNxPIuH7fxXz+Xe3athNN9m2wGst6o2SoKs/OAwwhG5cxAcclB/2+xHLAp1t55GFPf6Iwl416Yw2WSN6LFqYZhjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yCHBxWeiBVeOdy1bTiH4jjnJqcmsuIQ5qiWG4as1GSI=; b=aREN6azD2SJ0GG1nmadbZV0auKxVb1sjelsjLReKV5FvyqinEZccdklXPYYXdCSxQXLeB48NnZit5RSRPEHD7TRVjG/XFGGfDJ5NT/1EhWR+9hwH4xnabVKgym/9lGmB7Wxi/YuIXLmR2LcnY0QU+obv8e6QCh+fabHhCvGc3qtsJ9ceSkQAvrZQ0CKeUMJoUtZSFCulYmHPknl7YQWFAmitI4J0Zk2JGpuKS0EMMj3ID8fcL8Axk4EpGvA6EE4KMN/QOZ/epT0nvboHABuzPwqOtsuvPVV2IKwp1N1Q16vr61D6pw51fwdBe3ojKzoMCBirbdHiWEaKOTi3QtiOkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
Received: from BYAPR05MB4341.namprd05.prod.outlook.com (20.176.252.21) by BYAPR05MB5016.namprd05.prod.outlook.com (20.177.230.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2408.15; Thu, 31 Oct 2019 05:29:27 +0000
Received: from BYAPR05MB4341.namprd05.prod.outlook.com ([fe80::7551:cfe3:8b1e:e3cd]) by BYAPR05MB4341.namprd05.prod.outlook.com ([fe80::7551:cfe3:8b1e:e3cd%7]) with mapi id 15.20.2387.028; Thu, 31 Oct 2019 05:29:26 +0000
From: Tarek Saad <tsaad@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>, Tarek Saad <tsaad=40juniper.net@dmarc.ietf.org>
CC: The IESG <iesg@ietf.org>, "draft-ietf-teas-yang-te-types@ietf.org" <draft-ietf-teas-yang-te-types@ietf.org>, Lou Berger <lberger@labn.net>, "teas-chairs@ietf.org" <teas-chairs@ietf.org>, "teas@ietf.org" <teas@ietf.org>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-teas-yang-te-types-10: (with DISCUSS and COMMENT)
Thread-Index: AQHVV3yIlarHMZU2UEGdTIt97LkNs6dGDOoAgAUyHoCAKSdAAA==
Date: Thu, 31 Oct 2019 05:29:26 +0000
Message-ID: <99DCD09F-9243-469A-AC37-85C085F58452@juniper.net>
References: <156632204190.473.13624423113790831871.idtracker@ietfa.amsl.com> <C7D8EFC7-3332-42CD-9CCC-FC6E2DBE4429@juniper.net> <20191004210217.GI6722@kduck.mit.edu>
In-Reply-To: <20191004210217.GI6722@kduck.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Enabled=true; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Name=Juniper Business Use Only; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Enabled=true; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_ContentBits=0; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_Method=Standard; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_ActionId=8b7e17d7-1c4c-4504-a036-0000aa563669; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_SetDate=2019-10-31T05:08:08Z;
user-agent: Microsoft-MacOutlook/10.1e.0.191013
x-originating-ip: [66.129.242.12]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 9e2bc60e-7911-4d2f-624c-08d75dc34bec
x-ms-traffictypediagnostic: BYAPR05MB5016:
x-ms-exchange-purlcount: 4
x-microsoft-antispam-prvs: <BYAPR05MB501656B62BFFB6D287F0E050B7630@BYAPR05MB5016.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 02070414A1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(136003)(396003)(346002)(376002)(39860400002)(199004)(189003)(52314003)(51914003)(229853002)(6512007)(8936002)(66066001)(86362001)(33656002)(91956017)(2906002)(36756003)(6116002)(3846002)(6246003)(2171002)(4326008)(6436002)(6486002)(6306002)(110136005)(11346002)(5660300002)(478600001)(64756008)(66476007)(316002)(25786009)(54906003)(66556008)(76176011)(966005)(26005)(66574012)(66446008)(66576008)(71200400001)(30864003)(186003)(102836004)(256004)(14444005)(5024004)(81156014)(81166006)(53546011)(99936001)(2616005)(14454004)(71190400001)(8676002)(6506007)(99286004)(446003)(486006)(476003)(66946007)(305945005)(76116006)(7736002)(58126008)(579004)(559001); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB5016; H:BYAPR05MB4341.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: RzxHM0dxF0qJXS9fuknVcavozecdedwfPyNaBxBdtnzCLW8aqW7ALPFriAYo8RsW4y47w2HFokxmd709TMY12pv/vMdxikqhh055qWLaqigw9sULjwRuLFIeE/01qkbjw+OMxxJUf1E8pj21ojrW8VAm+sWseZ3jMAP6mhtUnRR1FxQTPNTPc689axDI7zlHpiC9hxp/9uX/fLKPCTn4cuT+zIoGSpy7Py27wSPrSF07Ix2dfs6HxRMXAWMxex5R/dKkMwVvYT4ENulp9xqyg8hNj3Bgf1y1b0kHGItAPz3raaN6lFu2RW45yTqOBKxBNpCga3KKxGyLdXH4fm9BP/umY6zFmfZk0f+dr6adlW1TAjXE6ChK7D5KW9o6f/j2ML+qcR8COVp1n2D4smX7qRupD/Upgz2+AQ+/1WJ6TUB7h82Uy3QLVu6+eg68RYiSpsJ8cIC2kdz+SocHL5y+rqcoKhiExYOb45iBhUCczGw=
x-ms-exchange-transport-forked: True
Content-Type: multipart/mixed; boundary="_003_99DCD09F9243469AAC3785C085F58452junipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e2bc60e-7911-4d2f-624c-08d75dc34bec
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2019 05:29:26.8114 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: l06MFuxHc8RgW532NYMBOXx1Jwlgyf3PGgpc8wh/4MLiWGPGZWGBVZljIf6kgwjGoM809U2MQVjhxocRDvy7eA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB5016
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-31_02:2019-10-30,2019-10-31 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 spamscore=0 impostorscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 mlxscore=0 bulkscore=0 malwarescore=0 clxscore=1011 lowpriorityscore=0 adultscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1908290000 definitions=main-1910310054
Archived-At: <https://mailarchive.ietf.org/arch/msg/teas/uBaJ70lgw9doAypa7JgoqsJPd9Q>
Subject: Re: [Teas] Benjamin Kaduk's Discuss on draft-ietf-teas-yang-te-types-10: (with DISCUSS and COMMENT)
X-BeenThere: teas@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Traffic Engineering Architecture and Signaling working group discussion list <teas.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/teas>, <mailto:teas-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/teas/>
List-Post: <mailto:teas@ietf.org>
List-Help: <mailto:teas-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/teas>, <mailto:teas-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 31 Oct 2019 05:29:39 -0000

Hi Benjamin,

Thanks again for your comments. We poked netmod WG about the point you raised on "ordered by user" for state list.
The response we got (see attached), is for state lists, it's all about what the system orders.

For NMDA (intended/applied), the rw list will be marked with "ordered by user" and applied/state returns the items as ordered by system - they are supposed to match the user input in this case.

With this, I believe the order as we have is ok.

Regards,
Tarek



On 10/4/19, 5:02 PM, "Benjamin Kaduk" <kaduk@mit.edu> wrote:

    On Tue, Oct 01, 2019 at 05:41:37PM +0000, Tarek Saad wrote:
    > Hi Benjamin,
    > 
    > Thank you very much for the thorough review and for the valuable comments. We have uploaded revision -11 that attempts to address those comments. Please see inline for detailed responses. Let us know if there are further outstanding comments.
    > 
    > On 8/20/19, 1:27 PM, "Benjamin Kaduk via Datatracker" <noreply@ietf.org> wrote:
    > 
    >     Benjamin Kaduk has entered the following ballot position for
    >     draft-ietf-teas-yang-te-types-10: Discuss
    >     
    >     When responding, please keep the subject line intact and reply to all
    >     email addresses included in the To and CC lines. (Feel free to cut this
    >     introductory paragraph, however.)
    >     
    >     
    >     Please refer to https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_iesg_statement_discuss-2Dcriteria.html&d=DwICaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=Kd6NW5ctLWr7GB646PVmMByvi8wQxPILpKhHvGQeRHY&m=hnPuRIqXqStfK232Nk2hmq9WsTD2edVNgVLywB7I9S8&s=-tmE5kZMwh42TgMAaC3M4xeGTxYdYNt5fZ7gnVI59m0&e=
    >  
    >     for more information about IESG DISCUSS and COMMENT positions.
    >     
    >     
    >     The document, along with other ballot positions, can be found here:
    >     https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dietf-2Dteas-2Dyang-2Dte-2Dtypes_&d=DwICaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=Kd6NW5ctLWr7GB646PVmMByvi8wQxPILpKhHvGQeRHY&m=hnPuRIqXqStfK232Nk2hmq9WsTD2edVNgVLywB7I9S8&s=RkaTEY5gt6bhkr_3YkKb0CkmkQyY4-GYjfuvWkkKVaQ&e= 
    >     
    >     
    >     
    >     ----------------------------------------------------------------------
    >     DISCUSS:
    >     ----------------------------------------------------------------------
    >     
    >     There's a couple points (describe further in the comment section) that
    >     I'd like to get a bit more clarity on:
    >     
    >     (1) the semantics of admin-group hex strings of length smaller than 11
    > [TS]: RFC6991 defines the hex-string as stream of octets - separated by colon. The below are acceptable representations that result in same value (bit-position 0 is set).
    > 01
    > 00:01
    > 00:00:00:01
    
    I'm not coming to the conclusion just based on what's written in this
    document and RFC 6991.  You seem to be assuming that the hex string is
    mapped to the four-octet bitmask using a little-endian representation of
    the bitmask with zero padding, but I can't find where that's stated.
[TS]: Yes, our assumption was it's HBO representation of octets for the hex-string type. Since hex-string type seems to allow for both endianness (seems to be the case from RFC 6991), we are OK to add text to dictate little endian/HBO in our model for this.


    
    >      (2) the units for the te-bandwidth numerical values (and in what cases
    >     no units are needed), and for performance-metrics-*-way-bandwidth values
    > [TS]: The unit is technology dependent. For example for packet, the example we give in the description is inline with the type bandwidth-ieee-float32 defined in RFC8294. We can clarify this further in description if needed.
    
    I was most concerned about the "packet switching type" since my cursory
    look at OTN and/or DWDM indicated that the listed parameters do imply an
    absolute bandwidth.  Please do further clarify what the units are for the
    float32 value used for packet-switching types.
[TS]: Yes, it is bytes per second as per bandwidth-ieee-float32 (RFC8294) -also inline with rfc3630 and rfc5305#section-3.6. We can add the (not bits!) as per your suggestion to highlight this.
NEW:
"units are bytes (not bits!) per second"

    >     (3) whether threshold-accelerated-advertisement's use of relative vs.
    >     absolute values requires any special handling
    > [TS]: these are absolute values and inline with the rfc7810#section-5 and rfc7471#section-5
    [comments below]
    
    >     (4) whether we want to specify any requirements/error-handling/etc. when
    >     there is potential for "nonsense" configuration, such as a
    >     max-constraint being configured as numerically smaller than a
    >     min-constraint
    > [TS]: We have some checks where it was needed. Implementations can also make additional restrictive checks with a deviations if needed.
    
    Okay.
    
    >     (5) what the "variation" in the te-packet-types module's leafs is
    >     intending to measure.
    > [TS]: the per link delay variation as defined in RFC7823.    
    
    I looked at RFC 7823 and it doesn't help me very much.  Is there a
    mathematical formula for what it measures?

[TS]: I think RFC3393 further clarifies the definition of PDV.
1.2. Definition

   A definition of the IP Packet Delay Variation (ipdv) can be given for
   packets inside a stream of packets.

   The ipdv of a pair of packets within a stream of packets is defined
   for a selected pair of packets in the stream going from measurement
   point MP1 to measurement point MP2.

   The ipdv is the difference between the one-way-delay of the selected
   packets.    

    
    >     ----------------------------------------------------------------------
    >     COMMENT:
    >     ----------------------------------------------------------------------
    >     
    >     In general it's hard to examine many of these types and see whether they
    >     are fit for purpose without some sense of how they would be used, but of
    >     course following a chain of references for all of the types in question
    >     wouldu be tedious to the point of exhaustion.  I'm reluctant to start
    >     getting into examples (since such a list would necessarily be
    >     incomplete), but if you want one, the 'suppression-interval' leaf has a
    >     very terse description, that will presumably be supplemented by some
    >     text in some other document about what exactly is getting suppressed and
    >     when, but if I were to try to implement from just this document I'd be
    >     doing a lot of guessing.
    >     
    > [TS]: Agreed. For 'suppression-interval', it is detailed in rfc7810#section-6. We will update the description/reference for this.
    > 
    >     Section 3
    >     
    >        types for TE generic types and ietf-te-packet-types for packet
    >        specific types.  Other technology specific TE types are outside the
    >     
    >     nits: "packet-specific" and "technology-specific" to hyphenate the
    >     compound adjectives.
    > [TS]: updated.
    >     
    >     Section 3.1
    >     
    >        te-node-id:
    >     
    >           A type representing the identifier for a node in a TE topology.
    >           The identifier is represented as 32-bit unsigned integer in the
    >           dotted-quad notation.  This attribute MAY be mapped to the Router
    >     
    >     Why is te-node-id IPv4-centric?  E.g., RFC 6119 describes an "IPv6 TE
    >     Router ID" TLV as well as the "TE Router ID" TLV that we reference here
    >     for the node ID.
    >     Furthermore, either it's a 32-bit unsigned integer or it's represented
    >     in the dotted-quad notation, but the dotted-quad notation doesn't really
    >     count as a 32-bit unsigned integer.
    > [TS]: this was discussed on the WG mail list, and agreement was to keep TE node ID as dotted-quad 4 octets. We updated the description as below.. https://urldefense.com/v3/__https://mailarchive.ietf.org/arch/msg/teas/bP5VurFZKQVx3hNWxUVz6alRIGg__;!8WoA6RjC81c!QzYpTPxbg-aKPGhbRPxgYU7B7c_NlriZzhfN9Ji4A_HgoQ5ByOIHiqBtYB9JKQ$ 
    > We can update description to:
    > OLD:
    >        The identifier is represented as 32-bit unsigned integer in
    >        the dotted-quad notation.
    > NEW:
    >        The identifier is represented as 4 octets in dotted-quad notation.    
    >        te-metric:
    >     
    >           A type representing the TE link metric as defined in [RFC3785].
    >     
    >     (editorial) the phrase "link metric" does not appear in RFC 3785.
    > [TS]: Sure. 
    > OLD:
    > A type representing the TE <link> metric as defined in [RFC3785].
    >  
    > NEW:
    > A type representing the TE metric as defined in [RFC3785].
    >     
    >     Section 3.2
    >     
    >        The ietf-te-packet-types module covers the common types and groupings
    >        specific packet technology.
    >     
    >     nit: I think there's a word missing here.
    > [TS]: update to: 
    > NEW:
    >        The ietf-te-packet-types module covers the common types and groupings
    >        that are specific to packet technology.
    >     
    >        performance-metrics-attributes-packet:
    >     
    >           A YANG grouping for the augmentation of packet specific metrics to
    >           the generic performance metrics grouping parameters.
    >     
    >     nit(?) I can't tell which way the augmentation is supposed to go, just
    >     from this text.
    > [TS]: update text to:
    > NEW: A YANG grouping that contains the generic performance metrics and additional packet specific metrics.
    >     
    >     Section 4
    >     
    >       typedef admin-group {
    >         type yang:hex-string {
    >           /* 01:02:03:04 */
    >           length "1..11";
    >         }
    >         description
    >           "Administrative group/Resource class/Color representation in
    >            hex-string type.";
    >         reference "RFC3630 and RFC5305";
    >     
    >     RFC 5305 says to treat this as essentially a bitmask.  What are the
    >     semantics when I only supply a string of (say) length 1 or 2?
    > 
    > [TS]: number is stored as 32-bits. As indicated earlier:
    > 01
    > 00:01
    > 00:00:00:01 all indicate bit-position 0 is set and can internally be represented as 0x00000001
    > 
    >     
    >       typedef performance-metrics-normality {
    >            [...]
    >         reference
    >           "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
    >            RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions.
    >            RFC7823: Performance-Based Path Selection for Explicitly
    >            Routed Label Switched Paths (LSPs) Using TE Metric
    >            Extensions";
    >     
    >     None of these three references describes "normal" or "abnormal".
    > [TS]: The RFCs refer to it as "anomaly or anomalous". We updated the description to indicate this.
    >     
    >       typedef te-bandwidth {
    >         type string {
    >           pattern
    >             '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
    >           + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|'
    >           + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+'
    >           + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
    >           + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|'
    >           + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*';
    >         }
    >     
    >     Can the document shepherd please report what validation has been done
    >     for this pattern?
    >     
    >            For packet switching type, a float number is used, such as
    >            0x1p10.
    >     
    >     What kind of units are implied for this (and the other types)?
    > [TS]: An answer was given earlier, let us know if that clarifies.
    >     
    >       typedef te-metric {
    >         type uint32;
    >         description "TE link metric";
    >         reference "RFC3785";
    >     
    >     [same comment about "link metric" and 3785]
    > [TS]: Addressed.
    >     
    >       typedef te-node-id {
    >         type yang:dotted-quad;
    >         description
    >           "A type representing the identifier for a node in a TE
    >            topology.
    >            The identifier is represented as 32-bit unsigned integer in
    >            the dotted-quad notation.
    >     
    >     [same comment about uint32 vs. dotted-quad]
    > [TS]: Addressed.
    >     
    >       typedef te-oper-status {
    >         [...]
    >     
    >     Is there some way (a grouping?) to deduplicate the admin and operational
    >     status enumerations?  They seem to be nearly identical in terms of the
    >     range of possible values.
    > [TS]: Yes, created a common type and referenced it the respective typedefs.
    >     
    >       identity se-style-desired {
    >         [...]
    >     
    >     (et seq) The rtgdir's comments about whether 'base' should be present
    >     seems relevant for these as well.
    > [TS]: thanks for pointing it out, added the missing base.
    >     
    >       identity oob-mapping-flag {
    >     [....]
    >       identity entropy-label-capability {
    >     
    >     Are all of the flags based on lsp-attributes-flags supposed to be
    >     "desired" in the description (these aren't)?
    > [TS]: These identities simply indicate the LSP attributes. Every flag has its own semantics. The respective RFCs describe whether any action is to be taken by nodes along the LSP path.
    > 
    >       identity oam-mep-entity-desired {
    >         base lsp-attributes-flags;
    >         description "OAM MEP entities desired";
    >     
    >     We probably should expand Maintenance Entity Group End Point (and MIP,
    >     below).
    > [TS]: expanded.
    >     
    >       identity loopback-desired {
    >         base lsp-attributes-flags;
    >         description
    >           "This flag indicates a particular node on the LSP is
    >            required to enter loopback mode.  This can also be
    >     
    >     Is there a mismatch between "desired" and "required"?
    > [TS]: yes, RFC7571 uses the term "required" (as we have in description). We renamed the identity to be in sync with the RFC.
    > OLD:
    > identity loopback-desired {
    > NEW:
    > identity loopback-required {
    >     
    >       identity rtm-set-desired {
    >         base lsp-attributes-flags;
    >         description
    >           "Residence Time Measurement (RTM) attribute flag";
    >     
    >     Is there a mismatch regarding "desired" in the identity name vs.
    >     description?
    > [TS]: RFC 8169 section 4.4 uses "requested" - we think this can be equated to desired.
    > <snip>
    > .. indicates to the egress node that RTM is requested
    > </snip>
    > 
    > updated:
    > NEW:
    >       identity rtm-set-desired {
    >         description
    >           "Residence Time Measurement (RTM) attribute flag requested";
    > 
    > 
    >     
    >       identity link-protection-type {
    >         description "Base identity for link protection type.";
    >       }
    >       identity link-protection-unprotected {
    >         base link-protection-type;
    >     
    >     [I assume the WG had some good discussion about identities vs.
    >     enumeration and don't want to second-guess that.]
    > [TS]: yes, this was discussed and the choice was to pick identities over enums for extensibility. We used enums in places where extensions were not expected.
    >     
    >       identity association-type-recovery {
    >         base association-type;
    >         description
    >           "Association Type Recovery used to association LSPs of
    >            same tunnel for recovery";
    >     
    >     nit: the grammar seems weird, here; maybe a missing word?
    > [TS]: NEW:
    >           "Association Type Recovery used to associate LSPs of
    >            same tunnel for recovery";
    >     
    >       identity path-locally-computed {
    >         base path-computation-method;
    >         description
    >           "indicates a constrained-path LSP in which the
    >           path is computed by the local LER";
    >         reference "RFC3209";
    >     
    >     In line with the gen-art reviewer's comments, a section ref might be
    >     useful here.
    > [TS]: Added references.
    >     
    >       identity path-externally-queried {
    >         base path-computation-method;
    >         description
    >           [...]
    >           to the external source to aid computation); and the path that is
    >           returned by the external source is not required to provide a
    >           wholly resolved path back to the originating system - that is to
    >           say, some local computation may also be required";
    >     
    >     nit: "provide a wholly resolved path back to the originating system"
    >     could potentially be read ambiguously about whether "back to the
    >     originating system refers to the path or where the (partial) result is
    >     returned to.
    > [TS]: reworded:
    > NEW:
    > ..................................................................................... The path that is
    > returned by the external source may require further local
    > computation on the device.";
    >     
    > 
    >       identity te-tunnel-type {
    >         [...]
    >     
    >     There is no need for a mp2p or mp2mp tunnel type?
    >     
    >       identity tunnel-state-type {
    >         description
    >           "Base identity for TE tunnel states";
    > [TS]: no, none standardized for TE exists as of yet.
    >     
    >     This is just "tunnel state" not "operational state"?
    >     
    >       identity lsp-state-type {
    >         description
    >           "Base identity for TE LSP states";
    >     
    >     Is there a state machine for which transitions between states based on
    >     this identity are allowed, or is it basically just a full mesh?
    > [TS]: we've only modelled possible state outputs. There is no standard state-machine. Implementations may execute a state-machine for transitions, but we did not think it needs to be covered by the model.
    >     
    >       identity path-invalidation-action-drop-tear {
    >         base path-invalidation-action-type;
    >         description
    >           "TE path invalidation action tear";
    >     
    >     Is there a reference for this (or the other
    >     path-invalidation-action-type)?  My naive reading wants to complete it
    >     to "teardown" but I have low confidence that is correct.
    > [TS]: renamed identity 'teardown' and added reference to RFC3209 section 2.5 talks about these general principles.
    >     
    >       identity path-metric-optimize-includes {
    >         [...]
    >       identity path-metric-optimize-excludes {
    >         base path-metric-type;
    >         description
    >           "A metric that optimizes the number of excluded resources
    >            specified in a set";
    >     
    >     optimizes to minimize or maximize it?
    > [TS]: Update to:
    > NEW:
    >           "A metric that optimizes to a maximum the number of excluded resources
    >            specified in a set";
    >     
    >       grouping performance-metrics-one-way-bandwidth {
    >         [....]
    >     
    >     What are the units on the bandwidth values herein?  bits per second?
    > [TS]: The type bandwidth-ieee-float32 is defined in RFC8294. The expected units are bytes per second (this is also inline with rfc3630 and rfc5305#section-3.6).
    
    I note that RFC 5305 even feels a need for a parenthetical: "units are
    bytes (not bits!) per second".  To me, the risk/reward is clearly in favor
    of being explicit.
[TS]: addressed earlier.
    
    >           container threshold-accelerated-advertisement {
    >             description
    >               "When the difference between the last advertised value and
    >                current measured value exceed this threshold, anomalous
    >                announcement will be triggered.";
    >             uses performance-metrics-thresholds;
    >     
    >     Are we reusing the performance-metrics-threshold container, which up
    >     until now has been used for absolute measurements, to hold the
    >     corresponding relative values (differences)?
    > [TS]: yes, but these are currently defined as absolute threshold values - not differences/relative.
    
    The "difference between the last advertised value and current measured
    value" is a difference with respect to a baseline, which, while still
    measured in the same units, is qualitatively different than an absolute
    value (i.e., against zero baseline).  The difference is much smaller than
    when we go to a percentage difference, where the units change, but the
    semantics are slightly different.  Anyway, it sounds like you don't think
    there is a problem here, so I can accpet that.
    
    >       grouping optimization-metric-entry {
    >         [...]
    >         leaf weight {
    >     
    >     Where is the sense of the 'weight' leaf defined?  That is, to larger
    >     weight values get more traffic or less traffic?
    > [TS]: this weight is input to optimization function when trying to optimize for multiple metrics. A higher weight signifies a more important metric when trying to find optimal path. 
    
    What reference chain can the reader follow to learn this fact?
[TS]: several references for multiple metric optimization can be found in literature.. The closest in IETF I found was in rfc8189. We can add it to the reference/description.
    
    >         container path-srlgs-names {
    >             [...]
    >             leaf-list names {
    >               type string;
    >               description "List named SRLGs";
    >     
    >     nit: missing "of"?
    > [TS]: updated.
    >     
    >       grouping generic-path-disjointness {
    >         description "Path disjointness grouping";
    >         leaf disjointness {
    >           type te-path-disjointness;
    >           description
    >             "The type of resource disjointness.
    >              Under primary path, disjointness level applies to
    >              all secondary LSPs. Under secondary, disjointness
    >              level overrides the one under primary";
    >     
    >     What does "under" mean?  It seems like it has something to do with the
    >     position in the hierarchy where this grouping gets instantiated, which
    >     is potentially subtle.
    > [TS]: Reworded to clarify.
    > NEW:
    >             "The type of resource disjointness.
    >              When configured for a primary path, the disjointness level applies to
    >              all secondary LSPs. When configured for a secondary path, disjointness
    >              level overrides the one configured for the primary path";
    >     
    >         container path-properties {
    >           config false;
    >           [...]
    >           container path-route-objects {
    >             description
    >               "Container for the list of route objects either returned by
    >                the computation engine or actually used by an LSP";
    >             list path-route-object {
    >               key index;
    >               ordered-by user;
    >     
    >     (How do 'config false' and 'ordered-by user' interact?)
    > [TS]: We discussed this within the authors. We think ‘ordered-by user’ for config false leafs will be ignored -- and hence would fallback to the default (‘ordered-by system’) as per RFC6020. Note, we think this is a common behavior that affect NMDA model(s) when extracting applied configuration. Please correct our thinking if this is not true and we’ll try to address it.
    
    I have essentially no domain knowledge on this point; we'd need to call in
    some outside expert if we feel an authoritative answer is important.
[TS]: emailed to netmod and response stated earlier.

Regards,
Tarek

    Thanks for the updates,
    
    Ben
    
    > 
    >     
    >     Section 5
    >     
    >        grouping performance-metrics-attributes-packet {
    >          [...]
    >          uses te-types:performance-metrics-attributes {
    >            augment performance-metrics-one-way {
    >              leaf one-way-min-delay {
    >              [...]
    >              leaf one-way-max-delay {
    >     
    >     What kind of sanity or error checking is there for the nodes in this
    >     model, e.g., if max delay is configured to be smaller than min delay?
    > [TS]: these are measured values over a time period and maintained as state. The minimum/maximum being over the last period.
    >     
    >              leaf one-way-delay-variation {
    >                type uint32 {
    >                  range 0..16777215;
    >                }
    >                description "One-way delay variation in micro seconds.";
    >     
    >     What does "variation" mean?  Deviation from mean?  Variance?  Mean
    >     absolute error?
    > [TS]: This attempts to model the parameters as described in RFC7823 (including delay variation/jitter).
    >     
    >              leaf one-way-packet-loss {
    >                type decimal64 {
    >                  fraction-digits 6;
    >                  range "0 .. 50.331642";
    >     
    >     Is there a reason for the oddly specific upper limit?
    > [TS]: this is described in https://urldefense.com/v3/__https://tools.ietf.org/html/rfc7810*section-4.4__;Iw!8WoA6RjC81c!QzYpTPxbg-aKPGhbRPxgYU7B7c_NlriZzhfN9Ji4A_HgoQ5ByOIHiqAcSkO6tw$  . Updated the description and reference to indicate this.
    >    “Link Loss: This 24-bit field carries link packet loss as a percentage
    >    of the total traffic sent over a configurable interval.  The basic
    >    unit is 0.000003%, where (2^24 - 2) is 50.331642%. “
    > 
    > 
    >     I also can't quite convince myself from the RFC 7950 grammar whether the
    >     quotes on the range are valid and/or needed.
    > [TS]: RF7950 expects a string for the range argument - so it's OK. Also, made it consistent across the modules
    >     
    >     I also am unsure as to how useful the "normality" is for some of these,
    >     like the packet loss and delay-variation values.
    > [TS]: RFC7823 suggests possible utility of those values.
    > 
    > Regards,
    > Tarek
    >     
    >     [same comments about two-way metrics as one-way metrics, I think.
    >     Also the -packet variants.]
    >     
    >     Section 7
    >     
    >     We probably could say more here if we want, though I'm as-yet decided on
    >     whether we should.
    >     That is, things like editing  the config could cause traffic to be
    >     disallowed, routed on suboptimal paths, routed through locations more
    >     easily targeted for other purposes, etc., and reading config/status
    >     could reveal information about network topology, which sites might be
    >     most sensitive as targets for subsequent attacks, etc..  It's less clear
    >     if there's much that would allow for identification of specific
    >     users/customers or their traffic, though.  Maybe some of the DSCP stuff,
    >     in some cases.
    >     
    >     Section 10.2
    >     
    >     A question for the responsible AD: do references that are used in
    >     "reference" statements need to be normative references?  (E.g., RFC
    >     3471.)
    >     
    >     
    >     
    > 
    

--- Begin Message ---
Hi,

Tarek Saad <tsaad=40juniper.net@dmarc.ietf.org> wrote:
> Hi,
> 
> We are wondering if “ordered by user” has any effect on a (config
> false)/state list?
> Given RFC6020 specifies “ordered by system” as the default order, does
> this mean it is the order assumed for a state list with “ordered by
> user”?

There is no effect "on the wire"; the entries are sent in the order
determined by the server in both cases.  But it informs to the
consumer of the data model that the order of the list entries carries
some meaning.


/martin


--- End Message ---
--- Begin Message ---
On Mon, Oct 28, 2019 at 08:42:57AM +0100, Martin Bjorklund wrote:
> Hi,
> 
> Tarek Saad <tsaad=40juniper.net@dmarc.ietf.org> wrote:
> > Hi,
> > 
> > We are wondering if “ordered by user” has any effect on a (config
> > false)/state list?
> > Given RFC6020 specifies “ordered by system” as the default order, does
> > this mean it is the order assumed for a state list with “ordered by
> > user”?
> 
> There is no effect "on the wire"; the entries are sent in the order
> determined by the server in both cases.  But it informs to the
> consumer of the data model that the order of the list entries carries
> some meaning.
>

For operational is always about what the system actually does.

For ordered by user entries configured by intended, the order of
entries used by the system should be the order defined by the users
but ultimately operational needs to report what is actually used. (If
a system fails to honor ordered by user, this should be visible from
comparing operational and intended. This is essential for debugging.)

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://urldefense.com/v3/__https://www.jacobs-university.de/__;!8WoA6RjC81c!Q1j8Eo7gWrzRD2s-zQP9mzf1CEc2Apf6phYBzgFGry5SdHbe1fXOKi13j0aTUw$ >

--- End Message ---