Hi Martin,
On 8/22/17, 6:20 AM, "netmod on behalf of Martin Bjorklund" <[email protected] on behalf of [email protected]> wrote: >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-s >chema-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"; > } > } > } Would this work if network-instances is mounted somewhere other than the root? For example, what if network-instances is mounted in within an LNE (Logical Network Element)? Thanks, Acee > > 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 _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
