我正在编写一个YANG模块,我希望在其中包含来自另一个模块的容器,即我想在我正在编写的模块中定义一个新容器,该容器引用另一个模块的容器。尝试失败的示例:
module newmodule {
yang-version 1.1;
namespace "urn:nist:params:xml:ns:yang:newmodule";
prefix newmodule;
import ietf-access-control-list {
prefix "acl";
}
container newprofile {
uses acl:access-lists;
}
}
我只包括上面的基本部分。这里acl:access-lists是一个容器。
是否可以像这样组合容器?我已经尝试成功地从分组构建容器。但是,在这种情况下,我无法控制ietf-access-control-list的内容。
答案 0 :(得分:1)
您应该导入第二个模块中的第一个模块,然后使用第二个模块扩充第一个模块:
假设第一个模块包含:
module first {
yang-version 1.1;
namespace "http://first";
prefix first;
container first-container {
description
"First container";
}
第二个模块应
module second {
yang-version 1.1;
namespace "http://second";
prefix second;
import first {
prefix first;
}
augment "/first:first-container" {
container second-container {
description
"Second container";
}
}
}
YANG 1.1允许该操作:
YANG允许模块将其他节点插入数据模型中 包括当前模块(及其子模块)和 外部模块。例如,这对于要添加的供应商很有用 特定于供应商的参数到标准数据模型中 可互操作的方式。
“augment”语句定义数据模型中的位置 插入新节点的层次结构和“when”语句 定义新节点有效的条件。
答案 1 :(得分:0)
这显然是不可能的。您只能以这种方式使用分组,而不能使用容器。