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

Reply via email to