我正在学习 OpenDayLight 和 Yang,但不知道如何对叶节点施加约束。我有一个叶节点(vpn-id)。当 l3vpn 类型节点等于“bgp”时,我希望这个节点的数据允许用于 vpn-id。如果叶节点不等于'bgp'并且输入了vpn-id,我想抛出一个错误。我在 OpenDayLight 中对此进行了测试,无论数据中有什么,它总是允许我保存数据。
另外,我很难找到杨的例子,这样我就可以自学了。欢迎提出建议。
module DaveTest {
namespace "urn:aaa:ddd:DaveTest";
prefix dave-module;
description "Dave testing file";
revision "2017-04-17" {
description "Initial version.";
}
container testing-vars {
list test-list {
key "vpn-transaction-id l3vpn-type";
unique "vpn-transaction-id";
leaf vpn-transaction-id {
type string;
}
leaf l3vpn-type {
type enumeration {
enum "bgp";
enum "static";
enum "gre tunnel";
}
mandatory true;
}
leaf vpn-id {
when "../l3vpn-type = 'bgp'";
type string;
}
}
}