首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >叶节点“何时”或“必须”语句用法

叶节点“何时”或“必须”语句用法
EN

Stack Overflow用户
提问于 2017-04-24 12:29:53
回答 2查看 3.4K关注 0票数 3

我正在学习OpenDayLight和Yang,我想不出如何对一个叶节点施加约束。我有一个叶节点(vpn-id)。当l3vpn型节点等于'bgp‘时,我希望这个节点的数据被允许用于vpn-id。如果叶节点不等于'bgp‘,并且输入了vpn-id,我想抛出一个错误。我已经在OpenDayLight中测试过这一点,它总是允许我保存数据,不管其中包含什么数据。

而且,我很难找到杨的例子,所以我可以教自己。欢迎提出建议。

代码语言:javascript
复制
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;
           }
      }              
 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-25 05:56:37

when语句的用法是正确的。您已经将vpn-id设置为条件,因此只有当l3vpn-type的值为bgp时,才允许它出现。也许由于ODL中的一个bug,它没有按预期工作。

如果你想了解杨,阅读ietf-netmod-yang标签维基将是一个很好的开始(底部有链接)。有各种团体制作的杨模块的存储库,可以在网上找到,比如这一个。也许阅读标准模块会是一个更好的开始,因为它们会被同行评审,并遵循杨作者的指导方针。它们可以在已出版的RFCs内部找到,其名称通常包含"YANG data model for“短语。

票数 0
EN

Stack Overflow用户

发布于 2021-01-26 09:33:59

您可以按以下方式添加“必须”语句:

代码语言:javascript
复制
leaf vpn-id {
    must "../l3vpn-type = 'bgp'";
    type string;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43588132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档