It'd be better to have a consistent design pattern. There are at least three
more options as following.

Thanks,

- Xufeng

Option 1:

   +--rw networking-instances
   |  +--rw networking-instance* [name]
   |     +--rw name                          string
   |     +--rw type?                         identityref
   |     +--rw enabled?                      boolean
   |     +--rw description?                  string
   |     +--rw networking-instance-policy
   |     +--rw root?                         structural-mount
   |        +--rw routing
   |        |  +--rw router-id?           yang:dotted-quad
   |        |  +--rw description?         string
   |        |  +--rw routing-protocols
   |        |  |  +--rw routing-protocol* [type name]
   |        |  |     ...
   |        |  +--rw ribs
   |        |     +--rw rib* [name]
   |        |        ...
   |
   +--ro networking-instances-state
      +--ro networking-instance* [name]
         +--ro name                          string
         +--ro type?                         identityref
         +--ro enabled?                      boolean
         +--ro description?                  string
         +--ro networking-instance-policy
         +--ro root?                         structural-mount
            +--ro routing
            |  +--ro router-id?           yang:dotted-quad
            |  +--ro interfaces
            |  |  +--ro interface*   if:interface-state-ref
            |  +--ro routing-protocols
            |  |  +--ro routing-protocol* [type name]
            |  |     ...
            |  +--ro ribs
            |     +--ro rib* [name]
            |        ...

Option 2:

   +--rw networking-instances
      +--rw networking-instance* [name]
         +--rw name                          string
         +--rw type?                         identityref
         +--rw enabled?                      boolean
         +--rw description?                  string
         +--rw networking-instance-policy
         +--rw root?                         structural-mount
            +--ro routing-state
            |  +--ro router-id?           yang:dotted-quad
            |  +--ro interfaces
            |  |  +--ro interface*   if:interface-state-ref
            +--rw routing
               +--rw router-id?           yang:dotted-quad
               +--rw description?         string
               +--rw routing-protocols
               |  +--rw routing-protocol* [type name]
               |     ...
               +--ro routing-protocols-state
               |  +--ro routing-protocol* [type name]
               |     ...
               +--rw ribs
               |  +--rw rib* [name]
               |     ...
               +--ro ribs-state
                  +--rw rib* [name]
                     ...

Option 3:

   +--rw networking-instances
      +--rw networking-instance* [name]
         +--rw config
         |  +--rw name                          string
         |  +--rw type?                         identityref
         |  +--rw enabled?                      boolean
         |  +--rw description?                  string
         |  +--rw networking-instance-policy
         |  +--rw root?                         structural-mount
         |     +--rw routing
         |        +--rw config
         |        |  +--rw router-id?           yang:dotted-quad
         |        |  +--rw description?         string
         |        |  +--rw routing-protocols
         |        |  |  +--rw routing-protocol* [type name]
         |        |  |     +--rw config
         |        |  |     |     ...
         |        |  |     +--ro state
         |        |  |     |     ...
         |        |  +--rw ribs
         |        |     +--rw config
         |        |     |  +--rw rib* [name]
         |        |     |     ...
         |        |     +--ro state
         |        |        +--ro rib* [name]
         |        |           ...
         |        +--ro state
         |           +--ro router-id?           yang:dotted-quad
         |           +--ro interfaces
         |           |  +--ro interface*   if:interface-state-ref
         |                     
         +--ro state
               ...


