1.1. RFC 6020的变化摘要

这个文件定义了YANG语言的版本1.1。 YANG版本1.1是YANG语言的维护版本,解决了原始规范RFC6020中的模糊性和缺陷。

以下更改不能与YANG版本1向后兼容:

  • 更改了双引号字符串中转义字符解释的规则。这是从YANG版本1向后不兼容的变化。当更新YANG版本1模块为1.1,并且模块使用现在是非法的字符序列时,必须更改字符串以匹配新规则。详情请参见第6.1.3节

  • 没有引号的字符串不能包含任何单引号或双引号字符。这是从YANG版本1向后不兼容的变化。当更新YANG版本1模块为1.1,并且模块使用这样的引号字符时,必须更改字符串以匹配新的规则。详情请参见第6.1.3节

  • 在列表键上使“when”和“if-feature”非法。这是从YANG版本1向后不兼容的变化。当更新YANG版本1模块为1.1,并且模块使用这些结构时,必须删除它们以匹配新规则。

  • 定义了YANG模块中的合法字符。将YANG版本1模块更新到1.1时,必须删除现在非法的任何字符。详情请参阅第6章

  • 在内置的“字符串”中使非字符非法。此更改会影响基于YANG的协议的运行时行为。

YANG做了以下更改:

  • YANG版本从“1”更改为“1.1”。

  • 在“1.1”版本中做了“yang-version”声明。

  • 将“if-feature”语法扩展为功能名称上的布尔表达式。

  • 允许“比特”(bit),“枚举”(enum)和“身份”(identity)中包含“if-feature”。

  • 允许“refine”中包含“if-feature”。

  • 允许“choice”作为简短的“case”陈述(见第7.9.2节)。

  • 在“pattern”语句中添加了一个新的子句“modifier”(参见第9.4.6节)。

  • 在“input”,“output”和“notification”中允许包含“must”。

  • leafref中允许包含“require-instance”。

  • 允许“import”和“include”中包含“描述”(description)和“引用”(reference)。

  • 允许导入模块的多个修订版本。

  • 允许“augment”添加有条件的强制节点(见第7.17节)。

  • 第10节中添加了一组新的XML路径语言(XPath)函数。

  • 第6.4.1节中阐述了XPath上下文的树。

  • XPath表达式中定义了一个identityref的字符串值(见9.10节)。

  • 澄清typedef中的leafrefs中没有前缀的名字(参见6.4.19.9.2节)。

  • 允许从多个基本身份派生身份(见7.189.10节)。

  • 允许枚举(enumerations)和位(bits)是子类型的(参见9.69.7节)。

  • 允许叶子列表具有默认值(参见第7.7.2节)。

  • 允许非配置叶子列表中的非唯一值(参见7.7节)。

  • 在语法中使用区分大小写的字符串的语法(按RFC7405)。

  • 更改了模块发布机制(参见第5.6.4节)。

  • 更改了子模块中定义的范围规则。子模块现在可以引用所有子模块中的所有定义

  • 添加了一个新的语句“action”,用于定义绑定到数据节点的操作。

  • 允许通知绑定到数据节点。

  • 增加了一个新的数据定义语句“anydata”(见第7.10节),当数据可以在YANG中建模时,建议使用它来代替“anyxml”。

  • unions中允许类型“empty”和“leafref”。

  • 允许在键中键入“empty”。

  • 删除了标识符不能以字符“xml”开头的限制。

NETCONF映射进行了以下更改:

  • 服务器通过使用ietf-yang-library RFC7895来发布对YANG 1.1模块的支持,而不是将它们列为<hello>消息中的能力。