On 09/12/2016 15:17, Martin Bjorklund wrote:
Robert Wilton <[email protected]> wrote:

On 09/12/2016 12:06, Juergen Schoenwaelder wrote:
On Fri, Dec 09, 2016 at 11:25:35AM +0000, Robert Wilton wrote:
Even if they don't break, debug and diagnostics information can be
very
verbose.

If a client had 4 connections to a device for monitoring different
things,
then you don't want to suddenly start sending a large amount of extra
diagnostics data on each of the 4 connections when they have only
requested
it on one connection.  Generating this extra data could overload the
client
or the device, or certainly lead to degraded performance in some way
or
another.

Then the client probably should have used a proper filter. Augments
are a key feature of YANG. A client not interested in any additional
data should not (implicitely) ask for it. (It does not matter whether
the additional data is debugging or other information; if you do not
need it, do not as for it if you want to be robust.)
Given that an augmentation could be on any container, then I think
that this ends up that every get request needs a potentially complex
subtree filter to exclude diagnostics information that they wouldn't
really expect to be returned in the first place.  Further, if the
diagnostics information was controlled by a debug leaf then they
probably won't ever see this problem during testing, only when someone
needs to get diagnostics information for an Ethernet interface on a
production system would the extra data start showing up.

To me, this seems to be making YANG models easier for the 0.01% of
client request at the expense of the 99.99% of client requests.
The problem is that it is a slippery slope.  Anyone that designs a
data model might think that some data probably not is interesting to
all clients, in all cases, so they might just create special RPCs
instead of modelling it as config false data.
I would say that a clear separation is fairly easy to define, and the industry has managed to do this fairly well for the last few decades: - If the information is necessary to manage or monitor a device then it should be included in opstate. - if the information is only required for an engineer to diagnose why the device isn't working to the specification then it isn't part of the opstate.

There are lots of examples of this:
 1) a simple car analogy:
- my car dashboard gives me the useful information that I need to safely drive the car, and to monitor that the car is behaving as designed. - if the car stops working properly (perhaps it signals a fault on the dashboard), then I take it to garage, they connect it to a computer, download and analyze the diagnostics to figure out what is wrong (normally at large expense). - as a user of the car, I do not want to see all of that internal diagnostics information on the dashboard all the time. It would obscure the information that is actually important, and I probably wouldn't understand what it all means anyway.

2) My alarm system at home has a "User mode" and "Engineer mode", the information presented in each mode differs. I think that this sort of example can probably be repeated for nearly all of the consumer electronics that I own.

3) The same is for network devices:
As a operator of an Ethernet interface, I care:
 - whether the port is up and able to forward packets, or it is down.
- if it is down, whether it is something that I can diagnose and fix (e.g. config error, dirty cable, missing PHY). But I don't personally want to know whether the "PHY XS provides information on transmit path data delay in registers 4.1801 through 4.1804" or whether "PHY XGXS is able to generate test patterns". However, an engineer might find this information useful to diagnose why the Ethernet port isn't working the way that it should.

I think that there is a clear split in the intent of this information, and what audience the information is targeted to.

I can't see how always lumping these two discrete sets of data together really helps anyone.

Thanks,
Rob

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

Reply via email to