> -----Original Message-----
> From: Ladislav Lhotka [mailto:lho...@nic.cz]
> Sent: Friday, February 26, 2016 10:41 AM
> To: Xufeng Liu <xufeng.liu.i...@gmail.com>
> Cc: NETMOD WG <netmod@ietf.org>
> Subject: Re: [netmod] proposed change to ietf-routing
> 
> 
> > On 26 Feb 2016, at 15:33, Xufeng Liu <xufeng.liu.i...@gmail.com> wrote:
> >
> > Hi Acee and Lada,
> >
> > Have a question: the schema hierarchy will be different after the
changes.
> > Is the following expected? We will have ro branch and rw branch split
> > in the middle of the tree after mounting?
> 
> Yes, unless and until we agree on a better data organization. Note that it
is
> exactly the same as with ietf-interfaces.
> 
> Lada
> 
> >
> > Before:
> >
> > module: ietf-routing
> >   +--ro routing-state
> >   |  +--ro routing-instance* [name]
> >   |     +--ro name                 string
> >   |     +--ro routing-protocols
> >   |     |  +--ro routing-protocol* [type name]
> >   |     |     +--ro type    identityref
> >   |     |     +--ro name    string
> >   |     +--ro ribs
> >   |        +--ro rib* [name]
> >   |           +--ro name              string
> >   +--rw routing
> >      +--rw routing-instance* [name]
> >         +--rw name                 string
> >         +--rw routing-protocols
> >         |  +--rw routing-protocol* [type name]
> >         |     +--rw type             identityref
> >         |     +--rw name             string
> >         +--rw ribs
> >            +--rw rib* [name]
> >               +--rw name              string
> >
> > Now:
> >
> >   +--rw networking-instances
> >      +--rw networking-instance* [name]
> >         +--rw name                          string
> >         +--rw type?                         identityref
> >         +--rw enabled?                      boolean
> >         +--rw description?                  string
> >         +--rw networking-instance-policy
> >         +--rw root?                         structural-mount
> >            +--ro routing-state
> >            |  +--ro router-id?           yang:dotted-quad
> >            |  +--ro interfaces
> >            |  |  +--ro interface*   if:interface-state-ref
> >            |  +--ro routing-protocols
> >            |  |  +--ro routing-protocol* [type name]
> >            |  |     ...
> >            |  +--ro ribs
> >            |     +--ro rib* [name]
> >            |        ...
> >            +--rw routing
> >               +--rw router-id?           yang:dotted-quad
> >               +--rw description?         string
> >               +--rw routing-protocols
> >               |  +--rw routing-protocol* [type name]
> >               |     ...
> >               +--rw ribs
> >                  +--rw rib* [name]
> >                     ...
> >
> > Thanks,
> >
> > - Xufeng
> >
> >> -----Original Message-----
> >> From: netmod [mailto:netmod-boun...@ietf.org] On Behalf Of Ladislav
> >> Lhotka
> >> Sent: Friday, February 26, 2016 8:37 AM
> >> To: NETMOD WG <netmod@ietf.org>
> >> Subject: [netmod] proposed change to ietf-routing
> >>
> >> Hi,
> >>
> >> as a part of synchronization of the routing data models that are
> >> being
> > developed
> >> by the NETMOD and RTG working groups, the authors of
> >> draft-ietf-netmod- routing-cfg propose to remove the routing-instance
> >> level in the data
> > hierarchy,
> >> and leave it to structural-mount/YSDL to provide a top level structure.
> >>
> >> Schematically, the configuration and state data subtrees of
> >> ietf-routing
> > would
> >> be reduced to something like this:
> >>
> >> module: ietf-routing
> >>   +--ro routing-state
> >>   |  +--ro router-id?           yang:dotted-quad
> >>   |  +--ro interfaces
> >>   |  |  +--ro interface*   if:interface-state-ref
> >>   |  +--ro routing-protocols
> >>   |  |  +--ro routing-protocol* [type name]
> >>   |  |     ...
> >>   |  +--ro ribs
> >>   |     +--ro rib* [name]
> >>   |        ...
> >>   +--rw routing
> >>      +--rw router-id?           yang:dotted-quad
> >>      +--rw description?         string
> >>      +--rw routing-protocols
> >>      |  +--rw routing-protocol* [type name]
> >>      |     ...
> >>      +--rw ribs
> >>         +--rw rib* [name]
> >>        ...
> >>
> >> Are there any objections to this change?
> >>
> >> Thanks,
> >>
> >> Acee and Lada
> >>
> >> --
> >> Ladislav Lhotka, CZ.NIC Labs
> >> PGP Key ID: E74E8C0C
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> netmod mailing list
> >> netmod@ietf.org
> >> https://www.ietf.org/mailman/listinfo/netmod
> >
> 
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
> 
> 
> 


_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to