* YANG Leafref feature update
* Closer adherence to RFC 7950. Some of this is changed behavior, some is new feature.
* Essentially instead of looking at the referring leaf, context is referred(target) node
* Validation uses referred node
* Validation changed to use type of referred node, instead of just "string"
* Auto-cli
* Changed to use type of referred node for typecheck
* Completion uses referred node
* Required instance / less strict validation
* New: Leafrefs must refer to existing data leaf ONLY IF YANG `required-instance` is true
* Previous: All leafrefs must refer to existing data leaf node
* Fixed: [Autocli does not offer completions for leafref to identityref #254](https://github.com/clicon/clixon/issues/254)
This commit is contained in:
parent
8db716ca07
commit
980718178a
18 changed files with 1151 additions and 115 deletions
|
|
@ -47,11 +47,13 @@ module example{
|
|||
description "Absolute references existing interfaces in if module";
|
||||
type leafref {
|
||||
path "/if:interfaces/if:interface/if:name";
|
||||
require-instance true;
|
||||
}
|
||||
}
|
||||
leaf relname {
|
||||
type leafref {
|
||||
path "../../if:interfaces/if:interface/if:name";
|
||||
require-instance true;
|
||||
}
|
||||
}
|
||||
leaf address {
|
||||
|
|
@ -59,12 +61,14 @@ module example{
|
|||
type leafref {
|
||||
path "../../if:interfaces/if:interface[if:name = current()/../relname]"
|
||||
+ "/ip:ipv4/ip:address/ip:ip";
|
||||
require-instance true;
|
||||
}
|
||||
}
|
||||
leaf wrong {
|
||||
description "References leading nowhere in yang";
|
||||
type leafref {
|
||||
path "/ip:interfaces/ip:interface/ip:name";
|
||||
require-instance true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -76,6 +80,7 @@ module example{
|
|||
leaf template{
|
||||
type leafref{
|
||||
path "/sender/name";
|
||||
require-instance true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue