【问题标题】:Is it possible to use two When statements in a Yang model是否可以在杨模型中使用两个When语句
【发布时间】:2022-07-08 22:21:09
【问题描述】:

根据给定的值,尝试使用具有两种不同 if 类型的杨叶。 目前有:

leaf interface_number {
        when "boolean(string(/payload/interface_type) != 'ae')";
            type isyt:interface_number_value;
        when "boolean(string(/payload/interface_type) == 'ae')";
            type isyt:interface_lag_value;
        description
            "Interface Number. Example value: 1/1/1 or 11 for LAG";
        mandatory "true";
    }

我也试过了:

        leaf interface_number {
        when "boolean(string(/payload/interface_type) != 'ae')" {
            type isyt:interface_number_value;
        }
        when "boolean(string(/payload/interface_type) == 'ae')" {
            type isyt:interface_lag_value;
        }
        description
            "Interface Number. Example value: 1/1/1 or 11 for LAG";
        mandatory "true";
    }

Yang 似乎接受了第一个,当他们在第二个语句的布尔值时出错。 这甚至可能吗?或者有没有更好的方法来解决这个问题。

【问题讨论】:

    标签: yang


    【解决方案1】:

    这不是 YANG 语法的工作原理; type 语句不能以 when 为条件。 when affects the whole enclosing node,因此如果它的计算结果为 false,那么您的 interface_number 将根本无效。

    您可以在这里做的是创建一个choice,其case 语句是when-有条件的,具体取决于../interface_type 叶的类型。这将需要为您在这些 case 语句中定义的每个 leaf 使用不同的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 2016-03-16
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多