Robert Wilton <[email protected]> wrote:
>
>
> On 18/08/2015 18:22, Andy Bierman wrote:
> > This is how languages like SMIv2 and YANG work.
> > A conceptual object is given a permanent "home" within the tree of
> > object identifiers.
> > Moving data is very expensive, since any clients working with the old
> > data
> > will break as soon as the data is moved.
> >
> > I am not convinced the IETF can or should come up with a set of
> > containers
> > that covers every possible topic that can be modeled in YANG.
>
> I mostly agree, but having some more structure/advice as to where to
> place YANG modules may be helpful. I'm thinking more along the lines
> of broad categories rather than precise locations.
+1
> > If someone wants to builds a YANG controller node that is managing
> > the configuration for a network of devices then wouldn't they want
> > a particular device's interface configuration to be located
> > somewhere like /network/device/<device-name>/interfaces/interface?
> > Ideally, they would be able to use the same YANG definitions that
> > are defined for /interfaces/ but root them relative to
> > /network/device/<device-name>/.
> >
> >
> >
> > Yes -- some of us (like Martin) have pointed this out many times.
> > The "device" container on an NE does not help at all wrt/
> > aggregation on a controller. "/device" or "/" work the same for this
> > purpose.
Actually, I would argue that / works better. On the controller, you
probably have a list of devices you control (this is how our NCS
works, and how ODL works (I have been told)):
container devices {
list device {
key name;
// meta-info about the device goes here, things like
// ip-address, port, auth info...
container data {
// all models supported by the devices are "mounted" here
}
}
}
So on the controller, the path to interface "eth0" on device "foo"
would be:
/devices/device[name='foo']/data/interfaces/interface[name='eth0']
if we also have a top-level "/device" container we'd have:
/devices/device[name='foo']/data/device/interfaces/interface[name='eth0']
> What would the real resource location for
> "/network/device/<device-name>/interfaces/interface" be?
I don't think there is such a thing as a "real" location. The path is
scoped in the system you work with; in the controller it might be as I
illustrated above, in the device it starts with /interfaces, but in a
controller-of-controllers it might be:
/domains/domain[name='bar']/devices/device[name='foo']/data
/interfaces/interface[name='eth0']
Currently we have a proprietary way of "relocating" YANG modules, and
ODL has its "mount", and I think Andy has some other mechanism. Maybe
the time has come to standardize how mount works, and maybe then also
standardize the list of devices in a controller model.
/martin
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod