1

我有一个像 -

  grouping threshold-value-grouping {
    container threshold-value {
      description "Threshold value";
      leaf upper-limit-val {
        description
          "Upper limit";
        type uint32 {
          range "1..60000";
        }
      }
      leaf lower-limit-val {
        description
          "Lower limit";
        type uint32 {
          range "1..60000";
        }
      }
    }
  }

我想在多个地方重用这个分组。但是在不同的地方使用时,叶子的范围会有所不同。

所以我想知道如何使用refine语句来实现?或者有没有更好的方法来解决这个问题?

4

1 回答 1

3

RFC 7950的第 7.13.2 节明确指定了所有可能的改进,range而不是其中之一。在 ABNF 语法(第 14 节)中也type可以看到:

refine-stmt         = refine-keyword sep refine-arg-str optsep
                       "{" stmtsep
                           ;; these stmts can appear in any order
                           *if-feature-stmt
                           *must-stmt
                           [presence-stmt]
                           *default-stmt
                           [config-stmt]
                           [mandatory-stmt]
                           [min-elements-stmt]
                           [max-elements-stmt]
                           [description-stmt]
                           [reference-stmt]
                         "}" stmtsep

但是你可以做的是在must这里添加一个约束,比如

uses threshold-value-grouping {
    refine threshold-value/upper-limit-val {
        must '(. >= 10 and . <= 100)' {
            error-message "Here you can only use values between 10 and 100";
        }
    }
}
于 2019-04-03T09:57:55.953 回答