Сколько leafref возможно внутри листа в моделировании Yang?

Согласно RFC - RFC 6020 - LeafRef я понимаю, что лист может содержать leafref, у которого, в свою очередь, есть путь, указывающий на экземпляр, на который ссылаются, но вопрос в том, сколько leafrefs возможно для одного листа? Только один или много?

Ex.

leaf mgmt-interface {
         type leafref {
             path "../interface/name";
         }
         type leafref {
             path "../interface/ip";
         }
     }

Возможно ли вышеизложенное?


person Melwyn Jensen    schedule 21.06.2016    source источник


Ответы (1)


leafref может нацеливаться только на один узел leaf или leaf-list через path. Для листа может быть только одно подутверждение type (также относится к leaf-list, typedef) и может быть только одно подутверждение path для type.

7.6.2. Подоператоры листа

+--------------+---------+-------------+
| substatement | section | cardinality |
+--------------+---------+-------------+
| config       | 7.19.1  | 0..1        |
| default      | 7.6.4   | 0..1        |
| description  | 7.19.3  | 0..1        |
| if-feature   | 7.18.2  | 0..n        |
| mandatory    | 7.6.5   | 0..1        |
| must         | 7.5.3   | 0..n        |
| reference    | 7.19.4  | 0..1        |
| status       | 7.19.2  | 0..1        |
| type         | 7.6.3   | 1           | <--
| units        | 7.3.3   | 0..1        |
| when         | 7.19.5  | 0..1        |
+--------------+---------+-------------+

12. YANG ABNF Грамматика

type-stmt           = type-keyword sep identifier-ref-arg-str optsep
                     (";" /
                      "{" stmtsep
                          type-body-stmts
                      "}")

type-body-stmts     = numerical-restrictions /
                     decimal64-specification /
                     string-restrictions /
                     enum-specification /
                     leafref-specification /
                     identityref-specification /
                     instance-identifier-specification /
                     bits-specification /
                     union-specification

leafref-specification =
                     ;; these stmts can appear in any order
                     path-stmt stmtsep
                     [require-instance-stmt stmtsep]

path-stmt           = path-keyword sep path-arg-str stmtend

Примечание: невозможно использовать union для типов leafref в YANG 1.0. Однако это изменилось в YANG 1.1, где любой встроенный тип YANG может появиться внутри union.

9.12. Встроенный тип union

Тип члена может быть любого встроенного или производного типа, за исключением того, что он НЕ ДОЛЖЕН быть одним из встроенных типов «пустой» или «листовой».

person predi    schedule 21.06.2016