1

我正在编写一个 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 的内容。

4

2 回答 2

2

您应该在第二个模块中导入第一个模块,然后用第二个模块扩充第一个模块:

假设第一个模块包含:

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”语句定义新节点有效时的条件。

于 2017-11-07T17:36:38.227 回答
0

这显然是不可能的。您只能以这种方式使用分组,而不能使用容器。

于 2017-10-31T14:25:45.293 回答