> On 19 Aug 2015, at 13:25, Martin Bjorklund <[email protected]> wrote: > > 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.
+1 Lada > > > /martin > > _______________________________________________ > netmod mailing list > [email protected] > https://www.ietf.org/mailman/listinfo/netmod -- Ladislav Lhotka, CZ.NIC Labs PGP Key ID: E74E8C0C _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
