YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
draft-ietf-netmod-yang-13
Revision differences
Document history
Date | Rev. | By | Action |
---|---|---|---|
2012-08-22
|
13 | (System) | post-migration administrative database adjustment to the No Objection position for Sean Turner |
2012-08-22
|
13 | (System) | post-migration administrative database adjustment to the No Objection position for Robert Sparks |
2012-08-22
|
13 | (System) | post-migration administrative database adjustment to the No Objection position for Peter Saint-Andre |
2010-06-11
|
13 | (System) | IANA Action state changed to RFC-Ed-Ack from Waiting on RFC Editor |
2010-06-11
|
13 | (System) | IANA Action state changed to Waiting on RFC Editor from In Progress |
2010-06-11
|
13 | (System) | IANA Action state changed to In Progress from Waiting on Authors |
2010-06-11
|
13 | (System) | IANA Action state changed to Waiting on Authors from In Progress |
2010-06-09
|
13 | Cindy Morgan | State Changes to RFC Ed Queue from Approved-announcement sent by Cindy Morgan |
2010-06-09
|
13 | (System) | IANA Action state changed to In Progress |
2010-06-09
|
13 | Amy Vezza | IESG state changed to Approved-announcement sent |
2010-06-09
|
13 | Amy Vezza | IESG has approved the document |
2010-06-09
|
13 | Amy Vezza | Closed "Approve" ballot |
2010-06-08
|
13 | Peter Saint-Andre | [Ballot Position Update] Position for Peter Saint-Andre has been changed to No Objection from Discuss by Peter Saint-Andre |
2010-06-08
|
13 | Peter Saint-Andre | [Ballot comment] 1. [Addressed in -13.] 2. [Addressed in -13.] 3. [Redacted.] 4. [Explained by authors.] 5. [Addressed in -13.] 6. [Addressed in -13.] 7. … [Ballot comment] 1. [Addressed in -13.] 2. [Addressed in -13.] 3. [Redacted.] 4. [Explained by authors.] 5. [Addressed in -13.] 6. [Addressed in -13.] 7. [Addressed in -13.] 8. [Explained by authors.] 9. In Section 13, the "unknown-element" referred to under Section 8.3.1 is not defined. |
2010-06-08
|
13 | Peter Saint-Andre | [Ballot discuss] 1. [Addressed in -13.] 2. [Text OK as-is.] 3. [Addressed via RFC Editor note.] [4. does not exist.] 5. [Addressed in -13.] 6. … [Ballot discuss] 1. [Addressed in -13.] 2. [Text OK as-is.] 3. [Addressed via RFC Editor note.] [4. does not exist.] 5. [Addressed in -13.] 6. [Addressed in -13.] 7. [Addressed in -13.] 8. [Addressed in -13.] |
2010-06-08
|
13 | Alexey Melnikov | [Ballot Position Update] Position for Alexey Melnikov has been changed to Yes from Discuss by Alexey Melnikov |
2010-06-08
|
13 | Alexey Melnikov | [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers … [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 DISCUSS DISCUSS: I don't see where the payload ("...") is coming from. <> 15) 7.19.3. The description Statement The "description" statement takes as an argument a string which contains a high-level textual description of this definition. As this field is human readable, I think BCP 18 (RFC 2277), Section 4.2 applies. So this would need ability to tag language of the description. (YIN should be using xml:lang attribute.) You can find a bit more information on --------------------------------------- 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. This comment is not quite correct - it doesn't mention excluded ASCII control characters (at least some of them). |
2010-06-08
|
13 | Alexey Melnikov | [Ballot discuss] |
2010-06-02
|
13 | Robert Sparks | [Ballot Position Update] Position for Robert Sparks has been changed to No Objection from Discuss by Robert Sparks |
2010-06-02
|
13 | Sean Turner | [Ballot Position Update] Position for Sean Turner has been changed to No Objection from Discuss by Sean Turner |
2010-06-02
|
13 | Peter Saint-Andre | [Ballot comment] 1. [Addressed in -13.] 2. [Addressed in -13.] 3. [Redacted.] 4. [Explained by authors.] 5. [Addressed in -13.] 6. [Addressed in -13.] 7. … [Ballot comment] 1. [Addressed in -13.] 2. [Addressed in -13.] 3. [Redacted.] 4. [Explained by authors.] 5. [Addressed in -13.] 6. [Addressed in -13.] 7. [Addressed in -13.] 8. [Explained by authors.] 9. In Section 13, the "unknown-element" referred to under Section 8.3.1 is not defined. |
2010-06-02
|
13 | Peter Saint-Andre | [Ballot discuss] 1. [Addressed in -13.] 2. [Text OK as-is.] 3. In Section 7.19.3, the "description" statement contains a high-level textual description of this definition, … [Ballot discuss] 1. [Addressed in -13.] 2. [Text OK as-is.] 3. In Section 7.19.3, the "description" statement contains a high-level textual description of this definition, which appears to be human-readable. However, no language tagging is provided in accordance with RFC 2277. [4. does not exist.] 5. [Addressed in -13.] 6. [Addressed in -13.] 7. [Addressed in -13.] 8. [Addressed in -13.] |
2010-06-01
|
13 | (System) | Sub state has been changed to AD Follow up from New Id Needed |
2010-06-01
|
13 | (System) | New version available: draft-ietf-netmod-yang-13.txt |
2010-05-25
|
13 | Tim Polk | [Ballot comment] I have cleared - I believe that this issue can be more appropriately addressed in yang-usage. [The issue is how to identify elements … [Ballot comment] I have cleared - I believe that this issue can be more appropriately addressed in yang-usage. [The issue is how to identify elements that are required to be supported. That is, which elements can not be deviations (especially for omitted...)] |
2010-05-25
|
13 | Tim Polk | [Ballot discuss] |
2010-05-25
|
13 | Tim Polk | [Ballot Position Update] Position for Tim Polk has been changed to No Objection from Undefined by Tim Polk |
2010-05-25
|
13 | Tim Polk | [Ballot Position Update] Position for Tim Polk has been changed to Undefined from Discuss by Tim Polk |
2010-05-12
|
13 | Tim Polk | [Ballot discuss] [Sorry about the late discuss text. I encountered a tracker bug that prevented entry before the telechat.] (1) I believe that Robert’s comment … [Ballot discuss] [Sorry about the late discuss text. I encountered a tracker bug that prevented entry before the telechat.] (1) I believe that Robert’s comment on deviation merits a discuss because of interoperability and conformance concerns. I would like to understand the intent of the wg, since this seems to create a large loophole. (2) I believe this document should note that specifications using yang can indicate that a deviation of "not supported" is not allowed for a particular object. This feature should be used to ensure that a minimum level of interoperability is achieved. |
2010-05-06
|
13 | Cindy Morgan | State Changes to IESG Evaluation::Revised ID Needed from IESG Evaluation by Cindy Morgan |
2010-05-06
|
13 | Jari Arkko | [Ballot Position Update] New position, No Objection, has been recorded by Jari Arkko |
2010-05-06
|
13 | Amy Vezza | State Changes to IESG Evaluation from IESG Evaluation - Defer by Amy Vezza |
2010-05-06
|
13 | Alexey Melnikov | [Ballot comment] Formerly a DISCUSS item: 15) 7.19.3. The description Statement The "description" statement takes as an argument a string which contains a … [Ballot comment] Formerly a DISCUSS item: 15) 7.19.3. The description Statement The "description" statement takes as an argument a string which contains a high-level textual description of this definition. As this field is human readable, I think BCP 18 (RFC 2277), Section 4.2 applies. So this would need ability to tag language of the description. (YIN should be using xml:lang attribute.) You can find a bit more information on 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. --------------------------------------- 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Ignored by whom? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-05-06
|
13 | Alexey Melnikov | [Ballot discuss] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to … [Ballot discuss] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? <> 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 DISCUSS DISCUSS: I don't see where the payload ("...") is coming from. <> 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? 13) 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. (Comment) This comment is not quite correct - it doesn't mention exclusded ASCII control characters (at least some of them). string = *char char = %x9 / %xA / %xD / %x20-DFFF / %xE000-FFFD / %x10000-10FFFF Surrogate pairs are between U+D800 and U+DFFF. They are not excluded above. 14) [ISO.10646] International Organization for Standardization, "Information Technology - Universal Multiple-octet coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane", ISO Standard 10646-1, May 1993. This reference is way too old, you should reference something more recent (e.g. dated 2003). Additionally, Part 1 only covers 16 bit Unicode codepoints, while you want the whole 24 bits. So you should be referencing ISO.10646, not just part 1. |
2010-05-06
|
13 | Robert Sparks | [Ballot comment] Consider deleting the sentence "A list is similar to a table where each list entry is a row in the table." The document … [Ballot comment] Consider deleting the sentence "A list is similar to a table where each list entry is a row in the table." The document defines a list. A table is not defined in this document. Appealing to a common-sense notion of what a table might be is not much more useful than just appealing to the common-sense notion of a list, and the statement might introduce confusion if the reader makes assumptions about tables that you didn't intend. |
2010-05-06
|
13 | Robert Sparks | [Ballot discuss] I have a few points to discuss before recommending approval of this document. 1) The definition of line folding in quotes (6.1.3) is … [Ballot discuss] I have a few points to discuss before recommending approval of this document. 1) The definition of line folding in quotes (6.1.3) is ambiguous if tabs don't represent a pre-defined fixed number of columns. 2) I'm not finding an explicit definition of the semantics of merge that results in the move behavior described in the example at the end of section 7.8.7. What text informs an implementation to do the right thing if the example isn't available? (I may just be missing it). 3) Is it the case that can only operate on lists that have config true; in their definition? If so, does the document say that somewhere? If not, then the operations will only work on lists that have a defined key and that constraint should be called out. 4) Given the canonical form and lexicographic representation defined in section 9.5.1, is it defined what a server should do if it sees a boolean represented as "TRUE" instead of "true"? 5) (Moved this to a discuss based on telechat conversation Tim plans to enter support when the tracker works for him) The deviation mechanism seems too flexible to me. As defined, someone could claim to implement standard X, but use deviation statements to completely replace the contents of X with something proprietary. Discussions with Dan indicate that this was explicitly considered by the group and deemed acceptable. Is there any text that could be added to more strongly discourage this kind of abuse of the mechanism? In particular, what would help a client implementor defend against a statement like "No, the spec says I can deviate this way, and you're at non-interoperability-fault for not conforming to my deviations" when the deviations are more extreme than the simple policy and limit deviations shown as examples? |
2010-05-06
|
13 | Tim Polk | [Ballot Position Update] New position, Discuss, has been recorded by Tim Polk |
2010-05-06
|
13 | Adrian Farrel | [Ballot Position Update] New position, No Objection, has been recorded by Adrian Farrel |
2010-05-06
|
13 | Sean Turner | [Ballot discuss] [Updated. I added #4.] #1) Sec 4.1: The text says: These constraints are enforceable by either the client or the server, and valid … [Ballot discuss] [Updated. I added #4.] #1) Sec 4.1: The text says: These constraints are enforceable by either the client or the server, and valid content must abide by them. I think the must needs to be MUST? #2) Sec 8.3: The text says: For configuration data, there are three windows when constraints can be enforced Is this suggesting that constraints might not be applied? That is, why isn't the "can" a "MUST": For configuration data, there are three windows when constraints MUST be enforced #3) The deviate statement scares me a bit. The text says: Device deviations are strongly discouraged and SHOULD only be used as a last resort. Telling the application how a device fails to follow a standard is no substitute for implementing the standard correctly. Why not a MUST instead of the SHOULD? It seems like this is the way I'd get out of doing what I'm supposed to. #4) The author agreed to incorporate some text as a result of the SECDIR review. Awaiting either an RFC editor with the text or a new version before clearing. Text is included below: YANG parsers need to be robust with respect to malformed documents. Reading malformed documents from unknown or untrusted sources could result in an attacker gaining privileges of the user running the YANG parser. In an extreme situation, the entire machine could be compromised. |
2010-05-06
|
13 | Sean Turner | [Ballot discuss] #1) Sec 4.1: The text says: These constraints are enforceable by either the client or the server, and valid content must abide by … [Ballot discuss] #1) Sec 4.1: The text says: These constraints are enforceable by either the client or the server, and valid content must abide by them. I think the must needs to be MUST? #2) Sec 8.3: The text says: For configuration data, there are three windows when constraints can be enforced Is this suggesting that constraints might not be applied? That is, why isn't the "can" a "MUST": For configuration data, there are three windows when constraints MUST be enforced #3) The deviate statement scares me a bit. The text says: Device deviations are strongly discouraged and SHOULD only be used as a last resort. Telling the application how a device fails to follow a standard is no substitute for implementing the standard correctly. Why not a MUST instead of the SHOULD? It seems like this is the way I'd get out of doing what I'm supposed to. |
2010-05-06
|
13 | Sean Turner | [Ballot discuss] #1) Sec 4.1: The text says: These constraints are enforceable by either the client or the server, and valid content must abide by … [Ballot discuss] #1) Sec 4.1: The text says: These constraints are enforceable by either the client or the server, and valid content must abide by them. I think the must needs to be MUST? #2) Sec 8.3: The text says: For configuration data, there are three windows when constraints can be enforced Is this suggesting that constraints might not be applied? That is, why isn't the "can" a "MUST": For configuration data, there are three windows when constraints MUST be enforced #3) The deviate statement scares me a bit. The text says: Device deviations are strongly discouraged and SHOULD only be used as a last resort. Telling the application how a device fails to follow a standard is no substitute for implementing the standard correctly. Why not a MUST instead of the SHOULD? It seems like this is the way I'd get out of doing what I'm supposed to. |
2010-05-06
|
13 | Sean Turner | [Ballot Position Update] New position, Discuss, has been recorded by Sean Turner |
2010-05-05
|
13 | Ralph Droms | [Ballot Position Update] New position, No Objection, has been recorded by Ralph Droms |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related … [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related to a vocabulary"). 2. Please expand the acronym PDU (protocol data unit) on first use in Section 4.2.7. (By the way, this term does not seem to be defined in RFC 4741 or any other core NETCONF specification, nor even in RFC 2578, so an explanation might be in order here for the benefit of readers not familiar with NETCONF or SNMP.) 3. In Section 7.1.8, it appears that the "contact" statement has no internal structure and is free-form text. Does this make automated processing more difficult? 4. In Section 8.3.1 (Payload Parsing), the following unmatched constraints both produce an "unknown-element" error-tag... o data for a node tagged with "if-feature" is present, and the feature is not supported by the device o data for a node tagged with "when" is present, and the "when" condition evaluates to "false" It would seem preferable to differentiate between these two case, for example by defining a "feature-not-implemented" error-tag for the first case. 5. Section 10 has the following sentence: Furthermore, the "namespace" statement MUST NOT be changed, since all XML elements are encoded in the namespace. Please change "encoded in" to "qualified by". A namespace does not provide an encoding. You might also be consistent about "qualified by", such as here: o If the argument is encoded as an element, it is placed to the same namespace as its parent keyword element. That is, change "placed to" to "qualified by". Perhaps search through the document for other instances (I have not performed a thorough search). 6. Similarly, the term "encoding" is used when talking about how to represent data in XML. As just one example: The argument of a YANG statement is encoded in YIN either as an XML attribute or a subelement of the keyword element. Table 1 defines the encoding for the set of YANG keywords. I would suggest changing "encoded" to "represented" and "encoding" to "mapping" (or choose other words that you find suitable). 7. Editorial nit, change "less" to "fewer" here: o A "min-elements" statement may be removed, or changed to require less elements. 8. In Section 12, the ABNF for "identifier" does not programmatically restrict an entity from specifying an identifier that starts with 'xml' (it is restricted by means of a human-readable comment). It's not clear whether a programmatic restriction is truly necessary, however. identifier-arg = identifier ;; An identifier MUST NOT start with (('X'|'x') ('M'|'m') ('L'|'l')) identifier = (ALPHA / "_") *(ALPHA / DIGIT / "_" / "-" / ".") 9. In Section 13, the "unknown-element" referred to under Section 8.3.1 is not defined. |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot discuss] 1. In Section 7.1.4 and elsewhere, the meaning of the prefix statement is unclear: The "prefix" statement is used to define the … [Ballot discuss] 1. In Section 7.1.4 and elsewhere, the meaning of the prefix statement is unclear: The "prefix" statement is used to define the prefix associated with the module and its namespace. Does this mean that this prefix is reserved? How shall applications handle conflicts among prefix names asserted by different modules? Does the IANA perhaps need to maintain a registry of prefix names? Do prefix names apply to module names (e.g., in accordance with the "orgprefix-modname" structure that appears to be assumed in this specification)? 2. In Section 7.1.9, the "revision" statement has the structure "YYYY-MM-DD"; this prevents an entity from releasing multiple versions on the same day, although it's not clear if that is serious issue (e.g., an entity might find a significant error or security problem with a released revision and might need to generate a new revision immediately thereafter). 3. In Section 7.19.3, the "description" statement contains a high-level textual description of this definition, which appears to be human-readable. However, no language tagging is provided in accordance with RFC 2277. 5. In Section 9, some of the built-in types (e.g., various integers) can have multiple lexical representations. This is justified as follows: The lexicographic representation of a value of a certain type is used in the NETCONF PDUs, and when specifying default values and numerical ranges in YANG modules. And also justified on the grounds of "convenience" in Section 9.2.1. What is this "convenience"? Is there really a strong reason to have multiple lexical representations? Is it a MUST for all implementations to support all lexical representations? If so, doesn't that increase code complexity? If not, doesn't that harm interoperability? 6. No motivation is provided for the alternate "YIN" syntax. Why is this here? Does it harm interoperability to have more than one syntax? (Perhaps not, given that there is a one-to-one mapping between them.) Does an implementation need to support both YANG and YIN? 7. Protocol versioning is good and seems to be represented here in the namespace names "urn:ietf:params:xml:ns:yang:1" and "urn:ietf:params:xml:ns:yang:yin:1". However, no guidance is provided about possible versioning of the data format, under what circumstances the version number would need to change, how older versions and newer versions can interoperate, etc. 8. The IANA considerations seem to request that the IANA shall enforce the structure "orgprefix-modname", but that structure is not required anywhere else in the document (although it is suggested). The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. Furthermore, it is not clear what it means for the IANA to maintain a module. The prefix 'iana-' is reserved for modules maintained by IANA. |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related … [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related to a vocabulary"). 2. Please expand the acronym PDU (protocol data unit) on first use in Section 4.2.7. (By the way, this term does not seem to be defined in RFC 4741 or any other core NETCONF specification, nor even in RFC 2578, so an explanation might be in order here for the benefit of readers not familiar with NETCONF or SNMP.) 3. In Section 7.1.8, it appears that the "contact" statement has no internal structure and is free-form text. Does this make automated processing more difficult? 4. In Section 8.3.1 (Payload Parsing), the following unmatched constraints both produce an "unknown-element" error-tag... o data for a node tagged with "if-feature" is present, and the feature is not supported by the device o data for a node tagged with "when" is present, and the "when" condition evaluates to "false" It would seem preferable to differentiate between these two case, for example by defining a "feature-not-implemented" error-tag for the first case. 5. Section 10 has the following sentence: Furthermore, the "namespace" statement MUST NOT be changed, since all XML elements are encoded in the namespace. Please change "encoded in" to "qualified by". A namespace does not provide an encoding. You might also be consistent about "qualified by", such as here: o If the argument is encoded as an element, it is placed to the same namespace as its parent keyword element. That is, change "placed to" to "qualified by". Perhaps search through the document for other instances (I have not performed a thorough search). 6. Similarly, the term "encoding" is used when talking about how to represent data in XML. As just one example: The argument of a YANG statement is encoded in YIN either as an XML attribute or a subelement of the keyword element. Table 1 defines the encoding for the set of YANG keywords. I would suggest changing "encoded" to "represented" and "encoding" to "mapping" (or choose other words that you find suitable). 7. Editorial nit, change "less" to "fewer" here: o A "min-elements" statement may be removed, or changed to require less elements. 8. In Section 12, the ABNF for "identifier" does not programmatically restrict an entity from specifying an identifier that starts with 'xml' (it is restricted by means of a human-readable comment). It's not clear whether a programmatic restriction is truly necessary, however. identifier-arg = identifier ;; An identifier MUST NOT start with (('X'|'x') ('M'|'m') ('L'|'l')) identifier = (ALPHA / "_") *(ALPHA / DIGIT / "_" / "-" / ".") 9. In Section 13, the "unknown-element" referred to under Section 8.3.1 is not defined. |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot discuss] 1. In Section 7.1.4 and elsewhere, the meaning of the prefix statement is unclear: The "prefix" statement is used to define the … [Ballot discuss] 1. In Section 7.1.4 and elsewhere, the meaning of the prefix statement is unclear: The "prefix" statement is used to define the prefix associated with the module and its namespace. Does this mean that this prefix is reserved? How shall applications handle conflicts among prefix names asserted by different modules? Does the IANA perhaps need to maintain a registry of prefix names? Do prefix names apply to module names (e.g., in accordance with the "orgprefix-modname" structure that appears to be assumed in this specification)? 2. In Section 7.1.9, the "revision" statement has the structure "YYYY-MM-DD"; this prevents an entity from releasing multiple versions on the same day, although it's not clear if that is serious issue (e.g., an entity might find a significant error or security problem with a released revision and might need to generate a new revision immediately thereafter). 3. In Section 7.19.3, the "description" statement contains a high-level textual description of this definition, which appears to be human-readable. However, no language tagging is provided in accordance with RFC 2277. 5. In Section 9, some of the built-in types (e.g., various integers) can have multiple lexical representations. This is justified as follows: The lexicographic representation of a value of a certain type is used in the NETCONF PDUs, and when specifying default values and numerical ranges in YANG modules. And also justified on the grounds of "convenience" in Section 9.2.1. What is this "convenience"? Is there really a strong reason to have multiple lexical representations? Is it a MUST for all implementations to support all lexical representations? If so, doesn't that increase code complexity? If not, doesn't that harm interoperability? 6. No motivation is provided for the alternate "YIN" syntax. Why is this here? Does it harm interoperability to have more than one syntax? (Perhaps not, given that there is a one-to-one mapping between them.) Does an implementation need to support both YANG and YIN? 7. Protocol versioning is good and seems to be represented here in the namespace names "urn:ietf:params:xml:ns:yang:1" and "urn:ietf:params:xml:ns:yang:yin:1". However, no guidance is provided about possible versioning of the data format, under what circumstances the version number would need to change, how older versions and newer versions can interoperate, etc. 8. The IANA considerations seem to request that the IANA shall enforce the structure "orgprefix-modname", but that structure is not required anywhere else in the document (although it is suggested). The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. Furthermore, it is not clear what it means for the IANA to maintain a module. The prefix 'iana-' is reserved for modules maintained by IANA. |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related … [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related to a vocabulary"). 2. Please expand the acronym PDU (protocol data unit) on first use. (By the way, this term does not seem to be defined in RFC 4741 or any other core NETCONF specification, nor even in RFC 2578, so an explanation might be in order here for the benefit of readers not familiar with NETCONF or SNMP.) 3. In Section 8.3.1 (Payload Parsing), the following unmatched constraints both produce an "unknown-element" error-tag... o data for a node tagged with "if-feature" is present, and the feature is not supported by the device o data for a node tagged with "when" is present, and the "when" condition evaluates to "false" It would seem preferable to differentiate between these two case, for example by defining a "feature-not-implemented" error-tag for the first case. 4. Section 10 has the following sentence: Furthermore, the "namespace" statement MUST NOT be changed, since all XML elements are encoded in the namespace. Please change "encoded in" to "qualified by". A namespace does not provide an encoding. You might also be consistent about "qualified by", such as here: o If the argument is encoded as an element, it is placed to the same namespace as its parent keyword element. That is, change "placed to" to "qualified by". Perhaps search through the document for other instances (I have not performed a thorough search). 5. Similarly, the term "encoding" is used when talking about how to represent data in XML. As just one example: The argument of a YANG statement is encoded in YIN either as an XML attribute or a subelement of the keyword element. Table 1 defines the encoding for the set of YANG keywords. I would suggest changing "encoded" to "represented" and "encoding" to "mapping" (or choose other words that you find suitable). 6. Editorial nit, change "less" to "fewer" here: o A "min-elements" statement may be removed, or changed to require less elements. 7. In Section 12, the ABNF for "identifier" does not programmatically restrict an entity from specifying an identifier that starts with 'xml' (it is restricted by means of a human-readable comment). It's not clear whether a programmatic restriction is truly necessary, however. identifier-arg = identifier ;; An identifier MUST NOT start with (('X'|'x') ('M'|'m') ('L'|'l')) identifier = (ALPHA / "_") *(ALPHA / DIGIT / "_" / "-" / ".") 8. In Section 13, the "unknown-element" referred to under Section 8.3.1 is not defined. |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot discuss] 1. In Section 9, some of the built-in types (e.g., various integers) can have multiple lexical representations. This is justified as follows: … [Ballot discuss] 1. In Section 9, some of the built-in types (e.g., various integers) can have multiple lexical representations. This is justified as follows: The lexicographic representation of a value of a certain type is used in the NETCONF PDUs, and when specifying default values and numerical ranges in YANG modules. And also justified on the grounds of "convenience" in Section 9.2.1. What is this "convenience"? Is there really a strong reason to have multiple lexical representations? Is it a MUST for all implementations to support all lexical representations? If so, doesn't that increase code complexity? If not, doesn't that harm interoperability? 2. No motivation is provided for the alternate "YIN" syntax. Why is this here? Does it harm interoperability to have more than one syntax? (Perhaps not, given that there is a one-to-one mapping between them.) Does an implementation need to support both YANG and YIN? 3. Protocol versioning is good and seems to be represented here in the namespace names "urn:ietf:params:xml:ns:yang:1" and "urn:ietf:params:xml:ns:yang:yin:1". However, no guidance is provided about possible versioning of the data format, under what circumstances the version number would need to change, how older versions and newer versions can interoperate, etc. |
2010-05-05
|
13 | Alexey Melnikov | [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers … [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. --------------------------------------- 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Ignored by whom? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-05-05
|
13 | Alexey Melnikov | [Ballot discuss] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to … [Ballot discuss] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? <> 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 DISCUSS DISCUSS: I don't see where the payload ("...") is coming from. <> 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? 13) 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. (Comment) This comment is not quite correct - it doesn't mention exclusded ASCII control characters (at least some of them). string = *char char = %x9 / %xA / %xD / %x20-DFFF / %xE000-FFFD / %x10000-10FFFF Surrogate pairs are between U+D800 and U+DFFF. They are not excluded above. 14) [ISO.10646] International Organization for Standardization, "Information Technology - Universal Multiple-octet coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane", ISO Standard 10646-1, May 1993. This reference is way too old, you should reference something more recent (e.g. dated 2003). Additionally, Part 1 only covers 16 bit Unicode codepoints, while you want the whole 24 bits. So you should be referencing ISO.10646, not just part 1. 15) 7.19.3. The description Statement The "description" statement takes as an argument a string which contains a high-level textual description of this definition. As this field is human readable, I think BCP 18 (RFC 2277), Section 4.2 applies. So this would need ability to tag language of the description. (YIN should be using xml:lang attribute.) You can find a bit more information on |
2010-05-05
|
13 | Alexey Melnikov | [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers … [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. --------------------------------------- 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Ignored by whom? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-05-05
|
13 | Alexey Melnikov | [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also … [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also have a list of other possible comments I need to check, so expect an update.] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? <> 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 I don't see where the payload ("...") is coming from. 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? 13) 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. (Comment) This comment is not quite correct - it doesn't mention exclusded ASCII control characters (at least some of them). string = *char char = %x9 / %xA / %xD / %x20-DFFF / %xE000-FFFD / %x10000-10FFFF Surrogate pairs are between U+D800 and U+DFFF. They are not excluded above. 14) [ISO.10646] International Organization for Standardization, "Information Technology - Universal Multiple-octet coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane", ISO Standard 10646-1, May 1993. This reference is way too old, you should reference something more recent (e.g. dated 2003). Additionally, Part 1 only covers 16 bit Unicode codepoints, while you want the whole 24 bits. So you should be referencing ISO.10646, not just part 1. 15) 7.19.3. The description Statement The "description" statement takes as an argument a string which contains a high-level textual description of this definition. As this field is human readable, I think BCP 18 (RFC 2277), Section 4.2 applies. So this would need ability to tag language of the description. (YIN should be using xml:lang attribute.) You can find a bit more information on |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related … [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related to a vocabulary"). 2. Please expand the acronym PDU (protocol data unit) on first use. (By the way, this term does not seem to be defined in RFC 4741 or any other core NETCONF specification, nor even in RFC 2578, so an explanation might be in order here for the benefit of readers not familiar with NETCONF or SNMP.) 3. In Section 8.3.1 (Payload Parsing), the following unmatched constraints both produce an "unknown-element" error-tag... o data for a node tagged with "if-feature" is present, and the feature is not supported by the device o data for a node tagged with "when" is present, and the "when" condition evaluates to "false" It would seem preferable to differentiate between these two case, for example by defining a "feature-not-implemented" error-tag for the first case. |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot discuss] 1. In Section 9, some of the built-in types (e.g., various integers) can have multiple lexical representations. This is justified as follows: … [Ballot discuss] 1. In Section 9, some of the built-in types (e.g., various integers) can have multiple lexical representations. This is justified as follows: The lexicographic representation of a value of a certain type is used in the NETCONF PDUs, and when specifying default values and numerical ranges in YANG modules. And also justified on the grounds of "convenience" in Section 9.2.1. What is this "convenience"? Is there really a strong reason to have multiple lexical representations? Is it a MUST for all implementations to support all lexical representations? If so, doesn't that increase code complexity? If not, doesn't that harm interoperability? |
2010-05-05
|
13 | Alexey Melnikov | [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers … [Ballot comment] Formerly a DISCUSS item: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. --------------------------------------- 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Does this mean that nodes with if-feature are also ignored (can be omitted) in YIN representation? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-05-05
|
13 | Alexey Melnikov | [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also … [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also have a list of other possible comments I need to check, so expect an update.] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? <> 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 I don't see where the payload ("...") is specified in the example. It looks that either your example is incorrect, or the description of anyxml is incorrect. Of course I can be wrong as well. 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? 13) 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. (Comment) This comment is not quite correct - it doesn't mention exclusded ASCII control characters (at least some of them). string = *char char = %x9 / %xA / %xD / %x20-DFFF / %xE000-FFFD / %x10000-10FFFF Surrogate pairs are between U+D800 and U+DFFF. They are not excluded above. 14) [ISO.10646] International Organization for Standardization, "Information Technology - Universal Multiple-octet coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane", ISO Standard 10646-1, May 1993. This reference is way too old, you should reference something more recent (e.g. dated 2003). Additionally, Part 1 only covers 16 bit Unicode codepoints, while you want the whole 24 bits. So you should be referencing ISO.10646, not just part 1. 15) 7.19.3. The description Statement The "description" statement takes as an argument a string which contains a high-level textual description of this definition. As this field is human readable, I think BCP 18 (RFC 2277), Section 4.2 applies. So this would need ability to tag language of the description. (YIN should be using xml:lang attribute.) You can find a bit more information on |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related … [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related to a vocabulary"). 2. Please expand the acronym PDU (protocol data unit) on first use. (By the way, this term does not seem to be defined in RFC 4741 or any other core NETCONF specification, nor even in RFC 2578, so an explanation might be in order here for the benefit of readers not familiar with NETCONF or SNMP.) 3. In Section 8.3.1 (Payload Parsing), the following unmatched constraints both produce an "unknown-element" error-tag... o data for a node tagged with "if-feature" is present, and the feature is not supported by the device o data for a node tagged with "when" is present, and the "when" condition evaluates to "false" It would seem preferable to differentiate between these two case, for example by defining a "feature-not-implemented" error-tag for the first case. |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot discuss] 1. In Section 9, most of the built-in types can have different lexical representations. This is justified as follows: The lexicographic representation … [Ballot discuss] 1. In Section 9, most of the built-in types can have different lexical representations. This is justified as follows: The lexicographic representation of a value of a certain type is used in the NETCONF PDUs, and when specifying default values and numerical ranges in YANG modules. Is there a strong reason to have different lexical representations? Is it a MUST for all implementations to support all lexical representations? If so, doesn't that increase code complexity? If not, doesn't that harm interoperability? |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot Position Update] New position, Discuss, has been recorded by Peter Saint-Andre |
2010-05-05
|
13 | Peter Saint-Andre | [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related … [Ballot comment] 1. Throughout the document, change "lexicographic" and "lexicographical" to "lexical" ("lexicographic" means "related to the practice of compiling dictionaries" whereas "lexical" means "related to a vocabulary"). 2. Please expand the acronym PDU (protocol data unit) on first use. (By the way, this term does not seem to be defined in RFC 4741 or any other core NETCONF specification, nor even in RFC 2578, so an explanation might be in order here for the benefit of readers not familiar with NETCONF or SNMP.) 3. In Section 8.3.1 (Payload Parsing), the following unmatched constraints both produce an "unknown-element" error-tag... o data for a node tagged with "if-feature" is present, and the feature is not supported by the device o data for a node tagged with "when" is present, and the "when" condition evaluates to "false" It would seem preferable to differentiate between these two case, for example by defining a "feature-not-implemented" error-tag for the first case. 4. In Section 9, most of the built-in types can have different lexical representations. This is justified as follows: The lexicographic representation of a value of a certain type is used in the NETCONF PDUs, and when specifying default values and numerical ranges in YANG modules. Is there a strong reason to have different lexical representations? Is it a MUST for all implementations to support all lexical representations? If so, doesn't that increase code complexity? If not, doesn't that harm interoperability? |
2010-05-03
|
13 | Robert Sparks | [Ballot comment] The deviation mechanism seems too flexible to me. As defined, someone could claim to implement standard X, but use deviation statements to completely … [Ballot comment] The deviation mechanism seems too flexible to me. As defined, someone could claim to implement standard X, but use deviation statements to completely replace the contents of X with something proprietary. Discussions with Dan indicate that this was explicitly considered by the group and deemed acceptable. Is there any text that could be added to more strongly discourage this kind of abuse of the mechanism? In particular, what would help a client implementor defend against a statement like "No, the spec says I can deviate this way, and you're at non-interoperability-fault for not conforming to my deviations" when the deviations are more extreme than the simple policy and limit deviations shown as examples? Consider deleting the sentence "A list is similar to a table where each list entry is a row in the table." The document defines a list. A table is not defined in this document. Appealing to a common-sense notion of what a table might be is not much more useful than just appealing to the common-sense notion of a list, and the statement might introduce confusion if the reader makes assumptions about tables that you didn't intend. |
2010-05-03
|
13 | Robert Sparks | [Ballot discuss] I have a few points to discuss before recommending approval of this document. 1) The definition of line folding in quotes (6.1.3) is … [Ballot discuss] I have a few points to discuss before recommending approval of this document. 1) The definition of line folding in quotes (6.1.3) is ambiguous if tabs don't represent a pre-defined fixed number of columns. 2) I'm not finding an explicit definition of the semantics of merge that results in the move behavior described in the example at the end of section 7.8.7. What text informs an implementation to do the right thing if the example isn't available? (I may just be missing it). 3) Is it the case that can only operate on lists that have config true; in their definition? If so, does the document say that somewhere? If not, then the operations will only work on lists that have a defined key and that constraint should be called out. 4) Given the canonical form and lexicographic representation defined in section 9.5.1, is it defined what a server should do if it sees a boolean represented as "TRUE" instead of "true"? |
2010-05-03
|
13 | Robert Sparks | [Ballot Position Update] New position, Discuss, has been recorded by Robert Sparks |
2010-05-03
|
13 | Alexey Melnikov | [Ballot comment] Formerly a DISCUSS item: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule … [Ballot comment] Formerly a DISCUSS item: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? If yes, I can help you create the registration templates. --------------------------------------- 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Does this mean that nodes with if-feature are also ignored (can be omitted) in YIN representation? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-05-03
|
13 | Alexey Melnikov | [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also … [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also have a list of other possible comments I need to check, so expect an update.] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). 5) 7.7.1. Ordering YANG supports two styles for ordering the entries within lists and leaf-lists. In many lists, the order of list entries does not impact the implementation of the list's configuration, and the device is free to sort the list entries in any reasonable order. The "description" string for the list may suggest an order. Are you sure you meant "description" here? YANG calls this style of list "system ordered" and they are indicated with the statement "ordered-by system". 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 I don't see where the payload ("...") is specified in the example. It looks that either your example is incorrect, or the description of anyxml is incorrect. Of course I can be wrong as well. 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 8) 7.19.4. The reference Statement The "reference" statement takes as an argument a string which is used to specify a textual cross-reference to an external document, either another module which defines related management information, or a document which provides additional information relevant to this definition. What do you call a "reference" here? Is a URI a reference? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? 13) 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. (Comment) This comment is not quite correct - it doesn't mention exclusded ASCII control characters (at least some of them). string = *char char = %x9 / %xA / %xD / %x20-DFFF / %xE000-FFFD / %x10000-10FFFF Surrogate pairs are between U+D800 and U+DFFF. They are not excluded above. 14) [ISO.10646] International Organization for Standardization, "Information Technology - Universal Multiple-octet coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane", ISO Standard 10646-1, May 1993. This reference is way too old, you should reference something more recent (e.g. dated 2003). Additionally, Part 1 only covers 16 bit Unicode codepoints, while you want the whole 24 bits. So you should be referencing ISO.10646, not just part 1. 15) 7.19.3. The description Statement The "description" statement takes as an argument a string which contains a high-level textual description of this definition. As this field is human readable, I think BCP 18 (RFC 2277), Section 4.2 applies. So this would need ability to tag language of the description. (YIN should be using xml:lang attribute.) You can find a bit more information on |
2010-05-03
|
13 | Samuel Weiler | Request for Last Call review by SECDIR Completed. Reviewer: Alan DeKok. |
2010-05-03
|
13 | Ron Bonica | [Ballot Position Update] New position, Yes, has been recorded by Ron Bonica |
2010-05-03
|
13 | Alexey Melnikov | [Ballot comment] Formerly a DISCUSS item: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule … [Ballot comment] Formerly a DISCUSS item: 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? If yes, I can help you create the registration templates. --------------------------------------- 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Does this mean that nodes with if-feature are also ignored (can be omitted) in YIN representation? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-05-03
|
13 | Alexey Melnikov | [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also … [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also have a list of other possible comments I need to check, so expect an update.] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). 5) 7.7.1. Ordering YANG supports two styles for ordering the entries within lists and leaf-lists. In many lists, the order of list entries does not impact the implementation of the list's configuration, and the device is free to sort the list entries in any reasonable order. The "description" string for the list may suggest an order. Are you sure you meant "description" here? YANG calls this style of list "system ordered" and they are indicated with the statement "ordered-by system". 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 I don't see where the payload ("...") is specified in the example. It looks that either your example is incorrect, or the description of anyxml is incorrect. Of course I can be wrong as well. 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 8) 7.19.4. The reference Statement The "reference" statement takes as an argument a string which is used to specify a textual cross-reference to an external document, either another module which defines related management information, or a document which provides additional information relevant to this definition. What do you call a "reference" here? Is a URI a reference? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? 13) 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. (Comment) This comment is not quite correct - it doesn't mention exclusded ASCII control characters (at least some of them). string = *char char = %x9 / %xA / %xD / %x20-DFFF / %xE000-FFFD / %x10000-10FFFF Surrogate pairs are between U+D800 and U+DFFF. They are not excluded above. |
2010-04-25
|
13 | Alexey Melnikov | [Ballot comment] 4.2.2.1. Leaf Nodes A leaf node contains simple data like an integer or a string. It has exactly one value of … [Ballot comment] 4.2.2.1. Leaf Nodes A leaf node contains simple data like an integer or a string. It has exactly one value of a particular type, and no child nodes. YANG Example: leaf host-name { type string; description "Hostname for this system"; } NETCONF XML Example: my.example.com This and other examples got me confused. First, the document says that 1 representation can be converted to the other one without loss of data, but then the example doesn't show "description". 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. -------New comments---------- 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Does this mean that nodes with if-feature are also ignored (can be omitted) in YIN representation? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-04-25
|
13 | Alexey Melnikov | [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also … [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet. Note that I also have a list of other possible comments I need to check, so expect an update.] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? If yes, I can help you create the registration templates. 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). -----------New text-------------- 5) 7.7.1. Ordering YANG supports two styles for ordering the entries within lists and leaf-lists. In many lists, the order of list entries does not impact the implementation of the list's configuration, and the device is free to sort the list entries in any reasonable order. The "description" string for the list may suggest an order. Are you sure you meant "description" here? YANG calls this style of list "system ordered" and they are indicated with the statement "ordered-by system". 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 I don't see where the payload ("...") is specified in the example. It looks that either your example is incorrect, or the description of anyxml is incorrect. Of course I can be wrong as well. 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 8) 7.19.4. The reference Statement The "reference" statement takes as an argument a string which is used to specify a textual cross-reference to an external document, either another module which defines related management information, or a document which provides additional information relevant to this definition. What do you call a "reference" here? Is a URI a reference? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 11) In Section 12: ;; statment keywords anyxml-keyword = 'anyxml' argument-keyword = 'argument' augment-keyword = 'augment' <'> is not allowed in ABNF. 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? 13) 9.4. The string Built-in Type The string built-in type represents human readable strings in YANG. Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646 [ISO.10646]: ;; any Unicode character, excluding the surrogate blocks, ;; FFFE, and FFFF. (Comment) This comment is not quite correct - it doesn't mention exclusded ASCII control characters (at least some of them). string = *char char = %x9 / %xA / %xD / %x20-DFFF / %xE000-FFFD / %x10000-10FFFF Surrogate pairs are between U+D800 and U+DFFF. They are not excluded above. |
2010-04-25
|
13 | Alexey Melnikov | [Ballot comment] 4.2.2.1. Leaf Nodes A leaf node contains simple data like an integer or a string. It has exactly one value of … [Ballot comment] 4.2.2.1. Leaf Nodes A leaf node contains simple data like an integer or a string. It has exactly one value of a particular type, and no child nodes. YANG Example: leaf host-name { type string; description "Hostname for this system"; } NETCONF XML Example: my.example.com This and other examples got me confused. First, the document says that 1 representation can be converted to the other one without loss of data, but then the example doesn't show "description". 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. -------New comments---------- 7.5.3. The must Statement The "must" statement, which is optional, takes as an argument a string which contains an XPath expression. I think this needs a reference to a section defining XPath expressions. 7.10. The anyxml Statement An anyxml node cannot be augmented. A reference to where augmented is defined would be useful. Or instead say something like: An anyxml node cannot be augmented using the ... statement. 7.18.1. The feature Statement The "feature" statement is used to define a mechanism by which portions of the schema are marked as conditional. A feature name is defined that can later be referenced using the "if-feature" statement (see Section 7.18.2). Schema nodes tagged with a feature are ignored unless the device supports the given feature. Does this mean that nodes with if-feature are also ignored (can be omitted) in YIN representation? If a feature is dependent on any other features (i.e., the feature has one or more "if-feature" sub-statements), then all of features it depends on MUST also be implemented by the device. I think you meant to say that if one of "if-feature" statements of a feature is not implemented by a device, then the device can't implement the feature. 9.4.4. The length Statement The "length" statement, which is an optional substatement to the "type" statement, takes as an argument a length expression string. It is used to restrict the built-in type "string", or types derived from "string". A "length" statement restricts the number of characters in the number of *Unicode* characters string. In Section 12: ;; ;; RFC 4234 core rules. ;; s/4234/5234 |
2010-04-25
|
13 | Alexey Melnikov | [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet.] This is a well … [Ballot discuss] [I reviewed the whole document, except for the ABNF section. I haven't reviewed reply to my original DUSCUSS yet.] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? If yes, I can help you create the registration templates. 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). -----------New text-------------- 5) 7.7.1. Ordering YANG supports two styles for ordering the entries within lists and leaf-lists. In many lists, the order of list entries does not impact the implementation of the list's configuration, and the device is free to sort the list entries in any reasonable order. The "description" string for the list may suggest an order. Are you sure you meant "description" here? YANG calls this style of list "system ordered" and they are indicated with the statement "ordered-by system". 6) 7.10.2. XML Mapping Rules An anyxml node is encoded as an XML element. The element's local name is the anyxml's identifier, and its namespace is the module's XML namespace (see Section 7.1.3). The value of the anyxml node is encoded as XML content of this element. and 7.10.4. Usage Example Given the following anyxml statement: anyxml data; The following are two valid encodings of the same anyxml value: 1 I don't see where the payload ("...") is specified in the example. It looks that either your example is incorrect, or the description of anyxml is incorrect. Of course I can be wrong as well. 7) 7.19.2. The status Statement If a definition is "current", it MUST NOT reference a "deprecated" or "obsolete" definition within the same module. If a definition is "deprecated", it MUST NOT reference an "obsolete" definition within the same module. What does it mean to reference a definition? Can you show an example demonstrating use of this statement? 8) 7.19.4. The reference Statement The "reference" statement takes as an argument a string which is used to specify a textual cross-reference to an external document, either another module which defines related management information, or a document which provides additional information relevant to this definition. What do you call a "reference" here? Is a URI a reference? 9) 9.6.4. The enum Statement The "enum" statement, which is a substatement to the "type" statement, MUST be present if the type is "enumeration". It is repeatedly used to specify each assigned name of an enumeration type. It takes as an argument a string which is the assigned name. The string MUST NOT be empty and MUST NOT have any leading or trailing whitespace characters. The use of control codes SHOULD be avoided. How do you define a "control code"? 10) 9.8.2. Lexicographic Representation Binary values are encoded with the base64 encoding scheme [RFC4648]. You need to specify the alphabet used (there are 2 different ones defined in RFC 4648). 11) In Section 12: ;; statment keywords anyxml-keyword = 'anyxml' argument-keyword = 'argument' augment-keyword = 'augment' <'> is not allowed in ABNF. 12) 14. IANA Considerations o a reference to the (sub)module's documentation (the RFC number) [...] The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. How can "iana-" be used if all modules require an RFC? |
2010-04-23
|
13 | (System) | Removed from agenda for telechat - 2010-04-22 |
2010-04-22
|
13 | Gonzalo Camarillo | [Ballot comment] The acronym NETCONF should be expanded in the Abstract. |
2010-04-22
|
13 | Gonzalo Camarillo | [Ballot Position Update] New position, No Objection, has been recorded by Gonzalo Camarillo |
2010-04-21
|
13 | Alexey Melnikov | [Ballot comment] 4.2.2.1. Leaf Nodes A leaf node contains simple data like an integer or a string. It has exactly one value of … [Ballot comment] 4.2.2.1. Leaf Nodes A leaf node contains simple data like an integer or a string. It has exactly one value of a particular type, and no child nodes. YANG Example: leaf host-name { type string; description "Hostname for this system"; } NETCONF XML Example: my.example.com This and other examples got me confused. First, the document says that 1 representation can be converted to the other one without loss of data, but then the example doesn't show "description". 7.1.6. The include Statement When the optional "revision-date" is present, the specified revision of the submodule is included in the module. What would happen if a specific revision is included, but the submodule doesn't contain any revision? I assume that would be an error, but I am wondering if it is worth calling this out explicitly. (Similar comment for "import".) Otherwise, it is undefined which revision of the submodule is included. |
2010-04-21
|
13 | Alexey Melnikov | [Ballot discuss] [I only read 1/3rd of the document so far, but I am sending my comments in order to speedup discuss resolution.] This is … [Ballot discuss] [I only read 1/3rd of the document so far, but I am sending my comments in order to speedup discuss resolution.] This is a well written document, a pleasure to read. Thank you. However I did find some things that I would like to discuss before recommending approval of this document: 1) 5.1. Modules and Submodules The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for (Similar text in several other sections, e.g. 7.1, 7.2) Why RECOMMENDED and not a MUST here? I.e. what is a good reason to violate this and to choose conflicting names? their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the enterprise or organization name as a prefix for the module name. 2) 5.2. File Layout YANG modules and submodules are typically stored in files, one module or submodule per file. The name of the file SHOULD be of the form: module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' ) Does this mean that 2 new MIME media types should be registered? If yes, I can help you create the registration templates. 3) 6.1.3. Quoting If the double quoted string contains a line break followed by space or tab characters which are used to indent the text according to the Does a tab character correspond to a fixed number of spaces? If yes, how many? layout in the YANG file, this leading whitespace is stripped from the string, up to and including the column of the double quote character, or to the first non-whitespace character, whichever occurs first. 4) 7.1. The module Statement A module SHOULD have the following layout: Why SHOULD here? What is the significance of the recommended layout and how does it benefit an implementation? Parsers can't rely on this SHOULD, so they will have to implement any allowed ordering. (Similar text in Section 7.2). |
2010-04-21
|
13 | Alexey Melnikov | [Ballot Position Update] New position, Discuss, has been recorded by Alexey Melnikov |
2010-04-21
|
13 | Alexey Melnikov | State Changes to IESG Evaluation - Defer from IESG Evaluation by Alexey Melnikov |
2010-04-21
|
13 | Russ Housley | [Ballot Position Update] New position, No Objection, has been recorded by Russ Housley |
2010-04-20
|
13 | Stewart Bryant | [Ballot Position Update] New position, No Objection, has been recorded by Stewart Bryant |
2010-04-19
|
13 | David Harrington | [Ballot Position Update] New position, Recuse, has been recorded by David Harrington |
2010-04-14
|
13 | Dan Romascanu | Ballot has been issued by Dan Romascanu |
2010-04-14
|
13 | Dan Romascanu | [Ballot Position Update] New position, Yes, has been recorded for Dan Romascanu |
2010-04-14
|
13 | Dan Romascanu | Ballot has been issued by Dan Romascanu |
2010-04-14
|
13 | Dan Romascanu | Created "Approve" ballot |
2010-04-14
|
13 | Dan Romascanu | Placed on agenda for telechat - 2010-04-22 by Dan Romascanu |
2010-04-14
|
13 | Dan Romascanu | State Changes to IESG Evaluation from Waiting for AD Go-Ahead::Revised ID Needed by Dan Romascanu |
2010-04-14
|
13 | Dan Romascanu | State Changes to Waiting for AD Go-Ahead::Revised ID Needed from Waiting for AD Go-Ahead by Dan Romascanu |
2010-04-14
|
12 | (System) | New version available: draft-ietf-netmod-yang-12.txt |
2010-04-09
|
13 | (System) | State has been changed to Waiting for AD Go-Ahead from In Last Call by system |
2010-04-07
|
13 | Amanda Baber | IANA comments: Action 1: Upon approval of this document, IANA will create the following registry at http://www.iana.org/assignments/TBD Registry Name: YANG Module Names Registration Procedures: RFC … IANA comments: Action 1: Upon approval of this document, IANA will create the following registry at http://www.iana.org/assignments/TBD Registry Name: YANG Module Names Registration Procedures: RFC Required Note: The module name prefix 'ietf-' is reserved for IETF stream documents [RFC4844] while the module name prefix 'irtf-' is reserved for IRTF stream documents. Modules published in other RFC streams must have a similar suitable prefix. The prefix 'iana-' is reserved for modules maintained by IANA. Initial contents of this registry will be: (Sub)Module Name | (Module) Namespace | (Module) Prefix | (SubModule) Module | Reference Action 2: Upon approval of this document, IANA will make the following assignments in the "ns" registry at http://www.iana.org/assignments/xml-registry/ns.html ID URI Registration template Reference yang:yin:1 urn:ietf:params:xml:ns:yang:yin:1 yang:yin:1 [RFC-netmod-yang-11] yang:1 urn:ietf:params:xml:ns:yang:1 yang:1 [RFC-netmod-yang-11] |
2010-03-15
|
13 | Samuel Weiler | Request for Last Call review by SECDIR is assigned to Alan DeKok |
2010-03-15
|
13 | Samuel Weiler | Request for Last Call review by SECDIR is assigned to Alan DeKok |
2010-03-10
|
13 | Amy Vezza | Last call sent |
2010-03-10
|
13 | Amy Vezza | State Changes to In Last Call from Last Call Requested by Amy Vezza |
2010-03-10
|
13 | Dan Romascanu | Last Call was requested by Dan Romascanu |
2010-03-10
|
13 | Dan Romascanu | State Changes to Last Call Requested from Publication Requested by Dan Romascanu |
2010-03-10
|
13 | (System) | Ballot writeup text was added |
2010-03-10
|
13 | (System) | Last call text was added |
2010-03-10
|
13 | (System) | Ballot approval text was added |
2010-02-25
|
13 | Cindy Morgan | [Note]: 'David Partain (david.partain@ericsson.com) is the document shepherd.' added by Cindy Morgan |
2010-02-25
|
13 | Cindy Morgan | Document write-up for draft-ietf-netmod-yang-11.txt (1.a) Who is the Document Shepherd for this document? David Partain, NETMOD WG co-chair Has the Document Shepherd personally reviewed … Document write-up for draft-ietf-netmod-yang-11.txt (1.a) Who is the Document Shepherd for this document? David Partain, NETMOD WG co-chair Has the Document Shepherd personally reviewed this version of the document and, in particular, does he or she believe this version is ready for forwarding to the IESG for publication? Yes, I have reviewed this document and consider it very much ready for IESG review and publication as a Proposed Standard. (1.b) Has the document had adequate review both from key WG members and from key non-WG members? Yes, we have had extensive review of the document itself. We have requested and received review from outside the working group. Does the Document Shepherd have any concerns about the depth or breadth of the reviews that have been performed? No, I do not. (1.c) Does the Document Shepherd have concerns that the document needs more review from a particular or broader perspective, e.g., security, operational complexity, someone familiar with AAA, internationalization or XML? The document would be well-served by further review from the XML Directorate review as well as a broader APPS area review. Requests have been made for such reviews during the normal course of WG activity, but response has been very limited. (1.d) Does the Document Shepherd have any specific concerns or issues with this document that the Responsible Area Director and/or the IESG should be aware of? For example, perhaps he or she is uncomfortable with certain parts of the document, or has concerns whether there really is a need for it. In any event, if the WG has discussed those issues and has indicated that it still wishes to advance the document, detail those concerns here. I am concerned that the document's size is going to be a hindrance to review by some members of the IETF community. There have been a number of contentious issues in the working group, but all have in the end been worked out to the satisfaction of most. The most contentious issue was how defaults are going to be handled, which is now documented in the specification. Has an IPR disclosure related to this document been filed? If so, please include a reference to the disclosure and summarize the WG discussion and conclusion on this issue. No IPR disclosures have been filed against this document. (1.e) How solid is the WG consensus behind this document? Does it represent the strong concurrence of a few individuals, with others being silent, or does the WG as a whole understand and agree with it? I believe this document represents strong consensus of the working group after intense work over the last 18 months. (1.f) Has anyone threatened an appeal or otherwise indicated extreme discontent? No. (1.g) Has the Document Shepherd personally verified that the document satisfies all ID nits? (See the Internet-Drafts Checklist and http://tools.ietf.org/tools/idnits/). Boilerplate checks are not enough; this check needs to be thorough. Those issues pointed out by the tool are not correct. 1. It incorrectly identifies some numbers as IP addresses. They are not; they are instead section numbers. == There are 14 instances of lines with non-RFC3330-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. 2. There are some possible down-refs, but they are not; they are documents produced by other standards bodies. Has the document met all formal review criteria it needs to, such as the MIB Doctor, media type and URI type reviews? Yes. (1.h) Has the document split its references into normative and informative? Yes. Are there normative references to documents that are not ready for advancement or are otherwise in an unclear state? No. Are there normative references that are downward references, as described in [RFC3967]? No. (1.i) Has the Document Shepherd verified that the document IANA consideration section exists and is consistent with the body of the document? Yes. Are the IANA registries clearly identified? Yes. If the document creates a new registry, does it define the proposed initial contents of the registry and an allocation procedure for future registrations? Yes. Does it suggest a reasonable name for the new registry? Yes. If the document describes an Expert Review process has Shepherd conferred with the Responsible Area Director so that the IESG can appoint the needed Expert during the IESG Evaluation? It does not describe an Expert Review process. (1.j) Has the Document Shepherd verified that sections of the document that are written in a formal language, such as XML code, BNF rules, MIB definitions, etc., validate correctly in an automated checker? Yes. (1.k) The IESG approval announcement includes a Document Announcement Write-Up. Please provide such a Document Announcement Write-Up? Recent examples can be found in the "Action" announcements for approved documents. The approval announcement contains the following sections: Technical Summary YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF) protocol, NETCONF remote procedure calls, and NETCONF notifications. YANG is used to model the operations and content layers of NETCONF. This document describes the syntax and semantics of the YANG language, how the data model defined in a YANG module is represented in XML, and how NETCONF operations are used to manipulate the data. Working Group Summary Consensus was reached among all interested parties before requesting the publication of this document. Document Quality There are multiple independent implementations of YANG today, including both commercial and freely-available tools. |
2010-02-25
|
13 | Cindy Morgan | Draft Added by Cindy Morgan in state Publication Requested |
2010-02-24
|
11 | (System) | New version available: draft-ietf-netmod-yang-11.txt |
2010-01-12
|
10 | (System) | New version available: draft-ietf-netmod-yang-10.txt |
2009-12-01
|
09 | (System) | New version available: draft-ietf-netmod-yang-09.txt |
2009-10-22
|
08 | (System) | New version available: draft-ietf-netmod-yang-08.txt |
2009-07-13
|
07 | (System) | New version available: draft-ietf-netmod-yang-07.txt |
2009-06-25
|
06 | (System) | New version available: draft-ietf-netmod-yang-06.txt |
2009-04-20
|
05 | (System) | New version available: draft-ietf-netmod-yang-05.txt |
2009-03-06
|
04 | (System) | New version available: draft-ietf-netmod-yang-04.txt |
2009-01-12
|
03 | (System) | New version available: draft-ietf-netmod-yang-03.txt |
2008-11-03
|
02 | (System) | New version available: draft-ietf-netmod-yang-02.txt |
2008-08-29
|
01 | (System) | New version available: draft-ietf-netmod-yang-01.txt |
2008-05-14
|
00 | (System) | New version available: draft-ietf-netmod-yang-00.txt |