ietf
[Top] [All Lists]

Re: Blog: YANG Really Takes Off in the Industry

2014-12-09 12:37:44
----- Original Message -----
From: "Ted Lemon" <Ted(_dot_)Lemon(_at_)nominum(_dot_)com>
To: "Tim Wicinski" <tjw(_dot_)ietf(_at_)gmail(_dot_)com>
Cc: <ietf(_at_)ietf(_dot_)org>
Sent: Tuesday, December 09, 2014 5:07 PM

On Dec 9, 2014, at 12:00 PM, Tim Wicinski <tjw(_dot_)ietf(_at_)gmail(_dot_)com> 
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