如何在 YANG 中定义对同一数据模型的不同视图?

网络工程 监控 管理 网络配置
2022-02-23 04:49:42

RFC6020 包含以下声明“一个 NETCONF 服务器可以实现多个模块,允许对同一数据进行多个视图”(我的重点)。我想这样做,以便我的 NETCONF 服务器可以将设备整体数据模型的不同部分公开给不同的客户端。在某些情况下,暴露给不同客户端的视图可能会重叠。

问题是,YANG 如何支持这一点?有人可能会认为在一个模块中可以包含一个在另一个模块中定义的容器,但据我所知,YANG 不支持这一点。我知道您可以使用“增强”将数据项添加到在导入模块中定义的现有项中,但我只想“按原样”重用另一个模块中的容器。

对于如何实现这一目标的任何建议,我将不胜感激。

1个回答

虽然 YANG 支持导入,但这句话听起来好像意味着不同的 YANG 模型可能提供对不同格式的同一组底层非 YANG 数据的访问。作为一个假设的例子,考虑 IETF 与 OpenConfig 标准,它们都定义了一种方式,例如,如何将 IP 地址分配给接口。因此,NETCONF 服务器可以提供两者ietf-interfaces及其对应的 OpenConfig 等效项。

当然,在某些 NETCONF 服务器软件堆栈上正确执行此操作可能会很棘手,因为必须决定是否以某种方式将一个此类模型中的更改传播到另一个模型以确保一致性等。