config = false节点(必选)

时间:2019-06-21 08:37:33

标签: ietf-netmod-yang

我有一个Yang模型,该模型定义了config = false节点,该节点也是必需的。即使我的应用程序不支持该节点,我也应该在get rpc响应中将该节点作为一个空XML节点返回吗?

理想情况下,我的应用程序应该支持它,但是由于限制,我们无法实现所需的支持。那么,处理此类案件的正确方法应该是什么?我们是否应该在get rpc响应中将其作为空XML节点发出/表示?我想如果我们忽略这样的节点,则外部控制器可能无法获得rpc响应。

-Ram

1 个答案:

答案 0 :(得分:1)

如果服务器实现不支持原始模型中的特定节点,则应创建偏差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请求时,由于该叶子在您的实现世界中不存在,因此不会为该叶子返回任何内容。

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

依靠这种机制时,您应该非常小心!始终创建一个单独的模块,其中仅包含偏差,可能会偏离单个目标模块。有guidelines document,您应该阅读以防万一。