[mpls] mldp was Re: Yangdoctors last call review of draft-ietf-mpls-ldp-yang-06
tom petch <ietfc@btconnect.com> Tue, 15 October 2019 16:38 UTC
Return-Path: <ietfc@btconnect.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D2E5212081B; Tue, 15 Oct 2019 09:38:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.247
X-Spam-Level:
X-Spam-Status: No, score=0.247 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RATWARE_MS_HASH=2.148, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.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 uA1MKV3XNecX; Tue, 15 Oct 2019 09:38:39 -0700 (PDT)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20129.outbound.protection.outlook.com [40.107.2.129]) (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 918551201C6; Tue, 15 Oct 2019 09:38:38 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OJDlM22u2QDhUzI+V1sqMVWrMhrmXIWoDjqPJjFh7wKH5s0FUMvTUOS9sYI5jrvjGeqCY30VwnxstV5pWVjeAsu26g2hosoED5mVJfMrOg8cG7u4Q5+k/Cc8PR0XVVi9fkxaH2Uro45YQGmCur9rEv+01LgMwSKGbNAKU9fz8pNvdAjsd234WXwwumLTbZX51LPz1SKty7XtngAtRB5Lk4GBLwVl4whIcAh4IIS0q/ODBEUkCdg05ZgW3ln2RBY8cur5V12k21OXmoZCcjDESizQIvhEpURFbifXoirHkoBoQGEJsYETMMWevWmWniit6dqY/Gr2behD7HVFg4OMMw==
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=R+/Wb8xRvoPfrwQM03hlzeSD8XFSOz8Z9qq0+/6o5dY=; b=ck+8HfGZHkGE+pIAfxUx/QNy2AwLA1xQpKfylM/0LNiyfYooQ+AoXGeInTweGG9GKgyGL4yyYdkdDwrZK6Glb/fJ7AxP4sTi0c1l+LfAGDFib79WAtIbGrau3rLGHVOKtXi08QiwJpK3BDShw3ZV18p/QEol6d1OTSDYaIa2Z2ohS9M8PnzgWIQosQQ2S1hXk91ei+8WR8MWY+zFIdka/82n1C3bTzljhdYq0+2GYOsedXDhwqMqEd15WFCsROVrNOCqC0w6soy26N61m/sEPd1nKjPK/pJYgHomPgEP+HbePGRCdAWGk3ayKQhDHcgjem9H4WYkZiQk0c5J2uRyNQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=R+/Wb8xRvoPfrwQM03hlzeSD8XFSOz8Z9qq0+/6o5dY=; b=SgQmLDinWUiwUS+81mCvnYBjXim0ICNXGxxip5g7e5P9r0dRshikQTRlZjBiiQ1uhq2NuBUWFS/DrqoOObIRg3fxBsqVo8mLbSbS5ayQpgZ5VN/8qmobNWj6EzTseMtJMVmS9bzoOKurICFl/ChbfxsdPa8N672q2D0gu5sC4eA=
Received: from DB7PR07MB5147.eurprd07.prod.outlook.com (20.178.42.32) by DB7PR07MB4732.eurprd07.prod.outlook.com (52.135.136.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2367.14; Tue, 15 Oct 2019 16:38:36 +0000
Received: from DB7PR07MB5147.eurprd07.prod.outlook.com ([fe80::d5a9:784f:d667:ef14]) by DB7PR07MB5147.eurprd07.prod.outlook.com ([fe80::d5a9:784f:d667:ef14%4]) with mapi id 15.20.2347.023; Tue, 15 Oct 2019 16:38:35 +0000
From: tom petch <ietfc@btconnect.com>
To: Jan Lindblad <janl@tail-f.com>
CC: "mpls@ietf.org" <mpls@ietf.org>, "draft-ietf-mpls-ldp-yang.all@ietf.org" <draft-ietf-mpls-ldp-yang.all@ietf.org>
Thread-Topic: mldp was Re: [mpls] Yangdoctors last call review of draft-ietf-mpls-ldp-yang-06
Thread-Index: AQHVg3b9Qta8xAnglUm0npj1f/Artg==
Date: Tue, 15 Oct 2019 16:38:35 +0000
Message-ID: <011501d58376$aa19e120$4001a8c0@gateway.2wire.net>
References: <157114122559.18000.6531210525259761076@ietfa.amsl.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: LO2P123CA0045.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::33) To DB7PR07MB5147.eurprd07.prod.outlook.com (2603:10a6:10:68::32)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=ietfc@btconnect.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: Microsoft Outlook Express 6.00.2800.1106
x-originating-ip: [86.139.211.103]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: efcfe4a2-58e5-4b6e-6e51-08d7518e1fa9
x-ms-traffictypediagnostic: DB7PR07MB4732:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <DB7PR07MB47323688CBF3A1E7EFFA5F65A0930@DB7PR07MB4732.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 01917B1794
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(136003)(366004)(376002)(346002)(396003)(13464003)(189003)(199004)(446003)(52116002)(305945005)(7736002)(966005)(3846002)(6116002)(71200400001)(102836004)(81686011)(6506007)(76176011)(81816011)(386003)(61296003)(62236002)(44716002)(186003)(54906003)(71190400001)(14454004)(316002)(478600001)(26005)(476003)(14496001)(486006)(99286004)(2906002)(6486002)(44736005)(66066001)(6436002)(8936002)(1556002)(50226002)(81166006)(8676002)(6512007)(25786009)(4326008)(6306002)(9686003)(81156014)(5660300002)(14444005)(66446008)(64756008)(66946007)(66556008)(6916009)(66476007)(4720700003)(256004)(86362001)(98474003)(74416001)(7726001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB7PR07MB4732; H:DB7PR07MB5147.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:0;
received-spf: None (protection.outlook.com: btconnect.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: PImUdKwMMggRad/7PA5ZxraHdEy83uxskoRW5HM+PsGRafTCymNmRqCuG3zYEnG7TrtCXexbQxhd+PengVM3ygYfcZmlRs1lH7M5QaYzPMBatOGO6mybidfahpvQJUGChA17ReiME/X88BczNa9reKH+jL3kNnV72A/X7HYNpVJbrSWRailHF9q2LrwI1+S0gJU/CgroQM4CyfLF53aRGCk8C0JLkSif79cr/oas929zogwd04166jwaucbm/QhcY09U2s1WvDAAkWkJradN2N2QjT2COpsE2RAvZjAE1gIXLmM0dGc6xpxLM0s33h89Kc7p7/sTRxxIZUXiWOvd+3DrnaEOTT6LCYkuHSWFZ5L2cxN1AWfdYq6FcWlupITVd47kO+SlOn+kbH12twGRYdPVnMMwIRjVUKwOlaJ8ulttUqgYRnwRtw4bX6pQOPH4bQFWLaFAEMXNwyStQQggbQ==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <AC025C7C6100DA40B6DB0E3916C87A8C@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-Network-Message-Id: efcfe4a2-58e5-4b6e-6e51-08d7518e1fa9
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2019 16:38:35.7996 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KDcPl1vlxcQzxtG0sybhixnyfBmoluaXWyIQZHSk0L7FXb+LwdcpPfs7xUMSo/i6TqzRsUQ1Hrmrgm20bqU4mg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR07MB4732
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/pHP20eOUP8Z9Gg5_d_OlkLlj69Q>
Subject: [mpls] mldp was Re: Yangdoctors last call review of draft-ietf-mpls-ldp-yang-06
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Oct 2019 16:38:47 -0000
Jan It would likely help if you could also look at draft-ietf-mpls-mldp-yang-06 which augments draft-ietf-mpls-ldp-yang-06 with such as [widescreen needed] module: ietf-mpls-mldp augment /rt:routing/rt:control-plane-protocols/ldp:mpls-ldp/ldp:global/ldp:capab ility: and augment "/rt:routing/rt:control-plane-protocols/" + "ldp:mpls-ldp/ldp:peers/ldp:peer/ldp:received-peer-state/" + "ldp:capability/mldp:mldp" { i.e. there are another 20 or so augment which are affected by the changes you propose. Note that the prefixes are ldp: and mldp: so the identities for the control plane protocols are probably better as those and not mpls-ldp or mpls-mldp. But is mldp a separate protocol in RFC8349 terms or just part of ldp? I do not know. The mldp draft has just completed WGLC. I looked at it but gave up on it because the line lengths were too long to display on my screen. Tom Petch ----- Original Message ----- From: "Jan Lindblad via Datatracker" <noreply@ietf.org> To: <yang-doctors@ietf.org> Cc: <mpls@ietf.org>; <draft-ietf-mpls-ldp-yang.all@ietf.org>; <ietf@ietf.org> Sent: Tuesday, October 15, 2019 1:07 PM Subject: [mpls] Yangdoctors last call review of draft-ietf-mpls-ldp-yang-06 > Reviewer: Jan Lindblad > Review result: Ready with Issues > > Modules: ietf-mpls-ldp.yang, ietf-mpls-ldp-extended.yang > Review result: Ready with Issues > Reviewer: Jan Lindblad > > This is my YANG doctor LC review of draft-ietf-mpls-ldp-yang-06. I find the > module ready with issues, even if there are a couple rather fundamental things > to work out. It is evident that the authors have spent considerable time to > make the module clean and tidy, which is why I can say it's more or less ready > even when there are fundamentals to work out. In my judgement it may be > possible to work out all remaining issues rather quickly. > > #1) Fitting mpls-ldp into the ietf-routing framework > > The modules at hand, ietf-mpls-ldp.yang and ietf-mpls-ldp-extended.yang, are > augmenting into the ietf-routing module (RFC 8022). I find this highly > appropriate. RFC 8022 has a section on how control plane protocols are meant to > fit into the ietf-routing framework: > > 5.3.2. Defining New Control-Plane Protocols > > It is expected that future YANG modules will create data models for > additional control-plane protocol types. Such a new module has to > define the protocol-specific configuration and state data, and it has > to integrate it into the core routing framework in the following way: > > o A new identity MUST be defined for the control-plane protocol, and > its base identity MUST be set to "rt:control-plane-protocol" or to > an identity derived from "rt:control-plane-protocol". > .... > o Configuration parameters and/or state data for the new protocol > can be defined by augmenting the "control-plane-protocol" data > node under both "/routing" and "/routing-state". > > The current draft is doing neither of the above two points. IMHO, it should do > both. Or if there is strong reason not to do that, incorporate a statement from > the ietf-routing authors and a clear explanation of why the mpls-ldp related > modules would be exempted. At present, this deviation from the RFC 8022 > architecture is never mentioned in the draft. > > Even if this issue falls under fundamental issues, the way I look at it, it > would be quite easy to fix. Adjusting the two draft modules to comply with the > points above requires changes to two dozen augment statement paths and a > handful of leafref paths. Adding the identity and corresponding when derived > from statement are a couple of lines. > > In principle, this change opens up for multiple instances of mpls-ldp. This > might be useful if a system is used with two entirely separate networks (such > as two separate customers), where each one might be running an mpls-ldp > instance. If this is not desired, a must statement could be introduced to limit > the number of instances to one. > > #2) Global level vs. local (e.g. interface or peer) level > > The module has several configurations that have a global and local level, such > as configurations per peer or per interface. Presumably, these local level > configurations are meant to override the global default when set and let the > global default prevail when nothing specific is specified at the local level. > > The way this is being currently implemented in the modules, however, makes it > impossible not to set a value at the local level, so the local setting will > always prevail. The global configuration would have no effect at all (except in > those cases where a local level configuration is marked with an if-feature and > the server would not announce that feature). > > For example: > > On the global level, there is a graceful-restart/enable leaf: > > container global { > .... > container graceful-restart { > leaf enable { > type boolean; > default false; > } > > Further down, we have another graceful-restart/enable leaf, used per peer: > > grouping graceful-restart-attributes-per-peer { > .... > container graceful-restart { > leaf enable { > type boolean; > default false; > } > > I would assume this latter enable leaf should take precedence over the global > graceful-restart when set on the peer. But if not set on the peer, the global > graceful-restart value should be used. Since the peer graceful-restart/enable > leaf has a default value, however, it will never happen that it is not set, and > will thus render the global value completely irrelevant for all peers. > > The fix is simple: Do not have a default statement on the local leafs. Explain > in the description statement what happens when the element has no value (the > globally configured value will be used). Make sure the global leaf has a > default (they all do already). > > The same applies to a rather long list of leafs in the module. I don't dare > listing them here, because I would surely miss a few. My point is that the > global/local relationships needs to be identified, local defaults removed. It > would also make sense to mention how this is supposed to work in the > descriptions. > > #3) Unlinked multikey leafrefs > > The grouping ldp-peer-ref has two leafrefs, one for each key in the list of ldp > peers. Two leafrefs are exactly what you need to reference an entry in a list > with two keys, so that's good. It is not enough to simply have two unlinked > leafrefs, however. That would still allow them to have values that are valid > separately, but not point to any entry in the list combined. If you have a copy > of "Network Programmability with YANG", this is explained in detail on pp. > 451-454. > > To link the leafrefs, you'd need to update the path expression in the > label-space-id leaf as follows: > > grouping ldp-peer-ref { > description > "An absolute reference to an LDP peer, by the LDP ID, which > consists of the LSR ID and the Label Space ID."; > > leaf lsr-id { > type leafref { > path "/rt:routing/rt:control-plane-protocols/ldp:mpls-ldp/" > + "ldp:peers/ldp:peer/ldp:lsr-id"; > } > description > "The LSR ID of the peer, as a portion of the peer LDP ID."; > } > leaf label-space-id { > type leafref { > path "/rt:routing/rt:control-plane-protocols/ldp:mpls-ldp/" > + "ldp:peers/ldp:peer[lsr-id = > current()/../lsr-id]/ldp:label-space-id"; > } > > The paths above would also have to be adjusted as part of fixing issue #1 > above. If this fixing results in allowing multiple mpls-ldp instances, the > grouping above needs to be extended with one additional, linked leafref that > points out which mpls-ldp instance is being targeted. Or if that is always the > same instance as the reference is coming from, a reformulation of the paths > above could ensure no mpls-ldp instance name would be required. In that case, > the paths should be relative and never venture outside the mpls-ldp container. > I would be happy to explain this further. > > #4) Weakly defined types for neighbor-list-ref, prefix-list-ref, peer-list-ref > > These types are not leafrefs, but strings without any YANG substatements to > define the format. The only thing the description does is to claim that the > entities they refer to are outside the scope of this document. For an > operator/programmer encountering this type, that isn't very helpful, and is not > going to be interoperable. > > typedef neighbor-list-ref { > type string; > description > "A type for a reference to a neighbor address list. > The string value is the name identifier for uniquely > identifying the referenced address list, which contains a list > of addresses that a routing policy can applied. The definition > of such an address list is outside the scope of this > document."; > } > > I'm not sure if this is fixable by sharpening the YANG module, but maybe more > could be done to guide a confused reader. What would the user do to find out > the format of this type and valid values? Add to the description. > > #5) Interfaces or mpls, who's on top? > > In the mpls-ldp modules, there are two interface lists and two leafrefs > pointing to interfaces. This makes me wonder if some of the YANG structure > would belong more naturally as an augment to ietf-interfaces instead? I mean, > it doesn't sound fun to define the same interfaces in a lot of different > places, just because a protocol needs some additional information. This is just > a casual observation from an mpls-innocent guy, so you can disregard if you > feel it's irrelevant. > > #6) MD5 key > > There is a leaf md5-key of type string. Is this leaf sensitive from a security > point of view? A plaintext string would not be ideal if that is the case. > Choose a crypto type instead. Also, the format of this string is not defined. > Hex without spaces? Explain the format in the description. > > >< > > _______________________________________________ > mpls mailing list > mpls@ietf.org > https://www.ietf.org/mailman/listinfo/mpls
- [mpls] Yangdoctors last call review of draft-ietf… Jan Lindblad via Datatracker
- Re: [mpls] [yang-doctors] Yangdoctors last call r… Martin Bjorklund
- [mpls] mldp was Re: Yangdoctors last call review … tom petch
- Re: [mpls] mldp was Re: Yangdoctors last call rev… Jan Lindblad
- Re: [mpls] Yangdoctors last call review of draft-… Kamran Raza (skraza)
- Re: [mpls] [yang-doctors] Yangdoctors last call r… Kamran Raza (skraza)
- Re: [mpls] mldp was Re: Yangdoctors last call rev… Kamran Raza (skraza)