Как уточнить линейку листьев в модели YANG? - PullRequest
0 голосов
/ 21 марта 2019

У меня группировка вроде -

  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";
        }
      }
    }
  }

И я хочу использовать эту группу в нескольких местах. Но при использовании в разных местах, диапазон листьев варьируется.

Поэтому мне интересно, как я могу использовать оператор уточнение для достижения? Или есть лучший способ решить эту проблему?

1 Ответ

1 голос
/ 03 апреля 2019

В разделе 7.13.2 RFC 7950 явно указаны все возможные уточнения, и range не является одним из них. Также нет type, что также можно увидеть в грамматике ABNF (раздел 14):

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";
        }
    }
}
...