draft-ietf-netmod-rfc6020bis-10.txt   draft-ietf-netmod-rfc6020bis-11.txt 
Network Working Group M. Bjorklund, Ed. Network Working Group M. Bjorklund, Ed.
Internet-Draft Tail-f Systems Internet-Draft Tail-f Systems
Intended status: Standards Track February 4, 2016 Intended status: Standards Track February 16, 2016
Expires: August 7, 2016 Expires: August 19, 2016
The YANG 1.1 Data Modeling Language The YANG 1.1 Data Modeling Language
draft-ietf-netmod-rfc6020bis-10 draft-ietf-netmod-rfc6020bis-11
Abstract Abstract
YANG is a data modeling language used to model configuration data, YANG is a data modeling language used to model configuration data,
state data, remote procedure calls, and notifications for network state data, remote procedure calls, and notifications for network
management protocols like the Network Configuration Protocol management protocols like the Network Configuration Protocol
(NETCONF). (NETCONF).
Status of This Memo Status of This Memo
skipping to change at page 1, line 33 skipping to change at page 1, line 33
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 7, 2016. This Internet-Draft will expire on August 19, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 10, line 13 skipping to change at page 10, line 13
Section 9.9.2). Section 9.9.2).
o Allow identities to be derived from multiple base identities (see o Allow identities to be derived from multiple base identities (see
Section 7.18 and Section 9.10). Section 7.18 and Section 9.10).
o Allow enumerations and bits to be subtyped (see Section 9.6 and o Allow enumerations and bits to be subtyped (see Section 9.6 and
Section 9.7). Section 9.7).
o Allow leaf-lists to have default values (see Section 7.7.2). o Allow leaf-lists to have default values (see Section 7.7.2).
o Allow non-unique values in non-configuration leaf-lists (see
Section 7.7).
o Use [RFC7405] syntax for case-sensitive strings in the grammar. o Use [RFC7405] syntax for case-sensitive strings in the grammar.
o Changed the module advertisement mechanism (see Section 5.6.5). o Changed the module advertisement mechanism (see Section 5.6.5).
o Changed the scoping rules for definitions in submodules. A o Changed the scoping rules for definitions in submodules. A
submodule can now reference all definitions in all submodules that submodule can now reference all definitions in all submodules that
belong to the same module, without using the "include" statement. belong to the same module, without using the "include" statement.
o Added a new statement "action" that is used to define operations o Added a new statement "action" that is used to define operations
tied to data nodes. tied to data nodes.
skipping to change at page 142, line 14 skipping to change at page 142, line 14
"White_Space" property). The use of Unicode control codes SHOULD be "White_Space" property). The use of Unicode control codes SHOULD be
avoided. avoided.
The statement is optionally followed by a block of substatements that The statement is optionally followed by a block of substatements that
holds detailed enum information. holds detailed enum information.
All assigned names in an enumeration MUST be unique. All assigned names in an enumeration MUST be unique.
When an existing enumeration type is restricted, the set of assigned When an existing enumeration type is restricted, the set of assigned
names in the new type MUST be a subset of the base type's set of names in the new type MUST be a subset of the base type's set of
assigned names. The value of such an assigned name MUST not be assigned names. The value of such an assigned name MUST NOT be
changed. changed.
9.6.4.1. The enum's Substatements 9.6.4.1. The enum's Substatements
+--------------+---------+-------------+ +--------------+---------+-------------+
| substatement | section | cardinality | | substatement | section | cardinality |
+--------------+---------+-------------+ +--------------+---------+-------------+
| description | 7.21.3 | 0..1 | | description | 7.21.3 | 0..1 |
| if-feature | 7.20.2 | 0..n | | if-feature | 7.20.2 | 0..n |
| reference | 7.21.4 | 0..1 | | reference | 7.21.4 | 0..1 |
skipping to change at page 144, line 35 skipping to change at page 144, line 35
} }
9.7. The bits Built-In Type 9.7. The bits Built-In Type
The bits built-in type represents a bit set. That is, a bits value The bits built-in type represents a bit set. That is, a bits value
is a set of flags identified by small integer position numbers is a set of flags identified by small integer position numbers
starting at 0. Each bit number has an assigned name. starting at 0. Each bit number has an assigned name.
When an existing bits type is restricted, the set of assigned names When an existing bits type is restricted, the set of assigned names
in the new type MUST be a subset of the base type's set of assigned in the new type MUST be a subset of the base type's set of assigned
names. The bit position of such an assigned name MUST not be names. The bit position of such an assigned name MUST NOT be
changed. changed.
9.7.1. Restrictions 9.7.1. Restrictions
A bits type can be restricted with the "bit" (Section 9.7.4) A bits type can be restricted with the "bit" (Section 9.7.4)
statement. statement.
9.7.2. Lexical Representation 9.7.2. Lexical Representation
The lexical representation of the bits type is a space-separated list The lexical representation of the bits type is a space-separated list
skipping to change at page 192, line 46 skipping to change at page 192, line 46
;; leafref path ;; leafref path
path-arg-str = < a string that matches the rule > path-arg-str = < a string that matches the rule >
< path-arg > < path-arg >
path-arg = absolute-path / relative-path path-arg = absolute-path / relative-path
absolute-path = 1*("/" (node-identifier *path-predicate)) absolute-path = 1*("/" (node-identifier *path-predicate))
relative-path = 1*(".." "/") descendant-path relative-path = 1*("../") descendant-path
descendant-path = node-identifier descendant-path = node-identifier
[*path-predicate absolute-path] [*path-predicate absolute-path]
path-predicate = "[" *WSP path-equality-expr *WSP "]" path-predicate = "[" *WSP path-equality-expr *WSP "]"
path-equality-expr = node-identifier *WSP "=" *WSP path-key-expr path-equality-expr = node-identifier *WSP "=" *WSP path-key-expr
path-key-expr = current-function-invocation *WSP "/" *WSP path-key-expr = current-function-invocation *WSP "/" *WSP
rel-path-keyexpr rel-path-keyexpr
rel-path-keyexpr = 1*(".." *WSP "/" *WSP) rel-path-keyexpr = 1*(".." *WSP "/" *WSP)
*(node-identifier *WSP "/" *WSP) *(node-identifier *WSP "/" *WSP)
node-identifier node-identifier
;;; Keywords, using RFC 7405 syntax for case-sensitive strings ;;; Keywords, using RFC 7405 syntax for case-sensitive strings
;; statement keywords ;; statement keywords
action-keyword = %s"action" action-keyword = %s"action"
anydata-keyword = %s"anydata" anydata-keyword = %s"anydata"
anyxml-keyword = %s"anyxml" anyxml-keyword = %s"anyxml"
argument-keyword = %s"argument" argument-keyword = %s"argument"
augment-keyword = %s"augment" augment-keyword = %s"augment"
base-keyword = %s"base" base-keyword = %s"base"
belongs-to-keyword = %s"belongs-to" belongs-to-keyword = %s"belongs-to"
bit-keyword = %s"bit" bit-keyword = %s"bit"
case-keyword = %s"case" case-keyword = %s"case"
choice-keyword = %s"choice" choice-keyword = %s"choice"
config-keyword = %s"config" config-keyword = %s"config"
contact-keyword = %s"contact" contact-keyword = %s"contact"
container-keyword = %s"container" container-keyword = %s"container"
default-keyword = %s"default" default-keyword = %s"default"
description-keyword = %s"description" description-keyword = %s"description"
enum-keyword = %s"enum" enum-keyword = %s"enum"
error-app-tag-keyword = %s"error-app-tag" error-app-tag-keyword = %s"error-app-tag"
error-message-keyword = %s"error-message" error-message-keyword = %s"error-message"
extension-keyword = %s"extension" extension-keyword = %s"extension"
deviation-keyword = %s"deviation" deviation-keyword = %s"deviation"
deviate-keyword = %s"deviate" deviate-keyword = %s"deviate"
feature-keyword = %s"feature" feature-keyword = %s"feature"
fraction-digits-keyword = %s"fraction-digits" fraction-digits-keyword = %s"fraction-digits"
grouping-keyword = %s"grouping" grouping-keyword = %s"grouping"
identity-keyword = %s"identity" identity-keyword = %s"identity"
if-feature-keyword = %s"if-feature" if-feature-keyword = %s"if-feature"
import-keyword = %s"import" import-keyword = %s"import"
include-keyword = %s"include" include-keyword = %s"include"
input-keyword = %s"input" input-keyword = %s"input"
key-keyword = %s"key" key-keyword = %s"key"
leaf-keyword = %s"leaf" leaf-keyword = %s"leaf"
leaf-list-keyword = %s"leaf-list" leaf-list-keyword = %s"leaf-list"
length-keyword = %s"length" length-keyword = %s"length"
list-keyword = %s"list" list-keyword = %s"list"
mandatory-keyword = %s"mandatory" mandatory-keyword = %s"mandatory"
max-elements-keyword = %s"max-elements" max-elements-keyword = %s"max-elements"
min-elements-keyword = %s"min-elements" min-elements-keyword = %s"min-elements"
modifier-keyword = %s"modifier" modifier-keyword = %s"modifier"
module-keyword = %s"module" module-keyword = %s"module"
must-keyword = %s"must" must-keyword = %s"must"
namespace-keyword = %s"namespace" namespace-keyword = %s"namespace"
notification-keyword= %s"notification" notification-keyword = %s"notification"
ordered-by-keyword = %s"ordered-by" ordered-by-keyword = %s"ordered-by"
organization-keyword= %s"organization" organization-keyword = %s"organization"
output-keyword = %s"output" output-keyword = %s"output"
path-keyword = %s"path" path-keyword = %s"path"
pattern-keyword = %s"pattern" pattern-keyword = %s"pattern"
position-keyword = %s"position" position-keyword = %s"position"
prefix-keyword = %s"prefix" prefix-keyword = %s"prefix"
presence-keyword = %s"presence" presence-keyword = %s"presence"
range-keyword = %s"range" range-keyword = %s"range"
reference-keyword = %s"reference" reference-keyword = %s"reference"
refine-keyword = %s"refine" refine-keyword = %s"refine"
require-instance-keyword = %s"require-instance" require-instance-keyword = %s"require-instance"
revision-keyword = %s"revision" revision-keyword = %s"revision"
revision-date-keyword = %s"revision-date" revision-date-keyword = %s"revision-date"
rpc-keyword = %s"rpc" rpc-keyword = %s"rpc"
status-keyword = %s"status" status-keyword = %s"status"
submodule-keyword = %s"submodule" submodule-keyword = %s"submodule"
type-keyword = %s"type" type-keyword = %s"type"
typedef-keyword = %s"typedef" typedef-keyword = %s"typedef"
unique-keyword = %s"unique" unique-keyword = %s"unique"
units-keyword = %s"units" units-keyword = %s"units"
uses-keyword = %s"uses" uses-keyword = %s"uses"
value-keyword = %s"value" value-keyword = %s"value"
when-keyword = %s"when" when-keyword = %s"when"
yang-version-keyword= %s"yang-version" yang-version-keyword = %s"yang-version"
yin-element-keyword = %s"yin-element" yin-element-keyword = %s"yin-element"
;; other keywords ;; other keywords
add-keyword = %s"add" add-keyword = %s"add"
current-keyword = %s"current" current-keyword = %s"current"
delete-keyword = %s"delete" delete-keyword = %s"delete"
deprecated-keyword = %s"deprecated" deprecated-keyword = %s"deprecated"
false-keyword = %s"false" false-keyword = %s"false"
invert-match-keyword = %s"invert-match" invert-match-keyword = %s"invert-match"
max-keyword = %s"max" max-keyword = %s"max"
min-keyword = %s"min" min-keyword = %s"min"
not-supported-keyword = %s"not-supported" not-supported-keyword = %s"not-supported"
obsolete-keyword = %s"obsolete" obsolete-keyword = %s"obsolete"
replace-keyword = %s"replace" replace-keyword = %s"replace"
system-keyword = %s"system" system-keyword = %s"system"
true-keyword = %s"true" true-keyword = %s"true"
unbounded-keyword = %s"unbounded" unbounded-keyword = %s"unbounded"
user-keyword = %s"user" user-keyword = %s"user"
and-keyword = %s"and" and-keyword = %s"and"
or-keyword = %s"or" or-keyword = %s"or"
not-keyword = %s"not" not-keyword = %s"not"
current-function-invocation = current-keyword *WSP "(" *WSP ")" current-function-invocation = current-keyword *WSP "(" *WSP ")"
;;; Basic Rules ;;; Basic Rules
prefix-arg-str = < a string that matches the rule > prefix-arg-str = < a string that matches the rule >
< prefix-arg > < prefix-arg >
prefix-arg = prefix prefix-arg = prefix
skipping to change at page 195, line 49 skipping to change at page 195, line 49
string = < an unquoted string as returned by > string = < an unquoted string as returned by >
< the scanner, that matches the rule > < the scanner, that matches the rule >
< yang-string > < yang-string >
yang-string = *yang-char yang-string = *yang-char
;; any Unicode or ISO/IEC 10646 character including tab, carriage ;; any Unicode or ISO/IEC 10646 character including tab, carriage
;; return, and line feed, but excluding the other C0 control ;; return, and line feed, but excluding the other C0 control
;; characters, the surrogate blocks, and the noncharacters. ;; characters, the surrogate blocks, and the noncharacters.
yang-char = %x9 / %xA / %xD / %x20-D7FF / yang-char = %x09 / %x0A / %x0D / %x20-D7FF /
; exclude surrogate blocks %xD800-DFFF ; exclude surrogate blocks %xD800-DFFF
%xE000-FDCF / ; exclude noncharacters %xFDD0-FDEF %xE000-FDCF / ; exclude noncharacters %xFDD0-FDEF
%xFDF0-FFFD / ; exclude noncharacters %xFFFE-FFFF %xFDF0-FFFD / ; exclude noncharacters %xFFFE-FFFF
%x10000-1FFFD / ; exclude noncharacters %x1FFFE-1FFFF %x10000-1FFFD / ; exclude noncharacters %x1FFFE-1FFFF
%x20000-2FFFD / ; exclude noncharacters %x2FFFE-2FFFF %x20000-2FFFD / ; exclude noncharacters %x2FFFE-2FFFF
%x30000-3FFFD / ; exclude noncharacters %x3FFFE-3FFFF %x30000-3FFFD / ; exclude noncharacters %x3FFFE-3FFFF
%x40000-4FFFD / ; exclude noncharacters %x4FFFE-4FFFF %x40000-4FFFD / ; exclude noncharacters %x4FFFE-4FFFF
%x50000-5FFFD / ; exclude noncharacters %x5FFFE-5FFFF %x50000-5FFFD / ; exclude noncharacters %x5FFFE-5FFFF
%x60000-6FFFD / ; exclude noncharacters %x6FFFE-6FFFF %x60000-6FFFD / ; exclude noncharacters %x6FFFE-6FFFF
%x70000-7FFFD / ; exclude noncharacters %x7FFFE-7FFFF %x70000-7FFFD / ; exclude noncharacters %x7FFFE-7FFFF
skipping to change at page 196, line 47 skipping to change at page 196, line 47
stmtsep = *(WSP / line-break / unknown-statement) stmtsep = *(WSP / line-break / unknown-statement)
line-break = CRLF / LF line-break = CRLF / LF
non-zero-digit = %x31-39 non-zero-digit = %x31-39
decimal-value = integer-value ("." zero-integer-value) decimal-value = integer-value ("." zero-integer-value)
SQUOTE = %x27 SQUOTE = %x27
; ' (Single Quote) ; single quote
;;; RFC 5234 core rules. ;;; RFC 5234 core rules.
ALPHA = %x41-5A / %x61-7A ALPHA = %x41-5A / %x61-7A
; A-Z / a-z ; A-Z / a-z
CR = %x0D CR = %x0D
; carriage return ; carriage return
CRLF = CR LF CRLF = CR LF
skipping to change at page 199, line 44 skipping to change at page 199, line 44
refers to a non-existing instance, the following error is returned: refers to a non-existing instance, the following error is returned:
error-tag: bad-attribute error-tag: bad-attribute
error-app-tag: missing-instance error-app-tag: missing-instance
16. IANA Considerations 16. IANA Considerations
This document registers one capability identifier URN from the This document registers one capability identifier URN from the
"Network Configuration Protocol (NETCONF) Capability URNs" registry: "Network Configuration Protocol (NETCONF) Capability URNs" registry:
urn:ietf:params:netconf:capability:yang-library:1.0 Index Capability Identifier
------------- ---------------------------------------------------
:yang-library urn:ietf:params:netconf:capability:yang-library:1.0
17. Security Considerations 17. Security Considerations
This document defines a language with which to write and read This document defines a language with which to write and read
descriptions of management information. The language itself has no descriptions of management information. The language itself has no
security impact on the Internet. security impact on the Internet.
The same considerations are relevant as for the base NETCONF protocol The same considerations are relevant as for the base NETCONF protocol
(see [RFC6241], Section 9). (see [RFC6241], Section 9).
 End of changes. 14 change blocks. 
95 lines changed or deleted 100 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/