[netmod] List identifiers in draft-ietf-netmod-rfc8407bis

Italo Busi <Italo.Busi=40huawei.com-Tr9gZwTxerDR74oF6e/[email protected]> Tue, 29 Apr 2025 15:02:30 +0000
Newsgroups gmane.ietf.netmod,gmane.ietf.ccamp
Message-ID <[email protected]>
--===============6091654256642872500==
Content-Language: en-US
Content-Type: multipart/alternative;
 boundary="_000_ae00a92b37404d0bb92b8cccd30117b3huaweicom_"

--_000_ae00a92b37404d0bb92b8cccd30117b3huaweicom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

Section 4.3.1 of draft-ietf-netmod-rfc8407bis-24 says:

List identifiers SHOULD be singular with the surrounding container name plu=
ral. Similarly, "leaf-list" identifiers SHOULD be singular.

This guideline seems valuable and reasonable in most of the cases but I hav=
e see a couple of similar exceptions which, IMHO, are worth considering

The issue is about cases where the list entry represents a set of parameter=
s. For example in draft-ietf-ccamp-optical-impairment-topology-yang-18 we h=
ave the following list:

       +--ro roadm-path-impairments
       |  +--ro roadm-path-impairment* [roadm-path-impairments-id]
       |     +--ro roadm-path-impairments-id    string

The singular name for the list is a bit misleading since each entry represe=
nts a set of optical impairments parameters (e.g., CD, PMD, PDL).

The authors of this I-D have just spotted this issue when discussing how to=
 address a YANG doctor review comment on the plural name used to reference =
an entry in this list:

+--ro roadm-path-impairments?   leafref

While checking, I have noted that a similar issue applies to draft-ietf-tea=
s-yang-te-37 and draft-ietf-teas-yang-path-computation-24:

       +--ro computed-paths-properties
       |  +--ro computed-path-properties* [k-index]

What is the suggestion from Netmod WG?

I can see few options:


  1.  Keep the models as they are as corner-case exceptions to the SHOULD r=
ules in draft-ietf-netmod-rfc8407bis
  2.  Align the approach used by the two models to comply with the SHOULD r=
ules in draft-ietf-netmod-rfc8407bis on the "path" part of the identifiers =
(rename as roadm-paths-impairments/ roadm-path-impairments, following the s=
ame approach used for computed-paths-properties/computed-path-properties co=
nvention)
  3.  Rename as impairments-of-roadm-paths/impairments-of-roadm-path and pr=
operties-of-computed-paths/properties-of-computed-path
  4.  Use a -sets/-set suffix (rename as roadm-path-impairments-sets/roadm-=
path-impairments-set and computed-path-properties-sets/computed-path-proper=
ties-set)
  5.  Others?

Do you think it is worthwhile updating the text in draft-ietf-netmod-rfc840=
7bis to cover these corner cases or address them as special and motivated e=
xceptions?

Thanks, Italo


--_000_ae00a92b37404d0bb92b8cccd30117b3huaweicom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:DengXian;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"\@DengXian";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Menlo;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.bcp14
	{mso-style-name:bcp14;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:896085587;
	mso-list-type:hybrid;
	mso-list-template-ids:-1281324336 1049363376 67698713 67698715 67698703 67=
698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi all,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Section 4.3.1 of draft-ietf-netmod-rfc8407bis-24 say=
s:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span style=3D"font-siz=
e:12.0pt;font-family:Menlo;color:#212529;background:white">List identifiers=
&nbsp;<span class=3D"bcp14"><b>SHOULD</b></span>&nbsp;be singular with the =
surrounding container name plural. Similarly, &quot;leaf-list&quot;
 identifiers&nbsp;<span class=3D"bcp14"><b>SHOULD</b></span>&nbsp;be singul=
ar.</span><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">This guideline seems valuable and reasonable in most=
 of the cases but I have see a couple of similar exceptions which, IMHO, ar=
e worth considering<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The issue is about cases where the list entry repres=
ents a set of parameters. For example in draft-ietf-ccamp-optical-impairmen=
t-topology-yang-18 we have the following list:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
12.0pt;font-family:&quot;Courier New&quot;;color:#212529">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; &#43;--ro roadm-path-impairments<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
12.0pt;font-family:&quot;Courier New&quot;;color:#212529">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; |&nbsp; &#43;--ro roadm-path-impairment* [roadm-path-im=
pairments-id]<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
12.0pt;font-family:&quot;Courier New&quot;;color:#212529">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; &#43;--ro roadm-path-impairme=
nts-id&nbsp;&nbsp;&nbsp; string<o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The singular name for the list is a bit misleading s=
ince each entry represents a set of optical impairments parameters (e.g., C=
D, PMD, PDL).<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The authors of this I-D have just spotted this issue=
 when discussing how to address a YANG doctor review comment on the plural =
name used to reference an entry in this list:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"text-indent:36.0pt;background:white"><span =
style=3D"font-size:12.0pt;font-family:&quot;Courier New&quot;;color:#212529=
">&#43;--ro roadm-path-impairments?&nbsp;&nbsp; leafref<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">While checking, I have noted that a similar issue ap=
plies to draft-ietf-teas-yang-te-37 and draft-ietf-teas-yang-path-computati=
on-24:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
12.0pt;font-family:&quot;Courier New&quot;;color:#212529">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; &#43;--ro computed-paths-properties<o:p></o:p></span></=
p>
<p class=3D"MsoNormal" style=3D"background:white"><span style=3D"font-size:=
12.0pt;font-family:&quot;Courier New&quot;;color:#212529">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; |&nbsp; &#43;--ro computed-path-properties* [k-index]<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">What is the suggestion from Netmod WG?<o:p></o:p></p=
>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">I can see few options:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"1">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l0 level1 =
lfo1">Keep the models as they are as corner-case exceptions to the SHOULD r=
ules in draft-ietf-netmod-rfc8407bis<o:p></o:p></li><li class=3D"MsoListPar=
agraph" style=3D"margin-left:0cm;mso-list:l0 level1 lfo1">Align the approac=
h used by the two models to comply with the SHOULD rules in draft-ietf-netm=
od-rfc8407bis on the &#8220;path&#8221; part of the identifiers (rename as =
roadm-paths-impairments/
 roadm-path-impairments, following the same approach used for computed-path=
s-properties/computed-path-properties convention)<o:p></o:p></li><li class=
=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l0 level1 lfo1">Ren=
ame as impairments-of-roadm-paths/impairments-of-roadm-path and properties-=
of-computed-paths/properties-of-computed-path<o:p></o:p></li><li class=3D"M=
soListParagraph" style=3D"margin-left:0cm;mso-list:l0 level1 lfo1">Use a -s=
ets/-set suffix (rename as roadm-path-impairments-sets/roadm-path-impairmen=
ts-set and computed-path-properties-sets/computed-path-properties-set)<o:p>=
</o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list=
:l0 level1 lfo1">Others?<o:p></o:p></li></ol>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Do you think it is worthwhile updating the text in d=
raft-ietf-netmod-rfc8407bis to cover these corner cases or address them as =
special and motivated exceptions?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks, Italo<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_ae00a92b37404d0bb92b8cccd30117b3huaweicom_--


--===============6091654256642872500==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbmV0bW9kIG1h
aWxpbmcgbGlzdCAtLSBuZXRtb2RAaWV0Zi5vcmcKVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFp
bCB0byBuZXRtb2QtbGVhdmVAaWV0Zi5vcmcK

--===============6091654256642872500==--