> On 21 Mar 2017, at 12:50, Robert Wilton <[email protected]> wrote:
> 
> 
> 
> On 21/03/2017 10:49, Ladislav Lhotka wrote:
>>> On 21 Mar 2017, at 11:25, Juergen Schoenwaelder 
>>> <[email protected]> wrote:
>>> 
>>> Hi,
>>> 
>>> if we want to standardize tree diagrams, we may want to take a more
>>> critical look at them, in particular the flags (that were created
>>> ad-hoc and in resemblance to MIB tree diagrams). pyang --tree-help
>>> says:
>>> 
>>>  <flags> is one of:
>>>    rw  for configuration data
>>>    ro  for non-configuration data
>>>    -x  for rpcs and actions
>>>    -n  for notifications
>>> 
>>> This is (a) incomlete and (b) somewhat confusing since ct does not
>>> equate to readwrite. I am attaching a sample yang file and here is the
>>> output pyang 1.7.1 produces:
>>> 
>>> module: tree-sample
>>>    +--rw config-true-container
>>>    |  +--rw param?   string
>>>    +--ro config-false-container
>>>    |  +--ro value?   string
>>>    +--rw inline-action
>>>    |  +---x action
>>>    |     +---- oops?     string
>>>    |     +---w input
>>>    |     |  +---w in?   string
>>>    |     +--ro output
>>>    |        +--ro out?   string
>>>    +--rw inline-notification
>>>       +---n notification
>>>          +---- duration?   string
>>> 
>>>  rpcs:
>>>    +---x rpc
>>>       +---w input
>>>       |  +---w in?   string
>>>       +--ro output
>>>       |  +--ro out?   string
>>>       +--ro oops?     string
>>> 
>>>  notifications:
>>>    +---n notification
>>>       +--ro boom?   string
>>> 
>>> I think a better usage of two letter flags would have been this (since
>>> it more naturally aligns with what the YANG definition says):
>>> 
>>>  <flags> is one of:
>>>    ct  for configuration data
>>>    cf  for non-configuration data
>>>    x-  for rpcs and actions
>>>    xi  for rpc or action input
>>>    xo  for rpc or action output
>>>    n-  for notifications
>>>    nt  for notification tree (this is I think the term 7950 uses)
>> Inside notifications and operations, "cf" carries no information and just 
>> clutters the output. My suggestion is to use "ct" or just "c" for 
>> config=true data and nothing elsewhere.
> Do, we also actually need the 'xi', 'xo', or 'nt' at all?  Would these be 
> obvious from the paths anyway?

Yes, "input" and "output" tells everything.

> 
> I think that having less symbols on the diagram may make it easier to parse, 
> and perhaps less likely for the lines to wrap.

+1

> 
> So I am suggesting perhaps just having:
> 
> <flags> is one of:
>   c  for configuration data
>   x  for rpcs and actions
>   n  for notifications
> 
> module: tree-sample
>   +--c config-true-container
>   |  +--c param?   string
>   +--- config-false-container
>   |  +-- value?   string
>   +--c inline-action
>   |  +--x- action
>   |     +--x input
>   |     |  +--x in?   string
>   |     +--x output
>   |        +--x out?   string
>   +--c inline-notification
>      +--n notification
>         +--n duration?   string
> 

I think the "x" and "n" is only needed next to the name of 
rpc/action/notification. So my version would be:

<flags> is one of:
  c  for configuration data
  x  for rpcs and actions
  n  for notifications

module: tree-sample
  +--c config-true-container
  |  +--c param?   string
  +--- config-false-container
  |  +--- value?   string
  +--c inline-action
  |  +--x action
  |     +--- input
  |     |  +--- in?   string
  |     +--- output
  |        +--- out?   string
  +--c inline-notification
     +--n notification
        +--- duration?   string

Lada


> etc.
> 
> Rob
> 
> 
>> 
>> Lada
>> 
>>> module: tree-sample
>>>    +--ct config-true-container
>>>    |  +--ct param?   string
>>>    +--cf config-false-container
>>>    |  +--cf value?   string
>>>    +--ct inline-action
>>>    |  +--x- action
>>>    |     +--xi input
>>>    |     |  +--xi in?   string
>>>    |     +--xo output
>>>    |        +--xo out?   string
>>>    +--ct inline-notification
>>>       +--n- notification
>>>          +--nt duration?   string
>>> 
>>>  rpcs:
>>>    +--x- rpc
>>>       +--xi input
>>>       |  +--xi in?   string
>>>       +--ro output
>>>          +--xo out?   string
>>> 
>>>  notifications:
>>>    +--n- notification
>>>       +--nt boom?   string
>>> 
>>> (And I think the oops leafs should have triggered an error.)
>>> 
>>> /js
>>> 
>>> -- 
>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>> <tree-sample.yang>_______________________________________________
>>> netmod mailing list
>>> [email protected]
>>> https://www.ietf.org/mailman/listinfo/netmod
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: 0xB8F92B08A9F76C67
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> netmod mailing list
>> [email protected]
>> https://www.ietf.org/mailman/listinfo/netmod
>> .

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67





_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to