Model 了解杨及其目标

Model 了解杨及其目标,model,schema,ietf-netmod-yang,Model,Schema,Ietf Netmod Yang,我已经读过,但在理解YANG的实际用途以及它所带来的好处方面仍然存在问题。据我所知,它现在不仅由NETCONF使用,正如最初设计的那样YANG不是一种普通意义上的语言,例如C或python,也就是说,我们在YANG中写的任何东西都不会被编译或翻译;据我所知,is被用作更高级别库或应用程序的参考模型。然后问题是高级代码是如何理解YANG的?YANG是一种专门的模式语言,类似于XSD模式或RelaxNG,但(was)特定于NETCONF。其目标是对对等方之间协议会话期间交换的所有内容进行建模,如RF

我已经读过,但在理解YANG的实际用途以及它所带来的好处方面仍然存在问题。据我所知,它现在不仅由NETCONF使用,正如最初设计的那样
YANG
不是一种普通意义上的语言,例如
C
python
,也就是说,我们在
YANG
中写的任何东西都不会被编译或翻译;据我所知,is被用作更高级别库或应用程序的参考模型。然后问题是高级代码是如何理解YANG的?

YANG是一种专门的模式语言,类似于XSD模式或RelaxNG,但(was)特定于NETCONF。其目标是对对等方之间协议会话期间交换的所有内容进行建模,如RFC6020中所述:

YANG是一种用于为NETCONF协议建模数据的语言。A. YANG模块定义了可用于NETCONF的数据层次结构- 基于操作,包括配置、状态数据、远程 过程调用(RPC)和通知。这允许一个完整的 NETCONF客户端和服务器之间发送的所有数据的说明

YANG定义的模型可能以通常的方式使用——例如代码生成,就像XSD模式和Java一样。有一些工具和服务器实现只是使用YANG模块集(一个YANG模型),并且可以用作虚拟实现。还有一些工具使用该模型让用户能够查询设备,而无需实际实现有关设备的任何特定功能。可以说,一组模块公开了设备提供的接口。如何使用此接口完全取决于您自己

我建议阅读规范中提供的高级概述:

  • (草案)
还要检查标记的wiki页面


编辑:您还可以从阅读文档中获益。它进一步解释了YANG a所属的体系结构,包括应用程序开发人员等不同角色应该如何处理它(在网络管理环境中)。

感谢您的评论,现在我觉得这更有意义了。鉴于YANG定义了类型以及值可以接受的范围——验证类型和值是否是YANG-YIN转换API/tool/等的责任?YANG-YIN转换只是用XML表示YANG模块,与数据验证无关。YANG用于某些通信协议的上下文中。如果设备声称它实现了某些YANG模块,那么它必须对使用该协议传输的所有数据执行YANG模块中定义的验证。@标记,是。执行实例文档的模块遵从性是处理阳/阴的工具的责任。该工具也可能是手动实现客户机或服务器或两者的人。@Piotr,你的意思是使用YANG模型的协议应该对其以XML格式发送或接收的任何数据执行YANG验证吗?虽然最初是这样指定的,但YANG不再特定于NETCONF。其他协议也使用它,例如RESTCONF和CoAP,使用多种不同的编码(XML、JSON、CBOR)。还有一个专有的gRPC实现。