----- Original Message ----- From: "Ted Lemon" <Ted.Lemon@xxxxxxxxxxx> To: "Tim Wicinski" <tjw.ietf@xxxxxxxxx> Cc: <ietf@xxxxxxxx> Sent: Tuesday, December 09, 2014 5:07 PM On Dec 9, 2014, at 12:00 PM, Tim Wicinski <tjw.ietf@xxxxxxxxx> wrote: > I would concur that is something that the everyday yang user should never have to do on a regular basis. If we do, then we need to fix this. I believe this is why libraries were invented. If by "everyday yang user" you mean an ops person in a data center, then I agree, but that's not what I was talking about. What I mean is that if yang is hard enough to understand well that only someone who hacks yang models full-time can do it, then that's a bit of a problem since we need people who are experts in the protocols and systems being _managed_ to be writing yang data models. And those people are not going to be doing yang full-time. <tp> That is my concern. We have had examples in the past where it would be possible to nail something down completely with ABNF but it was not considered worth the complexity of doing so - instead, go part way with ABNF and add a sentence of text/plain that conveys the rest of the requirement. YANG has conditionals, 'must' 'when' 'if-feature', which, coupled with augmentation of one model by another, allow for complicated constructs. 'grouping's and 'container's, presence and non-presence, make for a more complex model. I don't think that " augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/" + "rt:next-hop/rt:next-hop-options/rt:simple-next-hop" { when "../../../rt:address-family = 'v6ur:ipv6-unicast'" " will ever trip easily off my tongue. (Perhaps I underestimate the prevalence of XPath 1.0 and the understanding of its contexts). Yes it can deliver the sort of integrity checking that the operators asked for but what I seem to see with the standard models is that it is hard (even for experts) to get right. You can automate the checking of the syntax but does it really have the semantics that the description clause says it does? And do we want the expert in a proprietary protocol (SMB anyone?) to be using this as an exemplar of what YANG should look like? I used to read (as a child) on the workshop wall 'The supreme excellence is simplicity' but I had to write code for several years before I understood what it meant - and became an engineer. Tom Petch