"Acee Lindem (acee)" <[email protected]> wrote:
> 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)?

Yes it will work, since the /if:interfaces will refer to the
interfaces within the LNE.  (Note that this does not change with my
proposal)



/martin


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

Reply via email to