config=false 节点时强制

config=false node when mandatory

我有一个 Yang 模型,它定义了一个 config=false 节点,这也是强制性的。我是否应该 return 该节点作为空 XML 节点获取 rpc 响应,即使我的应用程序不支持它?

理想情况下我的应用程序应该支持它,但由于限制我们无法实现所需的支持。那么应该如何正确处理此类案件呢?我们应该 emit/represent 它作为一个空的 XML 节点获取 rpc 响应吗?我想如果我们忽略这些节点,外部控制器可能无法获得 rpc 响应。

-拉姆

如果你的服务器实现不支持原始模型中的特定节点,你应该创建一个偏差 YANG 模块,它表达了这个限制。通过这种方式,客户会了解它并且每个人都很高兴 - 您当然会连同偏离的模块一起宣传您的偏离模块。

例如:

module target {
  yang-version 1.1;
  namespace "target:uri";
  prefix "tgt";

  container state {
    config false;
    leaf some-counter {
      type uint64;
      mandatory true;
    }
  }
}

假设您的设备不支持上面的 some-counter 叶。然后创建偏差模块,描述您的实施与合规实施的不同之处。

module target-dev {
  yang-version 1.1;
  namespace "target-dev:uri";
  prefix "tgtd";

  import target {
    prefix tgt;
  }

  deviation "/tgt:state/tgt:some-counter" {
    deviate not-supported;
  }
}

当 get 请求到来时,您 return 对那片叶子一无所获,因为它不存在于您的实现世界中。

deviationdeviate 语句的详细信息可以在 RFC7950 中找到:

依赖此机制时要格外小心!始终创建一个单独的模块,其中仅包含偏差,可能会偏离单个目标模块。有一个 guidelines document 你应该阅读以防万一。