杨建模语言 - 在位类型

问题描述

在YANG语言中是否有可能在位类型叶中选择一个选项,这将取消选择所有其他位? 我想要做的是,认情况下选择了整个平台,但是当用户选择其他选项时,将取消选择整个平台。 否则,当用户选择 Whole-Platform 时,应取消选择所有其他选项。

leaf check-type {
            type bits {
              bit Whole-platform;
              bit NSO-checks;
              bit ESC-checks;
            }
            default "Whole-platform";
 }

bits

解决方法

不,YANG 位类型不会让您这样做,因为默认情况下各个位之间不存在任何关系 - 除了所有这些都属于同一组“可配置标志”的概念。

这是联合类型成为可行建模决策的地方。

leaf check-type {
  type union {
    type enumeration {
      enum Whole-platform;
    }
    type bits {
      bit NSO-checks;
      bit ESC-checks;
    }
  }
  default Whole-platform;
}

这样做意味着值 Whole-platform 与读者的剩余位值集之间的 XOR(互斥)。

有效值:

<check-type>Whole-platform</check-type>
<check-type>NSO-checks</check-type>
<check-type>NSO-checks ESC-checks</check-type>

无效:

<check-type>Whole-platform ESC-checks</check-type>

您可以保留您的类型,并在描述中处理一个位来统治它们,因为那只是人类可读的规范文本。

description "Implementations must ensure an XOR relationship between
             'Whole-platform' bit value and the other bit values of this
             leaf. When the former is used it means that 
             ...";

注意:您要实现的是实现细节。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...