Subject: [netmod] [Technical Errata Reported] RFC7950 (6031)

From: RFC Errata System <[email-masked]>
Date: Fri, 27 Mar 2020 03:18:12 -0700 (PDT)

The following errata report has been submitted for RFC7950,
"The YANG 1.1 Data Modeling Language".

--------------------------------------
You may review the report below and at:
https://www.rfc-editor.org/errata/eid6031

--------------------------------------
Type: Technical
Reported by: Radek Krejci <[email-masked]>

Section: 9.9.3

Original Text
-------------
The "require-instance" statement, which is a substatement to the 
"type" statement, MAY be present if the type is "instance-identifier"
or "leafref".  It takes as an argument the string "true" or "false".
If this statement is not present, it defaults to "true".

Corrected Text
--------------
The "require-instance" statement, which is a substatement to the
"type" statement, MAY be present if the type is "instance-identifier",
"leafref" or a type derived from them. It takes as an argument the
string "true" or "false". If this statement is not present, it defaults
to "true".

Notes
-----
As discussed in https://mailarchive.ietf.org/arch/browse/netconf/?gbt=1&index=p_zRKwQ6TBxTuCDPc5wJbdZgWTc, authors expect that the require-instance statement is available not only for leafref and instance-identifier types, but also for all the types derived from them using typedef statement. Since no one argued against this understanding, this errata changes the text to the same form as in other restrictions applicable to derived types.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC7950 (draft-ietf-netmod-rfc6020bis-14)
--------------------------------------
Title               : The YANG 1.1 Data Modeling Language
Publication Date    : August 2016
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : Network Modeling
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG

---

From: Balázs Lengyel <[email-masked]>
Date: Fri, 27 Mar 2020 15:04:25 +0000

+1
Balazs

-----Original Message-----
From: netmod <[email-masked]> On Behalf Of RFC Errata System
Sent: 2020. március 27., péntek 11:18
To: [email-masked]; [email-masked]; [email-masked]; [email-masked];
[email-masked]; [email-masked]
Cc: [email-masked]; [email-masked]
Subject: [netmod] [Technical Errata Reported] RFC7950 (6031)

The following errata report has been submitted for RFC7950, "The YANG 1.1
Data Modeling Language".

Section: 9.9.3

Original Text
-------------
The "require-instance" statement, which is a substatement to the "type"
statement, MAY be present if the type is "instance-identifier"
or "leafref".  It takes as an argument the string "true" or "false".
If this statement is not present, it defaults to "true".

Corrected Text
--------------
The "require-instance" statement, which is a substatement to the "type"
statement, MAY be present if the type is "instance-identifier", "leafref" or
a type derived from them. It takes as an argument the string "true" or
"false". If this statement is not present, it defaults to "true".

Notes
-----
As discussed in
https://mailarchive.ietf.org/arch/browse/netconf/?gbt=1&index=p_zRKwQ6TBxTuC
DPc5wJbdZgWTc, authors expect that the require-instance statement is
available not only for leafref and instance-identifier types, but also for
all the types derived from them using typedef statement. Since no one argued
against this understanding, this errata changes the text to the same form as
in other restrictions applicable to derived types.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please use
"Reply All" to discuss whether it should be verified or rejected. When a
decision is reached, the verifying party can log in to change the status and
edit the report, if necessary. 

_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Fri, 27 Mar 2020 16:17:43 +0100

Hi,

two comments:

- It is unclear to me whether this really qualifies as an errata.

- If we add this, then there should probably text about which
  combinations are allowed. For example, for pattern and ranges, there
  is explicit text that says further restrictions of the value space
  are possible, bot not expansions. If we follow that logic, then

  typedef a {
    type leaf-ref {
      path "/some/thing";
      require-instance true;
    }
  }

  typedef b {
    type a {
      require-instance false;
    }
  }

  might be illegal since b has a larger value space than a.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

---

From: Martin Björklund <[email-masked]>
Date: Fri, 27 Mar 2020 16:35:44 +0100 (CET)

[re-sent w/ correct address]

>   might be illegal since b has a larger value space than a.

The value space of b is the same as for a. "require-instance" doesn't
change the value space; it changes semantic validation of the given
values ((see my mail from 17 Mar, "Require-instance problem").

/martin

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Fri, 27 Mar 2020 17:13:18 +0100

> values ((see my mail from 17 Mar, "Require-instance problem").

OK. If we consider require-instance a constraint and not a
restriction, then the motivation for this errata is at least
confusing:

  Since no one argued against this understanding, this errata changes
  the text to the same form as in other restrictions applicable to
  derived types.

Simply put: Do you think it is OK to overwrite a require-instance true
with a require-instance false in a derived type?

/js