Re: [netmod] Motivations for Structuring Models
On Wed, Sep 9, 2015 at 2:43 PM, Benoit Claisewrote: > Andy, > > [taking on excerpt, out of context, to make a point] > > 1) As a consumer of YANG models, how do I identify the set of models that >> provide a set of functionality? How do YANG model writers ensure that their >> models are as easy to deal with as possible by having consistent modelling >> approaches for config? >> > > RTFM > > That type of language is neither polite, nor useful. > > Sorry - Now that I know there are banned acronyms, I will write RTM instead. > Regards, Benoit (OPS AD) > Andy ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Andy, [taking on excerpt, out of context, to make a point] 1) As a consumer of YANG models, how do I identify the set of models that provide a set of functionality? How do YANG model writers ensure that their models are as easy to deal with as possible by having consistent modelling approaches for config? RTFM That type of language is neither polite, nor useful. Regards, Benoit (OPS AD) ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi - >From: "Alexander Clemm (alex)" <a...@cisco.com> >Sent: Sep 1, 2015 2:21 PM >To: Randy Presuhn <randy_pres...@mindspring.com>, "netmod@ietf.org" ><netmod@ietf.org> >Subject: RE: [netmod] Motivations for Structuring Models > >Hi Randy, > >GDMO had some very powerful concepts. The ability to separate >definition hierarchy and containment hierarchy is indeed very >powerful. In many ways, it was ahead of its time. The problem >I see is that in the context of YANG (much simpler), I don't >think the same concept of name bindings is applicable, really. Agreed. At best it would probably be an ugly bolt-on; some of the concerns it is intended to address are ones that folks in the Netconf universe have tended to declare out-of-scope, though as more people use these tools we'll probably encounter more calls to revisit those long-held assumptions. > The difference is that in GDMO, MOC definitions did not make > any statement about naming/ containment - this made it possible > to separate containment out from other aspects of the model, > cleanly, as they were orthogonal concepts. In YANG, however, > the definition of the containment structure is very much at > the core of what is being defined as part of the model. That's a polite way of saying the difficulty is architectural, and *completely* fixing it would likely be disruptive. I think you're right. > This is in part what makes it simple (and IMHO arguably > also easier to read and consume - name bindings were arguably > "harder to follow"), but there are some limitations that we > are starting to bump into. They're essentially the same problems as arise with naming in SNMP-land, with the same causes and consequences. > I think it is possible to address these (allowing the > definition of mount points is one proposal), but the > mechanism will need to be different from name bindings > simply because the MOCs being linked are not defined "on > their own", but as part of containment relationships > intrinsically tied to their definitions. I agree a mechanism to accomplish something like it will likely be quite different. Name bindings rely on a particular characteristics of the metamodel and have specific consequences for the management protocol, and both sets of assumptions don't hold true in netconf/yang-land. Trying to ape GDMO does not seem like a productive route to me, given where Yang already finds itself. As long as naming is so closely bound to the definition, however, use of the models is constrained in unhelpful ways. Using mount points, at least as they've been formulated so far, only addresses parts of the problem. Whether that's going to be good enough remains to be seen. Without mount points or something similar, what we currently have is only about as broken as SNMP/SMI, and the industry got a lot of mileage out of that. I suspect the debate over mount points will be the beginning of netconf's counterpart to the "subagent wars" where the issue was not so much one of "can this be made to work with(out) this technology increment" than one of "what is the impact of this technology increment on our overall development/deployment/operational cost". Randy ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi Randy, GDMO had some very powerful concepts. The ability to separate definition hierarchy and containment hierarchy is indeed very powerful. In many ways, it was ahead of its time. The problem I see is that in the context of YANG (much simpler), I don't think the same concept of name bindings is applicable, really. The difference is that in GDMO, MOC definitions did not make any statement about naming/ containment - this made it possible to separate containment out from other aspects of the model, cleanly, as they were orthogonal concepts. In YANG, however, the definition of the containment structure is very much at the core of what is being defined as part of the model. This is in part what makes it simple (and IMHO arguably also easier to read and consume - name bindings were arguably "harder to follow"), but there are some limitations that we are starting to bump into. I think it is possible to address these (allowing the definition of mount points is one proposal), but the mechan ism will need to be different from name bindings simply because the MOCs being linked are not defined "on their own", but as part of containment relationships intrinsically tied to their definitions. --- Alex -Original Message- From: netmod [mailto:netmod-boun...@ietf.org] On Behalf Of Randy Presuhn Sent: Monday, August 31, 2015 12:32 PM To: netmod@ietf.org Subject: Re: [netmod] Motivations for Structuring Models Hi - >From: Ladislav Lhotka <lho...@nic.cz> >Sent: Aug 31, 2015 8:04 AM >To: Randy Presuhn <randy_pres...@mindspring.com>, netmod@ietf.org >Subject: Re: [netmod] Motivations for Structuring Models ... >> What GDMO did was to use a separate "NAME BINDING" construct to >> specify contexts in which instances might show up, allowing instances >> to be put in places that weren't even imagined when the original >> class definition was written. Name bindings could be standardized, >> or be vendor or even product-specific, allowing the simplicity or >> complexity of a given system's instance tree to reflect the actual >> simplicity or complexity of that system, rather than requiring all >> systems to be structured for the worst case. > >How could this be expressed in YANG terms? (I tried to figure it out >myself but I unfortunately couldn't make any sense of sec. 8.6 in CCITT >Recommendation X.722). A key concept of naming in that universe is "containment". As with X.500 Directory or modern file systems, object instances are identified by their "distinguishing attribute(s)" within the context of a containing object. The containment hierarchy within a given system generally reflects physical or logical containment. Perhaps an example of how it could be used would help. Suppose I've defined a "cpu" class and a "motherboard" class. Further suppose that the "cpu" class has an attribute called "processorId" which is guaranteed to be unique within any naming context in which one might find more than one processor as immediate siblings. To say that a cpu could be identified (named) within the context of a motherboard, one could say something like cpuOfMotherboard NAME BINDING SUBORDINATE OBJECT CLASS cpu AND SUBCLASSES; NAMED BY SUPERIOR OBJECT CLASS motherboard AND SUBCLASSES; WITH ATTRIBUTE processorId; REGISTERED AS blah ; This says that if one has located an instance of the motherboard class or any of its subclasses, instances of the cpu class that are immediately contained by it could be named within that context by their "processorId" attribute. (A meta-model requirement is that any instantiable object class needs to have at least one attribute suitable for use in naming.) Later, say we find that we need to model line cards with cpus, and those line cards (for whatever reason) are not derived from the motherboard class. But we can still use the cpu class to manage those processors by adding another name binding: cpuOfLinecard NAME BINDING SUBORDINATE OBJECT CLASS cpu AND SUBCLASSES; NAMED BY SUPERIOR OBJECT CLASS lineCard AND SUBCLASSES; WITH ATTRIBUTE processorId; REGISTERED AS blahblah ; The point is that the class definition does not by itself determine where object instances might appear in a managed system; the supported name bindings determine where instances can be, whether (and how) they are created, and whether (and how) they can be deleted. Is that a bit clearer? No tidy way to do all of this in Yang-land is apparent to me - the (meta-) modeling assumptions seem too far removed, particularly with regard to inheritance and containment - but someone more creative than me might figure out how to do it. But the point is not to ape GDMO. The point is that this capability was included in that world to a
Re: [netmod] Motivations for Structuring Models
Hi Mahesh, I think that if we leave structure to the WGs, we will end up with models that have a WG-centric view with their corresponding model being at the root and any instantiation (logical-network-element, networking-instance, VRF, etc) being done within the model. Is this what we want? In routing, we had the benefit of the routing-cfg model also being considered and concluded the debate in favor of adopting the routing-cfg structure for the routing protocol models. Thanks, Acee From: Mahesh Jethanandani <mjethanand...@gmail.com<mailto:mjethanand...@gmail.com>> Date: Friday, August 28, 2015 at 7:44 PM To: Acee Lindem <a...@cisco.com<mailto:a...@cisco.com>> Cc: Martin Bjorklund <m...@tail-f.com<mailto:m...@tail-f.com>>, "r...@rob.sh<mailto:r...@rob.sh>" <r...@rob.sh<mailto:r...@rob.sh>>, "netmod@ietf.org<mailto:netmod@ietf.org>" <netmod@ietf.org<mailto:netmod@ietf.org>> Subject: Re: [netmod] Motivations for Structuring Models Acee, This is going to become very interesting very quickly. Routing DT has decided to define a container for oam-protocols. LIME has decided it wants to define a generic YANG module for all OAM in draft-tissa-lime-yang-oam-model. Which model does BFD augment? Or did you just kill the whole charter for LIME?? On Aug 28, 2015, at 6:20 AM, Acee Lindem (acee) <a...@cisco.com<mailto:a...@cisco.com>> wrote: Why doesn’t it help? In the next revision of the Routing YANG DT model, we’ve switched from including specific models to defining classes of models with identities. For example, grouping oam-protocols { container oam-protocols { list oam-protocol { key "type"; leaf type { type identityref { base oam-protocol-type; } mandatory true; description "The Operations, Administration, and Maintenance (OAM) protocol type, e.g., BFD, TWAMP, CFM, etc."; } description "List of OAM protocols configured for a networking instance."; } description "Container for list of OAM protocols configured for a networking instance."; } description "Grouping for OAM protocols configured for a networking instance."; } Then the grouping is include the networking-instances. By doing this, the intent is that it would be evident as to where a particular model would be found. Mahesh Jethanandani mjethanand...@gmail.com<mailto:mjethanand...@gmail.com> ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On 08/28/2015 02:55 PM, Martin Bjorklund wrote: But, as I have said before, the device abstraction is really > >important - in the NMS/OSS/controller/whatever. There we have a list > >of devices, and each device has a name and meta-data and then its real > >data, so for example we can have: > > > > /devices/device[name='rtr4']/ip > > /devices/device[name='rtr4']/port > > > >and then we put all data models from the device under a common > >container 'data': > > > > /devices/device[name='rtr4']/data/interface/ > > /devices/device[name='rtr4']/data/xconnect/ > > > >If the device had a top-level container "device" this would have been: > > > > /devices/device[name='rtr4']/data/device/interfaces >This approach*DOES* logically structure configuration around the >concept of a device. Yes - in the NMS/OSS/controller -*not* on the device! I will add that at that layer a flat list is probably not going to be good enough in face of layers and federations. That is definitely a different issue and one where 'relocating' YANG models becomes important. At that layer I could not care less if interfaces are enumerated in /interfaces or /device/interfaces -- I will end up relocating the models to fit the logical layout anyway, as I will need to have them placed in a structure which makes sense to my end users. On the device layer, though, I have to say that /device is just a redundant layer of abstraction. Stuff augmenting it will fan out just as it does currently at /. Furthermore we will end up with 'structural models', which are somewhat of a first-class citizen and 'functionality models', which have to augment some structural model. I think end users care more about interaction with the latter. From OpenDaylight implementation perspective, augmentations are slightly harder to work with, simply because their underlying concept does not have a language-level equivalent in Java (but it does in other languages). For this reason I would advocate not using a structural base unless it allows us to express a relationship which we couldn't do otherwise. Bye, Robert ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On 2015-08-27 22:37, Rob Shakir wrote: First off, we drew a picture [0] that showed the set of modules that we figured we might need. These break down into various bits of device functionality. To make this more accessible as something that could be shown in a draft, we expressed it in YANG and used pyang to draw out the tree. The layout of the sets of functions that we have, and how they are grouped, is the important thing. The fact that we are configuring a device makes /device a good starting point. I think this is how you implemented NEDs in NCS too...? Cheers, r. [0]: http://rob.sh/files/model-structure.pdf A picture speaks a thousand words. As someone largely ignorant of routing operations, I have to ask, though: What is the value of having a set of logical routers each containing a set of VRFs? Wouldn't a structure having a 'global router' and a per-VRF logical router achieve the same thing (purely from modeling perspective)? Thanks, Robert ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Rob Shakir r...@rob.sh wrote: Martin, Apologies, I switched to a new client and, wow, yes, it's not readable. I reported a bug and switched clients again... I *hope* this one is more readable (and it was when I checked last). Thank you Rob! I'll put aside questions of whether the questions I'm asking are completely fair. Apologies. They're written from my perspective of problems I'm actually experiencing. Martin Bjorklund mailto:m...@tail-f.com August 27, 2015 at 15:45 1) As a consumer of YANG models, how do I identify the set of models that provide a set of functionality? I think that neither your proposed solution or what we have today (7 published modules) solves this problem. I respectfully disagree. By defining some form of structure for the models, I can have a logical grouping that gives me some pointers as to where to find the right things that I need. I want to configure OAM, great, let's go look at /device/logical-network-elements/logical-network-element/network-instances/network-instance/oam-protocols - because that's where all OAM stuff happens to live. So the idea is that this structure is defined in one module, ietf-something-structure, right? And then different oam protocol modules augment this structure? How does this help you find the modules that augment this structure? If I have to rather look through / to find a subset of some ping functionality in one module, and some in another, it's not clear to me how I even start to find the right thing - because at the moment one type of ping lives in one module, and another in a completely different one, even though they're almost identical in terms of management plane interface. I agree this sounds like a bad design. I absolutely agree that it is necessary to look at how a generic X is handled before doing a model for a specific instance of X. For example, it is probably useful to define how interfaces in general are managed before creating a model for ethernet interfaces. And maybe useful to think about how routing protocols in general are handled before doing a model for bgp. [...] “Just read through the modules” is not acceptable answer when considering making things easy to use for YANG model consumers. But how does the top-level node /device (sorry, but I really have to ask this) solve this problem? I *really* do not understand this. Even with your solution you'd have a set of modules that augment this structure, right? How do I know what these other modules are? You didn't answer this question. So I repeated it above and below ;) Now, I should add that the way I see your solution is a YANG module that defines a structure of NP-containers. You (or was it Anees?) then mentioned that we shouldn't focus so much on the *YANG module*; it was the structure that was important. First off, we drew a picture [0] that showed the set of modules that we figured we might need. These break down into various bits of device functionality. To make this more accessible as something that could be shown in a draft, we expressed it in YANG and used pyang to draw out the tree. Thanks, this is what I remember you mentioned in Dallas. But what does this really mean? Are you proposing: 1) to define one model ietf-something that contains this proposed structure, which then other modules augment? 2) to define one single ietf model, period. no augments by the ietf. 3) to define the structure more loosely in text, and use this structure when new models are developed? 4) something else? The layout of the sets of functions that we have, and how they are grouped, is the important thing. The fact that we are configuring a device makes /device a good starting point. I think this is how you implemented NEDs in NCS too...? No, each NED (device) is modelled according to its native model. So for example the IOS NED has /interface, /ip, /xconnect, etc. But, as I have said before, the device abstraction is really important - in the NMS/OSS/controller/whatever. There we have a list of devices, and each device has a name and meta-data and then its real data, so for example we can have: /devices/device[name='rtr4']/ip /devices/device[name='rtr4']/port and then we put all data models from the device under a common container 'data': /devices/device[name='rtr4']/data/interface/ /devices/device[name='rtr4']/data/xconnect/ If the device had a top-level container device this would have been: /devices/device[name='rtr4']/data/device/interfaces /martin ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Andy Bierman a...@yumaworks.com wrote: Just because some people don't agree that the existing modules should be moved doesn't mean the NETMOD WG wants every module to create its own top-level node. I agree, but I would go one step further and say that just b/c we don't think that /device is a good idea doesn't mean that the NETMOD WG wants every module to create its own top-level node. (The point being that I think /device is a bad idea even if we didn't have these 7 modules published) Create some organization for the 194 new modules. I completely agree with you that these modules should be written with a coherent development plan in mind. +1 Given that CLIs are being driven by YANG, I completely agree that understanding of the command hierarchy is useful. I have no objections to the creation of a hierarchy or node placement plan or whatever. This is a non-issue. +1 (although I think it will be challenging... I wouldn't try to create one single node placement plan for *everything*; routers, app servers, set-top boxes, radio base stations, just to mention a few types of boxes that have YANG models today) /martin ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On 8/28/15, 9:24 AM, Martin Bjorklund m...@tail-f.com wrote: Acee Lindem (acee) a...@cisco.com wrote: On 8/28/15, 8:55 AM, netmod on behalf of Martin Bjorklund netmod-boun...@ietf.org on behalf of m...@tail-f.com wrote: Rob Shakir r...@rob.sh wrote: Hi Martin, Thanks for the reply. Martin Bjorklund mailto:m...@tail-f.com August 28, 2015 at 02:33 So the idea is that this structure is defined in one module, ietf-something-structure, right? And then different oam protocol modules augment this structure? How does this help you find the modules that augment this structure? Yes, this is the intention. By then generating the tree of the overall structure, then I can see what different containers are created there. It's not perfect (and hey, this suggestion is a *draft* for a reason - but yet again, there are not alternatives) - but the fact that the modules augment a common path adds some information that they are grouped to providing the same functionality, not disparate. ietf-routing does the same thing, it gives me the fact that at /routing/routing-instance/routing-protocols there are a bunch of control-plane protocols that are related to routing. Ok. So your proposal doesn't help with the problem of locating relevant YANG modules, but once their located, it is easier to find the ones related to a specific function, b/c they would augment a common path. Is this what you mean? Why doesn’t it help? In the next revision of the Routing YANG DT model, we’ve switched from including specific models to defining classes of models with identities. For example, grouping oam-protocols { container oam-protocols { list oam-protocol { key type; leaf type { type identityref { base oam-protocol-type; } mandatory true; description The Operations, Administration, and Maintenance (OAM) protocol type, e.g., BFD, TWAMP, CFM, etc.; } description List of OAM protocols configured for a networking instance.; } description Container for list of OAM protocols configured for a networking instance.; } description Grouping for OAM protocols configured for a networking instance.; } Then the grouping is include the networking-instances. By doing this, the intent is that it would be evident as to where a particular model would be found. Now I am a user of YANG models. I am searching for the YANG module that defines OAM for BFD. How does your model above help me find it? If one can envision a function to list the schema rather than the actual config data, you could retrieve the schema for the oam-protocols container. It would seem reasonable to support such a function. Thanks, Acee /martin ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On 27 Aug 2015, at 19:49, Rob Shakir r...@rob.sh wrote: Lada, On August 27, 2015 at 12:54:39, Ladislav Lhotka (lho...@nic.cz) wrote: We certainly need *some* structure, and since there was a requirement to support multiple routing instances, a list of them seems natural. Great, we agree that we need some structure like we have for routing elsewhere. Can you point me towards any proposal other than draft-openconfig-netmod-model-structure or draft-rtgyangdt-rtgwg-device-model–00 for this structure? The current structure was pretty much a direct consequence of the previous NETMOD charter: http://datatracker.ietf.org/doc/charter-ietf-netmod/06/ And as I said, we did consider having some universal top-level structure but we rejected this idea, mainly because every other module would then have to be an augment. Already, implementors are having problems with this - because existing modules that are pretty mature (ietf-bgp for example), need more functionality than is in ietf-routing to make usable multi-VRF systems, let alone multi-routing-instance. If there were some structure, we could understand how these models need to be augmented to support the use cases. I’ll come back to the case of how I configure something that is a L2 virtual forwarding instance, that uses has a L3 IP interface within it. ietf-routing is still open for any changes, but I think it has nothing to do with the presence or absence of /device. On the latter comments in your mail, I place little importance on obsoleting existing RFCs, I care about: I would concur that the rules for updating published modules are too strict for this stage, and that more flexibility is needed atleast until the YANG landscape stabilises. • Primarily: whether the existing models let me configure things that I need to on my network (or form a suitable base for doing so). • Secondary: impact to existing implementations where these models are actually usable to some external consumer. What I and others don’t understand is how the /device container helps, or the current flat structure prevents, reaching these aims. Cheers, Lada Kind regards, r. -- Ladislav Lhotka, CZ.NIC Labs PGP Key ID: E74E8C0C ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi Martin, Thanks for the reply. Martin Bjorklund mailto:m...@tail-f.com August 28, 2015 at 02:33 So the idea is that this structure is defined in one module, ietf-something-structure, right? And then different oam protocol modules augment this structure? How does this help you find the modules that augment this structure? Yes, this is the intention. By then generating the tree of the overall structure, then I can see what different containers are created there. It's not perfect (and hey, this suggestion is a *draft* for a reason - but yet again, there are not alternatives) - but the fact that the modules augment a common path adds some information that they are grouped to providing the same functionality, not disparate. ietf-routing does the same thing, it gives me the fact that at /routing/routing-instance/routing-protocols there are a bunch of control-plane protocols that are related to routing. “Just read through the modules” is not acceptable answer when considering making things easy to use for YANG model consumers. But how does the top-level node /device (sorry, but I really have to ask this) solve this problem? I *really* do not understand this. Even with your solution you'd have a set of modules that augment this structure, right? How do I know what these other modules are? You didn't answer this question. So I repeated it above and below ;) Right. There was really a reason NOT to answer it. /device is irrelevant. It does not matter - it is simply how *this proposal* chooses to group things, based on the fact that we think that operators logically configure devices when dealing with these models. From your comments on NCS below, it seems to me that if we'd made this a list, then there'd be significantly less concern? I just can't understand why this is something to get hung up on. If /device isn't the right root, please show me what is - and WHY it's better. Structuring configuration and operational around some idea that all the configuration belongs to a physical device seems very, very logical to me. Further defining groups so that we have an understanding of how to build a coherent set of models for the functionalities required of that device seems a very clear next step after this. Thanks, this is what I remember you mentioned in Dallas. But what does this really mean? Are you proposing: 1) to define one model ietf-something that contains this proposed structure, which then other modules augment? 2) to define one single ietf model, period. no augments by the ietf. 3) to define the structure more loosely in text, and use this structure when new models are developed? 4) something else? As part of iterating on this idea, we are working to understand the practicalities of (1). This is exactly the approach that ietf-routing is taking for routing protocol modules. The layout of the sets of functions that we have, and how they are grouped, is the important thing. The fact that we are configuring a device makes /device a good starting point. I think this is how you implemented NEDs in NCS too...? No, each NED (device) is modelled according to its native model. So for example the IOS NED has /interface, /ip, /xconnect, etc. But, as I have said before, the device abstraction is really important - in the NMS/OSS/controller/whatever. There we have a list of devices, and each device has a name and meta-data and then its real data, so for example we can have: /devices/device[name='rtr4']/ip /devices/device[name='rtr4']/port and then we put all data models from the device under a common container 'data': /devices/device[name='rtr4']/data/interface/ /devices/device[name='rtr4']/data/xconnect/ If the device had a top-level container device this would have been: /devices/device[name='rtr4']/data/device/interfaces This approach *DOES* logically structure configuration around the concept of a device. If we are really just debating whether /devices/device is a list or whether it's a container, I'm even more confused than I was before. Please see my earlier comment. Cheers, r. ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Rob Shakir r...@rob.sh wrote: Martin, We are almost certainly not on the same page as to what we're debating. Martin Bjorklund mailto:m...@tail-f.com August 28, 2015 at 08:55 https://www.postbox-inc.com/?utm_source=emailutm_medium=sumlinkutm_campaign=reach Ok. So your proposal doesn't help with the problem of locating relevant YANG modules, but once their located, it is easier to find the ones related to a specific function, b/c they would augment a common path. Is this what you mean? Having a structure to the way that the tree is defined helps a developer trying to consume functions find the relevant functionality. The model-writer needs to be aware of this structure. I think there is an important difference between model writer (not very many of these), and model consumer (lots of these). I don't understand this answer (or maybe you misunderstood my question?). But this is the what we have been arguing about! Remove /device and we can put this behind us and move forward. So, if I take openconfig-model-structure and make it look like: module: model-structure [NB: trimmed for legibility.] +--rw info +--rw hardware +--rw system +--rw interfaces +--rw acl +--rw qos +--rw logical-routers +--rw logical-router* [router-id] +--rw router-iduint8 +--rw router-name? string +--rw layer-2-protocols +--rw layer-3-protocols +--rw vrf* [vrf-name] +--rw routing-policy Then you have no objection to this approach? Even though it will *still* very likely obsolete RFC'd models, which don't fit into the structure. I didn't say that I agree with all nodes in the structure, but I do agree that a structure for common things (like intrefaces, routing protocols, oam functions etc) is useful. RFC 7223 already defines /interfaces and RFC 7317 defines /system, so I assume they can be kept. Unless of course you think the namespace is important. As for logical-routers, see the other thread. /martin ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On Aug 27, 2015:1:59 PM, at 1:59 PM, Andy Bierman a...@yumaworks.com wrote: On Thu, Aug 27, 2015 at 10:39 AM, Rob Shakir r...@rob.sh mailto:r...@rob.sh wrote: Andy, Apologies, I don’t understand how your mail answers the questions that I posed. On August 27, 2015 at 12:25:20, Andy Bierman (a...@yumaworks.com mailto:a...@yumaworks.com) wrote: A whole lots of words here, but I am still confused why /device is better than / for solving your data model awareness problem. Please re-read my email - here’s the single statement where I said that this was NOT the discussion that I think is important: It strikes me that there is a need to take a step back from the debate of whether /device is a good idea or not. I’m not sure how this could be clearer. Sorry -- are you suggesting that maybe /device adds no value beyond /? If so, I agree. YANG is no different than any other part of the source code. Reusable YANG is just as likely or unlikely as reusable C, depending on how aware people are of the existing code base. Which OAM? Read the modules and decide. No magic there. How would /device vs / (as the first node) help you figure this out? Nobody is objecting at all to creating structure for the new modules. If /device has siblings, then let's see them in the uber-tree. The objection is to adding in a useless layer, and moving existing data nodes, which breaks existing implementations of all those data nodes. Please suggest an alternate approach to the one that is laid out in draft-openconfig-netmod-model-structure that you believe will help with the two problems that I raised. I’ll rephrase them here with less explanation, albeit that comes with less clarity. 1) As a consumer of YANG models, how do I identify the set of models that provide a set of functionality? How do YANG model writers ensure that their models are as easy to deal with as possible by having consistent modelling approaches for config? RTFM Andy, While it might be frustrating, coming to an understanding of what the problem is or might be, and then looking at why the existing mechanisms/models or additional ones solve these requirements (or do not) is what is at hand. I think everyone agreed at the interim meeting that the requirements were clear and sound. This is detailed in the meeting minutes. If anyone disputes this, I am happy to do an official WG call for consensus on these specifics, but given the unanimous agreement at the meeting, I did not feel that it was necessary to do this. Based on that, the next question is: are these problems solved with what is here today, or do we need another approach/es. Rob is clearly not an idiot and is asking for detailed reasons why you and others believe what he/OpenConfig have proposed is insufficient. Please be as considerate and constructive as he has been in asking his questions when you address them. —Tom (Speaking as Co-chair) 2) As a creator of YANG mode ls, how do I know the targets for references such that I capture references to the elements that I want, given there is no currently defined structure? The modules you are using have data locations defined. In order to define YANG data (with YANG 1.0 or 1.1) a top-level data node or augment-stmt will be present specifying the /path/from/root How do you know where data is that has not been defined yet? You don't and YANG has no ability to reference undefined data anyway. “Just read through the modules” is not acceptable answer when considering making things easy to use for YANG model consumers. I want to have things that are logical to humans such that they can easily adopt YANG-based netmgmt. If they need to adopt the ecosystem by having to use hodgepodge approaches, then this feels like we are fundamentally missing an opportunity to simplify things. Why isn't RTFM good enough? Is there some expectation that just /the/path/from/root is enough to make somebody an expert in managing some feature or an expert in writing new YANG modules? Additional tools outside the scope of IETF standardization work are needed to make development easier. Nothing whatsoever is stopping the routing area from defining some structure for new modules. Pick whatever you like. The only pushback is wrt/ obsoleting existing RFC modules and moving the data nodes in them to a different location. Some of us do not agree that a problem has been demonstrated that warrants starting over for these RFCs. I want to make sure that we DO have re-usable YANG - like we have re-usable code elsewhere. In my experience this is done elsewhere by defining conventions that ensure that this is the case. Regards, r. Andy ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi Andy, I’m struggling with this debate. On August 27, 2015 at 13:59:55, Andy Bierman (a...@yumaworks.com) wrote: Sorry -- are you suggesting that maybe /device adds no value beyond /? If so, I agree. No, I am suggesting that should understand what the alternatives to solving issues are, before moving on to debating the merits of a particular solution that has nothing to compare and contrast against. One container does not add value, the structure (which happens to start with /device in ONE proposal, to which there are no alternates) is what matters. Unfortunately you seem to be stuck on this container. Please ignore it and focus on the problems I defined. RTFM Great. So, I need to go and write a bunch of different implementations of how to set up a ping, and trawl through a huge number of roots to find things that are related. If this is the approach we take with IETF modules, then they will be worse to use than the existing configuration approaches that we have. At least the vendor specific ones have some form of logic as to how they are usable to consumers. 2) As a creator of YANG models, how do I know the targets for references such that I capture references to the elements that I want, given there is no currently defined structure? The modules you are using have data locations defined. In order to define YANG data (with YANG 1.0 or 1.1) a top-level data node or augment-stmt will be present specifying the /path/from/root How do you know where data is that has not been defined yet? You don't and YANG has no ability to reference undefined data anyway. Consider VRRP ‘tracking’. I want to be able to add some form of new thing that VRRP might track. If we’ve defined a structure that says that there is some list of ‘tracking-objects’ that I can leafref to, then my new OAM mechanism can augment there. If there is no such structure, then we cannot do that, and rather the VRRF model only leafrefs to the currently known paths (my ‘track’ leaf has explicit leafref to a subset of ‘ping’ and known continuity checks when I wrote the module). Adding the new OAM mechanism then means a new version of the VRRP module - which seems suboptimal. The first approach is cleaner, but needs someone to define the structure such that we get it right. Nothing whatsoever is stopping the routing area from defining some structure for new modules. Pick whatever you like. The only pushback is wrt/ obsoleting existing RFC modules and moving the data nodes in them to a different location. Some of us do not agree that a problem has been demonstrated that warrants starting over for these RFCs. Defining structure with arbitrary subsets of the tree doesn’t help! As an operator I want to be able to configure a device, because this is what my network is built from. Not IETF areas. Do you suggest that the existing models are placed as a constraint on any new work in YANG? If so, I’d be grateful if you can point out to me what the precedent is to show that they are useful in the real world? Kind regards, r. ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi Lada, Thanks for the reply. On August 27, 2015 at 11:21:18, Ladislav Lhotka (lho...@nic.cz) wrote: This one is actually easy to explain, exactly as the top-level container interfaces in ietf-interfaces: it is a courtesy to XML encoding. Apologies, I’m not sure my question was clear enough. The point was, why do we need a model that defines a structure for routing if one that defines a structure for device is not useful? Thanks, r ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi Andy, On August 27, 2015 at 14:48:58, Andy Bierman (a...@yumaworks.com) wrote: Did you really think that just because we created a nice DML that somehow you would not need to know about the topic of your YANG module? I actually have heard this complaint from some people. Great. How does YANG help? I still have to be an expert in MPLS to write a YANG module that manages MPLS. Yep. That's right. Nothing in YANG helps you know more than you do now about specific networking technologies. No, I didn’t at all. So, I work operating networks, and the surrounding systems that we use to manage them. I could consider myself to have some knowledge in the various areas that I’m trying to model right now - and am even luckier to be able to work with a bunch of folk who have also operated different networks, such that we can figure out how things should be laid out. So, we’re writing these modules - and you’ll see them here: https://github.com/YangModels/yang/tree/master/experimental/openconfig What I am saying is that as the person looking at how to /actually use/ these modules, it is much, much easier for me if I can have some idea of where to find things that I know are related, and have some consistency in the approach. The group of people that are writing these modules noted the need for us to have some structure. However, the IETF is also writing a bunch of modules, which we figure it’d be super-neat if we can use. So we wrote some conventions, one is a structure; the other is an approach for how opstate is modelled. From your mail, I think that you are saying that you don’t care how we do this. If that’s the case we’ll head off and write our modules. However, there are two discrepancies: Lots of others in the IETF are writing models, and we’d like all these to combine to be usable. To do this, we need to agree on a structure. NETMOD looked like the place to do this based on the fact that draft-ietf-netmod-routing-cfg is a NETMOD draft. So we brought them here. Your objection is based on a specific subset of models that have already been created, that you assert will still need to exist. This is then counter to the fact that I can go and model things how I like. Again, it seems like raising the issues that we have with these models in context of a structure should be something raised with NETMOD, given that these documents are the output of NETMOD according to the data tracker. There are really two options: a) NETMOD does not care about how models fit together - because their contents are arbitrary. If this is the case, fine, I’ll talk with the area directors as to where we should propose these approaches such that the pan-IETF models end up working nicely together within the DML that this group has defined. b) NETMOD does care, and should try and define a structure because it is the custodian working group for YANG and YANG models. I think a lot of my problems are solved by having a defined structure for models, that has been worked through by folks with protocol knowledge, and knowledge of how these elements are used and managed. I would like it to be adopted by the IETF. My view is that b) is currently true - and hence it was brought to NETMOD. At the moment, I can’t reconcile the apparent disparities between your statements in this mail and your objections in other messages. Further to this, I still cannot see any alternative to the structure that we did define - so whilst I can remove /device from the start of the path, which ‘protects’ /interfaces [0] - this doesn’t actually help me progress anything. This is why “/device or not” is irrelevant. r. [0]: Note that actually, some work to refactor 7223 further to just its path has been done… https://github.com/YangModels/yang/tree/master/experimental/openconfig/interfaces ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On Thu, Aug 27, 2015 at 11:19 AM, Rob Shakir r...@rob.sh wrote: Hi Andy, I’m struggling with this debate. On August 27, 2015 at 13:59:55, Andy Bierman (a...@yumaworks.com) wrote: Sorry -- are you suggesting that maybe /device adds no value beyond /? If so, I agree. No, I am suggesting that should understand what the alternatives to solving issues are, before moving on to debating the merits of a particular solution that has nothing to compare and contrast against. There is a proposal for the data root -- use / as we are doing now. One container does not add value, the structure (which happens to start with /device in ONE proposal, to which there are no alternates) is what matters. Unfortunately you seem to be stuck on this container. Please ignore it and focus on the problems I defined. RTFM Great. So, I need to go and write a bunch of different implementations of how to set up a ping, and trawl through a huge number of roots to find things that are related. If this is the approach we take with IETF modules, then they will be worse to use than the existing configuration approaches that we have. At least the vendor specific ones have some form of logic as to how they are usable to consumers. Did you really think that just because we created a nice DML that somehow you would not need to know about the topic of your YANG module? I actually have heard this complaint from some people. Great. How does YANG help? I still have to be an expert in MPLS to write a YANG module that manages MPLS. Yep. That's right. Nothing in YANG helps you know more than you do now about specific networking technologies. I don't see what the huge number of roots has to do with this issue. 2) As a creator of YANG models, how do I know the targets for references such that I capture references to the elements that I want, given there is no currently defined structure? The modules you are using have data locations defined. In order to define YANG data (with YANG 1.0 or 1.1) a top-level data node or augment-stmt will be present specifying the /path/from/root How do you know where data is that has not been defined yet? You don't and YANG has no ability to reference undefined data anyway. Consider VRRP ‘tracking’. I want to be able to add some form of new thing that VRRP might track. If we’ve defined a structure that says that there is some list of ‘tracking-objects’ that I can leafref to, then my new OAM mechanism can augment there. If there is no such structure, then we cannot do that, and rather the VRRF model only leafrefs to the currently known paths (my ‘track’ leaf has explicit leafref to a subset of ‘ping’ and known continuity checks when I wrote the module). Adding the new OAM mechanism then means a new version of the VRRP module - which seems suboptimal. The first approach is cleaner, but needs someone to define the structure such that we get it right. No matter what set of NP containers you create, there might be stuff that could reasonably be put in different places. So what? This is part of the design choice when picking the one true home for everything. The structure is ad-hoc and arbitrary. Its only value is in the common agreement of where things should go. So make up some structure and fill it in. What's the problem? Nothing whatsoever is stopping the routing area from defining some structure for new modules. Pick whatever you like. The only pushback is wrt/ obsoleting existing RFC modules and moving the data nodes in them to a different location. Some of us do not agree that a problem has been demonstrated that warrants starting over for these RFCs. Defining structure with arbitrary subsets of the tree doesn’t help! As an operator I want to be able to configure a device, because this is what my network is built from. Not IETF areas. Do you suggest that the existing models are placed as a constraint on any new work in YANG? If so, I’d be grateful if you can point out to me what the precedent is to show that they are useful in the real world? I have not seen any evidence that moving /interfaces, /interfaces-state, /nacm, /netconf-state, /netconf, /ipfix, /system and /snmp will solve any real problems. There are implementations of these modules already. Are you suggesting that work the new routing modules cannot proceed because these 8 top-level nodes are somehow preventing this work? Are you suggesting it would solve your OAM or VRRP design problems if the path was /device/interfaces instead of just /interfaces? Kind regards, r. Andy ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On Aug 27, 2015:2:29 PM, at 2:29 PM, Andy Bierman a...@yumaworks.com wrote: On Thu, Aug 27, 2015 at 11:14 AM, Nadeau Thomas tnad...@lucidvision.com mailto:tnad...@lucidvision.com wrote: On Aug 27, 2015:1:59 PM, at 1:59 PM, Andy Bierman a...@yumaworks.com mailto:a...@yumaworks.com wrote: On Thu, Aug 27, 2015 at 10:39 AM, Rob Shakir r...@rob.sh mailto:r...@rob.sh wrote: Andy, Apologies, I don’t understand how your mail answers the questions that I posed. On August 27, 2015 at 12:25:20, Andy Bierman (a...@yumaworks.com mailto:a...@yumaworks.com) wrote: A whole lots of words here, but I am still confused why /device is better than / for solving your data model awareness problem. Please re-read my email - here’s the single statement where I said that this was NOT the discussion that I think is important: It strikes me that there is a need to take a step back from the debate of whether /device is a good idea or not. I’m not sure how this could be clearer. Sorry -- are you suggesting that maybe /device adds no value beyond /? If so, I agree. YANG is no different than any other part of the source code. Reusable YANG is just as likely or unlikely as reusable C, depending on how aware people are of the existing code base. Which OAM? Read the modules and decide. No magic there. How would /device vs / (as the first node) help you figure this out? Nobody is objecting at all to creating structure for the new modules. If /device has siblings, then let's see them in the uber-tree. The objection is to adding in a useless layer, and moving existing data nodes, which breaks existing implementations of all those data nodes. Please suggest an alternate approach to the one that is laid out in draft-openconfig-netmod-model-structure that you believe will help with the two problems that I raised. I’ll rephrase them here with less explanation, albeit that comes with less clarity. 1) As a consumer of YANG models, how do I identify the set of models that provide a set of functionality? How do YANG model writers ensure that their models are as easy to deal with as possible by having consistent modelling approaches for config? RTFM Andy, While it might be frustrating, coming to an understanding of what the problem is or might be, and then looking at why the existing mechanisms/models or additional ones solve these requirements (or do not) is what is at hand. I think everyone agreed at the interim meeting that the requirements were clear and sound. This is detailed in the meeting minutes. If anyone disputes this, I am happy to do an official WG call for consensus on these specifics, but given the unanimous agreement at the meeting, I did not feel that it was necessary to do this. Based on that, the next question is: are these problems solved with what is here today, or do we need another approach/es. Rob is clearly not an idiot and is asking for detailed reasons why you and others believe what he/OpenConfig have proposed is insufficient. Please be as considerate and constructive as he has been in asking his questions when you address them. Are you suggesting that the openconfig drafts offer some solution to how do I use this YANG module that does not involve reading the YANG module? If so, I didn't see it. Please point it out to us. I am not taking sides. I hope I don’t need to point out these guys have presented an alternative solution. The WG must consider this seriously as it is a serious proposal that is being seriously considered in other parts of the IETF such as the routing area. I will point out again that we are looking at this closely and thoroughly. If its determined to be desired via consensus, then we will go forward with it; if not, then no. Its my action and job to determine this and I’ve outlined the process for this. My only objection is to moving data that has already been published in an RFC. I am not the only person on this list that has questioned to value of moving this small number of data models to new roots in the data tree. Everything done in an IETF meeting needs to be confirmed on the mailing list. You know that. So what specifics are you ready to declare have WG consensus? Again, my assumption was that there was sufficient consensus and understanding around the requirements (not the solutions) after the interim meetings. I explicitly asked that question at the meeting and went around the WebEx call to confirm. Those conclusions were documented in the meeting minutes posted on the list. —Tom —Tom (Speaking as Co-chair) Andy 2) As a creator of YANG mode ls, how do I know the targets for references such that I capture references to the elements that I want, given there is no currently defined structure? The modules you are using have data locations
Re: [netmod] Motivations for Structuring Models
Martin, Apologies, I switched to a new client and, wow, yes, it's not readable. I reported a bug and switched clients again... I *hope* this one is more readable (and it was when I checked last). I'll put aside questions of whether the questions I'm asking are completely fair. Apologies. They're written from my perspective of problems I'm actually experiencing. Martin Bjorklund mailto:m...@tail-f.com August 27, 2015 at 15:45 1) As a consumer of YANG models, how do I identify the set of models that provide a set of functionality? I think that neither your proposed solution or what we have today (7 published modules) solves this problem. I respectfully disagree. By defining some form of structure for the models, I can have a logical grouping that gives me some pointers as to where to find the right things that I need. I want to configure OAM, great, let's go look at /device/logical-network-elements/logical-network-element/network-instances/network-instance/oam-protocols - because that's where all OAM stuff happens to live. If I have to rather look through / to find a subset of some ping functionality in one module, and some in another, it's not clear to me how I even start to find the right thing - because at the moment one type of ping lives in one module, and another in a completely different one, even though they're almost identical in terms of management plane interface. I agree, an alternative is that one can have something that has a registry that defines sets of functionality, and we then need to define the 'blocks' of functionality that we need (hey! this looks a lot like some definition of a set of modules!). If this is a better solution, yes, please, propose it. The way that we proposed in openconfig-model-structure tries to have a way that you can not have a single model code-block and pull in different logical sub-modules, but know where to find the functionality you need. How do YANG model writers ensure that their models are as easy to deal with as possible by having consistent modelling approaches for config? Hmm, your question contains the answer; that's cheating ;-) Shouldn't the question be: How do YANG model writers ensure that their models are as easy to deal with as possible? The answer to this one is the same as to the question how do a C programmer ensure that his program is as easy to deal with as possible? How do I write code that is generally easy to deal with? Follow conventions that generally tell me where to put stuff, and how to name it. What I don't understand is why model-structure or opstate is actually different to defining such conventions? 2) As a creator of YANG models, how do I know the targets for references such that I capture references to the elements that I want, given there is no currently defined structure? Again your question is biased... shouldn't it be: As a creator of YANG models, how do I know the targets for references such that I capture references to the elements that I want? And the answer to this one is the same as to question 1 - I don't think your proposal solves this, and the solution is that you need to find these other modules. Structure really helps me here, since when someone creates a module that wants to reference a particular type of function, then we reference a well-known path for that. If someone adds a function of that type, it must sit in that path so it can be referenced. See the VRRP example I wrote out before. “Just read through the modules” is not acceptable answer when considering making things easy to use for YANG model consumers. But how does the top-level node /device (sorry, but I really have to ask this) solve this problem? I *really* do not understand this. Even with your solution you'd have a set of modules that augment this structure, right? How do I know what these other modules are? Now, I should add that the way I see your solution is a YANG module that defines a structure of NP-containers. You (or was it Anees?) then mentioned that we shouldn't focus so much on the *YANG module*; it was the structure that was important. First off, we drew a picture [0] that showed the set of modules that we figured we might need. These break down into various bits of device functionality. To make this more accessible as something that could be shown in a draft, we expressed it in YANG and used pyang to draw out the tree. The layout of the sets of functions that we have, and how they are grouped, is the important thing. The fact that we are configuring a device makes /device a good starting point. I think this is how you implemented NEDs in NCS too...? Cheers, r. [0]: http://rob.sh/files/model-structure.pdf ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
On Thu, Aug 27, 2015 at 12:48 PM, Rob Shakir r...@rob.sh wrote: Hi Andy, On August 27, 2015 at 14:48:58, Andy Bierman (a...@yumaworks.com) wrote: Did you really think that just because we created a nice DML that somehow you would not need to know about the topic of your YANG module? I actually have heard this complaint from some people. Great. How does YANG help? I still have to be an expert in MPLS to write a YANG module that manages MPLS. Yep. That's right. Nothing in YANG helps you know more than you do now about specific networking technologies. No, I didn’t at all. So, I work operating networks, and the surrounding systems that we use to manage them. I could consider myself to have some knowledge in the various areas that I’m trying to model right now - and am even luckier to be able to work with a bunch of folk who have also operated different networks, such that we can figure out how things should be laid out. So, we’re writing these modules - and you’ll see them here: https://github.com/YangModels/yang/tree/master/experimental/openconfig What I am saying is that as the person looking at how to /actually use/ these modules, it is much, much easier for me if I can have some idea of where to find things that I know are related, and have some consistency in the approach. The group of people that are writing these modules noted the need for us to have some structure. However, the IETF is also writing a bunch of modules, which we figure it’d be super-neat if we can use. So we wrote some conventions, one is a structure; the other is an approach for how opstate is modelled. From your mail, I think that you are saying that you don’t care how we do this. If that’s the case we’ll head off and write our modules. However, there are two discrepancies: 1. Lots of others in the IETF are writing models, and we’d like all these to combine to be usable. To do this, we need to agree on a structure. NETMOD looked like the place to do this based on the fact that draft-ietf-netmod-routing-cfg is a NETMOD draft. So we brought them here. 2. Your objection is based on a specific subset of models that have already been created, that you assert will still need to exist. This is then counter to the fact that I can go and model things how I like. Again, it seems like raising the issues that we have with these models in context of a structure should be something raised with NETMOD, given that these documents are the output of NETMOD according to the data tracker. There are really two options: a) NETMOD does not care about how models fit together - because their contents are arbitrary. If this is the case, fine, I’ll talk with the area directors as to where we should propose these approaches such that the pan-IETF models end up working nicely together within the DML that this group has defined. b) NETMOD does care, and should try and define a structure because it is the custodian working group for YANG and YANG models. this is a strawman. Just because some people don't agree that the existing modules should be moved doesn't mean the NETMOD WG wants every module to create its own top-level node. Create some organization for the 194 new modules. I completely agree with you that these modules should be written with a coherent development plan in mind. I think a lot of my problems are solved by having a defined structure for models, that has been worked through by folks with protocol knowledge, and knowledge of how these elements are used and managed. I would like it to be adopted by the IETF. My view is that b) is currently true - and hence it was brought to NETMOD Given that CLIs are being driven by YANG, I completely agree that understanding of the command hierarchy is useful. I have no objections to the creation of a hierarchy or node placement plan or whatever. This is a non-issue. The issue I see is whether the existing 7 modules should be grandfathered or whether these RFCs have to be changed to Obsolete status and replaced with new RFCs. Andy At the moment, I can’t reconcile the apparent disparities between your statements in this mail and your objections in other messages. Further to this, I still cannot see any alternative to the structure that we did define - so whilst I can remove /device from the start of the path, which ‘protects’ /interfaces [0] - this doesn’t actually help me progress anything. This is why “/device or not” is irrelevant. r. [0]: Note that actually, some work to refactor 7223 further to just its path has been done… https://github.com/YangModels/yang/tree/master/experimental/openconfig/interfaces ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi Martin, BTW, are these interim meeting minutes available somewhere? This is not the first time I had to search old emails in order to find interim minutes. I just sent email to the WG chairs alias asking about this. I'm proposing that minutes for interim meetings be linked off the Minutes page too, as they are already for conference meetings (http://tools.ietf.org/wg/netmod/minutes) Using the meeting manager tool I have access to, I can see a list of all the interim meetings that were scheduled in 2014 and 2015. And I can drill down to find the link for the minutes that were uploaded for that meeting. Looking at the results (see below), I see that the minutes were uploaded for about 1/2 of the meetings. In some cases, this is an error by the chairs forgetting to upload them or not knowing that they should and, in other cases, this is because (I speculate) that the interim meeting was cancelled and was left dangling. For interim meetings that took place and yet missing minutes, Tom and I will work to get them posted. For the interim meetings that were cancelled, I imagine we can uploaded some fake minutes that just say the meeting was cancelled, though I'd much rather find a way to delete the meeting entirely from the meeting manager tool's record - I'll ask around to see if that's possible... 2015-10-12 : none linked 2015-10-05 : none linked 2015-09-28 : none linked 2015-09-21 : none linked 2015-09-14 : none linked 2015-09-07 : none linked 2015-08-31 : none linked 2015-08-24 : https://www.ietf.org/proceedings/interim/2015/08/24/netmod/minutes/minutes- interim-2015-netmod-15 2015-06-25 : none linked 2015-06-18 : none linked 2015-03-12 : none linked 2015-03-05 : https://www.ietf.org/proceedings/interim/2015/03/04/netmod/minutes/minutes- interim-2015-netmod-5 2015-03-04 : none linked 2015-02-22 : none linked 2015-02-18 : https://www.ietf.org/proceedings/interim/2015/02/18/netmod/minutes/minutes- interim-2015-netmod-4 2015-02-04 : https://www.ietf.org/proceedings/interim/2015/02/04/netmod/minutes/minutes- interim-2015-netmod-3 2015-01-21 : https://www.ietf.org/proceedings/interim/2015/01/21/netmod/minutes/minutes- interim-2015-netmod-2 2015-01-15 : none linked 2015-01-08 : none linked 2015-01-07 : https://www.ietf.org/proceedings/interim/2015/01/07/netmod/minutes/minutes- interim-2015-netmod-1 2014-12-17 : https://www.ietf.org/proceedings/interim/2014/12/17/netmod/minutes/minutes- interim-2014-netmod-19 2014-12-11 : none linked 2014-12-04 : none linked 2014-12-03 : https://www.ietf.org/proceedings/interim/2014/12/03/netmod/minutes/minutes- interim-2014-netmod-18 2014-11-19 : https://www.ietf.org/proceedings/interim/2014/11/19/netmod/minutes/minutes- interim-2014-netmod-17 2014-10-22 : none linked 2014-10-15 : https://www.ietf.org/proceedings/interim/2014/10/15/netmod/minutes/minutes- interim-2014-netmod-15 2014-10-08 : https://www.ietf.org/proceedings/interim/2014/10/08/netmod/minutes/minutes- interim-2014-netmod-14 2014-10-01 : https://www.ietf.org/proceedings/interim/2014/10/01/netmod/minutes/minutes- interim-2014-netmod-13 2014-09-24 : none linked 2014-09-17 : https://www.ietf.org/proceedings/interim/2014/09/17/netmod/minutes/minutes- interim-2014-netmod-11 2014-09-10 : none linked 2014-09-03 : https://www.ietf.org/proceedings/interim/2014/09/03/netmod/minutes/minutes- interim-2014-netmod-9 2014-08-27 : https://www.ietf.org/proceedings/interim/2014/08/27/netmod/minutes/minutes- interim-2014-netmod-8 2014-07-16 : none linked 2014-07-09 : https://www.ietf.org/proceedings/interim/2014/07/09/netmod/minutes/minutes- interim-2014-netmod-6 2014-07-02 : https://www.ietf.org/proceedings/interim/2014/07/02/netmod/minutes/minutes- interim-2014-netmod-5 2014-06-25 : none linked 2014-06-18 : none linked 2014-06-11 : https://www.ietf.org/proceedings/interim/2014/06/11/netmod/minutes/minutes- interim-2014-netmod-2 2014-06-04 : https://www.ietf.org/proceedings/interim/2014/06/04/netmod/minutes/minutes- interim-2014-netmod-1 Kent ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod
Re: [netmod] Motivations for Structuring Models
Hi, 发件人: netmod [mailto:netmod-boun...@ietf.org] 代表 Andy Bierman 发送时间: 2015年8月28日 0:25 收件人: Rob Shakir 抄送: netmod@ietf.org 主题: Re: [netmod] Motivations for Structuring Models On Thu, Aug 27, 2015 at 6:56 AM, Rob Shakir r...@rob.shmailto:r...@rob.sh wrote: NETMOD, One of the chairs encouraged me to post this to the list. I didn’t really find how it fits in to the existing threads, but I wanted to make an observation. It strikes me that there is a need to take a step back from the debate of whether /device is a good idea or not. As a user of something that results from compiling/generating bindings from a YANG model, I have two requirements: * I need to be able to compose the right modules to be able to get the functionality that that the thing I’m trying to configure uses. * Let’s say I want to configure some OAM continuity checking functions - for both MPLS and IP. * Right now, I have the choice of ‘ietf-lspping’ which defines /lsp-pings, then ‘mplstp-oam’ which defines /mplstp-oam. Presumably then we’ll have ‘ietf-ip-oam’ and then ‘ietf-ipv6-oam’. * As a developer - how do I figure out which models I need to build my OAM function. Do I have to trawl some directory to find all of the different fragments of OAM [Qin]: I think this is also what LIME WG is trying to solve by defining generic YANG model for OAM to provide technology independent framework. Please take a look at LIME WG charter: http://datatracker.ietf.org/wg/lime/charter/ * Do I then need to accept the complexity of dealing with the fact that the structures of LSP pings is completely different to the IP OAM structures? [Given that there is no co-ordination of models, then this will happen.] I think this is something we need to try to avoid. I believe coordination of these models are really needed. * As someone that is building YANG models, how do I know where I should leaf-ref too. * Let’s say I want to tie an OAM probe to some protocol liveliness - where do I point my leafref to? At the moment, without some structure, than any path that is specified is pointing to some placeholder location, until we agree where the structure might sit. [Qin]: Two comments: 1. I think draft-rtgyangdt-rtgwg-device-model-00 provide a good structure for these OAM models organization but not limited to provide structure for OAM model organization. +--rw logical-network-elements +--rw networking-instances +--rw networking-instance* [networking-instance-name] +--rw oam-protocols | +--rw bfd | +--rw cfm | +--rw twamp 2. draft-tissa-lime-yang-oam-model also provide a good common structure for OAM models organization. LIME WG is chartered to work on generic YANG model for OAM (the relevant draft is draft-tissa-lime-yang-oam-model)and provides a common structure for various OAM technologies, technology specific OAM data models will be worked on respective protocol WGs(e.g., BFD, MPLS). Therefore based on LIME charter (http://datatracker.ietf.org/wg/lime/charter/), the relation with protocol based OAM models can be depicted, for example, as follows: +-+-+-+-+-+ | LIME gen| |OAM YANG | +-+-+-+-+-+ | | +-+ | | | || +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ | CFM | | MPLS-TP | | MPLS| | IP | . . .| foo| |OAM YANG | |OAM YANG | |OAM YANG | |OAM YANG | |OAM YANG | +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ | | | | | | +-+-+-+-+-+ +-+-+-+-+-+ | +-+-+-+-+-+ | | MPLS-TP | | MPLS| | . . .| foo| | |sub tech | |sub tech | | |sub tech | ___ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod