在yang文件中调用'C'函数

问题描述 投票:0回答:1

我们可以在yang文件中调用'C'函数吗?还是有什么办法可以做到这一点?基本上,我想调用“ C”函数,该函数将返回一个整数值并在我的.yang文件中使用它。

下面是我的叶子结构:

leaf memory {
  type int16;
  default 100;
}

我不希望此处的静态默认值为100。我希望从“ C”函数中提取默认字段中的值。

有什么方法可以做到这一点?

谢谢

ietf-netmod-yang
1个回答
0
投票

YANG没有定义实现细节,它只是定义了服务器和客户端交换的数据的模式。实现YANG模型以实现引用的一种可能方法是使用YANG扩展。这些允许数据模型包含YANG标准无法识别但YANG代理可以识别的额外信息。

这意味着:

  1. 在YANG文件上定义扩展名
  2. 使用该扩展名而不是default关键字
  3. 在您的实现中,有一种机制,只要初始化YANG定义的值(如果存在扩展名),就调用具有该名称的方法以检索默认值,而不是使用模型直接描述的默认值。

如您所见,前两步很容易,第三步则很困难,因为这需要在编译时或运行时对YANG解析器进行调整,以便调用扩展所提及的C函数。这需要某种能够处理扩展并将其保留在内存中的引擎,以便正确初始化数据。

这是一个关于YANG的样例

module extensions {
  namespace "http://example.com/extensions";
  prefix ext;

  extension default-function {
     argument function-name;
     description "Describes that this leaf has its default value defined by this function.";
  }
}
import extensions { prefix ext; }
(...)
  leaf memory {
    type int16;
    ext:default-function 100;
  }
© www.soinside.com 2019 - 2024. All rights reserved.