Subject: [netmod] YANG validation model

From: Andy Bierman <[email-masked]>
Date: Wed, 14 Oct 2009 07:36:31 -0700

Hi,

I think we have a large disconnect between those
who want YANG semantics to apply to the operator-provided
static list of instructions, and those who want
to apply the semantics to a conceptual running system.

IMO, the config-file design is fatally flawed, because
the subset of all configuration instructions provided
by the operator is completely arbitrary.

It is impossible to write referential integrity tests
against an arbitrary subset of the conceptual system.

The semantics of every YANG object and constraint
are written such that they describe the behavior
of the running system.  They never describe the
contents of the config file.

This is how SMIv2 has worked for over 2 decades,
and I see no reason for IETF data models written in YANG
to be done differently.

Andy

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 14 Oct 2009 16:47:52 +0200

> and I see no reason for IETF data models written in YANG

Yes, there apparently is a disconnect. Configuration is not the same
as operational state. SMIv2 messed this up, we are trying to fix it.
It might take some time to get used to this distinction.

/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/>

---

From: Andy Bierman <[email-masked]>
Date: Wed, 14 Oct 2009 08:03:49 -0700

> It might take some time to get used to this distinction.

I disagree.
SNMP got it right.

Your definition of configuration is an arbitrary
subset of all the parameters that make up operational behavior.

Good luck trying to force operators to explicitly set
every single leaf that may ever show up in a must/when
or other YANG constraint.  Good luck converting any
SMIv2 semantics to YANG semantics, and training every
data modeler to write constraints that apply to the
arbitrary set of explicit commands, instead of to
the running system.

In the big-feature-enabled example,
the data modeler does not care who
sets the interface MTU.  The only thing that matters
is the operational value in use on the system.
The constraint does does mean 'only allow this feature
if an operator has specifically requested a large MTU size'.

If YANG cannot support this simple use-case,
what can it do?

Andy

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 14 Oct 2009 17:06:02 +0200

> SNMP got it right.

Fine, we disagree. Not for the first time.

/js