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

Tarek Saad <tsaad@juniper.net> Tue, 01 October 2019 17:41 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 7EC5E1200DE; Tue, 1 Oct 2019 10:41:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham 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 tOwH2YumsNny; Tue, 1 Oct 2019 10:41:47 -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 3E4AA120058; Tue, 1 Oct 2019 10:41:47 -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 x91HaaaM016200; Tue, 1 Oct 2019 10:41:39 -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 : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=ExSCJ7E/3FrwzyUWM4UYRpHFvuWgKZwzYc0kMa6fP1g=; b=sqVeB95SSQYLRGDlfBeBLrpwfn4kBU46ExhBLhDJUPaD2esXf/y2sG3rX11H11MOWbQ4 meYPqBSOf3r2v1s08YI6vq7EkC6Uq25YiMB7sj0q6iV+3G7sObU2VbUUS92wYsHr5VC2 dbPj3go1q2btWA8SikKnxJZf0nwGj+BwGBq6gk91B5z8uUUT+Wr4KXf4VXR/5LkX7KYi 6YMvWvKKdBDUhxnIG6cbwnmOQVm0l/vM0HKjq0jHpYSfELCcZTofP5xTmSRV35fsCXDE TSg2+YaDm+lw8Iov+Kvdu7F8diICtL6xlMP2dMwSEg+KeoMaMq60myj6g9OGzYJt6W1T IQ==
Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2059.outbound.protection.outlook.com [104.47.36.59]) by mx0b-00273201.pphosted.com with ESMTP id 2vb3qy41uw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 01 Oct 2019 10:41:39 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K01nkH6uegf4F8zMHi5XR7z6Hfx61uiRD1uARw5s10WmwiPfDc1WOaxWW9Vr0SYUjhfA52pvPPW/wxfAWlPqUTj+3i+zK4m5ezBq+3PZGcR3Ql+9vrduo3SBn552fh8LNDS6InJh1VlEBU8VQTyE6WNEu6XJmgk8UKn4VSFu5g9DQ6JceVcErJIA6wCgjBZL59AqzUjE591qAS8dw3V70/NsifrMo2/5nHDdxXTTHQTWItCBbxTTwwljQ3xxdAnubHg3iEzuV/qHzc/7gvL2AFqPIQ7LPI47g9eNYTMBvdwGBwftgQOx4xojk6+LKV0afrSlN+ouMbe1xuQPxPSl4w==
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=ExSCJ7E/3FrwzyUWM4UYRpHFvuWgKZwzYc0kMa6fP1g=; b=MbCQvBpHV4kn614sU8gjLWO3fg+6YGa0ohWyjCwn5d5hzrIqgPLGD2WQhL3iVqnBHOdUo/muqTBPZZzQ7Ls83GK1LUFQBR0ZVPfEdrp/r4g3GJ8AqdWO+ayOjZJv2cQdmODNSOLHsHnt/ZY6o+ICJXFXeQz9VrznrkZiR481wFc40MYdjr68whyi2mEzuc67/UH7DzMnUjSkps67AtW1xRtIPEbUsDbD37tJTgp8UaP7v/f/iMAlJGhm2G+QxWytOWKHo6bO3lDyWnrUQget13ZJFNdAYNu3p0sPLc20UrG9a3zl8f+Bqs14oKCgRpwo+l5fj1JcBejZRIiIlQfRZg==
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 BYAPR05MB5912.namprd05.prod.outlook.com (20.178.51.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.12; Tue, 1 Oct 2019 17:41:37 +0000
Received: from BYAPR05MB4341.namprd05.prod.outlook.com ([fe80::2487:defe:149c:d9d2]) by BYAPR05MB4341.namprd05.prod.outlook.com ([fe80::2487:defe:149c:d9d2%6]) with mapi id 15.20.2305.022; Tue, 1 Oct 2019 17:41:37 +0000
From: Tarek Saad <tsaad@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>, The IESG <iesg@ietf.org>
CC: "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: AQHVV3yIlarHMZU2UEGdTIt97LkNs6dGDOoA
Date: Tue, 1 Oct 2019 17:41:37 +0000
Message-ID: <C7D8EFC7-3332-42CD-9CCC-FC6E2DBE4429@juniper.net>
References: <156632204190.473.13624423113790831871.idtracker@ietfa.amsl.com>
In-Reply-To: <156632204190.473.13624423113790831871.idtracker@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
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=ebf5b7da-1210-4951-8709-0000affc0dbc; MSIP_Label_9784d817-3396-4a4f-b60c-3ef6b345fe55_SetDate=2019-10-01T17:15:53Z;
user-agent: Microsoft-MacOutlook/10.1d.0.190908
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1fed32d4-9589-4c95-1049-08d746969c3a
x-ms-office365-filtering-ht: Tenant
x-ms-traffictypediagnostic: BYAPR05MB5912:
x-ms-exchange-purlcount: 4
x-microsoft-antispam-prvs: <BYAPR05MB59121A4DE9BA640164C7E3A8B79D0@BYAPR05MB5912.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-forefront-prvs: 0177904E6B
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(376002)(396003)(366004)(39860400002)(136003)(199004)(189003)(2171002)(33656002)(8936002)(478600001)(305945005)(6436002)(8676002)(7736002)(25786009)(2616005)(14454004)(476003)(11346002)(486006)(446003)(66574012)(81156014)(81166006)(102836004)(6306002)(6506007)(4326008)(30864003)(66066001)(71190400001)(71200400001)(5660300002)(76176011)(26005)(186003)(76116006)(58126008)(3846002)(54906003)(6512007)(6486002)(110136005)(6246003)(36756003)(2906002)(229853002)(91956017)(64756008)(66446008)(99286004)(6116002)(86362001)(14444005)(256004)(316002)(66476007)(966005)(66556008)(66946007)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB5912; 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: PFfPh6udV2uHdJhM6HCLgeJVCliYBccDqADwJmDUj0gmqdebOPDyU7Sm2AW/WWi9YFvWQWMoKAgxZTJ1KCqMM/SMdVXHJb0osx/KbKfqhidXDSbJP40NqyICjHQmQbjQ/6qVb8Pv95LaE0KXxcDYOA09WB+Scz8F/Qf79Be28416nn/AB3FGBymsQgBRKKP5U+E99GsRZTceQq2GPtQnympHXlJno+ifRxMKWmwrNYwgTZXAZ/AA2kFclrMbSWOLVSSo28oCmxfk+LsqmEB+gL7KijG5pukLM2DNPQp8IwnyiWtXsJGDK9TLrZ8ISqgGG14QENNWvCqg8iqYgc1vYyt+xPBss3839zTbyBjTR/NFQQghMLiYDPAB+/494QSK01vyNylTCVzc/TKYj0eoUDcczgY301LtONEXArH/6gIj6XrA+rhlRjy1kINBJS9reABVugCCLF+GGKQTYEWTsA==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <5CF65A25A2BCBB428150635DDBB6C579@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 1fed32d4-9589-4c95-1049-08d746969c3a
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Oct 2019 17:41:37.4165 (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: 4W0vAEvek/qsZWry4BzsSiC/JCLzA6qX62c1PnzBHr1lTuGBqBEvXxjRLVZjlVZyHrXsDxYH/f1kLD6Kw0Y6GA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB5912
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-01_08:2019-10-01,2019-10-01 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 impostorscore=0 malwarescore=0 clxscore=1011 mlxlogscore=999 phishscore=0 lowpriorityscore=0 bulkscore=0 adultscore=0 mlxscore=0 spamscore=0 suspectscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1908290000 definitions=main-1910010144
Archived-At: <https://mailarchive.ietf.org/arch/msg/teas/79nAS-sBAjeUEMAABBMu2P2DlYY>
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: Tue, 01 Oct 2019 17:41:51 -0000

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

     (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.

    (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

    (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.
    
    (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.    
    
    ----------------------------------------------------------------------
    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://mailarchive.ietf.org/arch/msg/teas/bP5VurFZKQVx3hNWxUVz6alRIGg
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).
    
          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.
    
      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. 
    
        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.


    
    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://tools.ietf.org/html/rfc7810#section-4.4 . 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.)