1

According to RFC - RFC 6020 - LeafRef I can understand that the leaf can contain a leafref which inturn have the path pointing to the instance which is referenced but question is how many leafrefs are possible for one leaf? Only one or many?

Ex.

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

Is the above possible?

Community
  • 1
  • 1
Melwyn Jensen
  • 161
  • 1
  • 10

1 Answers1

0

A leafref may only target a single leaf or leaf-list node via path. There may only be one type substatement to a leaf (also applies to leaf-list, typedef) and there may only be a single path substatement to type.

7.6.2. The leaf's Substatements

+--------------+---------+-------------+
| 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 Grammar

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

Note: it is not possible to use union for leafref types in YANG 1.0. This has changed in YANG 1.1 however, where any built-in YANG type may appear inside a union.

9.12. The union Built-In Type

A member type can be of any built-in or derived type, except it MUST NOT be one of the built-in types "empty" or "leafref".

Community
  • 1
  • 1
predi
  • 5,528
  • 32
  • 60