Hi, Lada presented an open issue in schema mount in Prague. (See slide 6 in https://datatracker.ietf.org/meeting/99/materials/slides-99-netmod-sessb-schema-mount)
The original problem comes from the NI use case (https://tools.ietf.org/html/draft-ietf-rtgwg-ni-model). In this use case, interfaces are assigned to NIs by: augment /if:interfaces/if:interface: +--rw bind-ni-name? -> /network-instances/network-instance/name Modules that are mounted within the NI might have references to interfaces. The idea is that a specific NI can only reference the interfaces that has been assigned to it. In schema mount, we have the "parent-reference" XPath expression that in this case will be "/if:interfaces/if:interface". The problem is that this XPath expression will evaluate to a node set that contains *all* interfaces in the system. We would like this to contain just the interfaces assigned to the NI. It turns out that this can be done with a simple change to the "parent-reference" node. If we state that this XPath expression is evaluated in an XPath context where the context node is the node in the data tree where the mount point is defined (instead of "/"), we can use as parent-reference: /if:interfaces/if:interface[ni:bind-network-instance-name = ../ni:name] Putting this together we'd have: augment "/if:interfaces/if:interface" { leaf bind-ni-name { type leafref { path "/network-instances/network-instance/name"; } } } container network-instances { list network-instance { key name; leaf name { ... } ... container root { // this would be the XPath context root for parent-reference yangmnt:mount-point ni-root; } } } And in state data: "ietf-yang-schema-mount:schema-mounts": { "namespace": [ { "prefix": "ni", "uri": "urn:ietf:params:xml:ns:yang:ietf-network-instance" }, { "prefix": "if", "uri": "urn:ietf:params:xml:ns:yang:ietf-interfaces" } ] "mount-point": [ { "target": "/ni:network-instances/ni:network-instance/ni:root", "parent-reference": [ "/if:interfaces/if:interface [ni:bind-network-instance-name = ../ni:name]" ], "use-schema": [ { "name": "ni-schema" } ] } ] Note that this does NOT affect the schema that is mounted; it only affects the result of the parent-reference XPath expressions. I think that we should make this change, since it allows for more precise parent-references. /martin _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
