3

我定义了一个分组,它的叶子的强制属性设置为 false。但在某些情况下,我想使用这种分组并指定叶子应该是强制性的。我如何在 YANG 中实现这一目标?

4

1 回答 1

3

refine在指定使用分组时,您将使用该语句。

module mandatory-and-grouping {
  namespace "org:example:mandatory-and-grouping";
  prefix "mag";

  grouping my-grouping {
    leaf my-leaf {
      type string;
    }
  }

  container top {
    uses my-grouping {
      refine my-leaf {
        mandatory true;
      }
    }
  }
}

7.13.2。“精炼”声明

分组中每个节点的某些属性可以使用“refine”语句进行细化。参数是一个字符串,用于标识分组中的一个节点。该节点称为细化的目标节点。如果分组中的节点不作为“优化”语句的目标节点存在,则它不会被优化,因此完全按照分组中定义的方式使用。

参数字符串是后代模式节点标识符(参见 第 6.5 节)。

可以进行以下改进:

  • 一个叶子或选择节点可能会获得一个默认值,或者如果它已经有一个新的默认值。
  • 叶列表节点可能会获得一组默认值,或者如果它已经有默认值,则可能会获得一组新的默认值;即,一组细化的默认值替换已经给出的默认值。
  • 任何节点都可以得到一个专门的“描述”字符串。
  • 任何节点都可能获得专门的“参考”字符串。
  • 任何节点都可能得到不同的“config”语句。
  • 叶、anydata、anyxml 或选择节点可能会获得不同的“强制”语句。
  • 一个容器节点可能会得到一个“存在”声明。
  • 叶、叶列表、列表、容器、anydata 或 anyxml 节点可能会获得额外的“必须”表达式。
  • 叶列表或列表节点可能会获得不同的“最小元素”或“最大元素”语句。
  • 叶、叶列表、列表、容器、选择、案例、anydata 或 anyxml 节点可能会获得额外的“if-feature”表达式。
  • 如果扩展允许细化,任何节点都可以得到细化的扩展。有关详细信息,请参阅第 7.19 节

RFC7950,第 7.13.2 节

于 2017-08-31T07:01:08.347 回答