如何从YANG语言中的分组中细化节点的强制属性?

时间:2017-08-30 18:48:43

标签: model-driven ietf-netmod-yang

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

1 个答案:

答案 0 :(得分: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。 “精炼”声明

     

可以细化分组中每个节点的一些属性      用“精炼”声明。参数是一个字符串      标识分组中的节点。此节点称为精简程序      目标节点。如果分组中的节点不作为目标存在      “精炼”语句的节点,它不是精炼的,因此被使用      与分组中定义的完全一样。

     

参数字符串是后代模式节点标识符(请参阅      Section 6.5)。

     

可以进行以下改进:

     
      
  • 叶子或选择节点可能会获得默认值或新默认值     价值,如果它已经有一个。

  •   
  • 叶子列表节点可能会获得一组默认值或一组新的默认值     默认值,如果它已经有默认值;即,一组     精炼的默认值替换已经给出的默认值。

  •   
  • 任何节点都可以获得专门的“描述”字符串。

  •   
  • 任何节点都可以获得专门的“引用”字符串。

  •   
  • 任何节点都可能获得不同的“config”语句。

  •   
  • leaf,anydata,anyxml或choice节点可能会有所不同     “强制性”声明。

  •   
  • 容器节点可能会收到“在线状态”声明。

  •   
  • 叶子,叶子列表,列表,容器,anydata或anyxml节点可以     获得额外的“必须”表达。

  •   
  • 叶子列表或列表节点可能会获得不同的“最小元素”或     “max-elements”声明。

  •   
  • 叶子,叶子列表,列表,容器,选项,大小写,任何数据或     anyxml节点可能会获得额外的“if-feature”表达式。

  •   
  • 如果扩展允许,任何节点都可以获得精炼扩展     细化。有关详细信息,请参阅Section 7.19

  •   
     

RFC7950, Section 7.13.2