Subject: [netmod] Proposed consensus mail on yang-00172

From: David Partain <[email-masked]>
Date: Mon, 27 Oct 2008 11:00:37 +0100

Greetings,

Hope the table below works.  You may have to use a fixed-width font.

This is a call for consensus about issue 'yang-00172:
clarifications for ordered-by, must, unique, keyref, when,
mandatory, minmax, etc'.  See the wiki at
http://wiki.tools.ietf.org/wg/netmod/trac/wiki/Issues_yang#issue-00172
for an introduction.

This mail documents the conversations at the interim for proposed
changes / clarifications in text in the YANG document.  As such,
the question is whether you agree with the interpretation that
this text intends to document.  There are no new features being
proposed.

PLEASE speak up if you favor the changes or object to the text
(including people who attended the interim).

Question that started the discussion: What does 'ordered-by
user;' mean for read-only data or RPC input or notification
content?

This question is broader and the table below says when the
various statements are relevant or not.

               config   config    RPC    RPC     Notifi-  Enforced
                true    false     input  output  cation   at commit
----------------------------------------------------------------
ordered-by    |  OK   |   i    |  OK   |   i    |   i    |  N
unique        |  OK   |   OK   |  OK   |   OK   |   OK   |  Y
must(1)       |  OK   |   OK   |  OK   |   OK   |   OK   |  Y
keyref        |  OK   |   OK   |  OK(2)|   OK(2)|   OK(2)|  Y
when(1)       |  OK   |   OK   |  OK   |   OK   |   OK   |  N
mandatory     |  OK   |   OK   |  OK   |   OK   |   OK   |  Y
max/max-elems |  OK   |   OK   |  OK   |   OK   |   OK   |  Y

All of these are constraints, and the question is when that
constraint is enforced.

Key:

  i - ignored

  (1) must, when - the XPath context varies, and we'll have to
  document all of this for all of the different columns.

  (2) restrictions: the target of the XPath expression refers to
  the running config or to status data.

The interim meeting spent some time talking about the differences
between when and must.  Phil Shafer's definitions:

'when' - The parent schema node is ignored unless the 'when'
expression is satisfied.  If the expression becomes false, any
data associated with the node is automatically deleted.

(Editor: deleted from what? from the response? from the config database?  Not 
entirely sure.  Phil?)

'must' - If the parent node exists in the database, the 'must'
expression must be true.  If the expression is false, an error
condition exists.  Enforced at commit time.

Do you agree with the definitions above?

There was a long discussion about when a 'when' expression is
evaluated.  The rough consensus of the room was that 'when'
constraints should be enforced in the candidate configuration,
whereas 'must' is enforced first when committing in the running
configuration.

Phil Shafer will write some text about a hierarchy of constraints
where mandatory can be applied underneath a 'when'.  Conditions
on parents affect or negate constraints on children.
_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod

---

From: Balazs Lengyel <[email-masked]>
Date: Tue, 28 Oct 2008 21:11:06 +0100

Generally I support this with some comments:

General statement:
Restrictions on data going to the agent must be honored, otherwise an error is returned.
Restrictions on data coming from the agent, are promises by the agent. If they are broken, 
tough luck, but they shouldn't.

Enforced at commit implies: not enforced during the editing of a candidate configuration

I am still unclear what ordered-by  means on RPC input.

Balazs

-- 
Balazs Lengyel                       Ericsson Hungary Ltd.
TSP System Manager
ECN: 831 7320                        Fax: +36 1 4377792
Tel: +36-1-437-7320     email: [email-masked]
_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod